HNHacker News
TopNewBestAskShowJobs

snake_case

1,274 karma · joined December 22, 2014

https://github.com/jacobdeichert
submissionscomments
snake_case··on Show HN: A Markdown-based alternative to package.json scripts and makefiles
It’s great to see more tools taking advantage of the markdown syntax.

I’m the creator of Mask[0], a very similar tool built with Rust. I was originally inspired by Maid[1], which is an older take on this idea built with Node and no longer maintained I believe.

I see this is based on Node as well, and I appreciate that it currently has zero dependencies. Nice work!

[0]: https://github.com/jacobdeichert/mask

[1]: https://github.com/egoist/maid

snake_case··on Show HN: Xc – A Markdown Defined Task Runner
Mask can't directly solve this problem by itself, it just runs whatever script you give it. If you can write a python/js/bash/etc script to achieve what you want, you can stick it inside a maskfile with the rest of your commands.

Regarding docker, I haven't tried it on M1 yet. However, I've been using Ubuntu multipass [1] for over a year now and I'm very happy with it. It makes it easy to set up and manage VMs for different projects, and it seems to run very efficiently on macOS in my experience. When a project needs a docker container like postgres, I just run docker compose inside the VM rather than running it directly in macOS. You can also limit the amount of CPU/RAM the VM uses to keep things under control.

[1]: https://github.com/canonical/multipass

snake_case··on Show HN: Xc – A Markdown Defined Task Runner
And another possibly lighter alternative is something like concurrently: https://github.com/open-cli-tools/concurrently
snake_case··on Show HN: Xc – A Markdown Defined Task Runner
Before mask, I used a custom bash command runner which relied on a directory structure to implement the command and subcommand tree. This was pretty simple and nice to use. So if it’s working for you, there’s no reason to look for alternatives.

Mask takes advantage of the markdown structure in a few ways. Headings define top-level commands and subheadings represent nested subcommands, which makes it extremely easy to structure a command tree. Also, mask checks the code block lang code (ruby, python, js, fish, etc…) and executes the script using that runtime as long as you have it installed. There’s other features, but those two are great examples why markdown works well as a command definition format.

snake_case··on Show HN: Xc – A Markdown Defined Task Runner
Nice to see other markdown-based task runners!

I'm the creator of mask which is another alternative, written in Rust. Our approaches slightly differ. It looks like xc parses the README.md file for commands while mask looks for a maskfile.md by default, though you can provide a --maskfile arg to specify any markdown file that follows the expected format.

https://github.com/jacobdeichert/mask

snake_case··on User friendly web games
Great feedback, others have mentioned this as well! I’ll try to add this as an option soon.
snake_case··on User friendly web games
Good question and sorry for the confusion! I originally launched with an optional paid tier which I have since removed. Currently there is no business model. I happily run this at a loss as my costs are very low.
snake_case··on User friendly web games
Nice collection, thanks for putting this together!

I was thinking of submitting my jigsaw site Puzzle Panda [1] if it fits the requirements. Registration is not necessary and there’s no ads.

[1]: https://puzzlepanda.com

snake_case··on Show HN: I built a jigsaw puzzle website
All great points, thanks for the feedback! :)

The smudge tool radius idea was especially interesting and something I’ll need to think about further. Very curious how it would affect the UX for beginners vs power users. Could be a great improvement for touchscreen devices as well.

snake_case··on Show HN: I built a jigsaw puzzle website
Ha, yikes! I’ll have to try reproducing that, since that sounds like a bug that could happen even under normal circumstances.
snake_case··on Show HN: I built a jigsaw puzzle website
Thank you! I’m aiming to provide a more polished and user-friendly experience than the alternatives out there, and I have many plans to differentiate ever further. Glad you had a good time playing.
snake_case··on Show HN: I built a jigsaw puzzle website
Thanks, glad you enjoyed it! As another reply mentioned, single click/tap on a piece auto rotates it to the correct orientation.

Many have pointed out the auto rotation is either too easy or annoying, so I am considering alternatives. I originally started with single click to rotate 90deg but was told by early users it was too hard. Reconsidering ways to introduce this that is friendly to all users.

snake_case··on Show HN: I built a jigsaw puzzle website
I’ve heard someone do exactly that before too! Always fun finding ways to break the rules :)

Others in here are suggesting snap on drop instead of auto snapping, which I’m strongly considering now.

snake_case··on Show HN: I built a jigsaw puzzle website
Yeah, good point regarding snapping on drop which would allow making the drop zone a little larger.

Drag selecting multiple pieces is interesting. If I add that, I think I would need a modifier key like shift or cmd/ctrl to differentiate between this and a background drag.

