Activity

jmw

I have started the project


So here’s what I did in this devlog:

  • Created a Bun backend that serves some files
  • Made a database with a table with a history of all edits to the canvas
  • Added an API endpoint to the Bun backend that will (rather inefficiently for now) fetch the table and build the current state of the canvas from scratch and send it back (remember how i said it’s inefficient? yeah it iterates through every. single. change in the entire history of the thing and then builds the state. better code coming soon thumbup-nobg)
  • Started the frontend
  • Realized the naming of “canvas” in the name of the project and “canvas” the HTML element will be very confusing
  • Did nothing about this and made confusing names anyway
  • Made the frontend fetch the current canvas state and display it on a <canvas> on the screen
  • Made that canvas draggable/scrollable (not too hard)
  • Added zooming via trackpad gestures or alt/ctrl/cmd scrolling, and it worked kind of badly and felt weird when using it
  • spent like 90% of this 4 hours fixing the zooming and like this took forever ARGHHGH IT WAS SO ANNOYING and i’m tired of doing it now but all my hard work finally paid off and I can zoom in and it feels nice!! (video attached) yay

soooooo anyway now i’ve got some stuff done
next, probably placing pixels on the canvas. either that or signing in with hack club. probably the first one or maybe even both! so we shall see how this goes

2

Comments

jmw
jmw 8 days ago

ps: movements on the canvas in the video that look like i’m doing nothing are scrolling/trackpad gestures!

jmw
jmw 8 days ago

and the pixels on the canvas/canvas size are not hardcoded they’re in a database and fetched from it

jmw

Started making a v1 of the configuration format so that I can build the code around how the user will use the program, it’s going pretty well. Making the config files in YAML.

Attachment
Attachment
0
jmw

Big change of plans: my journey of learning Rust has been postponed to a future project, and I have instead decided to start learning a new tool for Typescript instead: Bun.
Rust seems cool, but not for this project as I’m actually hoping to finish it and use it often. I already know Typescript, so I’m using it instead because I like it better.

Anyway, I deleted the Rust stuff and run bun init so now that’s what this devlog is

Attachment
0
jmw

Shipped this project!

Hours: 4.32
Cookies: 🍪 86
Multiplier: 19.84 cookies/hr

Shipping!!! So now there’s a slack bot controllable with commands that lets you change your channel’s member count to end in 67. If you’d like to test it, please make your own Slack channel and run the command /67members enable. You must be either the creator of the channel or me to run the commands. If you just want to see it in action, check out the demo link to see a channel with it enabled!

This was a fun project to make, and I learned quite a bit about how Slack bot commands work as well as how to handle 99 alts at once lol, hope you enjoy!

jmw

Events!!!!

so now it auto-updates the member count if someone joins or leaves as long as the bot is in the channel. this uses slack events going to my server

Attachment
Attachment
0
jmw

forgot to devlog for a while lol, the main functionality of joining and leaving works now however it only updates when i run the program. next is making a slack bot to adapt the settings, and then having it update the count automatically!

Attachment
Attachment
0
jmw

Grabs Slack user tokens from a file generated by my custom SMTP server’s slack alt code and checks that they all work now!

Attachment
0
jmw

writing this in rust, and this is my first time using rust, and this is a big project

anyway i got it to log a configuration directory (specified by environment variable, falls back to default OS-specific config dir).

now
why
did
this
take
forty
five
entire
m
i
n
u
t
e
sssssssssssss

AAAHHHHHHHH

ok welp anyway first devlog yay

Attachment
0
jmw

Shipped this project!

Hours: 10.07
Cookies: 🍪 198
Multiplier: 19.66 cookies/hr

ship now yay finally

so i made a custom email reception server (smtp) and a few tools that use it: a temporary email service (the demo link) and a way for me to quickly make slack alt accounts (viewable in the slack group @jmeow-alts)! this was a challenging project, and i’ve learned a lot about how emails work!

hope you enjoy! this was fun to make

