You can get 50 items at most with limit=50
. Try
https://lemmy.ml/feeds/c/lemmy_support.xml?sort=New&limit=50
Japanese Speaker. I can read/write some English but not well, so corrections are always appreciated.
プログラミングや音楽に興味があります。最近はEmacsでよく遊んでます。
You can get 50 items at most with limit=50
. Try
https://lemmy.ml/feeds/c/lemmy_support.xml?sort=New&limit=50
Not a direct solution but GET /api/v3/site
may help.
If I understood correctly, the first match
expression doesn’t take the ownership of the prev_data.kind
because the prev_data.kind
is a place expression:
https://doc.rust-lang.org/stable/reference/expressions.html#place-expressions-and-value-expressions
A place expression is an expression that represents a memory location.
https://doc.rust-lang.org/stable/reference/expressions/match-expr.html#match-expressions
When the scrutinee expression is a place expression, the match does not allocate a temporary location; however, a by-value binding may copy or move from the memory location.
I’m not sure what “a by-value binding may copy or move from the memory location” does mean, but I beleive no allocation means no move.
For the second match
, move happens. The tuple (prev_data.kind, new_data.kind)
tries
to take an ownership of the prev_data.kind
, but the prev_data
is
(borrowed from the vec
data
), so the tuple can’t take the ownership.
Oh I didn’t know the book is freely available under the CC license; I bought the Japanese translated version just a week ago. The book is quite difficult for me but the first chapter was very good read.
Interesting. I didn’t know about Akkoma, Pleroma, and MRF. For a future reference,
Oh I was completely wrong. cmp()
takes a number (not Ordering) and returns Ordering. Sorry for bothering you.
The Enum Ordering
provides compile-time safety. For example, if cmp() takes a string or int, the compiler can’t catch invalid inputs (“less”, “equal”, -123, …) at compile time and crash at runtime.
I think it’s a really good candidate for code reading for understanding how Lemmy API client works. I’d try to write some toy program with the crate in this week.
I think you’re right. In CGI, web server spawns a process for each incoming request to the CGI app, so the author provide static files for visitors to reduce the overhead.
Edit: here is the repository: https://codeberg.org/seppo/seppo and written in OCaml, so the single file CGI app is a compiled binary.
Hosting Lemmy instances on a localhost has these advantages: 1) no TLS required (right?), 2) can sniff the network traffic between the instances, 3) can change codes and settings of the all instances without asking to anyone, and more importantly, 4) no maintance cost. But if someone want to learn Web app deployment (TLS certs, hosting, etc.), your option would be a good idea.
For learning real Lemmy stuff, I’d run multiple Lemmy instances on LAN without internet connection to ensure the testing won’t pollute the fediverse.
Hi, thanks for setting up this community. I’m not a Lemmy source contributer but I like to read open sources. Here is a very simplified web application (including Lemmy) architecture overview and I hope this text helps for some newbies:
To find an controller from a path in the router, just grep (or a similar search function you use) the Lemmy source. For example, if I want to know how GET /user/export_settings
works, I’ll run these commands:
$ git clone https://github.com/LemmyNet/lemmy/ # if you haven't download the source yet
$ cd lemmy
$ rg export_settings
src/api_routes_http.rs
131: user_settings_backup::{export_settings, import_settings},
274: web::resource("/user/export_settings")
276: .route(web::get().to(export_settings)),
crates/apub/src/api/user_settings_backup.rs
68:pub async fn export_settings(
301: use crate::api::user_settings_backup::{export_settings, import_settings};
366: let backup = export_settings(export_user.clone(), context.reset_request_count()).await?;
402: let mut backup = export_settings(export_user.clone(), context.reset_request_count()).await?;
So we got the relevant route and the controller definitions very quickly. Settings to be exported are defined as a struct UserSettingsBackup
. The controller is defined as pub async fn export_settings
and it converts the struct to a JSON.
Rust might not be a easy programming language but the official text (calld The Book is very friendly for newbies, so don’t hesitate to read and to write a simple program like guessing game.
Maybe some rules in nginx.conf has been delegated to nginx-internal.conf.
I suspect your instance was used to backup the original communities.
You shouldn’t post the auth
value here - it works like a username and password.
I think
GET /api/v3/resolve_object
should work:(note that the value of
q
is url-encoded by--url-query
)