snake_case··on Show HN: I built a jigsaw puzzle website
Thanks for the feedback! Looking forward to adding leaderboards.. still brainstorming the best way to introduce them.
snake_case··on Show HN: I built a jigsaw puzzle website
Thanks for the report! Firefox was the browser I used during development and also needed the most work regarding performance. The image quality is heavily tied to rendering performance, so I’ll need to consider ways to improve this further.
snake_case··on Show HN: I built a jigsaw puzzle website
Good suggestions! I’m not sure why I hadn’t thought of that, but snapping on drop does sound like a better experience.
snake_case··on Show HN: I built a jigsaw puzzle website
There shouldn’t be any missing pieces and the puzzle engine has been tested thoroughly, so this is surprising to hear. Unfortunately I can’t investigate since demo puzzles are not persisted. Sorry about this! My theory is that it got lost far off screen and I need to prevent that from happening.
snake_case··on Show HN: I built a jigsaw puzzle website
Glad you enjoyed it. Orienting the pieces up front does annoy others as well, so I'm considering options to make this a bit more friendly.

Good point regarding the picture being obscured at the end. I think this especially affects mobile.

snake_case··on Show HN: I built a jigsaw puzzle website
Interesting, that's very odd. My ad blocker also blocks sentry, yet I can still drag pieces fine.

I'll need to test Brave to see if I can reproduce. Thanks for the details.

snake_case··on Show HN: I built a jigsaw puzzle website
Sorry to hear that! I have an up-to-date iPad Air 2 and I've tested playing in Safari quite a bit. The touch accuracy is a little annoying and dragging the background unintentionally occasionally happens. I think I can improve this by increasing the touch area around pieces to be a bit more forgiving. Thank you for reporting.
snake_case··on Show HN: I built a jigsaw puzzle website
Great point! This has been something I've been meaning to do and forgot about. Thanks for the reminder.
snake_case··on Show HN: I built a jigsaw puzzle website
Thanks! Yeah, it's been hard to decide what to do about mobile. The experience is not great with the high piece counts. I might consider offering puzzles with smaller piece counts if they are started on a mobile device, vs desktop. But this may affect my plans for adding (optional) leaderboards and making things a little more competitive.
snake_case··on Show HN: I built a jigsaw puzzle website
Good points! With my websocket test I'm currently experimenting with syncing micro actions rather than syncing the full puzzle state every time a user makes a move. For lag compensation I'm likely just going to lerp the mouse/piece position movements to make them appear smooth, but I'll see how well that works out.
snake_case··on Show HN: I built a jigsaw puzzle website
Yeah, I think I need to tweak the snap distance a bit further. Sometimes pieces snap together unintentionally while dragging across the canvas, which surprises users.

Would you be able to clarify the second point? You can drag groups of pieces to connect to other groups. But I have a feeling you're talking about something slightly different.

snake_case··on Show HN: I built a jigsaw puzzle website
Thanks! Glad to hear it worked well. I really need to add pinch to zoom to improve the experience on all touchscreen devices.
snake_case··on Show HN: I built a jigsaw puzzle website
Thanks for the report, that is very odd. It sounds like the mouse position might be offset. I haven't ran into this yet when testing Chrome on Windows 10, but I'll take another look. Sorry about that!
snake_case··on Show HN: I built a jigsaw puzzle website
You would be surprised then :)

Looking forward to adding multiplayer soon! I actually added websocket support last week and I'm currently running a test in the background to see how many I can handle concurrently.

Other than that, I have many ideas to make the paid plan more valuable too!

snake_case··on Show HN: I built a jigsaw puzzle website
Yeah, this is something I'm considering still. I've heard from a few users that they don't like the pieces being rotated at all, and some would rather have click-to-rotate to make it more difficult.

I might have to make this an option, but waiting to hear from more users on this before deciding.

snake_case··on Show HN: I built a jigsaw puzzle website
Hi HN!

I built this website last year for family members who enjoy playing jigsaw puzzles on their computers. I decided to build it because I frequently heard complaints about how slow some of the more popular jigsaw apps are and how they are filled with annoying advertisements.

The site is completely free to use. No advertisements and no selling of user data. However, I do offer a paid tier for users that want more jigsaw puzzles and difficulty options.

On the technical side, I'm using Svelte on the frontend with a tiny bit of wasm, and Rust for a few backend APIs. I hope the site feels snappy, it's one of the main reasons why I decided to build it.

There's a demo puzzle linked on the home page for anyone who doesn't want to sign up! I'd recommend trying it on a computer or tablet as mobile is still a little rough around the edges.

Happy to answer any questions about it!

Page 1 of 4Next →