1. 34

I had this idea for a joke involving a bingo card with all the things we, as technical people, have the urge to write our own special flavor of — either out of dissatisfaction, or mere curiosity. I was curious to do some research beforehand to see what darlings Lobsters have, projects either realized or yet to be. The rules to the game: 1. it has to be something that’s been low-key bugging you for a longish while 2. there have to be (for most purposes / pragmatically) viable alternatives already.

My picks, off the top (or rather, back) of my head:

  1. To-do app (yes, the ultimate cliché)
  2. RSS Reader;
  3. CMS / Static Site Generator;
  4. Image processing app;
  5. WYSIWYG editor for the web.
  1.  

  2. 39
    1. A new build system
    1. 1

      I keep thinking about generalizing the Myrddin build system (https://myrlang.org/mbld, example at https://git.eigenstate.org/ori/mc.git/tree/mbld/bld.sub).

      I want to make it work with C and C++. I find it pleasant to use, and I want to use it in more places.

      It avoids the overconfigurability of most other build build systems.

      1. 1

        Isn’t it’s simplicity inherent to the fact that it only supports one language?

        1. 1

          I don’t think so. As long as the target types stay the same, I think it’s possible to add more languages without exploding in complexity.

      2. 1

        Ha! been there

        Agreed that this is a great example!

        1. 1

          Congrats on shipping :)

          My Rake rewrite never made is past the finish line, it’s rusting somewhere on my disk.

          1. 1

            Thanks! Paver was a simple tool in a simpler time :)

            It’s been maintained by others for the past 10 years or so.

      3. 17

        Database schema migration management system 🙃

        1. 2

          Hm, I actually built one at my current employer’s, and am quite happy with the result… umm, but then, I suppose, this one is thus the very definition of IH - and I should probably not be so sure my collegues are 100% happy with it, and wouldn’t want to reinvent it… uh, oh :/

        2. 17

          A new programming language.

          Disclaimer: I’m inventing my own one because I feel ashamed by the ones I drafted when I was 17 and 22.

          1. 9

            I want to write my own text-manipulation tools, like grep/sed/awk/vi but from a parallel universe where CFG parsers were the standard thing, rather than regular expressions.

            I want to write a terminal system something like Plan9 terminals (where there’s a fairly smooth progression from raw text output to interactive graphics) but for Unix, which means it needs to be built on FIFOs and Unix domain sockets rather than assuming cheap userspace filesystems.

            1. 8

              A PL with the aesthetics of Lisp, but without the parenthesis.

              The tribe of the parenthesis is loud, however, so I end up n-th-guessing myself.

              1. 4

                Just do a left handed forth. Fixed arity for all functions and no overloading with a left to right operator precedence means that you can obviate literally all parentheses.

                1. 1

                  That’s exactly what Logo does.

                2. 2

                  Oh yeah, I want this too. The problem is figuring out a syntax that doesn’t suck.

                  1. 1

                    Have you looked at Rebol?

                  2. 8

                    Single-file version control. I do have something I called fh, but it’s mostly a joke given its design constraints (and performance characteristics as a result of them). The only drive I have is personal issues with licensing on the existing solutions SCCS (CDDL) and RCS (GPL or OpenBSD’s that has some 4-clause BSD files); SRC is just a wrapper around the aforementioned ones. The part that scares me the most is definitely the diffing. I kind of do want to use interleaved deltas on the backend, but I’ve failed multiple times to even retrieve data from an SCCS weave, much less insert a diff.

                    Liberally licensed elliptic curve cryptography over a binary field (e.g. NIST B-163). I just kind of feel like I should know this and occasionally I do run into one of those obscure binary field curves. However, I wholly lack the mathematics for it and never felt like actually sitting down for a week to learn discrete math and elliptic curves and whatnot. Library support is actually lacking (does anything other than OpenSSL even support these curves?) but OpenSSL is kind of the be-all-end-all of cryptography libraries to begin with.

                    Self-hosted, open source base for DRM. Keygen and Qeys have some very attractive solutions for DRM that are simple to integrate. But I kind of sort of want my own and have it be open source so that people with a lot of paranoia won’t have to rely on third parties. The irony of open source DRM is not lost on me, no.

                    Yet another typesetting system. TeX has great output and is painful to actually work with if you want to customize it; LaTeX exists for a reason after all. Troff has mediocre output (let’s not get into the nitty-gritty tradeoff that is choosing between groff and heirloom-troff here) and is somewhere between amenable and hell to actually work with. Why not both?

                    1. 2

                      Yet another typesetting system. TeX has great output and is painful to actually work with if you want to customize it; LaTeX exists for a reason after all. Troff has mediocre output (let’s not get into the nitty-gritty tradeoff that is choosing between groff and heirloom-troff here) and is somewhere between amenable and hell to actually work with. Why not both?

                      (La)TeX is lovely and Knuth is brilliant, but his lack of PLT expertise shows. I’m exceedingly eager to see what would happen if a PL expert tackled typesetting languages. (Unfortunately, the story of Tex is itself a cautionary tale for any PLT PhD students thinking they’d might like to tackle the problem and finish their dissertation within a decade.)

                      1. 4

                        TeX is the way it is not because Knuth couldn’t do a better language, but because it was built at a time computer’s couldn’t fit an AST in memory. The TeX compiler has to generate the output with few sequential passes through the code.

                        1. 2

                          A lot of people also confuse latex (Lamport) with Tex (Knuth)

                          Knuth was not interested in creating a markup system but to produce a professional typesetting tool for the expert user that pushed the boundaries of what had been done before.

                          It’s unfair to say he didn’t care about abstractions, rather I think he chose the abstractions that served his goals and did not abstract where they were unhelpful or introduced performance penalties.

                          Like people complain about having to rerun latex to page numbering right in the table of contents. Iirc knuths text document just generate the TOC at the end and he can then reorder pages in a production step.

                          One counterexample to the “no abstractions” argument would be metafont.

                        2. 2

                          What is “PLT” and how does it apply here? I think the issue with TeX doesn’t have to do with “theory” – it has more to do with design, i.e. the “soft” parts of programming languages.

                          It doesn’t really make sense to say Knuth lacks “PLT” expertise. First, he invented a lot of the theory we use in practice, like LR parsing.

                          As another example, he also showed up in the LLVM source code for a minimum spanning tree algorithm:

                          https://www.reddit.com/r/ProgrammingLanguages/comments/b22tw6/papers_and_algorithms_in_llvms_source_code/

                          And: this might be a nitpick, but I’ve heard at least one programming language researcher say that “PLT” doesn’t mean anything outside of PLT Scheme. It seems to be an “Internet” word.

                          So bottom line, I don’t disagree that TeX could be improved upon after several decades, but your analysis doesn’t get to the core of it. People who study theory don’t write the programming languages we use. Probably Haskell is the counterexample, but Haskell is also known for bad tooling like package management. On the other hand, Go is known for good, usable tools but not being “exciting” in terms of theory.

                          I don’t think you need a Ph.D. anymore to write TeX. When Knuth wrote it, that may have been true, but the knowledge has been disseminated since then.

                          1. 6

                            PLT is the initialism for Programming Language Theory. PLT Scheme got its name because it came out of the Rice PLT research group. PLT is simply the field of exploring the abstractions we use to program (and creating the theoretical tools to reason about those abstractions). While we very rarely directly use systems created by researchers (Haskell being a notable exception), the abstractions they develop absolutely shape the development of the programming languages we do use.

                            I’m not arguing that you need a Ph.D. to write TeX. I’m claiming that the task of developing the right abstractions for a typesetting programming language have largely been ignored by the group of people who study abstractions and programming languages (PLT researchers!).


                            Addenda: There’s a very distinct flair common to Knuth’s programming projects. His language design is primary influenced by the details of the machine which they program and the algorithmics of executing them. For instance, the reason TeX documents may require multiple rounds of computation before they’re “done” is because Knuth baked the requirement that a TeX compiler be single-pass into TeX’s execution model. Conversely, Knuth wasn’t at all concerned about statically reasoning about TeX programs, as evidence by the fact that merely parsing TeX is itself turing complete. (And TeX’s development happened during a really exciting period for PLT research: right around the discovery of Hindley-Milner type inference and hygienic macros!)

                            1. 6

                              Words aside, it’s silly to say that Knuth lacks expertise in “PLT”, since his work was foundational to the field.

                              Secondly, I don’t buy the claim that lack of abstractions are what’s wrong with TeX – at least without some examples / justification. Like anything that’s 30 years old, I think you could simply take the knowledge we have today and make a nicer version (assuming you have 5-10 years free :-/ ).

                              TeX is constrained by compatibility and a large user base, which I imagine explains most of its warts – much like Unix shell, and Unix in general. And there’s also the problem that it’s a huge amount of work that you won’t likely won’t get paid for.

                            2. 0

                              LR parsing is completely irrelevant to what PLT research is about.

                            3. 2

                              You should have a look at scribble.

                              1. 1

                                Also SILE, which takes the good parts of TeX, rips them out with no remorse, and glues together using Lua for ease of hacking. One important con is it doesn’t have math typesetting yet… which is, fittingly to the theme of the thread, why I tried to add the support ;)

                            4. 2

                              I’ve always thought of open sourcing Keygen. But I’m trying to grow it into a viable business, and I don’t think that would be wise at the moment. However, I do think open source tooling for things like this are incredibly valuable. (Disclosure: I’m the founder of Keygen.)

                              1. 3

                                But I’m trying to grow it into a viable business, and I don’t think that would be wise at the moment.

                                I can’t help but be curious about the magic sauce (and run my own—despite not even selling any software), but oh well. Maybe someday.

                                Open sourcing seems unwise to me, too. Small-scale deployments would just grab the open source edition and run with it. Plus I don’t think it’s entirely unrealistic to expect the big cloud providers to take it and make it theirs.

                                (Possibly there’s a market for obfuscation that you could also work with, but requires very high expertise in very low level development on multiple platforms; Denuvo had decent success there until they didn’t.)

                                While I have your attention, maybe you’ll find these points interesting which I would be doing differently:

                                • Likely a simple pure binary protocol (possibly with a much more lightweight cryptographical protocol than TLS) for the endpoints that clients require. That might be easier to handle in C/embedded platforms.
                                • Possibly drop the notion of a “user” and leave that to the API consumers’ discretion entirely. People need to stop rolling more authentication schemes out.
                                • Built-in license key checksum. I know your license schemes allow for extension with cryptography, but a minor amount of typo correction before making a possibly expensive network request could be helpful, depending on how things are set up.
                                • Elliptic curves (Ed25519 or P-521, specifically) as alternatives or possibly only signing option. Outright drop any padding scheme for RSA that isn’t PSS.
                                • Always sign and encrypt everything on top of TLS so that TLS isn’t your only line of defense against a cracker.
                                • Possibly considering encrypted certificates (X.509 or something of your own) as bundled information about a license. This could save some database lookups based on license ID, allow a “stateless” CDN for delivery—it only has to verify the certificate’s signature and its expiry time. They could also optionally embed (wrapped) encryption keys to wrap contents in, alleviating the catch-22 mentioned in the dist documentation: You could have regular licenses for a stub application that is used to make a request for a certificate and download the real application with the encryption key contained therein.
                                • SHA256 or higher for any sort of file checksum.
                                • Expose a “simple” API that skips the notion of policy, which is instead managed on the backend server. This can be useful for very small deployments.
                                • Flexible elevated access tokens (deleting a product is such a dissimilarly dangerous operation in comparison to creating one or even just issuing new licneses).
                                1. 2

                                  Thanks for the great feedback! I’m actually working on a lot of those, especially introducing ECC into the stack and calculating better file checksums (I’m essentially proxying S3 at the moment, which uses MD5 checksums, much to my dismay). And FWIW, user management is an optional feature of the API, so if it’s not needed, one can simply create user-less licenses and be done with it. Better access token privileges has also been on my list since day 1 — just haven’t gotten around to that one yet. But hopefully soon.

                            5. 7

                              You could also put: “Journaling software” and “Outliner” for me. There are solutions for both out there, but I’ve been pretty compelled to do my own.

                              Also, I don’t think any list of reinvented wheels would be complete with a 4-function calculator or a Forth

                              1. 3

                                I’ve written several 4-function calculators. The first one was in assembly language, because my partner and I were bored students, and it was more interesting than what we were getting as assignments. The most recent one I continuously evolved into the REPL for a full programming language. So I got “calculator” and “programming language” out of the same project (for extra bingo points).

                              2. 6
                                • MUD server
                                • single-binary git repository server
                                • IRC bouncer with a decent web / mobile client

                                I’ve probably started all three of those (the latter two most often) at least a dozen times each, getting to various stages of completion before I decide to do something different. One day I’ll have something that’s usable…

                                1. 2

                                  MUD server

                                  I was about to say I think you may have just shown you age, and then I realized how incredibly presumptuous that was :) But it does seem like the idea of a MUD per se has gone the way of the dodo - now all the younger folks want to rewrite World of Warcraft :)

                                  1. 4

                                    Not as much as you’d think. Particularly among the indie game development community, people get into text-based games with interactive fiction (twine, inform) and then try out MUDs and MUSHs.

                                    1. 1

                                      Really? That is so cool! I thought the whole MUD idea was dead dead dead. I’m a dino from wayback :)

                                      Where are these folks publishing their work?

                                    2. 2

                                      Maybe; the interesting thing is that while I don’t play any MUDs anymore, I’m still fairly active in the community for one of them. The MUD server idea is probably my least fleshed out hobby project.

                                      For me, it’s not really even about making one that’s useful but more about using it as a testing ground for different ideas. Procedural generation, proxy implementations, CQRS, event sourcing, entity component systems, natural language parsing. There’s a lot of opportunities to apply interesting tech.

                                      1. 1

                                        I’ve always found that to be true myself. I suppose what’s changed is that there used to be a huge mud USER community, and now they’re a springboard for creativity for developers.

                                    3. 1

                                      I desire an IRC bouncer with a good mobile client very much.

                                      1. 2

                                        Indeed. What I’ve floated around with lately is an IRC bouncer written in Go. Plugins via webassembly so they can be added/removed without recompiling. A decent web UI to configure it (maybe), plus a built-in web client and then mobile clients.

                                        1. 1

                                          That sounds pretty neat. You should be able to do it all in Go using the built-in plugin system if you want to stick with one language and can run on Linux or macOS.

                                          1. 1

                                            My understanding is that the Go plugin implementation leaves a lot to be desired, but I can’t seem to find the articles I read about it in the first place. Granted, that was from awhile ago when the support was first launched.

                                            Based on a cursory glance it doesn’t seem like pkg/plugin is very widely used.

                                          2. 1

                                            Plugins via webassembly so they can be added/removed without recompiling

                                            Which Go package would you have in mind to presumably interpret/run the wasm blobs, or would you write one for that project, or depend on some external interpreter/runner?

                                            1. 2

                                              This one seems pretty well-done, but I haven’t actually played around with it yet: https://github.com/perlin-network/life

                                              Another option may be to use the plugin framework built by hashicorp which uses protobufs rpc I believe, but I haven’t looked into it much.

                                          3. 2

                                            I’ve started using matrix.org/riot.im and irc bridges.

                                        2. 6

                                          Package Manager 🙈

                                          1. 1

                                            The JavaScript community saw npm, bower and now yarn, but there’s probably way more than that !

                                          2. 6
                                            • command-line arg parsing, subcommands: existing solutions for my language suck/are verbose/aren’t type-safe enough/are not performant/are too magical/don’t have enough magic/lack tab completion/aren’t testable
                                            • The One True IDL To Rule Them All But This Time It’s Lightweight And Fits My Typesystem
                                            • Tests and Docs As One: Doctest/RSpec/BDD/Ginkgo suck, what we really need is a much simpler solution that only does/has X, Y, Z/verifies my README.md examples
                                            1. 5

                                              Monitoring system / application metric analysis. The existing ones all have big shortcomings.

                                              1. 5

                                                In no particular order:

                                                • A spam-resistant replacement for nntp
                                                • A simple modern style file system
                                                • A static site generator
                                                • More day to day tools for 9front
                                                • A proof of concept IRC extension for server side scrollback
                                                • A simple graphical text editor with client/server mode and structural regular expressions
                                                1. 1

                                                  A spam-resistant replacement for nntp

                                                  Built on top of ActivityPub, please? :)

                                                  1. 2

                                                    Oh, that’s a good one! I must admit it has crossed my mind a few times, but indeed it sounds like one person could not pull that off. (OR CAN THEY!)

                                                    I am, however, very excited about recent projects implementing parts of that engine, e.g. recently a flexbox library written in Rust and available cross-platform.

                                                    1. 1

                                                      Or a browser-like engine focused on apps

                                                    2. 4

                                                      Over a lifetime of programming, I’ve created my own terminal emulator, build system, revision control system, configuration language, several text markup languages, and multiple programming languages. I started writing my own text editor in assembly language when I was a kid, but I kind of got overwhelmed by the complexity, and didn’t finish it.

                                                      My current programming language is going to be extended to support image processing, so I hope to check “image processing app” off the list later this year. I’ve never written a proper To-do app (except for that one horrible CGI script); that’s something I’d like to try eventually.

                                                      I think everybody should design and implement a programming language. Your language will almost certainly suck, but it is a great learning experience.

                                                      1. 4

                                                        Bare metal network install automation.

                                                        Configuring the process manually with pxelinux and preseed/kickstart files is a huge pain. OTOH, wrappers around this process like cobbler seem to get overly complicated really quickly, especially when they branch out and try to do inventory management or cloud automation at the same time.

                                                        I’ve written or tweaked custom wrappers for specific projects, tried a bunch of existing solutions, and still not found a tool that hits the right level of abstraction and flexibility for me. It might not really exist. Oh well.

                                                        1. 4

                                                          The HTTP system and the Browser.

                                                          1. 2

                                                            There’s Gopher and lynx though.

                                                            1. 2

                                                              yeah I want to get down with Gopher a lot more in the fall.

                                                          2. 4
                                                            • Logging framework (it’ll be better this time, I’ll show you)
                                                            • ETL tools (there’s a lot of options, but none that are great, so I’ll make one more that’s worse than all current ones)
                                                            • Type system for Python (because…obviously)
                                                            1. 2

                                                              I find myself wanting to refactor airflow into a minimal version for orchestrating docker container jobs

                                                            2. 4
                                                              1. Podcast application, geared towards episodic content (eg. subscribing has an optional on-boarding asking basically “where would you like to start”, and defaults to oldest-to-newest ordering, etc.)
                                                              2. Org-mode replacement (at least the parts I use), but with an actual grammar, designed for syncing and privacy. Ideally, it’ll support multiple clients, a web app and a mobile app, and integrates with whatever services for alarms, notifications, etc.
                                                              1. 3

                                                                I have a couple that I never complete/keep rewriting:

                                                                • a DHCP 4/6 server, with plugins for notification and a useful RESTful API for administration.
                                                                • improvements/enhancements to the RC shell. Even though I use bash and zsh as my dailies.
                                                                • an RSS reader. Even though I should just contribute to newsboat.
                                                                • a minimal xlib-based window manager. There aren’t enough unmaintained wm’s around.
                                                                • a couple of games that I played years ago (I keep bringing them as far as tty and then stop when the GUI programming gets hard/steep).
                                                                1. 3

                                                                  These two top my list because although there are a lot of options, I haven’t yet found anything that does exactly what I want in either category:

                                                                  • Household expense tracker that has the reporting I want and the simplicity my wife wants
                                                                  • Photo archive with very flexible organization options and a ridiculous amount of metadata attached to individual photos. I recently discovered Amazon Photo and that’s pretty close but then all of my photos belong to Amazon.

                                                                  I’ll get around to them soon. No, really. This time for sure.

                                                                  1. 3
                                                                    1. Usenet but P2P and sneakernet / airgapped-wifi compatible.

                                                                    2. Airdrop (but Win/Mac/Lin compatible)

                                                                    3. Podcast app for iOS. I use Apple’s right now but it’s just not good enough if you listen to 500 ep+ history podcasts that are best listened to linearly from the start of the show.

                                                                    My SSG needs have been satisfied by Zola. I use it for bitemyapp.com. I use Wunderlist for to-do.

                                                                    1. 4
                                                                      1. Usenet but P2P and sneakernet / airgapped-wifi compatible.

                                                                      You should checkout https://www.scuttlebutt.nz/, it’s pretty interesting.

                                                                      1. 1

                                                                        I’m aware of it, I don’t have a detailed explanation of why prepared, but it didn’t fit what I was looking for.

                                                                        I really want something more like a Usenet that can’t easily be killed off, E2E encrypted, and that is convenient for normal folks to use.

                                                                        Scuttlebutt/Patchwork are about as close as it gets but it’s not really there.

                                                                        This is plainly absurd for something that’s meant to be pick up and go for 99.99% of the population. This excludes even most programmers who aren’t highly motivated to use a novel mode of communication.

                                                                        If Usenet and mailing lists were still used for actual conversations and E2E had happened in a user friendly way for email (no webmail I guess?), then I wouldn’t care even a fraction as much.

                                                                        1. 1

                                                                          I mean, imho a pub isn’t that crazy, considering people are ok with Mastodon home servers, etc. Even usenet requires somebody to have setup an nntp server. Are you assuming that everyone has to be running a pub?

                                                                          1. 2

                                                                            I don’t think we’re reading what I linked the same way at all, perhaps even in the opposite direction.

                                                                            I have serious qualms with Mastodon too, particularly with how disinterested Eugen is in the care and feeding of the fediverse and in cooperating with others or letting his users make their own decisions about who they want to speak with. I’m happy for Eugen that he’s getting what he wants but it doesn’t scratch the itch I have.

                                                                            Further, in the GNU Social / fediverse, that server owns your identity. That’s not what I want and I don’t think it’s an improvement over email. Email is less obnoxious in this particular respect. With email, at least if you own a domain you can move your account around.

                                                                      2. 2

                                                                        Podcast app for iOS.

                                                                        Have you tried Overcast? Not sure how it works with a 500 ep+ history, but just thought I’d recommend this since it’s a LOT better than the Apple default.

                                                                        1. 1

                                                                          Another vote for Overcast from me. I find it decent for long unplayed lists and I do know there’s a web interface that might help too.

                                                                          1. 1

                                                                            I’m not paying $10 a year for an app that hasn’t improved much in the last few years just to not hear ads.

                                                                            I’ve used Overcast and paid for Overcast Premium in the past. It’s not much of an improvement over Apple Podcasts and it doesn’t handle the “prolific history podcast” use-case more than marginally better.

                                                                        2. 1

                                                                          Usenet but P2P and sneakernet / airgapped-wifi compatible.

                                                                          Sounds a bit like uucp.

                                                                          1. 1

                                                                            Well when there’s a Bonjour/mDNS-aware uucp out there let me know.

                                                                        3. 3

                                                                          I seem to have an affinity to implementing nntp-interfaces to things. Latest unfinished project is a blog engine using nntp to control it (posts and comments). Finished projects include an Atom/RSS feed reader with an nntp interface.

                                                                          Gnus will do that to you. Well, me, anyway.

                                                                          1. 3
                                                                            • command line shells
                                                                            • text editor
                                                                            • A better debugger for python (I am currently working on) and perhaps other languages.
                                                                            1. 3

                                                                              Oh, oh, oh, I think I have a new one: a cross-platform GUI library. Maybe somewhat less common nowadays given the whole JS thingamajig, but still seeing some pop here and there! :D

                                                                              Also, if you still need some filler for empty boxes, maybe a GUI automation/scripting framework? I think it’s maybe somewhat less common, but not totally unheard of.

                                                                              I’d also add a LaTeX clone, a.k.a. “document typesetter”. Also, somewhat related, and totally already mentioned by others, but… that’s the whole point of the question, no?… :D so, a better text editor

                                                                              Gee, really a fun idea with the Bingo cards :D Hope you’ll let us know once you’ve drawn them :)

                                                                              1. 1

                                                                                I sure hope they all fit on the card :) The GUI library is currently one of my obsessions, but on the JS/React/WebComponents bandwagon.

                                                                              2. 2

                                                                                User authentication / authorization as a service.

                                                                                1. 2
                                                                                  • Chatbot dice roller
                                                                                  • Reddit clone
                                                                                  1. 4

                                                                                    lobste.rs clone

                                                                                  2. 2

                                                                                    Common ones I see/do.

                                                                                    1. Renderer
                                                                                    2. IRC / Mastodon / Pleroma bot
                                                                                    3. Platformer Game
                                                                                    1. 1

                                                                                      As to a platformer game, personally I wouldn’t really see it as “reinventing a wheel”. In my eyes, games go much more in the direction of art, and creativity; as such, I believe saying “[another] platformer game” is more like “another landscape painting”; thus in my opinion, I’d generally see it as a totally very good and desired thing! :) I mean (but even this can be arguable), maybe unless that’s another one of the sort that are done purely for money & player addiction monetization (by this methaphor, akin to street-painters mass-producing kitsch landscapes to cater to passer-by wallets). So, again, to a “platformer game”, I’d personally say, oh, please do, absolutely! :)

                                                                                      Now, if we’re talking about a (platform) game engine… my, oh, my, that’s absolutely and undeniably a solid contender, and, what else can I say — guilty as charged! :D

                                                                                      1. 1

                                                                                        Sorry I mean “Generic platformer game” with only jumping and holes and enemies to jump on. I don’t mean like an art thing, it’s strictly a platformer game as programming exercise. I usually use images on my desktop as the enemies and player character. It’s not an engine, just the most generic possible implementation of the platformer. Not really something you release but something you use to warm up to making something you’d want to release.

                                                                                    2. 2
                                                                                      1. Static Site Generator

                                                                                      Guilty. — the style of the docs and choice of language runtime plus utter lack of modern markdown/js-package/css-preprocessors integrations pretty much ensure I’ll remain the sole user forever, preventing a never-ending time-sink of 3rd-party “needs”/whims and remaining tailored to my not-so-outlandish-but-unique-set of feature reqs to occasionally re-generate my old-school homepage, every other quarter or two. Mostly made to get some good real-world Haskell mud-wading in to try out the experience for size, back then.

                                                                                      1. 2
                                                                                        • git cli
                                                                                        • a shell
                                                                                        • the nix documentation and probably most of the cli
                                                                                        • anki/srs
                                                                                        • a calorie counter/recipe tracker
                                                                                        • most software I use for more than a month
                                                                                        1. 2

                                                                                          Note taker with links and none of this fucking abominable Markdown.

                                                                                          1. 2
                                                                                            • Data grids / Data tables
                                                                                            • Native GUI Frameworks
                                                                                            • Game Engines
                                                                                            • JS Visualization libraries
                                                                                            1. 1

                                                                                              Configuration management tooling.

                                                                                              1. 1

                                                                                                As someone administering Jira and Confluence, I’d say bug tracker and wiki. Especially bug tracker

                                                                                                1. 1

                                                                                                  Library providing common containers for the C programming language, because glib code looks ugly?

                                                                                                  Then I’ve got of course my static website generator. This is a must. As a matter of facts, most of my long time friends have done their own site generators.

                                                                                                  1. 1
                                                                                                    • Operating system
                                                                                                    • Web browser

                                                                                                    Probably the two pieces of software I use most and I hate them both.