From: Ruben Beltran del Rio Date: Fri, 9 Dec 2022 13:34:45 +0000 (+0100) Subject: blog-sync-up-1670592885102 X-Git-Url: https://git.r.bdr.sh/rbdr/blog.unlimited.pizza/commitdiff_plain/86fd7017caf53790e78711dd8d1297345fea7be2?ds=sidebyside blog-sync-up-1670592885102 --- 86fd7017caf53790e78711dd8d1297345fea7be2 diff --git a/archive/1499064960000/a-new-blog.gmi b/archive/1499064960000/a-new-blog.gmi new file mode 100644 index 0000000..49b0554 --- /dev/null +++ b/archive/1499064960000/a-new-blog.gmi @@ -0,0 +1,37 @@ +# Un blog efimeroso. + +Tenía rato queriendo volver a tener un lugar donde escribir en formato más largo que un tweet pero no quería el compromiso de mantener algo como medium *(Además ahí la barra está muy alta[1] para la seriedad)*. Este es el resultado: Un generador sencillo de posts estáticos que me limita a solo tener 3, probablemente más complicado de lo que debió haber sido. + +=> https://medium.com/@expertosenbing [1] blog viejo, developer serio. + +## ¿Qué has hecho rubén? + +Un jekyll pero más culero™. + +O específicamente, blog[2]. Es una aplicación a la que le pasas directorios que se ven así: + +=> https://github.com/rbdr/blog [2] blog + +``` + . + └── this-is-an-example-post + ├── assets + │   └── example.png + └── this-is-an-example-post.md +``` + +y te genera `HTML` y te copia assets. **PERO!**, solo mantiene 3 posts en cualquier momento, entonces cada vez que escriba algo nuevo, el post viejo va a desaparecer. + +Y ya. + +## ... ¿por qué? + +Entre mis repasadas de wayback machine para ver que estaba haciendo hace diez años, me di cuenta de que escribía mucho y me dio nostalgia, pero también muchos de esos posts no envejecieron muy bien, y me dio vergüenza. Usando esa mezcla de nostalgia con vergüenza que solo la vejez te ofrece decidí no dejar más de 3 posts en línea en cualquier momento, así puedo sentirme más comodo de escribir algo. + +Probablemente termine igual de abandonado que los otros intentos, pero no sabemos, ahora estoy siguiendo el high de empezar un proyecto nuevo. + +## Para cerrar, ¡¡una dinámica!! + +Entra a la casa de tu vecino cuando no esté: sorprendelo cuando vaya entrando con una comida casera y persigue una amistad duradera. Manda las fotos de su reacción por twitter[3] usando el hashtag #allanamistad! + +=> https://twitter.com/pigeonfolk [3] diff --git a/archive/1499064960000/metadata.json b/archive/1499064960000/metadata.json new file mode 100644 index 0000000..2332964 --- /dev/null +++ b/archive/1499064960000/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1499064960000", + "createdOn": 1499064960000 +} diff --git a/archive/1546042920000/metadata.json b/archive/1546042920000/metadata.json new file mode 100644 index 0000000..78dc9bc --- /dev/null +++ b/archive/1546042920000/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1546042920000", + "createdOn": 1546042920000 +} diff --git a/archive/1546042920000/nginx-office-hours.gmi b/archive/1546042920000/nginx-office-hours.gmi new file mode 100644 index 0000000..af8d59c --- /dev/null +++ b/archive/1546042920000/nginx-office-hours.gmi @@ -0,0 +1,49 @@ +# Nginx Office Hours + +The internet is a sleepless monster with eidetic memory and I hate it: You don’t have to leave early from work to make it to the website in time, you don’t have to stay up late to catch your favorite blog, you can’t miss a post because you had a previous appointment; it’s disgusting. + +Luckily, that’s all about to change! + +In an effort to make the internet a little less available I have created **Nginx Office Hours**[1], an nginx module that allows you to specify the hours in which your website operates, so when it’s outside of those times your server can take a break and show a list of working hours instead. You can learn more about it in the `README`, but let me show you some examples: + +=> https://gitlab.com/rbdr/ngx_http_office_hours_filter_module [1] ngx_http_office_hours_filter_module + +## Example 1: Open weekdays from 08:30 AM to 7:00 PM, Saturdays 10:00 AM to 4:00 PM, closed on Sundays + +You run a small business and you always prided yourself on treating everyone fairly. One day you hear a knock on your door and it’s none other than your web server: tired, feeble and pale; a pathetic cartoon of the mental picture you’ve always had of it. You invite it to sit down and earnestly ask how you may help it today. The poor server can barely make it to the chair and takes some time to recover its breath before saying: “Boss, I know you run a small business and you always prided yourself on treating everyone fairly” — the voice is dry and peppered with coughs — “I’ve been serving this website for five years non-stop, and haven’t seen my family since; my stamina is not what it used to be, and I fear I’m losing my best years serving this content! There must be a better way, I would like to have a schedule. I’ve talked to Jozef and Sofia that work the counter and they told me they get in at 8:30 and leave at 19:00 on the weekdays, and that on Saturdays it’s even better since they can come in later and leave early, and they don’t even have to come in on Sunday! I would like that for myself and the other web servers, I don’t think it’s too much to ask.” — But it *was* too much to ask and you angrily deny his request, you both cry. You’re a fair man but you know the internet works differently, there’s no sleeping on the internet, there are no holidays on the internet. It has twisted you, and you will try to reconcile this act with your self-image for many years after today. + +A few months later, after a series of strikes, the web servers have unionized and now you’re forced by law to provide the following schedule: + +* Weekdays: 08:30 to 19:00 +* Saturdays: 10:00 to 16:00 +* Sundays: Closed + +Luckily you’re using the Nginx Office Hours module and you just need to add this line to your server config: + +``` +office_hours 8:30-19 10-16 closed; +``` + +The web servers are happy, and even though it was the state that forced you to do it, you feel good in playing your part in this great victory for servers around the world, and you think to yourself: “I’m a good person”. + +## Example 2: Open for one hour on Thursdays + +You truly are the greatest artist of your time: you have just created the most perfect website. It is so powerful in fact, that according to your own calculations society itself might collapse if it were available every hour of the day: employees would miss work, children would skip class, nobody would bake bread, couples would stop seeing each other, there would be no one left to play fetch with dogs, and the elderly would find the will to live forever just to have one more second with your art. + +You are great, but you are also kind: you decide to limit access to your creation to the last hour of every Thursday, surely this will be enough for everyone to appreciate what you’ve done without risking collapsing society, so you go to your nginx config file and write the following line: + +``` +office_hours closed 23-24 closed closed closed; +``` + +You release your website, you expect a flood of interactions, a viral reaction, you’ll be asked to go on talk shows and maybe someone will make a statue of you. In reality however, half a dozen visitors stumble upon it every Thursday, someone maybe even tweeted about it once. + + * * * + +That’s it. Hopefully by now you have an idea on what this module does and how you can use it in your daily life. I added it to this page[2] so you can see it in action; it operates at the same schedule shown in example 1 (UTC Time). + +=> https://frames.unlimited.pizza/ [2] that page + +Please let me know if you do use it, I’d love to visit more pages that ask a time commitment from my part. You can find me as @pigeonfolk[3] on twitter, so if you have any questions, comments, funny jokes, or sad stories please at them at me. + +=> https://twitter.com/pigeonfolk [3] @pigeonfolk on twitter diff --git a/archive/1591206720000/metadata.json b/archive/1591206720000/metadata.json new file mode 100644 index 0000000..bbd6a59 --- /dev/null +++ b/archive/1591206720000/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1591206720000", + "createdOn": 1591206720000 +} diff --git a/archive/1591206720000/volleyball.gmi b/archive/1591206720000/volleyball.gmi new file mode 100644 index 0000000..76b723e --- /dev/null +++ b/archive/1591206720000/volleyball.gmi @@ -0,0 +1,13 @@ +# Why are all these people playing volleyball? + +Why are all these people playing volleyball? + +What. The. Fuckkkkk? + +I don't understand why all these people would come to this park on a tuesday — at 7pm — just to play volleyball. Can you imagine? + +Why are all these people playing volleyball on a tuesday at 7pm in a park 30-35 minutes from my house? Some are really good and others are OK, though if I'm 100% honest I don't consider myself a great judge of volleyball skills. Can you imagine being kinda good? or not that good at all? or maybe really great at volleyball, a superstar. What? + +I really don't understand why all these people are playing volleyball. + +Leave your theories on the comments 👇 and don't forget to hit subscribe. diff --git a/archive/1591300500000/metadata.json b/archive/1591300500000/metadata.json new file mode 100644 index 0000000..8deab9e --- /dev/null +++ b/archive/1591300500000/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1591300500000", + "createdOn": 1591300500000 +} diff --git a/archive/1591300500000/natural-and-normal.gmi b/archive/1591300500000/natural-and-normal.gmi new file mode 100644 index 0000000..7f03249 --- /dev/null +++ b/archive/1591300500000/natural-and-normal.gmi @@ -0,0 +1,47 @@ +# Natural and Normal + +Life right now: it's Natural and it's Normal. Very natural! And very, very normal! Don't let anyone tell you otherwise, don't settle for less: you deserve it. It's the way life is meant to be lived. + +```A picture of the sun, witth the words: Hot. Drink a lot of water + │ + │ + │ + ╲ │ ╱ + ╲ HOT ╱ + ╲ │ ╱ + ╲ .────┴────. ╱ + ╲ ,─' '─. ╱ + ╲' `.╱ + ,' `. + ; : + ; : + ; : + │ │ +───────────│ │─────────── + : ; + : ; + : ; + ╲ ╱ + `. ╲' + ╱. ,' ╲ + ╱ '─. ,─' ╲ + ╱ `───┬───' ╲ + ╱ │ ╲ + ╱ │ ╲ + ╱ Drink A Lot Of Water + │ + │ + │ +``` + +Today I received a donut: 120cm in diameter, 100% polyvinyl chloride, strawberry with assorted flakes. It will lift me over the water but it won't keep me dry. It would lift me over the sea and carry me all the way to Oceania if I asked it to, but I won't; I don't have time. It will lift me over a lake, and that's all I could hope for and it will be natural, and it will be normal. + +In 2003 two men fought online about how content in the web should be syndicated[1]. I wonder how things would be different if we hadn't let facebook monopolize social spaces online. Not very different in the ways that matter, probably. This blog is now available in RSS format[2], or if you prefer in plain text[3], both formats natural, natural and normal. + +=> https://indieweb.org/RSS_Atom_wars [1] RSS Atom Wars +=> https://blog.unlimited.pizza/feed.xml [2] Feed of this Blog +=> https://blog.unlimited.pizza/index.txt [3] TXT of this blog + +I've been thinking about the weather a lot. + +Life right now: it's Natural and it's normal. Very natural! And very, very normal! diff --git a/archive/1597265340000/metadata.json b/archive/1597265340000/metadata.json new file mode 100644 index 0000000..b131f36 --- /dev/null +++ b/archive/1597265340000/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1597265340000", + "createdOn": 1597265340000 +} diff --git a/archive/1597265340000/what-is-agile.gmi b/archive/1597265340000/what-is-agile.gmi new file mode 100644 index 0000000..2e38dc8 --- /dev/null +++ b/archive/1597265340000/what-is-agile.gmi @@ -0,0 +1,11 @@ +# What Is Agile? + +Someone please explain this to me! A lot of people around me want to know. + +The dictionary says: *adjective.* able to move quickly and easily. + +I ran and ran until running was the only natural way I could move, until my legs stopped hurting and my eyes adjusted to the motion blur but my boss still says we're not agile. + +Rhizome has an archive of an art BBS from the 1990s[1] where MISSY GILCHRIST wrote: "I don't completely understand that, but somehow it's really beautiful". + +=> https://thingbbs.rhizome.org/ [1] BBS Archive diff --git a/archive/1643145238642/metadata.json b/archive/1643145238642/metadata.json new file mode 100644 index 0000000..6aca91e --- /dev/null +++ b/archive/1643145238642/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1643145238642", + "createdOn": 1643145238642 +} \ No newline at end of file diff --git a/archive/1643145238642/only-one-way-to-learn-to-code.gmi b/archive/1643145238642/only-one-way-to-learn-to-code.gmi new file mode 100644 index 0000000..9b2bd2f --- /dev/null +++ b/archive/1643145238642/only-one-way-to-learn-to-code.gmi @@ -0,0 +1,30 @@ +# There's only one way to learn to code. + +Dr. Stephen Krashen[1] says there's only one way to acquire language: when we understand messages. Speaking is the final part of a process that begins with reading, listening, and gaining understanding. + +=> https://www.youtube.com/watch?v=NiTsduRreug [1] Stephen Krashen on Learning Language + +This idea seemed intuitive to me, this is how I learned to speak English: Months reading scholastic books, watching Gumby, and eventually impressing Brett and Brandon at the park by saying "The apple trees look beautiful", my first words. + +My first programming teacher[2] would use a very similar technique a few years later to induct me as part of the rpgarena.com[3] staff: He sent me a PHP file, explained that this was the code for a *gallery*, then asked me to tell him what each line of code meant. My first answer was pretty wrong, so he corrected me and we tried again. Eventually I was asked to write a gallery. + +=> https://twitter.com/lnknbr [2] RK's Twitter +=> https://web.archive.org/web/20040629010915/http://rpgarena.com/v3/ [3] Archive of RPG Arena + +Almost two decades later, there's not a lot of advice that I would give, but I feel very confident about this one: **If you want to become a better software engineer, you should read a lot of code.** + +The most brilliant engineers I know are good because of how they're able to *read*, *understand* and *analyze* the code and the problems they solve. Every instruction put down is heavy with context and intentionality: it's the result of a toolbox of abstractions, useful patterns, and I've-seen-this-befores. + +Experts can recall much more because of this toolbox: "Beginners, ignorant of the functional significance of these words, appeared to adopt very general mnemonic techniques [...] The experts' associations from long-term experience with these words in programming predominated over common-language associations" (Mc Keithen et al.[4], 1981). + +=> http://deepblue.lib.umich.edu/bitstream/2027.42/24336/1/0000603.pdf [4] Mc Keithen et al. + +Many activities can help build this toolbox for understanding: Analyzing the whole (eg. Indicating the overall structure of a program, identifying redundant parts, summarizing the purpose of a program), the relationships in the code (eg. diagramming how the code flows), or understanding the blocks and atoms that make it (Izu et al.[5], 2019). + +=> https://www.researchgate.net/publication/339040166_Fostering_Program_Comprehension_in_Novice_Programmers_-_Learning_Activities_and_Learning_Trajectories [5] Izu et al. + +I like thinking of this in terms of the hermeneutic circle[6]: you try to understand the whole and the context around it and use that to better understand the individual constituent parts, and use that to understand the whole and the context around it, etc. + +=> https://en.wikipedia.org/wiki/Hermeneutic_circle [6] The Hermeneutic Circle + +No matter how you do it: **Read code frequently, try to understand it**. It's the best way to develop your skills. diff --git a/archive/1644174527037/metadata.json b/archive/1644174527037/metadata.json new file mode 100644 index 0000000..c482dff --- /dev/null +++ b/archive/1644174527037/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1644174527037", + "createdOn": 1644174527037 +} \ No newline at end of file diff --git a/archive/1644174527037/stop-the-ship-from-sinking-first.gmi b/archive/1644174527037/stop-the-ship-from-sinking-first.gmi new file mode 100644 index 0000000..4706610 --- /dev/null +++ b/archive/1644174527037/stop-the-ship-from-sinking-first.gmi @@ -0,0 +1,9 @@ +# Stop the ship from sinking first. + +Many times I've heard teams complain about an unfavorable situation in their codebase or organization with a variant of: *"If only we had/hadn't done/followed/bought X, then we wouldn't be in this situation"*, and of course an implied *If only we had listened to me*. + +While you might be correct, the fact is you're currently in a sinking ship, so unless you have access to some sort of time travel device, that's not going to help you get out of the situation. + +So if you're currently struggling with technical debt, organizational chaos, or any other sort of bad situation you can't escape, take a look around and ask: What's the negative effect this is having and how can I stop it from happening. Once you do that, you'll find you have more time, energy and space to tackle the problem at its root. + +It's much easier to plan and design a better ship when you're not currently sinking. So, stop the ship from sinking first. \ No newline at end of file diff --git a/archive/1644769584806/.DS_Store b/archive/1644769584806/.DS_Store new file mode 100644 index 0000000..7da47fe Binary files /dev/null and b/archive/1644769584806/.DS_Store differ diff --git a/archive/1644769584806/assets/venn-diagram.png b/archive/1644769584806/assets/venn-diagram.png new file mode 100644 index 0000000..633d005 Binary files /dev/null and b/archive/1644769584806/assets/venn-diagram.png differ diff --git a/archive/1644769584806/metadata.json b/archive/1644769584806/metadata.json new file mode 100644 index 0000000..88cbb3d --- /dev/null +++ b/archive/1644769584806/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1644769584806", + "createdOn": 1644769584806 +} \ No newline at end of file diff --git a/archive/1644769584806/three-processes.gmi b/archive/1644769584806/three-processes.gmi new file mode 100644 index 0000000..ca9caa2 --- /dev/null +++ b/archive/1644769584806/three-processes.gmi @@ -0,0 +1,65 @@ +# Every team has three processes. + +Whether they're aware of it or not, every team has three processes in place: + +* *The process you have*: The one that's written down, your working agreement. +* *The process you do*: The actual actions the team performs, reality. +* *The process you want*: The process the team wishes they were following. + +We can better improve our way of working if we understand what these different processes look like in our team: + +* What are we doing that we haven't agreed? Is it something we want? +* What aren't we doing that we want to do? Is it something we agreed to? +* Are there parts in our agreements that we follow even though we don't want to do it? + +Here's a retrospective you can do with your team to better identify how you can improve your working agreements: + +```Venn Diagram of the three processes, with each circle representing: wanted, practiced, and agreed, and the overlapping areas labeled with wanted/unwanted, practiced/not practiced, and agreed/not agreed. + .───────────. + _.──' `───. + ,' `. + ,' `. + ,' `. + ╱ Agreed ╲ + ╱ Not Practiced ╲ + ; Not Wanted : + ; : + ; : + │ │ + │ │ + : ; + .───────────. .───────────. ; + _.──': `───. _.──' `───. + ,' ╲ Agreed `,' Agreed ╱ `. + ,' ╲Not Practiced ,' `. Practiced ╱ `. + ,' ╲ Wanted ,' `. Not Wanted ╱ `. + ╱ `. ╱ Agreed ╲ ,' ╲ + ╱ `. ╱ Practiced ╲ ,' ╲ + ; `. ; Wanted : ,' : + ; `─;─. :.──' : +; ; `─────────' : : +│ Not Agreed │ │ Not Agreed │ +│ Not Practiced │ - Not Agreed │ Practiced │ +: Wanted : - Practiced ; Not Wanted ; + : : - Wanted ; ; + : : ; ; + ╲ ╲ ╱ ╱ + ╲ ╲ ╱ ╱ + ╲ ╲ ╱ ╱ + `. `. ,' ,' + `. `.' ,' + `. ,' `. ,' + `───. _.──' `───. _.──' + `─────────' `─────────' +``` + +1. Draw a large Venn diagram representing your three processes. +2. Label each section according to whether it's agreed, practiced, and wanted. +3. Take some time to write some stickies, and place them in the appropriate area. +4. Discuss each of the blocks and try to understand why. +5. Do we have different views on what we want? How can we bring this together? +6. Finally, discuss actions that can help you get closer to a better process: + 1. What things should you add or remove from your agreement? + 2. What should you start or stop doing? + +As your process improves, your needs will change, and these three circles will grow further apart. Do this often, and you'll get closer to *the process you need*. diff --git a/archive/1652622182867/a-lack-of-creativity.gmi b/archive/1652622182867/a-lack-of-creativity.gmi new file mode 100644 index 0000000..78dc1c9 --- /dev/null +++ b/archive/1652622182867/a-lack-of-creativity.gmi @@ -0,0 +1,18 @@ +# A Lack of Creativity + +Over the last couple of days I've been playing around with Gemini[1]. I instantly fell in love with the concept of a small, more limited internet. The simplicity of the protocol, and the type of capsules[2] folks[3] have been creating[4] have given me motivation to publish again, to write new apps in the constraints given. + +=> gemini://gemini.circumlunar.space/ [1] Project Gemini +=> gemini://ansi.hrtk.in/ [2] ANSI Art Collection +=> gemini://gemini.cyberbot.space/smolzine/ [3] A Zine +=> gemini://astrobotany.mozz.us/ [4] Astrobotany + +To get familiar with it, I started with a guestbook[5]. Drop by, say hi! + +=> gemini://gemini.unlimited.pizza/guestbook [5] Guestbook + +For a while now I've been focused on ways in which I could reduce the internet, but my thoughts have been around ephemeral apps, or applications that are only available at certain times of the day[6], but now I see that as a lack of creativity from my part. By removing all of these capabilities we can have a web that's free of many of the insidious characteristics of the modern web. It doesn't solve every problem, and perhaps doesn't even solve the most important problems[7], but it's a breath of fresh air. + +=> https://git.sr.ht/~rbdr/ngx_http_office_hours_filter_module [6] ngx_http_office_hours_filter_module + +I'm really looking forward to explore more, and get to meet the folks posting on this slice of the internet. diff --git a/archive/1652622182867/metadata.json b/archive/1652622182867/metadata.json new file mode 100644 index 0000000..f4c7982 --- /dev/null +++ b/archive/1652622182867/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1652622182867", + "createdOn": 1652622182867 +} \ No newline at end of file diff --git a/archive/1669903029203/blog-tooling.gmi b/archive/1669903029203/blog-tooling.gmi new file mode 100644 index 0000000..9f7900f --- /dev/null +++ b/archive/1669903029203/blog-tooling.gmi @@ -0,0 +1,77 @@ +# Blog Tooling + +With so many of the bloggers I follow talking about the the latest release of MarsEdit[1], I've been getting tooling envy. While my blog[2] is a full-featured enterprise-grade state-of-the-art piece of software, it's not compatible with any of these tools :(. Surely, a lack of appropriate tooling is the real reason why I don't update as often. + +=> https://redsweater.com/marsedit/ [1] MarsEdit +=> https://git.sr.ht/~rbdr/blog [2] Blog + +After a dozen misguided minutes of reading the atompub spec[3], I decided to integrate my tooling directly to my editor of choice: `nvim`. + +=> https://datatracker.ietf.org/doc/rfc5023/ [3] The atompub spec + +Thanks to the marvels of VimScript™ I can now add a text file to my blog with `:Blog add`, update the latest post with `:Blog update`, and publish to staging and live with `:Blog stage` and `:Blog publish`. And all it took was a couple of hours of searching how to write commands in vim[4], learning the difference between `` and ``, and a ton of sunken cost bias. + +=> https://vimhelp.org/usr_40.txt.html#40.2 [4] How to write commands in vim + +Here you can see the code in its entirety (with a couple replacements): + + +``` +command -nargs=? Blog :call Blog() + +function! Blog(...) + + let command = get(a:, 1, 0) + let path = expand("%:p") + + if command == "add" + if path == "" + echo "This buffer is not a text file" + else + echo "Adding ".path." to blog" + call system("blog --add ".path) + endif + return + endif + + if command == "update" + if path == "" + echo "This buffer is not a text file" + else + echo "Updating ".path." to blog" + call system("blog --update ".path) + endif + return + endif + + if command == "stage" + echo "Publishing blog to staging" + call system("blog --publish ") + return + endif + + if command == "publish" + echo "Publishing blog" + call system("blog --publish ") + call system("blog --publish-archive ") + return + endif + + if command == "help" + echo "Available commands:" + echo "\tadd\t\tadds current file to blog" + echo "\tupdate\t\tupdates latest entry of blog with current file" + echo "\tstage\t\tpublish blog to staging" + echo "\tpublish\t\tpublish blog to production" + echo "\thelp\t\tthis message" + return + endif + + echo "Unknown command, run :Blog help for help" + +endfunction +``` + +Surely, this is all I need to form a publishing habit. + +Written, published, edited, republished, debugged, and republished with nvim. diff --git a/archive/1669903029203/metadata.json b/archive/1669903029203/metadata.json new file mode 100644 index 0000000..87de549 --- /dev/null +++ b/archive/1669903029203/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1669903029203", + "createdOn": 1669903029203 +} \ No newline at end of file diff --git a/posts/0/blog-tooling.gmi b/posts/0/blog-tooling.gmi new file mode 100644 index 0000000..9f7900f --- /dev/null +++ b/posts/0/blog-tooling.gmi @@ -0,0 +1,77 @@ +# Blog Tooling + +With so many of the bloggers I follow talking about the the latest release of MarsEdit[1], I've been getting tooling envy. While my blog[2] is a full-featured enterprise-grade state-of-the-art piece of software, it's not compatible with any of these tools :(. Surely, a lack of appropriate tooling is the real reason why I don't update as often. + +=> https://redsweater.com/marsedit/ [1] MarsEdit +=> https://git.sr.ht/~rbdr/blog [2] Blog + +After a dozen misguided minutes of reading the atompub spec[3], I decided to integrate my tooling directly to my editor of choice: `nvim`. + +=> https://datatracker.ietf.org/doc/rfc5023/ [3] The atompub spec + +Thanks to the marvels of VimScript™ I can now add a text file to my blog with `:Blog add`, update the latest post with `:Blog update`, and publish to staging and live with `:Blog stage` and `:Blog publish`. And all it took was a couple of hours of searching how to write commands in vim[4], learning the difference between `` and ``, and a ton of sunken cost bias. + +=> https://vimhelp.org/usr_40.txt.html#40.2 [4] How to write commands in vim + +Here you can see the code in its entirety (with a couple replacements): + + +``` +command -nargs=? Blog :call Blog() + +function! Blog(...) + + let command = get(a:, 1, 0) + let path = expand("%:p") + + if command == "add" + if path == "" + echo "This buffer is not a text file" + else + echo "Adding ".path." to blog" + call system("blog --add ".path) + endif + return + endif + + if command == "update" + if path == "" + echo "This buffer is not a text file" + else + echo "Updating ".path." to blog" + call system("blog --update ".path) + endif + return + endif + + if command == "stage" + echo "Publishing blog to staging" + call system("blog --publish ") + return + endif + + if command == "publish" + echo "Publishing blog" + call system("blog --publish ") + call system("blog --publish-archive ") + return + endif + + if command == "help" + echo "Available commands:" + echo "\tadd\t\tadds current file to blog" + echo "\tupdate\t\tupdates latest entry of blog with current file" + echo "\tstage\t\tpublish blog to staging" + echo "\tpublish\t\tpublish blog to production" + echo "\thelp\t\tthis message" + return + endif + + echo "Unknown command, run :Blog help for help" + +endfunction +``` + +Surely, this is all I need to form a publishing habit. + +Written, published, edited, republished, debugged, and republished with nvim. diff --git a/posts/0/metadata.json b/posts/0/metadata.json new file mode 100644 index 0000000..87de549 --- /dev/null +++ b/posts/0/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1669903029203", + "createdOn": 1669903029203 +} \ No newline at end of file diff --git a/posts/1/metadata.json b/posts/1/metadata.json new file mode 100644 index 0000000..87de549 --- /dev/null +++ b/posts/1/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1669903029203", + "createdOn": 1669903029203 +} \ No newline at end of file diff --git a/posts/1/social-media.gmi b/posts/1/social-media.gmi new file mode 100644 index 0000000..4ae4655 --- /dev/null +++ b/posts/1/social-media.gmi @@ -0,0 +1,9 @@ +# Social Media + +After much dawdling I finally decided to close my twitter account. I hadn't been actively posting; after 15 years it had become a bit of a mechanical process rather than something I enjoyed. + +I kept putting it off because I wanted to find something to replace it with and none of the alternatives were perfect matches. Now I know I don't want to replace twitter, but rather find something else. I'm not sure what, but something different. + +The last few years of online have given me a kind of posting anxiety that kept me from participating in any online community, and I think I need a change of scenery to get out of that state of mind. + +I like trying new places. I like exploring the different communities that exist in the information superhighway. I don't know what I'll discover, but I'm looking forward to finding out. diff --git a/posts/2/a-lack-of-creativity.gmi b/posts/2/a-lack-of-creativity.gmi new file mode 100644 index 0000000..78dc1c9 --- /dev/null +++ b/posts/2/a-lack-of-creativity.gmi @@ -0,0 +1,18 @@ +# A Lack of Creativity + +Over the last couple of days I've been playing around with Gemini[1]. I instantly fell in love with the concept of a small, more limited internet. The simplicity of the protocol, and the type of capsules[2] folks[3] have been creating[4] have given me motivation to publish again, to write new apps in the constraints given. + +=> gemini://gemini.circumlunar.space/ [1] Project Gemini +=> gemini://ansi.hrtk.in/ [2] ANSI Art Collection +=> gemini://gemini.cyberbot.space/smolzine/ [3] A Zine +=> gemini://astrobotany.mozz.us/ [4] Astrobotany + +To get familiar with it, I started with a guestbook[5]. Drop by, say hi! + +=> gemini://gemini.unlimited.pizza/guestbook [5] Guestbook + +For a while now I've been focused on ways in which I could reduce the internet, but my thoughts have been around ephemeral apps, or applications that are only available at certain times of the day[6], but now I see that as a lack of creativity from my part. By removing all of these capabilities we can have a web that's free of many of the insidious characteristics of the modern web. It doesn't solve every problem, and perhaps doesn't even solve the most important problems[7], but it's a breath of fresh air. + +=> https://git.sr.ht/~rbdr/ngx_http_office_hours_filter_module [6] ngx_http_office_hours_filter_module + +I'm really looking forward to explore more, and get to meet the folks posting on this slice of the internet. diff --git a/posts/2/metadata.json b/posts/2/metadata.json new file mode 100644 index 0000000..f4c7982 --- /dev/null +++ b/posts/2/metadata.json @@ -0,0 +1,4 @@ +{ + "id": "1652622182867", + "createdOn": 1652622182867 +} \ No newline at end of file