```2021 ascii art _______ _______ _______ ____ | | | _ | | | | | |____ | | | | | |____ | | | ____| | | | | | ____| | | | | ______| | |_| | | ______| | | | |_____ | | | |_____ | | |_______| |_______| |_______| |___| ``` => gemini://hedy.tilde.cafe/tinylog.gmi tinylog format feed => /journal/ about this journal => mailto:hedy@tilde.cafe?subject=thoughts%20on%20your%20journal reply via email # September ## 29 ### 09:12 bombadillo bombadillo is the best terminal gemini (and gopher, finger, maybe telnet?) client IMO. It has many things amfora/astronaut/av98 doesn't have, just that I wish it could have custom colors. ## 25 ### 21:49 vim-magit is amazing, but when commit triggers gpg's passphrase prompt it seems very very unresponsive. really weird and annoying. lucky I could go to another repo, enter the commit + enter passphrase without magit successfully so that in magit I can just commit and it won't prompt the passphrase. ### 08:24 gitea I *just* discovered that gitea is actually written in go (wow). And I thought codeberg was gitea's official/public instance? Apparently there's also gitea.com which has around as many (maybe less) users/repos on there. I also found a command line tool for gitea => https://gitea.com/gitea/tea tea Doesn't feel as polished and pretty as github cli 😛 But still, how did I not know these before? damn I always thought it was written in ruby ## 23 ### 17:34 jc - cli jsonify tool (also python library) => https://github.com/kellyjonbrazil/jc github.com/kellyjonbrazil/jc pipe the output of a (supported) command into it and it will give you a json output which can be easily used in scripts like with jq. I haven't seen any alternatives for this before, as in apart from using shell utils like cut, sed, head/tail, awk, etc. On a brief look it seems that it supports around 70 commands Examples: ```ls -l /usr/bin | jc --ls -p -r $ ls -l /usr/bin | jc --ls -p -r [ { "filename": "apropos", "link_to": "whatis", "flags": "lrwxrwxrwx.", "links": "1", "owner": "root", "group": "root", "size": "6", "date": "Aug 15 10:53" }, { "filename": "arch", "flags": "-rwxr-xr-x.", "links": "1", "owner": "root", "group": "root", "size": "33080", "date": "Aug 19 23:25" }, ... ] ``` ```w | jc --w -p $ w | jc --w -p [ { "user": "root", "tty": "tty1", "from": null, "login_at": "07:49", "idle": "1:15m", "jcpu": "0.00s", "pcpu": "0.00s", "what": "-bash" }, ... ] ``` holy smokes! gotta change my `online` script now 😱 => https://git.rawtext.club/hedy/rtc-scripts/src/branch/master/online online (rtc-scripts) ## 20 ### 13:53 binomial theorem => https://www.youtube.com/watch?v=gMlf1ELvRzc "The Discovery That Transformed Pi" on YouTube sooo cool! I can't wait to program this out with code and build cool stuff with pascal triangle, pi graphed out and things like that ## 19 ### 14:58 started reading a lot of novels this week, completely forgot how i enjoyed them... haven't read novels properly for like a year a more ## 09 ### 08:57 fish => gemini://hexdsl.co.uk/micro.gmi Re: @hexdsl Wed 08 Sep 2021 21:47 BST > Fish seems like a terrible shell how so? I agree that it isn't posix compliant and can't directly type in shell scripts, but I really can't survive without fish. The auto suggestions and auto complete is really smart and colorful. It even tells me if a command is not found before I hit enter. Those things can probably be achieved with plugins from oh my zsh/bash but requires less (or no) set up. I also think that the completion, configuration and environment variables are easier. The default bash AFAIK only lists out the possible completions when you hit tab twice, but in fish you hit tab once and it lists out the possible completions AND allows you to tab through to select one. Fish's built-in commands (and 3rd party ones if they support it) also allows you to see the description of each completions which is an amazing way of learning a tool without having to dig through the docs. For example, when I type `git a` and hit tab, it lists 3 entries of command completion and shows you what the command does next to each of them: ``` ~ $ git a add (Add file contents to the index) archive (Create an archive of files from a named tree) apply (Apply a patch on a git index file and a working tree) ``` Just to add to Solene's post, you don't need to type ctrl e to confirm a suggestion, the right arrow key would work and is easier to type IMO. ## 01 ### 19:48 paralympics was pretty cool! ### 20:44 2021 is such a nice number, 2022 looks kinda ugly for some reason ;-; # August ## 21 ### 20:18 Refactored much of my dotfiles this week, especially my nvim configuration. There were so much untouched configuration that didn't actually work and I didn't even know xD => https://github.com/hedyhli/dotfiles github.com/hedyhli/dotfiles (also on sr.ht) I've started to focus a bit on maintainability and ease of settings up new machines, I wrote some setup scripts and I plan to organize them all and have a `dot` script that can run them on request (instead of having to type out the full path every time). I also plan to make the setup scripts be able to be run more than once, that is even after setting up the first time I can still run them again and again to keep stuff in sync. I've recently used my dotfiles to set up two linux desktops and it was relatively easy to get everything working. Back to nvim, I've switched to a lua autopairs plugin so that I can get more customization and control in its behaviour (real reason was to fix some really annoying behaviour, see commit log for more info). I'll probably replace lightline (vim) with galaxyline (lua based) next week. Still trying to get automatically hide the popup menu :/ and I need to optimize the startup speed a bit more. Once I've done that I'll be able to resume working on my projects :D ## 05 ### 16:21 site Finally took the time to work on my website: => https://hedy.tilde.cafe https://hedy.tilde.cafe (also on gemini) still using hugo as the SSG, kiln didn't have as much features that I need from hugo, and bashblog just isn't good enough, feels simple but really not organised and stuff. Re-wrote CSS based on a few inspirations: => https://simplecss.org => https://seirdy.one => https://smol.pub I intend it to be not too barebones, and definetly not brutalist design, should look somewhat modern, but should have some accessibility features and simplicity to it. I've set the margin-left for blockquotes to 0 to make it look better in small screens, and kept the nav bar and footer simple. I've checked that it looks ok in reader mode and terminal browsers. Many people who have minimalist-styled css websites have font-family be brwser default, but (not sure if it's just me) but if browser default is used all the apostrophes take such a huge space and makes it look very awkward. So I've set the font-family to a sans-serif stack (with sans-serif as the last fallback). I've also gotten syntax highlighting to work in code blocks with different theme for light mode and dark mode. I'm not sure if screen readers will have a good time parsing code blocks and making sure they're formatted right, but I keep on improve it as I write more posts. Special thanks to seirdy's post on website best practices => gemini://seirdy.one/2020/11/23/website-best-practices.gmi The post is a bit opinionated but I've tried to keep with those best-practices where I can tolerate. The css source is minified and dumped into . I guess I still just use hugo then. It looks heavy (heavier than kiln for sure) but it feels fast and light for some reason. ### 09:34 tinylogs are fun ## 11 I like wind. according to my brain (very reliable source indeed), wind is caused by the same process that form mountains and cause earthquakes/tsunamis/etc. (lol that was random and unsurprising but i'm pretty sure true) ## 09 some hugo themes are actually really nice and simple, and some of which has no tracking, no js, or no heavy css involved. here's some of my favs: => https://themes.gohugo.io/smol/ smol * monospace * no google analytics (i think) * simple markdown styling * looks clean => https://themes.gohugo.io/hugo-theme-console/ console * monospace * has google analytics but might be able to be disabled idk * shell prompt animation with path breadcrumb at the top... but the structure here doesn't make sense. for example. if you in /posts/, it shows "site:~# posts/", and imo it should really be "site:/posts/$ " or something. * should have a larger/higher(?) margin so content is thinner (wth do you call it omg I forgot) => https://themes.gohugo.io/archie/ archie * monospace * the red underlines are a bit messy imo ## 06 wsl 2 is pretty interesting. I like that it is now able to be installed without having to join windows insiders. tried out both ubuntu 20 and alpine on there, will be finishing some configs and setup tomorrow # May ## 31 last day of may already? nice. haven't been online as much for this month... so yeah I saw the news of freenode, it's pretty surprising since for the last few months when I was active on IRC I didn't like to spent much time on freenode, maybe it's because of its popularity (I tend to like to hang out in places that don't have as much users), but idk libera.chat is pretty cool ## 05 accessing my flounder capsule from Documents (by Readdle) iPad app pretty cool huh recently trying out the various different apple pencil note apps again (did it a year ago), writing this with Apple Pencil scribble feature. It's not very good with symbols ← ## 01 gosh can't believe it's may already :o I love how a third of 2021 is finished (4/12=1/3) # April ## 30 replaced old readline package for gelim with this: => http://github.com/lmorg/readline it's quite good, much better than what I was previously using. also discovered murex shell from there, feels a bit like fish, but i don't like murex's syntax, and it isn't as widely supported or known compared to fish also added colors!!! easier than I thought. this package i'm using feels much much better than colorama from the python realm: => http://github.com/fatih/color honestly go packages are all really cool ## 29 added pager to my gemini client, it basically just calls `less` with -FSEX and if it fails, it will just print the content normally => https://sr.ht/~hedy/gelim ## 18 ### dotfiles (again) yesterday I thought, wouldn't it be the absolute perfect solution to track my dotfiles with hardlinks? (that is, you hardlink the dotfiles into a git repo and track them from there) so today I did a bit of research and found that there are many people who have tried this method, and there are caveats: => https://codingkilledthecat.wordpress.com/2012/08/08/git-dotfiles-and-hardlinks/ ^that article suggests you to just track your ~ with git, which I have mentioned with other dotfiles managers on Apr 6th (below), it said that the problem with doing the hardlinks way is that "Git never modifies files in the working tree – instead, it unlinks them and then recreates them from scratch. This inherently breaks any hardlinks that might have been present". which AFAI can tell, you can't use git commands to modify files from your repo and wish that those changes will reflect in your ~ (?) so then I thought, what if, instead of having files in your dotfiles git repo be hardlinks /of/ your dotfiles at ~, why not have the dotfiles at your ~ be hardlinks /to/ files in your git repo? in that case, though I haven't tried it yet, will probably be similar to the symlink solution which when you want to `vim .gitconfig` for example, it opens `~/dotfiles/.gitconfig` and breaks the syntax highlighting. But now with symlink replaced with hardlinks, you are probably still editing your `~/.gitconfig` and since `~/dotfiles/.gitconfig` points to the same contents you can track the changes as needed. sounds too good to be true, kinda? so why am I trying out these different, almost crazy, methods when I said I was going to stick to yadm? well, so here is what I still need which yadm doesn't provide (AFAIK): for some machines, only track some files and directories and remove the others. for example: * if on one machine I don't have nvim installed for some reasons, I don't want to have .config/nvim exist. it can do what ever it want in my remote dotfiles repo but I just don't want to see that in my $HOME * another scenario: in my dotfiles repo, it makes sense to have a README.md since it's hosted publicly, but on one or more particular hosts the readme serves a different purpose, whatever that may be -- I'd like to modify README.md however I like and not have `yadm status` tell me the file is modified. in this case, I /could/ possibly stash the change, commit other changes, and apply (?) but... nah, I'd probably forget and end up stashing unwanted changes and be left in a git mess. anyways, the problem I described above can probably be solved with chezmoi, but like what I've written on 6th, there are downside(s) with it and I don't like it. I'd rather stick with yadm for now, and try out the hardlink strategy. In any case, once I've figured out an almost-perfect solution that (hopefully) solves all my problems I'll write a gemlog post about it. It may be that there is no such solution that can do so but we'll see. ### journal new journal heading layout. # for each month, ## for each day, and ### for each event also made the stuff reverse-chronological order ## 14 found several cool more things on gemini: => gemini://paste.gemigrep.com/ paste.gemigrep.com - paste and archive text and gemini urls => gemini://calcuode.com/gmisub-aggregate.gmi gmisub - I normally just use Spacewalk or gemreader for feeds in gemini, but this is cool too => gemini://gemini.bunburya.eu/gemlog/posts/2021-04-07-dynamic-content-scgi-gemini.gmi Amazing post on SCGI in gemini => gemini://discovery.geminiprotocol.com/ discovery.geminiprotocol.com - more cool stuff on gemini => gemini://review.treeblue.space/ review.treeblue.space - similar to above ## 07 => https://sr.ht/~hedy/gelim gelim - my new wip line mode Gemini client in go (sr.ht) ## 06 ### dotfiles (will write a detailed gemlog post for this) here's my general dotfile setup/manager timeline: 1. nothing 2. symlink + plain git 3. yadm 4. copy-paste files to repo (with scripts to make it easier) 5. yadm 6. homedir git (with * in .gitignore, and track with `git add -f`) 7. chezmoi 8. yadm the last 3 from the above are my top 3 preferred options, here are the pros and cons for each: 〈 ~ git 〉 => https://drewdevault.com/2019/12/30/dotfiles.html Drew's blog post on this setup > I’ve tried a few solutions over the years, but I settled on a very simple system several years ago which has served me very well in the time since: my $HOME is a git repository pros: * you control everything * simple and lightweight * no additional tooling setup, just git cons: * encryption * alternate files * template files 〈 yadm 〉 => https://yadm.io basically, your $HOME is a git repository, but wrapped. nothing is tracked until you `add` it, so I think of it as the above method but with more features. pros: * commands passed to git * alternate files * encryption cons: * no password manager integration (but i don't need it) * in bash (honestly I'm fine with that, but go could be easier lol?) 〈 chezmoi 〉 => https://chezmoi.io it copies your dotfiles to a separate dir and you can optionally setup git in that dir. pros: * everything is good, except... cons: * the repo you end up having will have files that are like "dot_bashrc" "dot_vimrc", "private_config/" etc. and not only does it NOT LOOK NICE, it also DESTROYS THE SYNTAX HIGHLIGHTING (yes I'm shouting this). but sure, the fact that chezmoi's pros are pros and has so many features others don't, sometimes we do have to let this slide. but nah some of the features it has I don't really need, and I will stick to yadm for now. => https://www.chezmoi.io/docs/faq/#can-i-change-how-chezmois-source-state-is-represented-on-disk read more about this ("complaint"?) and their reasons for it also see: => https://github.com/twpayne/chezmoi/blob/master/docs/COMPARISON.md full comparison table between various dotfile managers (chezmoi docs) ## 05 ### lagrange seen it across the geminispace as well as mentioned in IRC many times, but I didn't give it a go since it was desktop-based... but today I saw some people on #gemini tilde.chat IRC mentioning Lagrange for iOS, immediately I went to skyjake.fi's gemlog and joined the testflight. the only iPad gemini client I've used so far was Elaho, which has similar UI/UX to firefox, it feels smooth and comfortable to use, despite have it lack some features such as subscriptions, importing certs (AFAIK), and sharing identities across different capsules. (I mentioned Elaho when I first tried it out in the 2021-04-01 entry above). here are my first impressions * if looks quite modern, but the first thing I noticed was the "glitchy" scrolling, it doesn't feel smooth even after toggling the "Smooth Scrolling" setting * it assigns capsules its own favicons and they look quite weird... using favicon.txt might be better even if the proposal isn't officially accepted (yet?) * it can import and manage certificates, great! * it has lots of settings, including adjusting the fonts and margins of the page's display (and proxy!) * it has subscriptions, great! (although I wasn't able to get it working and couldn't find the place for feed management... amfora's subscriptions feature is better atm, or I could keep using Drew's gemreader[*], or a feed aggregator. => https://sr.ht/~sircmpwn/gemreader => //feeds.drewdevault.com public instance of gemreader ^ (needs cert) ## 04 ### golang started getting into go in january, but at the time I only did some stuff on the Go Tour, and since then I hadn't touched go at all... Today looking at some gemini clients and other software, sometimes urged me to learn go (like, immediately). started looking at simple Gemini server/clients source code and I decided to fork solderpunk's "≈100 lines bare-bones but usable client in Go"[*], refactor it, implement some features like more commands, less(1)-like output, etc, basically a simpler, dumber version of AV-98 in Go. This is also to basically help me learn go with "learning by doing", really excited for this. Will probably start tomorrow ## 03 ### spartan wow! did mozz just add support for spartan:// to his HTTP-gemini portal? dang this is amazing, no need to use my terminal with `| less` anymore :P => https://portal.mozz.us Gemini Proxy (also spartan now) read the specs[*] for spartan a bit more carefully today... the way it specifies how inputs are requested is quite interesting. AND guess what... there's inline inputs! (AFAIK) spartan uses text/gemini for its document format, and adds a new input syntax "=:" to replace gemini's 10 INPUT status code. here's an example .gmi served over spartan:// with input: ```example gmi file for spartan:// # normal heading * normal list item * second item here goes an input =: /input-handler friendly text for the input more normal text ``` try out here => https://portal.mozz.us/spartan/mozz.us spartan://mozz.us on proxy there's a guestbook and also an "echo service" where anything you input will be echoed back to you problem is, atm, the server.py file[*] doesn't handle inputs (at least not from looking at the code and trying it out), and I would really love to see how spartan://mozz.us do the echo and the guestbook thing, but I don't think it's open sourced => gemini://spartan.mozz.us/spartan_server.py anyways I think this feels more like a gemlog post, will link to it here when I'm done writing it ## 02 ### organizing knowledge Knowledge and resources are really scattered. I was looking into gemini, gopher, irc bots, etc to be specific. One day, when I have the money, time, and energy, I will buy a domain, get a host and sit down and organized all of these things into a single public wiki/notebook... ### spartan I saw mozz's post[*] on his shiny new protocol a few days ago, but only decided to have a look today. looking at the client/server .py files I was like "wow! this seems really lightweight", also, this was the perfect opportunity to install a curl-like program for gemini:// so I decided to use makeworld's gemget[*] and downloaded the two scripts for spartan://. => gemini://mozz.us/journal/2021-03-25.gmi mozz's post on spartan:// => https://github.com/makeworld-the-better-one/gemget gemget - CLI downloaded for gemini (like curl/wget) - by makeworld (github) My first stop on the spartanspace is spartan://mozz.us, I also had a play with its cool input "system", then immediately went on to trying out the server. So far everything feels just like gemini, except that this protocol is newer, lighter, and I guess easier to implement. Can't wait to get more into it and create my own server/clients for it! ## 01 ### super cool gemini registered on Astrobotany[*] a week ago, and been only using it with amfora[*] on tilde.cafe[*], but today I tried out a gemini from the iPad - Elaho! (will link to it once I find its github repo, forgot atm). => gemini://astrobotany.mozz.us Astrobotany - community garden over gemini:// => https://github.com/makeworld-the-better-one/amfora amfora client on github => https://tilde.cafe/ tilde.cafe, a "newly" launched, debian tilde so far browsing the geminispace from Elaho is a super cool and relaxing experience, it seems to be based off firebox. But from what I can see, Elaho doesn't allow you to import certificates, so I created one, logged into Astrobotany and added my current certificate to my account. all this "gemini apps" and auth with client certs and so cool! can't wait to make my own game or app over gemini ### gopher A week or two ago I started taking a serious look at gopher, reading through every single post on gopher.zone => https://gopher.zone/ gopher.zone - Gopher guides - "Highway to the gopher zone" # March ## 30 ### flounder Today I decided to go back, and put my journal and gemlog there until I find a good host for all my online stuff... The one thing that still impresses me is the ability to set custom domains for my flounder site! AFAIK not a single one of any other Gemini hosting providers allow you to do that :/ => //flounder.online Another amazing thing is that I can directly edit from the web! (Although if Editting via Gemini inputs are supported that would be cool) Editting from the web means that I can update my journal/gemlog from any device, which is ideal especially for my journal => /journal/ When I came back, I noticed that WebDAV was replaced with SFTP access! Gosh that's amazing, which means I can script automated updates (if I need any) and 'deploy' to my flounder site immediately :D ### medusae.space The first time I heard about it was from my mastodon timeline, but didn't give it a serious look until today! I was surprised that so many of the things in there look so familiar to me... Like most of the times I'm like "oh, it's this guy", and "oh I know you!" # January ## 14 first ever gemlog! it's just a hello world (published on flounder) ## 06 happy new year I decided to hate discord