The best Hacker News stories from Show from the past day
Latest posts:
Show HN: My platforming game written in C 89
I have been working on this game somewhat sparsely for the past three years or so. However, it is still in a very early stage, and there is a lot of work to do.<p>One of my friends encouraged me to post about it here, since he felt people might find interesting how I don’t use any libraries for it.<p>The game can be played on a browser by virtue of WebAssembly. There are native ports using either MiniFB or SDL2, but you have to build those yourself.<p>I decided to write the game in C because I feel like it is a simple language that a lot of people can understand well enough, and I didn’t think I needed anything more involved or complicated.<p>Over time, the game’s code became complicated, and I decided to use advanced features such as coroutines and higher order procedures, besides general overly engineered abstractions.<p>But then, over time I grew to feel like a lot of those abstractions didn’t really add anything to it, and just made it more complicated (and oftentimes more buggy) than it really needed to be, so a few weeks ago, I made a significant refactoring to it to remove all of those abstractions without removing almost any features from the game.<p>Milestones are released effectively whenever I get the game’s code to a decently presentable state. Sometimes, this means there are a lot of changes and big refactorings, but sometimes it means there are only a few small changes.<p>The game uses a simple 2D model system to generate images for the character’s animations dynamically during initialisation. (The source code can be browsed using a web browser on its page.)<p>The character can be controlled using the arrow keys or “WASD” (“A” and “D”) (double-tap a direction to jump).
Show HN: My platforming game written in C 89
I have been working on this game somewhat sparsely for the past three years or so. However, it is still in a very early stage, and there is a lot of work to do.<p>One of my friends encouraged me to post about it here, since he felt people might find interesting how I don’t use any libraries for it.<p>The game can be played on a browser by virtue of WebAssembly. There are native ports using either MiniFB or SDL2, but you have to build those yourself.<p>I decided to write the game in C because I feel like it is a simple language that a lot of people can understand well enough, and I didn’t think I needed anything more involved or complicated.<p>Over time, the game’s code became complicated, and I decided to use advanced features such as coroutines and higher order procedures, besides general overly engineered abstractions.<p>But then, over time I grew to feel like a lot of those abstractions didn’t really add anything to it, and just made it more complicated (and oftentimes more buggy) than it really needed to be, so a few weeks ago, I made a significant refactoring to it to remove all of those abstractions without removing almost any features from the game.<p>Milestones are released effectively whenever I get the game’s code to a decently presentable state. Sometimes, this means there are a lot of changes and big refactorings, but sometimes it means there are only a few small changes.<p>The game uses a simple 2D model system to generate images for the character’s animations dynamically during initialisation. (The source code can be browsed using a web browser on its page.)<p>The character can be controlled using the arrow keys or “WASD” (“A” and “D”) (double-tap a direction to jump).
Show HN: Mystery-o-matic – A daily murder mystery to solve
Show HN: Mystery-o-matic – A daily murder mystery to solve
Show HN: Mystery-o-matic – A daily murder mystery to solve
Show HN: Day by Day – every day of my life
Show HN: Day by Day – every day of my life
Show HN: Day by Day – every day of my life
Show HN: Blogs.hn – tiny blog directory
Like others on here, I was inspired by the "personal blogs" post :)<p>[0] <a href="https://news.ycombinator.com/item?id=36575081">https://news.ycombinator.com/item?id=36575081</a><p>In proper HN fashion, the site is open-source and requires no JS!<p>There's instructions on how to add/edit a blog on the Github README.<p>[1] <a href="https://github.com/surprisetalk/blogs.hn">https://github.com/surprisetalk/blogs.hn</a><p>Note that your blog might appear in blogs.json, but not on the site! Right now I'm using the following code to filter out blogs. Your blog might appear if you add more metadata:<p><pre><code> if (
3 > 0
+ !!blog.title
+ (blog.desc.length > 40)
+ !!blog.about
+ !!blog.now
+ !!blog.feed
+ 3 * (blog.hn.length > 1)
)
continue;
</code></pre>
As I mention on the /about page, if you don't already have a blog, I recently made a minimal static site generator! It's easier than ever to begin your writing journey :)<p>[2] <a href="https://github.com/surprisetalk/worstpress">https://github.com/surprisetalk/worstpress</a>
Show HN: Blogs.hn – tiny blog directory
Like others on here, I was inspired by the "personal blogs" post :)<p>[0] <a href="https://news.ycombinator.com/item?id=36575081">https://news.ycombinator.com/item?id=36575081</a><p>In proper HN fashion, the site is open-source and requires no JS!<p>There's instructions on how to add/edit a blog on the Github README.<p>[1] <a href="https://github.com/surprisetalk/blogs.hn">https://github.com/surprisetalk/blogs.hn</a><p>Note that your blog might appear in blogs.json, but not on the site! Right now I'm using the following code to filter out blogs. Your blog might appear if you add more metadata:<p><pre><code> if (
3 > 0
+ !!blog.title
+ (blog.desc.length > 40)
+ !!blog.about
+ !!blog.now
+ !!blog.feed
+ 3 * (blog.hn.length > 1)
)
continue;
</code></pre>
As I mention on the /about page, if you don't already have a blog, I recently made a minimal static site generator! It's easier than ever to begin your writing journey :)<p>[2] <a href="https://github.com/surprisetalk/worstpress">https://github.com/surprisetalk/worstpress</a>
Show HN: Blogs.hn – tiny blog directory
Like others on here, I was inspired by the "personal blogs" post :)<p>[0] <a href="https://news.ycombinator.com/item?id=36575081">https://news.ycombinator.com/item?id=36575081</a><p>In proper HN fashion, the site is open-source and requires no JS!<p>There's instructions on how to add/edit a blog on the Github README.<p>[1] <a href="https://github.com/surprisetalk/blogs.hn">https://github.com/surprisetalk/blogs.hn</a><p>Note that your blog might appear in blogs.json, but not on the site! Right now I'm using the following code to filter out blogs. Your blog might appear if you add more metadata:<p><pre><code> if (
3 > 0
+ !!blog.title
+ (blog.desc.length > 40)
+ !!blog.about
+ !!blog.now
+ !!blog.feed
+ 3 * (blog.hn.length > 1)
)
continue;
</code></pre>
As I mention on the /about page, if you don't already have a blog, I recently made a minimal static site generator! It's easier than ever to begin your writing journey :)<p>[2] <a href="https://github.com/surprisetalk/worstpress">https://github.com/surprisetalk/worstpress</a>
Show HN: OPML list of Hacker News Users Personal Blogs
Show HN: OPML list of Hacker News Users Personal Blogs
Show HN: Software Developer salaries in Switzerland: average and percentiles
Show HN: Pytheus – Python Prometheus client built with multiprocessing in mind
Sharing this side project of mine, if you had issues while using multiprocess in python when collecting metrics this might interest you :)<p>The library offers the same interface between single process & multi process, the only difference is doing a function call specifying which backend to use and everything will work out of the box.
It supports default labels & partial labels so that you can build your child instances incrementally.
It strives to be flexible & well documented.<p>There is also an experimental backend for it written in Rust as a way to support asyncio applications, more in the docs!
Show HN: b2bsaaskit.com
Show HN: Ngnr.club – A link-in-bio service for engineers
Show HN: Banger.show – Create colorful visuals for your songs in seconds
I made an app for music producers to tease their music in a fancy way. Something that looks better than this: <a href="https://twitter.com/eprombeats/status/1647072160547246081" rel="nofollow noreferrer">https://twitter.com/eprombeats/status/1647072160547246081</a>
Show HN: Banger.show – Create colorful visuals for your songs in seconds
I made an app for music producers to tease their music in a fancy way. Something that looks better than this: <a href="https://twitter.com/eprombeats/status/1647072160547246081" rel="nofollow noreferrer">https://twitter.com/eprombeats/status/1647072160547246081</a>
Show HN: LineSelect, shell utility to interactively select lines in a pipeline
Allows you to "pause" a shell pipeline to interactively select a subset of lines to proceed with. I've always wanted a tool like this, as it effectively combines the best of shell pipes (easy to automate) and visual file managers (easy to make selections). Now that I have it I can't believe a tool like this is not already part of the standard set of shell utilities. There are so many situations where it is useful.<p>Tested on Linux but should also work on MacOS.<p>Also: please help me come up with a better name!