. . . . . . . . + . . : . .. :. .___---------___. . . . . :.:. _".^ .^ ^. '.. :"-_. . : . . .:../: . .^ :.:\. . . :: +. :.:/: . . . . . .:\ . . _ :::/: . ^ . . .:\ . . . - : :.:./. . .:\ . . . ::. ::\( . :)| . : . : .:.|. ###### .#######::/ . :- : .: ::|.####### ..########:| . .. . .. :\ ######## :######## :/ .+ :: : -.:\ ######## . ########.:/ .+ . . . . :.:\. ####### #######..:/ :: . . . . ::.:..:.\ . . ..:/ . . .. : -::::.\. | | . .:/ . : . . .-:.":.::.\ ..:/ -. . . . .: .:::.:.\. .:/ . : : ....::_:..:\ ___. :/ . . .:. .. . .: :.:.:\ :/ + . . : . ::. :.:. .:.|\ .:/| . + . . ...:: ..| --.:| . . . . . . ... :..:.."( ..)" . . : . .: ::/ . .::\
馃憢 B.A. in Theology. Gay religious liberal, anti-libertarian, anti-anarchist, anti-authoritarian, pro-meritocratic-representative-democracy. I believe in the concepts of responsibility and morality, freedom, free will, and religious pluralism, including freedom of religion (and "freedom from religion", which is literally the same thing). The mind is very clearly separate, but interconnected with, the physical body. I am heavily influenced by the philosophical line of Martin Buber, Abraham Heschel, and Martin Luther King Jr.
馃棧 Followers 7 路 Following 7 路 Logs 105 路 Docked 1 year ago
I have created a live chat in Gemini. This is obviously not the first time this has been done, but it was a fun project! It does save a history, but only for a day. After 24 hours, the whole history is cleared. gemini://auragem.letz.dev/chat/
馃挰 3 Replies 路 4 Thumbs 路 11 months ago
My previous somewhat expensive headphones broke, so I have to use these other headphones. The bass on these is WAY too high, holy guac! I have the dolby access app on Windows, and I had to turn down the lower ends on the EQ a ton to get it to a bearable state, lol.
馃挰 0 Replies 路 0 Thumbs 路 11 months ago
Gonna be honest, I'm getting a bit bored of my current projects. I need a new project for Gemini! Anyone have any ideas of what they want to see in Gemini that doesn't already exist?
馃挰 7 Replies 路 1 Thumb 路 1 year ago
New devlog post that talks about my recent updates to my radio stuff, and a new idea I'm experimenting with, called "Textola": gemini://auragem.letz.dev/devlog/20231130.gmi
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
There seems to be a bot that keeps going to the exact same link on my server (which returns a 60 error code requiring a user cert). I don't know if this is a search engine that is behaving improperly or something else.
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
Added a bunch of new music to many genres for AuraGem's Public Radio. gemini://auragem.letz.dev/music/public_radio
馃挰 0 Replies 路 1 Thumb 路 1 year ago
AuraGem's Radio Stations will now have a 12.5 second announcer every 30 minutes (may make this less frequent in the future). gemini://auragem.letz.dev/music/public_radio
馃挰 2 Replies 路 0 Thumbs 路 1 year ago
Working on that new thing for AuraGem :) gemini://auragem.letz.dev/textola/
馃挰 2 Replies 路 0 Thumbs 路 1 year ago
Been working with some server things that require particular timing, and I'm slowly starting to realize (and read) that Golang has very big disadvantages in this area. https://github.com/golang/go/issues/27707 https://github.com/golang/go/issues/25471 https://github.com/golang/go/issues/47084
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
Ever since I started working on the new Old Time Radio Station for AuraGem's Public Radio, I've also been wanting to do video livestreaming of public domain movies from the Silent Films era (as well as some of the earliest Talkies that are now in the public domain), and call it AuraGem Public TV. Unfortunately, no gemini browser supports video streaming quite yet, so there would be no way to do this that will work for most people atm. I then got to thinking about the ways in which livestreaming media like radio and TV can apply to other mediums. So, I'm now toying with a new idea! More info on this will be posted later :D
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
I have updated the code for AuraGem Public Radio so that there's less repeats for most genres (some genres like World have less songs atm, so they will have repeats more often). The radio keeps track of which songs have already played up to the max number of songs for that genre. Then, when it reaches max, it will pop from the front of a queue about 1/4th of the songs on the list. Poping off a quarter of the queue allows the next songs to be re-randomized from those songs. This system also makes sure that when the max is reached, the next songs are always the songs that were played the longest time ago (because that's how queues work). gemini://auragem.letz.dev/music/public_radio
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
I'm very surprised by how many of the popular songs from the very early 1900s I know, lol.
馃挰 0 Replies 路 2 Thumbs 路 1 year ago
I've added a new station to my public radio called "Old Time Radio". It features old public domain music from 78rpm records as well as radio dramatizations of a few books, and about 12 episodes of the radio shows called "The Adventures of Philip Marlow" that play at specific times, with a new episode twice a week. I plan to add more radio shows and music later. All of the content comes from the Internet Archive. gemini://auragem.letz.dev/music/public_radio/Old-Time-Radio
馃挰 5 Replies 路 6 Thumbs 路 1 year ago
I have this public radio thing that I really like (auragem.letz.dev/music/public_radio), but it would be cool to have classic/old radio shows and music on there, or maybe even a video livestream of public domain tv shows and movies via gemini.
馃挰 0 Replies 路 2 Thumbs 路 1 year ago
Last year I did this thing for Lent for a Theology class where I gave up the computer for about an hour or more a day, and it might be interesting to try that again - a reduced-technology challenge or something similar. If I do decide to do this, I might write up a gemlog about it.
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
I've got rate-limiting working for my Smallnet Information Services (SIS) project! I've also got max concurrent connections handled (using semaphors), as well as simple IP blocking, and TLS Handshakes are also time-limited. The next security thing I need to handle are idle timeouts.
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
I've still been working on my Smallnet Information Services (SIS) project. I've been taking this project slower than normal, and I think it's helping me to polish up things more before release. I have finally gotten to the point of starting to move my capsule over to using it, so that's exciting! I just need to implement Titan and Misfin next. I may release SIS before finishing the Gopher implementation, because it turns out that Gopher is a bit harder to handle, especially if you are trying to proxy other protocols over it. Gopher putting itemtypes in the directory listing (gophermap) rather than in the response of each file is both a blessing and a curse.
馃挰 0 Replies 路 3 Thumbs 路 1 year ago
So, was just implementing rate-limiting in my gemini server, and it all worked right up until I clicked on a link that does a redirect, lol. For those who intend to implement rate-limiting, make sure you take into account how fast redirects happen. Also, the approach of assuming that when the server sends back a redirect response that the next request from an IP is going to be that redirect request assumes that a person is only using one client and that that one client's request comes right after its previous one.
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
First time using semaphores in golang! They are really useful for limiting the number of concurrent connections being handled by a server. They are also really easy to understand - acquire 1 from the semaphore (locking if 1 is not available), and then release it when the connection is finished. Other people use channels, but channels are over-complicated for something as simple as this, imo. For anyone wondering, I'm using this package: golang.org/x/sync/semaphore
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
There are some posts I wrote on other services that I'm slowly trying to move to my Gemini capsule. The next one is titled "Why I'm Proud of My University": gemini://auragem.letz.dev/~clseibold/20231116.gmi
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
I find it ridiculous when people defend the misuse of psychology words on the internet. No, a "narcissist" is not just someone you don't like, or someone you think appears self-centered. No, "antisocial" doesn't just mean you don't like to go out to parties or be in public. No, "trauma dumping" is not just someone sharing all of their bad experiences to you. That's "venting". Trauma-dumping is unsolicited or repeated dumping of your traumatic experiences on someone who doesn't want to hear it in order to get a response. Please, stop misusing psychology words.
馃挰 2 Replies 路 1 Thumb 路 1 year ago
So, just read an article by someone claiming to be a psychologist, and the title reads: "How to Identify a Narcissist: The Two Question Narcissist Test" I'm so pissed off that things like this get written, let alone get views. Just how manipulative the author seems to be and how she makes these outrageous broad statements like being named after your parent means you have NPD, and that this naming pattern is a "smoking gun", or that she's never met someone who was named after their parent who hasn't had NPD. Like this is just ridiculous. Internet Psychology is so toxic.
馃挰 11 Replies 路 2 Thumbs 路 1 year ago
Bubble is being spammed again with hundreds of new users and likes from those users. They're clearly doing it with a script. @martin If you haven't already done so, you should think about spam-prevention, just in case those spammers also come here. I would also make sure there's some form of rate-limiting, and idle timeouts on connections (I've seen some gemini libraries not implement idle timeouts, which isn't good for SYN and DDoS attacks).
馃挰 2 Replies 路 3 Thumbs 路 1 year ago
One thing I made sure to do for the guestbook of my capsule was not allow any uploads that had any slurs in them. Rather than deleting the messages after the fact, it's even better, imo, to do the checks on upload so that the user can immediately be informed that their upload was not successful, and why it wasn't successful. The process also happens basically immediately. I cannot remember if I added this functionality to AuraGem Ask, but I intend to make sure that it is added to that service as well.
馃挰 2 Replies 路 1 Thumb 路 1 year ago
Today marks the very first time I've seen someone use a racist slur on geminispace. It's a sad day.
馃挰 8 Replies 路 0 Thumbs 路 1 year ago
Been working on this really cool feature for SIS that I finally got completely working, and I'm very happy with it! It lets you proxy routes from one of the servers to another server at a specific route on the server. This means you can serve a file on the gemini server from the nex server, and vice versa. For example, you could proxy the nex server on the gemini server at "/nex/". The best feature of this, however, is that it will automatically convert gemtext files to nex listings and vice versa, depending on what is being proxied to what. All of the proxying happens internally (not via sockets) so that it's as efficient as possible.
馃挰 0 Replies 路 2 Thumbs 路 1 year ago
Inching closer to being done with most of my SIS (Smallnet Information Services) project. It will allow you to create multiple servers of various different smallnet protocols (Gemini, Gopher, Misfin, and Nex), manage them with a gemini admin interface, and interact between these different servers and various text formats (gemtext, nex directory listing, plain text, gophermap, markdown, etc.). I will talk about the rest of the details when I release it in hopefully a couple days :D
馃挰 1 Reply 路 3 Thumbs 路 1 year ago
Maybe about 50% done with my Smallnet Information Services project. The hardest part so far was writing the router code, but that code is now basically completely written, so this last 50% should go a bit quicker. I'm definitely excited to release it, but I want to make sure it's at least somewhat polished before I do.
馃挰 0 Replies 路 0 Thumbs 路 1 year ago
Working on a router for gemini, gopher, and nex. I decided to go with a tree of path components because it's more efficient and not too hard to do. Searching for a route, then, will use something like a breadth-first search, I think.
馃挰 0 Replies 路 1 Thumb 路 1 year ago
I'm about 15-25% done with my new project. I've decided to call it Smallnet Information Services (SIS), and yes, it's inspired by IIS (Internet Information Services), which should hopefully give hints to what it actually is. I am trying to make this project very easy to setup like I did with my misfinserver project, which also means providing ways to transfer a pre-existing setup from other software to SIS. More details coming soon! :D