personal-website

source for my personal website regexghost.com
git clone https://git.regexghost.com/personal-website.git
Log | Files | Refs | README

projects.md (9029B)


      1 +++
      2 title = "Project Ideas"
      3 +++
      4 
      5 My list of project ideas. If you are reading this and think one of these projects would genuinely be useful, or you have a similar problem, feel free to let me know!
      6 
      7 ## Coding
      8 
      9 I have a *lot* of coding project ideas. No guarantees that any given project here will actually happen
     10 
     11 ### Simple eBook Reader
     12 
     13 Simple terminal program that just reads EPUB files and has nice output. Would need an html parser and possibly use ueberzug for images
     14 
     15 - Possible Language: Go
     16 
     17 ### Simple Viewer
     18 
     19 X11 program for viewing basic text and images. Basically somewhere between a web-browser, pdf viewer and terminal pager. Would support images, and could read from standard input like a pager (either using HTML or preferably markdown). Advantage over a terminal would be easier image support and non-monospace font options. Advantage over pdf viewer would be speed and flexibility.
     20 
     21 - Possible Language: Go, Zig, C
     22 
     23 ### Suckless Spell-Check
     24 
     25 Both of the major spell check libraries (hunspell and aspell) are rather large projects. I'm sure they are well written, and they serve a purpose, but a more minimalist alternative should be possible.  
     26 This project would just have basic functionality; reading in a file, outputting incorrectly spelt words along with suggestions. Perhaps also a TUI interface allowing the user to choose between options, or add the existing word to the dictionary.
     27 
     28 - Possible Language: Zig, Go
     29 
     30 ### Ultra-Minimal dmenu Alternative
     31 
     32 dmenu is suckless software and is fairly lightweight (~1300 SLOC) compared to say Rofi (~25000 SLOC). I'd like to have go making an even more lightweight version, with only the most basic features.
     33 
     34 - Possible Language: Zig (good C support to use XLib headers)
     35 
     36 ### Basic Photo-Site Creator
     37 
     38 A simple program that takes a bunch of photos, descriptions and other metadata, and outputs a HTML grid of said images. No JS, customisation left to CSS.
     39 
     40 - Possible Language: Go
     41 
     42 ### Pro Cycling Stats CLI
     43 
     44 CLI/TUI tool for displaying live race data from procyclingstats, built in such a way to minimise traffic to their servers
     45 
     46 - Possible Language: Go, Zig
     47 
     48 ### UK Weather Terminal Interface
     49 
     50 A TUI interface that pulls data from the Met Office and BBC Weather, to allow comparing the forecasts
     51 
     52 - Possible Language: Go, Python
     53 
     54 ### Weather Station Symbol Generator
     55 
     56 Been fascinated with [these symbols][ws] ever since Nat 5 Geography, would be good to programatically generate them. Could be used as a weather widget on your computer, or even for educational purposes.
     57 
     58 [ws]: https://www.bbc.co.uk/bitesize/guides/zbp82hv/revision/4 "BBC Bitesize - Weather Circles"
     59 
     60 ### GoTube
     61 
     62 I previously had a project named GoTube, a TUI YouTube client with thumbnail support via ueberzug, and account integration via the innertube browser API. My plan is to split this project up into a backend, and a frontend video viewer, as the frontend video viewer could be used for more than just YouTube, and the backend tools could be useful by themselves. Maintaining this was a bit of a chore as YouTube are always changing their website JSON format. I'm generally anti-AI for programming but this could be a genuine use case, more experimentation is needed.
     63 
     64 ### Markdown to Groff Converter
     65 
     66 A few of these exist on the internet but I can't find any that handle images. Admittedly images with Groff seems like a pain so that might be why... Born out of a desire to build documents in plaintext without installing all of LaTeX
     67 
     68 ### DekuDeals API
     69 
     70 Another project I previously made but never finished. I do want to bring this back at some point, I lost my motivation to work on it because I stopped religiously buying Switch games, but it's still a neat idea.
     71 
     72 ### Minimalist Game Library Manager
     73 
     74 I use Playnite on my desktop gaming PC to organise all my games, which works well but a more lightweight alternative, that works on Linux, would be nice. There is Lutris, but I don't need any of the features it has. Doesn't even need to be a game *launcher*, just a way to visually organise the games I want to play.
     75 
     76 - Possible Language: Go, Zig, C#
     77 
     78 ### CLI Address Book
     79 
     80 Previously I wrote a CLI address book, in the style of pass, I'd like to re-make it, especially since I still have all the entries from it and need a way to view them.
     81 
     82 - Possible Language: Go
     83 
     84 ### Minimalist bat Clone
     85 
     86 `bat` is an alternative to `cat`, with syntax highlighting and line numbers, but it has a lot of features that I don't use and pulls around 200 rust dependencies.
     87 
     88 - Possible Language: Zig, Go, Rust
     89 
     90 ### Command Colourizer
     91 
     92 A program that takes a command, and a set of colour definitions and placements, and outputs that command with the relevant text colourized. For example `lsblk`, it could colour different fstypes in different colours (e.g. red for `vfat`, yellow for `ext4`, blue for `ntfs` etc)
     93 
     94 - Possible Language: Zig, C, Rust
     95 
     96 ### Games
     97 
     98 Grouping all of my video game ideas into one section
     99 
    100 #### Idle Fish Game
    101 
    102 I used to play [Abyssrium][aby] on my phone but it's a bit too much of a "mobile game". It would be neat to make a game like this without ads or microtransactions etc. Not sure if it would be for mobile or desktop.
    103 
    104 [aby]: https://www.abyssrium.com/ "Abyssrium Homepage"
    105 
    106 #### Top-Down Planet Crafter Clone
    107 
    108 Game in the style of [Planet Crafter][pc] but top-down or isometric. Possibly good as a first game project
    109 
    110 [pc]: https://store.steampowered.com/app/1284190/The_Planet_Crafter/ "Planet Crafter Steam"
    111 
    112 #### Incremental/Multiplayer/Browser Game
    113 
    114 A combination between old school MUDs, modern incremental browser games, and resource management games
    115 
    116 ### Mini Projects/Other
    117 
    118 Projects that can be done in an afternoon:
    119 
    120 * An `ls` clone in Zig - mainly as a learning exercise
    121 * Simple cli file management tools (batch renaming, numbering etc)
    122 * A fun terminal program that simulates a junction with traffic lights
    123 * [asciiquarium][asq] rewrite in C or Zig
    124 * cli tool for word pronunciation
    125 * Simple RSS feed generator. Takes markdown files and outputs RSS feed
    126 
    127 [asq]: https://github.com/cmatsuoka/asciiquarium "asciiquarium - GitHub"
    128 
    129 Vague ideas:
    130 
    131 * Something with the [Nuklear][nuk] minimal C UI library
    132 
    133 [nuk]: https://github.com/Immediate-Mode-UI/Nuklear "Nuklear GitHub"
    134 
    135 ## Linux
    136 
    137 ### Low Powered Computers
    138 
    139 The [Pi 3B+ desktop setup][pi] is the first in a series I hope to make of usable Linux setups on underpowered/old hardware. Other ideas I have are:
    140 * Old mini PC
    141 * Portable Pi cyberdeck
    142 * Old Thinkpad
    143 * Old laptop converted to desktop or all in one (similar to [this DIY Perks video][diy])
    144 
    145 [pi]: /linux/pi3-b-setup-pt1 "Part 1 of my Pi 3B+ setup series"
    146 [diy]: https://www.youtube.com/watch?v=8jeLCQ62vFk "DIY Perks all in one"
    147 
    148 ### Minimalist Software
    149 
    150 Minimalist software comprises a lot of my workflow already, but there are areas I would like to improve on. Inspired somewhat by [this guide][alt]
    151 
    152 [alt]: https://github.com/mayfrost/guides/blob/master/ALTERNATIVES.md "Alternatives to bloatware"
    153 
    154 ## Hardware
    155 
    156 ### Thinkpad Keyboard -> USB Keyboard
    157 
    158 I really want [one of these][tpk] but I can't find any in a UK layout, and they are all quite expensive. It should be possible to make one using a Thinkpad keyboard extracted from an old laptop, and a Pi Pico or Arduino in HID mode.
    159 
    160 [tpk]: https://support.lenovo.com/gb/en/solutions/pd026745-thinkpad-compact-usb-keyboard-with-trackpoint-overview-and-service-parts "Thinkpad USB keyboard"
    161 
    162 ### Mod an XBox 360
    163 
    164 The XBox 360 was my mid-childhood console. Don't currently own one but I would like to, and modding it doesn't seem *too* hard.
    165 
    166 ### GaMeR CoNsOlE
    167 
    168 Taking a Ryzen mini PC or laptop, extracting the motherboard and mounting in an old game console shell (OG XBox, PS2 etc). Batocera or similar would be used to emulate any console up to the 6th gen
    169 
    170 ### DIY Bike Computer
    171 
    172 Using either an old Android phone, or a round display [like this][rd]. Recording ride data for Strava, and displaying basic maps using OpenStreetMap data.
    173 
    174 [rd]: https://thepihut.com/products/seeed-studio-round-display-for-xiao-1-28-round-touch-screen "Example round display"
    175 
    176 ### Arcade Stick
    177 
    178 DIY arcade stick/controller (with buttons), made using Pi Pico. Would be usable on Switch, PC etc
    179 
    180 ## Other
    181 
    182 ### Website
    183 
    184 * Gopher or Gemini plaintext site
    185 * Webrings stuff
    186 * Style my [git website][mygit]
    187 	- Also get `git clone` working properly
    188 * Photo sub-website
    189 	- Need to build the photo site generator first
    190 * Wiki sub-website
    191 	- Just a wiki for random computer knowledge I have gathered
    192 * Single info page/linktree page
    193 
    194 [mygit]: https://git.regexghost.com "git.regexghost.com"
    195 
    196 ## Defunct Ideas
    197 
    198 * Performant Obsidian clone - a program like Obsidian but built in a native UI library like XLib, prioritising performance
    199 	- Defunct as I use terminal text editors now and don't see myself going back to GUI ones
    200 * DIY arcade cabinet - a proper full/nearly-full size arcade cabinet
    201 	- I don't have the room for this at the moment unfortunately
    202 * Digital pinball machine
    203 	- Same as above, not enough room