1
0
Fork 0

Compare commits

...

5 commits

Author SHA1 Message Date
Kaan Barmore-Genç 896fdd6443 Black Crown Initiate 2022-04-02 15:55:37 -04:00
Kaan Barmore-Genç d8d08ae261 announcing bulgur cloud 2022-03-29 00:33:21 -04:00
Kaan Barmore-Genç bdb1cc994a computers today 2022-03-29 00:07:50 -04:00
Kaan Barmore-Genç 8fb6c6e5d8 on contempt culture 2022-03-27 00:56:58 -04:00
Kaan Barmore-Genç 0ba2e80557 fix title 2022-03-26 15:44:24 -04:00
16 changed files with 337 additions and 4 deletions

View file

@ -5,7 +5,7 @@ source_files := $(shell find content/*.md)
target_files := $(patsubst content/%.md,gemini/%.gmi,$(source_files))
.PHONY: default
default: publish-gemini build-html
default: build-gemini publish-gemini build-html
gemini/%.gmi: content/%.md
lowdown -tgemini $< > $@
@ -28,5 +28,5 @@ clean:
echo ${target_files}
.PHONY: publish
publish-gemini: $(target_files) gemini/index.gmi
publish-gemini: ${target_files}
rsync -av content/img content/extra gemini/index.gmi $^ gemini.bgenc.net:/var/gemini/

View file

@ -1,5 +1,5 @@
---
title: Solving `app_data` or `ReqData` missing in requests
title: Solving `app_data` or `ReqData` missing in requests for actix-web
date: 2022-03-26
---

View file

@ -0,0 +1,35 @@
---
title: "Black Crown Initiate"
date: 2022-04-02
---
> This post is day 9 of me taking part in the
> [#100DaysToOffload](https://100daystooffload.com/) challenge.
I love metal, I've been listening to metal since I was 13. It was the first
music genre that I actually liked: until I discovered metal I actually thought I
didn't like music at all, because nothing I heard on the radio or heard my
friends listening to were interesting to me. My taste in music has expanded and
changed over the years to include different types of music and genres, but metal
remains the one I love the most.
Demonstrating my metal-worthiness aside, I've always listened to European metal
bands. I had this weird elitist thought that "good" metal could only come from
Europe, with exceptions for some non-European bands, and that American metal was
just always bad. This is obviously false, but I just had never came across
anything American that I had liked. That's until recently.
I recently came across [Black Crown Initiate](https://www.metal-archives.com/bands/Black_Crown_Initiate/3540386765),
a progressive death metal band from Pennsylvania. And I have to tell you that they are amazing.
Their first release "Song of the Crippled Bull" is absolutely amazing. The music
is just the right amount of metal and progressive, and lyrics are amazing. The
clean vocals get the themes of the song across, while the growls give a lot of
power to the songs. My favorite songs from this release are "Stench of the Iron
Age" and the title track "Song of the Crippled Bull". Other hightlights from the
band I've listened to so far include "A Great Mistake", "Death Comes in
Reverse", "Vicious Lives".
I'm still making my way through their songs, but I'm glad to have discovered
something from America that I absolutely love. I'm now trying to find more
non-European bands that I enjoy.

View file

@ -0,0 +1,56 @@
---
title: An introduction to Bulgur Cloud - simple self hosted cloud storage
date: 2022-03-29
---
> This post is day 8 of me taking part in the
> [#100DaysToOffload](https://100daystooffload.com/) challenge.
I've been recently working on Bulgur Cloud, a self hosted cloud storage
software. It's essentially Nextcloud, minus all the productivity software. It's
also designed to be much simpler, using no databases and keeping everything on
disk.
The software is still too early to actually demo, but the frontend is at a point
where I can show some features off. So I wanted to show it off.
![The login screen](/img/2022-03-29-00-17-38.png)
I've been going for a clean "print-like" look. I think it's going pretty well so far.
![The directory listing](/img/2022-03-29-00-16-13.png)
I'm not sure about the details of how the directory listing will look. I don't
think I like the upload button in the corner, and the rename and delete icons
feel like they would be easy to mis-press. There is a confirmation before
anything is actually deleted, but it still would be annoying.
![Delete confirmation prompt](/img/2022-03-29-00-20-48.png)
Something I'm pretty happy with is the file previews. I've added support for
images, videos, and PDFs. Video support is restricted by whatever formats are
supported by your browser, the server doesn't do any transcoding, but I think
it's still very useful for a quick preview. I'm also planning on support for
audio files. The server supports range requests, so you can seek around in the
video without waiting to download everything (although I've found that Firefox
doesn't handle that very well).
![Video file preview](/img/2022-03-29-00-22-48.png)
This is a web interface only so far, but I'm planning to add support for mobile
and desktop apps eventually. I've been building the interface with React Native
so adding mobile/desktop support shouldn't be too difficult, but I've been
finding that "write once, run everywhere" isn't always that simple. I ended up
having to add web-only code to support stuff like the video and PDF previews, so
I'll have to find replacements for some parts. Mobile and desktop apps natively
support more video and audio formats too, and with native code you usually have
the kind of performance to transcode video if needed.
The backend is written in Rust with `actix-web`, using async operations. It's
incredibly fast, and uses a tiny amount of resources (a basic measurement
suggests < 2 MB of memory used). I'm pretty excited about it!
After a few more features (namely being able to move files), I'm planning to put
together a demo to show this off live! The whole thing will be open source, but
I'm waiting until it's a bit more put together before I make the source public.
The source will go live at the same time as the demo.

View file

@ -0,0 +1,79 @@
---
title: Do kids not know computers now?
date: 2022-03-28
---
> This post is day 7 of me taking part in the
> [#100DaysToOffload](https://100daystooffload.com/) challenge.
One discussion point I've seen around is that kids nowadays don't know how to
use computers. Okay that's a bit of a strawman, but this article titled [File Not Found](https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z).
The gist of the article is that Gen-Z kids are too used to search interfaces.
That means they don't actually know about where files are stored, or how they
are organized. They only know that they can access the files by searching for
them. The article talks about how professors ended up having to teach them how
to navigate directory structures and file extensions.
As the article claims, it seems to be related to how modern user interfaces are
designed. Our UIs nowadays are more focused around search capabilities: you just
type in a search bar and find what you need.
![bemenu, displaying a partial search and several matching applications.](/img/app-search-bar.png)
In some sense I do like this sort of interface. I use something like that when
launching applications, both on my Desktop and on my laptop! It's actually a
better interface compared to hunting for icons on your desktop. I use similar
interfaces in VSCode to switch between open editor tabs.
However, this is a complimentary interface to hierarchy and organization. Going
back to the file systems example discussed in the article, being able to search
through your files and folders is useful. But it's not a replacement for
hierarchy. You can't just throw files into a folder, and expect to always find
them accurately.
Let me give an example with Google Photos. I have been keeping all my photos on
Google Photos, and between migrating photos from old phones and ones I have
taken on new phones, I have over 8,000 photos. This is completely disorganized
of course, but Google Photos has a search functionality. It even uses AI to
recognize the items in the photos, which you can use in the search. A search for
"tree" brings up photos of trees, "cat" brings up cats, and you can even tag
people and pets and then search for their names. Very useful, right?
Well, it is sometimes. I recently had to remember what my wife's car license
plate is. A quick search for "license plate" on google photos and luckily, I had
taken a photo of her car that included the license plate in the frame. Success!
On the other hand, I was trying to find some photos from a particular gathering
with my friends. Searches for their names, names of the place, or stuff I know
are in the picture turned up with nothing. I eventually had to painstakingly
scroll through all photos to find the one I wanted.
This reminds me of 2 things. One is this article named [To Organize The World's
Information](https://dkb.io/post/organize-the-world-information) by
[@dkb868@twitter.com](https://nitter.net/dkb868). One thing I found interesting
on that article was that the concept of "the library" has been lost over the
last few decades as a way to organize information. They define the library as a
hierarchical, categorized directory of information. The article also talks about
other organizational methods, and is worth a read.
The other thing is the note taking software we're building at my workplace,
[Dendron](https://dendron.so/). One of the core tenets of Dendron is that the
information is hierarchical. Something the founder Kevin recognizes was that
other note taking software make it easier to make new notes, but they don't
support hierarchical structures which makes it hard to find those notes later.
I've also experienced this, when I used other note taking software (or sticky
notes!) I found that it was easy to just jot down a few notes, but they very
quickly get lost or hard to find when you need them. A hierarchical organization
makes it possible to actually find and reference the information later.
Requiring organization creates a barrier of entry to storing information, but
what good is storing information if you can't retrieve the information later?
This seems to work pretty well with Dendron. Would it not work for other things?
Why not for taking photos? You of course want to be able to quickly snap a photo
so you can record a moment before it's gone, but perhaps you could be required
to organize your photos afterwards. Before modern cellphones & internet
connected cameras, you'd have to get your photos developed or transfer them off
an SD card: a step where you would have to (or have the opportunity to) organize
your photos. I wonder if we cloud services could ask you to organize your photos
before syncing them as well.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,44 @@
---
title: My response to Aurynn Shaw's "Contempt Culture" post
date: 2022-03-27
---
> This post is day 6 of me taking part in the
> [#100DaysToOffload](https://100daystooffload.com/) challenge.
I recently came across [Aurynn Shaw's article on "Contempt Culture"](https://blog.aurynn.com/2015/12/16-contempt-culture/).
I'm a bit late to the party, but I wanted to talk about this too.
Aurynn's article talks about how some programming languages are considered
inferior, and programmers using these languages are considered less competent.
It's a good article, and you should take a look at it if you haven't.
## my thoughts
One thing I've come to realize over the years is that there are really no "bad
programming languages". Ignoring esolangs like brainfuck which are not really
meant to be used for anything serious, most programming languages are designed
to fit a niche. I'm using the term like it's used in ecology: every programming
language has a place in the ecosystem of technology and programming.
PHP is bad? PHP certainly has its drawbacks, but it also has its advantages.
"Drop these files into a folder and it works" is an amazing way to get started
programming. It's also a great way to inject a bit of dynamic content into
otherwise static pages. In fact, it's simpler and more straightforward solution
than building a REST API and a web app where you have to re-invent server side
rendering just to get back to where PHP already was!
That's not to say PHP is perfect or the best language to use. It's a language I
personally don't like. But that doesn't make it a bad or "stupid" programming
language. At worst it's a programming language that doesn't fit my needs. If I
extrapolate that and say that PHP is a bad language, that would instead show my
ego. Do I really think I'm so great that anything I don't like is just
immediately bad? Something Aurynn said resonates with me here:
> It didn't matter that it was (and remains) difficult to read, it was that we
> were better for using it.
I just want to conclude this with one thing: next time you think a programming
language or tool or whatever is bad, think to yourself whether that's because it
doesn't feel cool or because you saw others making fun of it, or because you
actually evaluated the pros and cons and came up with a calculated decision.

View file

@ -1,6 +1,6 @@
~~~~~~~~
title: Solving app_data or ReqData missing in requests
title: Solving app_data or ReqData missing in requests for actix-web
## date: 2022-03-26

View file

@ -0,0 +1,21 @@
~~~~~~~~
title: “Black Crown Initiate”
## date: 2022-04-02
> This post is day 9 of me taking part in the #100DaysToOffload[a] challenge.
=> https://100daystooffload.com/ [a]
I love metal, Ive been listening to metal since I was 13. It was the first music genre that I actually liked: until I discovered metal I actually thought I didnt like music at all, because nothing I heard on the radio or heard my friends listening to were interesting to me. My taste in music has expanded and changed over the years to include different types of music and genres, but metal remains the one I love the most.
Demonstrating my metal-worthiness aside, Ive always listened to European metal bands. I had this weird elitist thought that “good” metal could only come from Europe, with exceptions for some non-European bands, and that American metal was just always bad. This is obviously false, but I just had never came across anything American that I had liked. Thats until recently.
I recently came across Black Crown Initiate[a], a progressive death metal band from Pennsylvania. And I have to tell you that they are amazing.
=> https://www.metal-archives.com/bands/Black_Crown_Initiate/3540386765 [a]
Their first release “Song of the Crippled Bull” is absolutely amazing. The music is just the right amount of metal and progressive, and lyrics are amazing. The clean vocals get the themes of the song across, while the growls give a lot of power to the songs. My favorite songs from this release are “Stench of the Iron Age” and the title track “Song of the Crippled Bull”. Other hightlights from the band Ive listened to so far include “A Great Mistake”, “Death Comes in Reverse”, “Vicious Lives”.
Im still making my way through their songs, but Im glad to have discovered something from America that I absolutely love. Im now trying to find more non-European bands that I enjoy.

View file

@ -0,0 +1,33 @@
~~~~~~~~
title: An introduction to Bulgur Cloud - simple self hosted cloud storage
## date: 2022-03-29
> This post is day 8 of me taking part in the #100DaysToOffload[a] challenge.
=> https://100daystooffload.com/ [a]
Ive been recently working on Bulgur Cloud, a self hosted cloud storage software. Its essentially Nextcloud, minus all the productivity software. Its also designed to be much simpler, using no databases and keeping everything on disk.
The software is still too early to actually demo, but the frontend is at a point where I can show some features off. So I wanted to show it off.
=> /img/2022-03-29-00-17-38.png The login screen
Ive been going for a clean “print-like” look. I think its going pretty well so far.
=> /img/2022-03-29-00-16-13.png The directory listing
Im not sure about the details of how the directory listing will look. I dont think I like the upload button in the corner, and the rename and delete icons feel like they would be easy to mis-press. There is a confirmation before anything is actually deleted, but it still would be annoying.
=> /img/2022-03-29-00-20-48.png Delete confirmation prompt
Something Im pretty happy with is the file previews. Ive added support for images, videos, and PDFs. Video support is restricted by whatever formats are supported by your browser, the server doesnt do any transcoding, but I think its still very useful for a quick preview. Im also planning on support for audio files. The server supports range requests, so you can seek around in the video without waiting to download everything (although Ive found that Firefox doesnt handle that very well).
=> /img/2022-03-29-00-22-48.png Video file preview
This is a web interface only so far, but Im planning to add support for mobile and desktop apps eventually. Ive been building the interface with React Native so adding mobile/desktop support shouldnt be too difficult, but Ive been finding that “write once, run everywhere” isnt always that simple. I ended up having to add web-only code to support stuff like the video and PDF previews, so Ill have to find replacements for some parts. Mobile and desktop apps natively support more video and audio formats too, and with native code you usually have the kind of performance to transcode video if needed.
The backend is written in Rust with actix-web, using async operations. Its incredibly fast, and uses a tiny amount of resources (a basic measurement suggests < 2 MB of memory used). Im pretty excited about it!
After a few more features (namely being able to move files), Im planning to put together a demo to show this off live! The whole thing will be open source, but Im waiting until its a bit more put together before I make the source public. The source will go live at the same time as the demo.

View file

@ -0,0 +1,38 @@
~~~~~~~~
title: Do kids not know computers now?
## date: 2022-03-28
> This post is day 7 of me taking part in the #100DaysToOffload[a] challenge.
=> https://100daystooffload.com/ [a]
One discussion point Ive seen around is that kids nowadays dont know how to use computers. Okay thats a bit of a strawman, but this article titled File Not Found[a].
=> https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z [a]
The gist of the article is that Gen-Z kids are too used to search interfaces. That means they dont actually know about where files are stored, or how they are organized. They only know that they can access the files by searching for them. The article talks about how professors ended up having to teach them how to navigate directory structures and file extensions.
As the article claims, it seems to be related to how modern user interfaces are designed. Our UIs nowadays are more focused around search capabilities: you just type in a search bar and find what you need.
=> /img/app-search-bar.png bemenu, displaying a partial search and several matching applications.
In some sense I do like this sort of interface. I use something like that when launching applications, both on my Desktop and on my laptop! Its actually a better interface compared to hunting for icons on your desktop. I use similar interfaces in VSCode to switch between open editor tabs.
However, this is a complimentary interface to hierarchy and organization. Going back to the file systems example discussed in the article, being able to search through your files and folders is useful. But its not a replacement for hierarchy. You cant just throw files into a folder, and expect to always find them accurately.
Let me give an example with Google Photos. I have been keeping all my photos on Google Photos, and between migrating photos from old phones and ones I have taken on new phones, I have over 8,000 photos. This is completely disorganized of course, but Google Photos has a search functionality. It even uses AI to recognize the items in the photos, which you can use in the search. A search for “tree” brings up photos of trees, “cat” brings up cats, and you can even tag people and pets and then search for their names. Very useful, right?
Well, it is sometimes. I recently had to remember what my wifes car license plate is. A quick search for “license plate” on google photos and luckily, I had taken a photo of her car that included the license plate in the frame. Success! On the other hand, I was trying to find some photos from a particular gathering with my friends. Searches for their names, names of the place, or stuff I know are in the picture turned up with nothing. I eventually had to painstakingly scroll through all photos to find the one I wanted.
This reminds me of 2 things. One is this article named To Organize The Worlds Information[a] by @dkb868@twitter.com[b]. One thing I found interesting on that article was that the concept of “the library” has been lost over the last few decades as a way to organize information. They define the library as a hierarchical, categorized directory of information. The article also talks about other organizational methods, and is worth a read.
=> https://dkb.io/post/organize-the-world-information [a]
=> https://nitter.net/dkb868 [b]
The other thing is the note taking software were building at my workplace, Dendron[a]. One of the core tenets of Dendron is that the information is hierarchical. Something the founder Kevin recognizes was that other note taking software make it easier to make new notes, but they dont support hierarchical structures which makes it hard to find those notes later. Ive also experienced this, when I used other note taking software (or sticky notes!) I found that it was easy to just jot down a few notes, but they very quickly get lost or hard to find when you need them. A hierarchical organization makes it possible to actually find and reference the information later.
=> https://dendron.so/ [a]
Requiring organization creates a barrier of entry to storing information, but what good is storing information if you cant retrieve the information later? This seems to work pretty well with Dendron. Would it not work for other things? Why not for taking photos? You of course want to be able to quickly snap a photo so you can record a moment before its gone, but perhaps you could be required to organize your photos afterwards. Before modern cellphones & internet connected cameras, youd have to get your photos developed or transfer them off an SD card: a step where you would have to (or have the opportunity to) organize your photos. I wonder if we cloud services could ask you to organize your photos before syncing them as well.

View file

@ -0,0 +1,27 @@
~~~~~~~~
title: My response to Aurynn Shaws “Contempt Culture” post
## date: 2022-03-27
> This post is day 6 of me taking part in the #100DaysToOffload[a] challenge.
=> https://100daystooffload.com/ [a]
I recently came across Aurynn Shaws article on “Contempt Culture”[a]. Im a bit late to the party, but I wanted to talk about this too.
=> https://blog.aurynn.com/2015/12/16-contempt-culture/ [a]
Aurynns article talks about how some programming languages are considered inferior, and programmers using these languages are considered less competent. Its a good article, and you should take a look at it if you havent.
## my thoughts
One thing Ive come to realize over the years is that there are really no “bad programming languages”. Ignoring esolangs like brainfuck which are not really meant to be used for anything serious, most programming languages are designed to fit a niche. Im using the term like its used in ecology: every programming language has a place in the ecosystem of technology and programming.
PHP is bad? PHP certainly has its drawbacks, but it also has its advantages. “Drop these files into a folder and it works” is an amazing way to get started programming. Its also a great way to inject a bit of dynamic content into otherwise static pages. In fact, its simpler and more straightforward solution than building a REST API and a web app where you have to re-invent server side rendering just to get back to where PHP already was!
Thats not to say PHP is perfect or the best language to use. Its a language I personally dont like. But that doesnt make it a bad or “stupid” programming language. At worst its a programming language that doesnt fit my needs. If I extrapolate that and say that PHP is a bad language, that would instead show my ego. Do I really think Im so great that anything I dont like is just immediately bad? Something Aurynn said resonates with me here:
> It didnt matter that it was (and remains) difficult to read, it was that we were better for using it.
I just want to conclude this with one thing: next time you think a programming language or tool or whatever is bad, think to yourself whether thats because it doesnt feel cool or because you saw others making fun of it, or because you actually evaluated the pros and cons and came up with a calculated decision.