Please read the Code of Conduct that applies for this forum:
Click to open/close
The Code of Conduct of Hubzilla.org (Version 22 June 2024)
In all publications and interactions on Hubzilla.org, we ask you to cultivate and demand respectful interaction with one another and to be aware of the consequences of your actions (in relation to the world and the future).
Your'e asked to behave in a way that enables all users and visitors of Hubzilla.org to participate (to inform, to get informed, to discuss, to develop, to create) without harassment, regardless of age, body size, disability, ethnicity, gender characteristics, gender identity and expression, level of experience, education, social status, nationality, personal appearance, race, caste, skin colour, religion or sexual identity and orientation.
We ask you to act and interact in a way that contributes to an open, welcoming, diverse, inclusive and healthy community.
These are examples of behaviours that contribute to a positive environment for the community:
- Show empathy and kindness towards everyone
- Respect different opinions, points of view and experiences
- Give constructive feedback
- Accept constructive feedback with dignity
- Take responsibility
- Apologise to those affected by your mistakes
- Learn from experience
- Focus on what is best not only for you as an individual, but for the community as a whole
The following behaviour will result in your channel being blocked:
- You use sexualised language, images or symbolism
- You make an unwanted sexual advance
- You make offensive or derogatory comments
- You attack someone personally or politically
- You engage in trolling
- You harass someone, whether publicly or privately
- You publish other people's private information without their express permission
- You display behaviour that could reasonably be considered inappropriate in a professional environment
The board of directors of the Hubzilla Association will remove posts and comments that do not comply with this Code of Conduct and block their author.
This Code of Conduct applies to all content published in a channel which is hosted on hubzilla.org, even if the channel is a private one (a closed circle).
MIME type detection in include/attach.php
IIRC there is no need to determine the mimetype again, we have already looked at the headers and extension before attempting finfo().
Both, headers and extension, are easy to manipulate hence we rely on finfo(). IMO we should only fall back to header/extension based mimetype if the uploader has code rights.
Both, headers and extension, are easy to manipulate hence we rely on finfo(). IMO we should only fall back to header/extension based mimetype if the uploader has code rights.
@Hubzilla Development To serve as a general-purpose WebDAV service, we shouldn't tweak the MIME type at all. But for my sake, we can swipe off any exec attributes
Proposed Policy for generative "AI" use in the Hubzilla project
- - -
Just found out about the NLnet GenAI policy: https://nlnet.nl/foundation/policies/generativeAI/
TL;DR: they basically allow usage with full disclosure of model, prompts and a log thereof. Also one has to make sure the outcome can be legally distributed as FOSS etc.
I seriously wonder if that is even possible thinking_face
TL;DR: they basically allow usage with full disclosure of model, prompts and a log thereof. Also one has to make sure the outcome can be legally distributed as FOSS etc.
I seriously wonder if that is even possible thinking_face
A good example of why the policy is necessary... https://hubzilla.org/channel/adminsforum?mid=d4ecbbe8-c020-5d2b-aa98-a43e2973da68
What about 3rd party libraries we rely on?
Channel Creation Wizard
@Der Pepe (Hubzilla) ⁂ Personally I think this would be a great idea.
PDO Prepared Statements
I'm wondering if it would be better to just use PDO directly. The PDO object handle is available today via
Unless we really need a layer between us and PDO, I'm not sure it's worth maintaining one.
One example of where having a layer between is useful is the
However, if we're moving toward a more entity based architecture, this kind of logic may be better implemented there?
In any case, I think I would prefer an object based interface. Something like:
Instead of single letter function names in the global namespace.
Btw, one additional advantage of using PDO directly, is that it can populate objects for us directly: See PDO::FETCH_CLASS and PDOStatement::fetchObject.
This could be very handy when moving to entity classes.
DBA::$dba->db which is a bit clumsy, but perhaps add a shortcut like DBA::db(), App::db(), a singleton, or even just a global $hzdb object?Unless we really need a layer between us and PDO, I'm not sure it's worth maintaining one.
One example of where having a layer between is useful is the
DBA::$dba->insert() function. It returns the inserted row without the calling code having to care which DB it's connected to. (MySQL don't support the RETURNING clause, but Postgres and MariaDB do.)However, if we're moving toward a more entity based architecture, this kind of logic may be better implemented there?
In any case, I think I would prefer an object based interface. Something like:
$stmt = $db->prepare(...);
$stmt->execute(...);Instead of single letter function names in the global namespace.
Btw, one additional advantage of using PDO directly, is that it can populate objects for us directly: See PDO::FETCH_CLASS and PDOStatement::fetchObject.
This could be very handy when moving to entity classes.
Here is the initial merge request: https://framagit.org/hubzilla/core/-/merge_requests/2313
Entity/Repository Model for Hubzilla
- - -
Trying to build a Xchan entity based on the structure of the Addon example. Let's see how this goes slightly_smiling_face
@Harald Eilertsen what would be best practice constructing an entity where we might not have all the data yet? Is it acceptable to provide default values in the constructor?
E.g. when storing an actor we do not have its local profile image url yet because the image is fetched and processed later via a Daemon.
E.g. when storing an actor we do not have its local profile image url yet because the image is fetched and processed later via a Daemon.
Another question to make sure i understand things correctly:
Basically we want to check/sanitize the data in some sort of save or store method and only build the object after it is stored. We do not want to do this during construct and we also do not want to be able to construct an entity from outside the class. Right?
Basically we want to check/sanitize the data in some sort of save or store method and only build the object after it is stored. We do not want to do this during construct and we also do not want to be able to construct an entity from outside the class. Right?
Federation with lemmy communities breaking due to user agent identifying as browser.
- - -
Here are some examples...
Friendica:
Mastodon:
Peertube:
I like the peertube one because it does not overshare information.
Friendica:
Friendica/2026.05 DatabaseVersion/1595 Request/ActivityPub/1 +https://host.tldMastodon:
Mastodon/4.5.11 (http.rb/5.3.1; +https://host.tld/)Peertube:
PeerTube/8.2.2 (+https://host.tld)I like the peertube one because it does not overshare information.
@Hubzilla Development @Mario Vavti @Saiwal
Changing the user agent is a nice idea and can certainly make sense. But let’s look at the bigger picture:
It doesn’t change the actual problem. Suppose I change the user agent string so that it works with instance "A"; that, however, means it won’t work with instance "B" using that string, which expects a different string – which in turn won’t work with instance "C"...
How are we supposed to deal with that? Where will it end? "Floating user agent strings"?
You’ll never get to grips with this "gatekeepers against AI bots" nightmare this way. Anyone who puts their Fediverse server behind such a barrier has to accept that their instance is no longer fully integrated into the Fediverse.
Changing the user agent is a nice idea and can certainly make sense. But let’s look at the bigger picture:
It doesn’t change the actual problem. Suppose I change the user agent string so that it works with instance "A"; that, however, means it won’t work with instance "B" using that string, which expects a different string – which in turn won’t work with instance "C"...
How are we supposed to deal with that? Where will it end? "Floating user agent strings"?
You’ll never get to grips with this "gatekeepers against AI bots" nightmare this way. Anyone who puts their Fediverse server behind such a barrier has to accept that their instance is no longer fully integrated into the Fediverse.
Nested reshare beyond second level possible?
asking because i was trying multilevel reshare with my theme and with activitypub enabled it was producing corrupted
RE: ..... url due to matching the first [share] block with the first [\share] and other levels get ignored.
Outbound nested reshares are not yet implemented. I don't mind them but question their usefulness person_shrugging
Cleaning up missing return statements in functions
@Hubzilla Development i will have a look...
Expert mode of "Inspect queue"
I do think, however, that an admin should know what they’re doing when they delete entries from outq.
We have had a different experience, hence the expert mode.
In my view, automatically flagging a hub as offline if it has been unreachable for a long time seems a bit unreliable.
In this case we should make it reliable. zotlabs.org is a special case because it never ever returns a HTTP code.
The fundamental question (regardless of whether a hub is marked as permanently offline automatically after a certain period, or by explicitly marking it in expert mode) is: what happens if such a hub becomes accessible again after a long period of time?
AFAIK it will be marked alive again as soon as we get a message from it.