otl

joined 1 year ago
[–] otl@lemmy.sdf.org 1 points 9 months ago
[–] otl@lemmy.sdf.org 0 points 1 year ago* (last edited 1 year ago) (1 children)

Yes that's true. I guess what I wanted to point out is that GitLab has dependencies like Postgres, Redis, Ruby (with Rails), Vue.js... whereas Forgejo can use just SQLite and jQuery.

[–] otl@lemmy.sdf.org 0 points 1 year ago* (last edited 1 year ago) (3 children)

Something not mentioned yet: Forgejo, the software running Codeberg, has a smaller feature set and narrower scope than GitLab ("GitLab is the most comprehensive AI-powered DevSecOps Platform" from their website).

Forgejo is much easier to administrate for smaller groups. For example compare the dependencies mentioned in the Forgejo installation documentation and the Gitlab installation documentation.

 

One of my favourite talks on programming. Just wanted to share for others who haven't seen this before.

[–] otl@lemmy.sdf.org 1 points 1 year ago* (last edited 1 year ago)

Thankfully uBlock Origin removes those parameters for us. The default filters include a whole bunch of removeparam filters; e.g. privacy.txt See also removeparam.

Maybe you could help your friends and family install Firefox and/or uBlock Origin? Every little bit helps :)

 

I’m in Indonesia at the moment and my internet connections are poor. So having an app that weighs just 20MB is fantastic!

That’s all I really wanted to say. Congrats to the devs on the progress so far!

[–] otl@lemmy.sdf.org 0 points 1 year ago (1 children)

Curious: why no leather? Is it for the rain? (I’m from Australia so I don’t have any really warm gloves)

 

I recently wrote a command-line utility lemmyverse to find communities indexed by Lemmy Explorer. A quick count shows almost 14%(!) of all communities indexed by lemmyverse are junk communities created by a single user @LMAO (reported here):

% lemmyverse . | wc -l
  30376
% lemmyverse enoweiooe | wc -l
   4206

Here's a python script, using no external dependencies, which uses Lemmy's HTTP API to delete all communities that @LMAO moderates:

#!/usr/bin/env python

import json
import urllib.parse
import urllib.request

baseurl = "https://lemmy.world"
username = "admin"
password = "password"

def login(user, passwd):
	url = baseurl+"/api/v3/user/login"
	body = urllib.parse.urlencode({
		"username_or_email": user,
		"password": passwd,
	})
	resp = urllib.request.urlopen(url, body.encode())
	j = json.load(resp)
	return j["jwt"]

def get_user(name):
	query = urllib.parse.urlencode({"username": name})
	resp = urllib.request.urlopen(baseurl+"/api/v3/user?"+query)
	return json.load(resp)

def delete_community(token, id):
	url = baseurl+"/api/v3/community/delete"
	params = {
		"auth": token,
		"community_id": id,
	}
	body = urllib.parse.urlencode(params)
	urllib.request.urlopen(url, body.encode())

token = login(username, password)
user = get_user("LMAO")
for community in user["moderates"]:
	id = community["community"]["id"]
	try:
		delete_community(token, id)
	except Exception as err:
		print("delete community id %d: %s" % (id, err))

Change username and password on lines 8 and 9 to suit.

Hope that helps! :) Thanks for the work you all put in to running this popular instance.

[–] otl@lemmy.sdf.org 1 points 1 year ago

In Australia on my 13,000+km ride I used a combo of paper maps and HEMA Offline Topo Maps. Paper maps are handy on long trips as when you're done with them, you can pass them on to someone else; less luggage. I brought my iPhone with me anyway but would leave it on aeroplane mode or just keep it off entirely if I knew where I was going. Battery lasts ages (several days) like that. Offline maps on the smartphone are handy for planning.