(i am allergic to capital letters here aren’t i lol)

jmw

Polished the temporary email page a bit so now it looks better, added some request logging so I can see all the bots trying to figure out if I’m using wordpress, and published the website (demo link on the project). Shipping next!

Attachment
1

Comments

secretaditzu78
secretaditzu78 27 days ago

Nice

jmw

Finished the slack alt thing, it now stores the tokens in a text file after logging in (not sending an image of that file for hopefully obvious reasons).

I have started a temporary email service (which will be the demo link when it’s done so it’s verifiable that the smtp server works) that gives you an email address to send an email to and it shows emails sent to it. CSS coming soon along with making emails pop up without the page requiring a reload!

Attachment
0
jmw

Script to use the SMTP server for hack club account login has been updated to also do signups so now I’ve uhhh created uhhhh… let’s just say “a few” new users while testing

Anyway soon I’ll automate creating a bunch of these and store their tokens in a file so i can do fun stuff with them

Attachment
0
jmw

You can now make a config file to have options of where a list of links is (text file list only for now lol) with postgres support soon, and it actually hosts an http server and redirect

yay it works partially this is fun

all this was coded in a single car ride so far

Attachment
0
jmw

Yay a use for my project

So I spent a long time automating a browser (using “Astral” with Deno) to sign into a Hack Club account and Slack with only the email (pointing to the SMTP server I coded) and it will retrieve the OTP from the email (and delete it) to sign in. This means I can sign in to alt accounts completely programmatically, and soon make new accounts too. Plus, it logs a simple javascript script to run in the console of slack.com that will log you in.

Note about the video: I can enable headless mode if I want, this is just for showing how it works internally. Also I censored my tokens at the end so you can’t get into my Slack alt!

(nora please increase your rate limits :P /hj
it tried to sign in too fast and got rate limited lol)

0
jmw

Added DELETE method for API routes so that programs using this can delete emails such as OTPs after reading them to save space, also now the api returns an array of all emails that match instead of the most recent one if “/email” is replaced with “/emails”

Attachment
0
jmw

I set up a Postgres database and now new emails are added to it with only a tiny bit of logging, plus I’ve started on an API to get the most recent email with a certain ID, subject, or “to” address.

The screenshot is of me going to the API and seeing a test email I sent at sendtestmail.com

Attachment
3

Comments

jmw
jmw 2 months ago

idk why there’s two identical pictures i only added it once lol

Tree Plate
Tree Plate 2 months ago

i think that’s just a bug that happens sometimes for some reason

jmw
jmw 2 months ago

weird

jmw

Header parsing and refactoring so now it’s easier to read output programatically

Attachment
0
jmw

YES IT CAN FINALLY LOG EMMMAIILLSSSSSSSZSSSS!!!! THIS TOOK SO LONG ok so yeah it logs emails to the console and it’s super messy looking but it WORKS!!! I send an email to it and now it tells me the contents so I can sign up for stuff with this if i want

oh yeah side note i fixed spelling of receive from recieve oops

Attachment
0
jmw

I can send an email now and it receives and logs it! Finally! Turns out I needed to include “\r\n” instead of “\n” to end my lines for some reason, so that works better now. Will try with real emails soon.

Credit for the testing program I’m using: https://jetmore.org/john/code/swaks/

Attachment
0
jmw

Wow SMTP servers are weird

OK so I made a TCP server with Deno on port 25 (SMTP) that listens for connections then sends a message back basically saying hello to the client, and it logs packets received to the console. This took way too long. Seems like the online checkers do not work correctly or maybe I’m missing a gigantic thing but I found a program to test it so yeah hope that works.

Note about screenshot: This is an external testing program I found on the internet that I’m hoping didn’t give me a virus, you can see at the top that it connects and receives “220” and more from my server. This is the part that was so harddddddd

Attachment
Attachment
1

Comments

jmw
jmw 2 months ago

For some reason my 3 screenshot attempts (which i thought i removed) appeared anyway but they’re all the same anyway so yeah