S
Soykaf Blog
blog.soykaf.com · Company blog · on HN since 2018
Soykaf Blog covers Pleroma, a fediverse server written in Elixir, including ActivityPub, PostgreSQL, and privacy topics.
What HN saysHN commenters link it as the explainer for what Pleroma is, how it works, and how cheaply it can run.
18HN people shared it
6linked it in comments
14stories submitted
186story points
4 years agolast shared
2018people per year2026
Most-shared posts
- 1What Is Pleroma? (distributed social network in Elixir)5 people · 13 points · first shared 2018 · 2 comments on HN
- 2Prepared statements and their surprising performance implications3 people · 141 points · first shared 2020 · 36 comments on HN
- 3Pleroma 1.0, a Mastodon compatible fediverse server in Elixir2 people · 8 points · first shared 2019 · discussion on HN
- 4Privacy and Tracking on the Fediverse2 people · 4 points · first shared 2018 · discussion on HN
- 5End-to-End Encryption and the Fediverse2 people · 4 points · first shared 2020 · discussion on HN
- 6Implementing ActivityPub in an Elixir Twitter Clone2 people · 3 points · first shared 2018 · discussion on HN
- 7Gopher Support in Pleroma1 people · 6 points · first shared 2018 · 1 comments on HN
- 8PostgreSQL Search: From the Trenches1 people · 4 points · first shared 2020 · discussion on HN
- 9Stable release of Pleroma, ActivityPub compatible microblogging server software1 people · 3 points · first shared 2019 · discussion on HN
What HN people wrote when they linked it
onphonenow · 2022-03-07
Right, benefits include performance gains.
From HN:
https://blog.soykaf.com/post/postgresql-elixir-troubles/
In addition to security.
mxuribe · 2020-03-09
An older post might help you: https://blog.soykaf.com/post/what-is-pleroma/
Admittedly, this is dated, but is still valid, and should help you get a basic understanding of what pleroma is - including a few screenshots. I hope that helps!
phoe-krk · 2019-01-30
The owner of each instance pays the costs for hosting a given instance. So, basically, domain + hosting.
Note that these costs can be really low; Pleroma[0] can be run on a Raspberry Pi 3 or a $2.50 Vultr instance[1]
[0] https://pleroma.social/
[1] https://blog.soykaf.com/post/what-is-pleroma/
marci · 2018-08-27
Pleroma is written in Elixir
https://blog.soykaf.com/post/what-is-pleroma/#less-moving-parts
rogerbraun · 2018-06-27
Some background information on ActivityPub in Pleroma:
https://blog.soykaf.com/post/activity-pub-in-pleroma/
https://blog.soykaf.com/post/what-is-pleroma/
hendi_ · 2020-06-23
Your point a) is moot, this is not what this is about. When writing manual SQL nothing stops you from doing `SELECT * FROM persons WHERE age > 'eighteen'` (the `age` field is a number, obviously). Coming from Django I was often bitten by `Person.objects.filter(age__gt=trashhold) # boom!` (note the misspelled variable "threshold") or, if you prefer manual writin SQL: `Person.objects.raw("SELECT * FROM persons WHERE age > {}", trashhold) # boom! as well`. (Admittedly this is unrelated to type safety, just a disadvantage of Python being interpreted, but still something that Haskell/IHP protects me of.)
Regarding b), yes there are good reasons for prepared statements. I won't go into your argument "for scalability" (premature optimization cough) but cached query plans aren't perfect either: data and data typologies change, and so does the optimal query plan. See https://blog.soykaf.com/post/postgresql-elixir-troubles/ for a blog post about Elixir/Phoenix/Ecto users being bitten by that.
> I wonder if the person who wrote this understands SQL to sufficient depth. Not saying either way, just asking.
I did not write the IHP code, just the above comment. But I've read many of CJ Date's books and have a good grasp on the relational model, and of SQL too. I simply don't see things as black/white, there are certain queries where I do prefer prepared statements and functions, or PL/pgSQL even, then there are ones where I use an external .sql file to keep things tidy. But most of…