Hello Hubzillians,
Thanks to everybody, we now have enough names to start a poll so this is what we did.
Here is the link.
https://poll.disroot.org/vKaffPUvem9uIpXN
Poll stays open until 03-08-2018
Thank you.
Thanks to everybody, we now have enough names to start a poll so this is what we did.
Here is the link.
https://poll.disroot.org/vKaffPUvem9uIpXN
Poll stays open until 03-08-2018
Thank you.
Königsberg, Russia, last edited: Sun, 01 Jul 2018 16:25:41 -0400
!Hubzilla Development
I'm use Hubzilla with latest PHP 7.2 release under FreeBSD environment (H2O HTTP/2 web-server + PHP-FPM).
It works quite fast but I think it can be faster with PHP opcache.
Perhaps experienced Hubzilla hub owners have any recommendations on opcache settings?
I'm use Hubzilla with latest PHP 7.2 release under FreeBSD environment (H2O HTTP/2 web-server + PHP-FPM).
It works quite fast but I think it can be faster with PHP opcache.
Perhaps experienced Hubzilla hub owners have any recommendations on opcache settings?
Hello, !Hubzilla Development
Can it be that Hubzilla posts with expiration date do not send delete notifications, or send some not understood by diaspora?
Yesterday I created an expiring post in Hubzilla, which was automatically deleted today. But I can still see my post in Hubzilla profile from diaspora account. diaspora developers say diaspora respects post deletions, from their answer I figured there shouldn't be any delays.
If Hubzilla doesn't send deletion notifications for expired posts to other networks, does it make this feature useful only for private posts? Public posts will gain little from it, outside of Hubzilla. If this can't be fixed, perhaps, this feature could be available only when the post permission is set to anything but "public" (or show warning if it's switched to "public")?
Can it be that Hubzilla posts with expiration date do not send delete notifications, or send some not understood by diaspora?
Yesterday I created an expiring post in Hubzilla, which was automatically deleted today. But I can still see my post in Hubzilla profile from diaspora account. diaspora developers say diaspora respects post deletions, from their answer I figured there shouldn't be any delays.
If Hubzilla doesn't send deletion notifications for expired posts to other networks, does it make this feature useful only for private posts? Public posts will gain little from it, outside of Hubzilla. If this can't be fixed, perhaps, this feature could be available only when the post permission is set to anything but "public" (or show warning if it's switched to "public")?
Thank you. That was very fast!
I accidentally mentioned only diaspora, but the issue applies to OStatus networks as well, at least Friendica and Mastodon. They respect deletion messages too. Luckily, ActivityPub networks also respect: I checked only Mastodon <-> Misskey though.
Yes, diaspora and Friendica don't let delete mail. Friendica lets do it locally for one user, even if both correspondents are on the same server (which is still better than hiding mail, as diaspora does). A painful topic - it basically makes direct conversations being stored eternally, in plain text. For now the only option is to warn users of those networks about it. :(
I accidentally mentioned only diaspora, but the issue applies to OStatus networks as well, at least Friendica and Mastodon. They respect deletion messages too. Luckily, ActivityPub networks also respect: I checked only Mastodon <-> Misskey though.
Yes, diaspora and Friendica don't let delete mail. Friendica lets do it locally for one user, even if both correspondents are on the same server (which is still better than hiding mail, as diaspora does). A painful topic - it basically makes direct conversations being stored eternally, in plain text. For now the only option is to warn users of those networks about it. :(
!Hubzilla Development How to connect activitypub site e.g. https://baptiste.gelez.xyz/~/Thablog/hello-world/ for commenting? I tried insert url in textbox "add contact" as result "Remote channel or protocol unavailable." In mastodon all work.
I've probed several urls on that site with a number of discovery formats and content-types and I can find no evidence of any ActivityPub, ActivityStreams, or even Webfinger services. Without any of these we can't make a connection. The only way I can figure to debug these is for them to make a connection in this direction so we have presumably valid ActivityPub URLs to work with. If you want to talk to somebody on the Plume side, we need an actor document that is served with an ActivityPub or ActivityStreams content-type. I can't find one. I've tried
https://baptiste.gelez.xyz/~/Thablog/hello-world
https://baptiste.gelez.xyz/~/Thablog
https://baptiste.gelez.xyz/
https://baptiste.gelez.xyz/@/Thablog/hello-world/ (discovered in one of the HTML documents returned)
https://baptiste.gelez.xyz/@/Thablog/hello-world/
https://baptiste.gelez.xyz/~
https://baptiste.gelez.xyz/thablog
https://baptiste.gelez.xyz/user/Thablog
https://baptiste.gelez.xyz/users/Thablog
acct:Thablog@baptiste.gelez.xyz
The last example is using webfinger. All the others were requests for anything with content-types
application/ld+json; profile="https://www.w3.org/ns/activitystreams"
application/activity+json
application/ld+json
application/json
using the HTTP Accept header. This was ignored in each case and an HTML document was returned which provided no additional discovery mechanisms in the header or body.
https://baptiste.gelez.xyz/~/Thablog/hello-world
https://baptiste.gelez.xyz/~/Thablog
https://baptiste.gelez.xyz/
https://baptiste.gelez.xyz/@/Thablog/hello-world/ (discovered in one of the HTML documents returned)
https://baptiste.gelez.xyz/@/Thablog/hello-world/
https://baptiste.gelez.xyz/~
https://baptiste.gelez.xyz/thablog
https://baptiste.gelez.xyz/user/Thablog
https://baptiste.gelez.xyz/users/Thablog
acct:Thablog@baptiste.gelez.xyz
The last example is using webfinger. All the others were requests for anything with content-types
application/ld+json; profile="https://www.w3.org/ns/activitystreams"
application/activity+json
application/ld+json
application/json
using the HTTP Accept header. This was ignored in each case and an HTML document was returned which provided no additional discovery mechanisms in the header or body.
I have installed the themes from https://github.com/DeadSuperHero/hubzilla-themes/
No themes show up on the webpage.
I used ./util/add_theme_repo
Imgur

No themes show up on the webpage.
I used ./util/add_theme_repo
Imgur

Imgur
Many thanks to massimiliano and the #Disroot community for creating and sharing their new Hubzilla #app for #Android. I was able to compile and install from the source code with no trouble at all (git clone, open in Android Studio, Build, install generated APK). This is an exciting addition that I personally have been seeking for a long time. I tried several times over the years to get an Android app online, but I just didn't have the time and expertise to get the job done. Now I am happy to study the #AndHub source and hopefully to contribute where I can to improve it.
disroot / AndHub
disroot / AndHub
Hubzilla Android app
What I wonder is how hard it will be to make a html 5 app for the librem 5 (currently stuck on ios till that comes out)
@Hubzilla Development+ Local problem or code issue? Els Mussols is running version 3.4.1, version_tag 3.4.1 server_role pro commit 3fc955abf. The issue: sourcing has stopped. My channel MoodleNet Fan sources two ActivityPub feeds, the items show up in /network but are not sourced into the fan channel. Any ideas?
Königsberg, Russia, last edited: Sat, 23 Jun 2018 10:40:26 -0400
!Hubzilla Support Forum
I subscribed on !Hubzilla Development forum but for unknown reason I doesn't recieve updates in my own hub network stream.
At my side latest message looks like

but really there is a lot of new posts

How can I figure out what is wrong and fix it?
I subscribed on !Hubzilla Development forum but for unknown reason I doesn't recieve updates in my own hub network stream.
At my side latest message looks like

but really there is a lot of new posts

How can I figure out what is wrong and fix it?
@Hubzilla Development+ What feedback can we give MoodleNet so they choose a decentralized architecture that works? 
Extended architecture document v 0.1
MoodleNet architecture options

MoodleNet architecture options
MoodleNet is a new open social media platform for educators, focused on professional development and open content. It sustainably empowers communities of educators to share and learn from each other to improve the quality of education, and will be an integral part of the Moodle ecosystem. There are broadly three approaches we can take to building o...
last edited: Tue, 19 Jun 2018 06:25:57 -0400
Hi !Hubzilla Development,
First of all sorry about my limited knowledge in Hubzilla.
We are thinking to use Hubzilla as our enterprise social media platform inside in our organisation. Currently our user profiles are exist in KeyCloack server (https://www.keycloak.org/) which acts as identity provider for various services in the organisation. So the question we have right now is whether we can reuse existing user profiles in our identify provider to login to the hubzilla or not. Even if we managed to reuse the existing user profiles we may have to create channels for the users hubzilla. So I am thinking which is the best approach implement this.
Does Hubzilla API support for for account, profile and channel creation ?
First of all sorry about my limited knowledge in Hubzilla.
We are thinking to use Hubzilla as our enterprise social media platform inside in our organisation. Currently our user profiles are exist in KeyCloack server (https://www.keycloak.org/) which acts as identity provider for various services in the organisation. So the question we have right now is whether we can reuse existing user profiles in our identify provider to login to the hubzilla or not. Even if we managed to reuse the existing user profiles we may have to create channels for the users hubzilla. So I am thinking which is the best approach implement this.
Does Hubzilla API support for for account, profile and channel creation ?
ok here it is. i think i had to modify the hubzilla code to get image uploading to work, but this was quite some time ago and maybe that works now? if not i should have the bits laying around here somewhere. i haven't used this for awhile so it might need some tweaking.
<?php
class HubZilla {
private $auth;public $page;public $reponse;public $form_url;public $post_title;public $post_channel;public $post_status;public $new_email;public $new_pwd;public $new_uname;public $follow_url;public $machine;public $uinfo;public $msg_subject;public $msg_txt;public $msg_screen_name;public $filename;public $lat;public $long;public function __construct($user=null,$pass=null,$form_url=null){ if (!$user||!$pass||!$form_url) { $this->response = 'Error loading, not authorized.'; } else { $this->auth = base64_encode($user.':'.$pass); $this->form_url = $form_url; $this->page = '/account/verify_credentials'; $this->qp(); }}private function qp(){ if (!$this->auth||!$this->form_url) { $this->response = 'Error, not authorized.'; } else { if ($this->filename != '') { $postdata = http_build_query( array( 'title'=>$this->post_title, 'channel'=>$this->post_channel, 'status'=>$this->post_status, 'media'=>base64_encode(file_get_contents($this->filename)), 'media_name'=>basename($this->filename), ) ); } else { $postdata = http_build_query( array( 'title'=>$this->post_title, 'channel'=>$this->post_channel, 'status'=>$this->post_status, 'new_email'=>$this->new_email, 'new_password'=>$this->new_pwd, 'new_uname'=>$this->new_uname, 'follow_url'=>$this->follow_url, 'machine'=>$this->machine, 'uinfo'=>$this->uinfo, 'text' => $this->msg_txt, 'screen_name' => $this->msg_screen_name, 'title' => $this->msg_subject, 'lat' => $this->lat, 'long' => $this->long ) ); }
/* at the moment no verify_peer or cn check, todo - needs a ca */
$opts = array( 'http' => array( 'method' => 'POST', 'header' => [ 'Content-type: application/x-www-form-urlencoded', 'Content-length: '.strlen($postdata), 'Authorization: Basic '.$this->auth ], 'content' => $postdata ), 'ssl' => array( 'verify_peer' => false, 'ciphers' => 'HIGH:!SSLv2:!SSLv3' ) ); $ctx = stream_context_create($opts); $form = file_get_contents($this->form_url.$this->page, false, $ctx); $this->response = $form;
/* remove ghosts */
unset($this->post_title);
unset($this->post_channel);
unset($this->post_status);
unset($this->filename);
unset($this->new_email);
unset($this->new_pwd);
unset($this->new_uname);
unset($this->follow_url);
unset($this->machine);
unset($this->uinfo);
unset($this->msg_txt);
unset($this->msg_screen_name);
unset($this->msg_subject);
} } public function __toString() { return $this->response; } public function status_update($title,$channel,$status,$path=null) { if ($path) { $this->filename = $path; $this->page = '/statuses/mediap'; $this->qp(); $status .= $this->response; } $this->post_title=$title; $this->post_channel=$channel; $this->post_status=$status; $this->page = '/statuses/update'; $this->qp(); return $this->response; } public function status_show($channel) { $this->post_channel=$channel; $this->page = '/statuses/user_timeline'; $this->qp(); return $this->response; } public function create_account($email,$pwd,$uname) { $this->new_email = $email; $this->new_pwd = $pwd; $this->new_uname = $uname; $this->page = '/accounts/create'; $this->qp(); return $this->response; } public function follow_request($url) { $this->follow_url = $url; $this->page = '/follow/request'; $this->qp(); return $this->response; } public function up_about($machine) { $this->machine = $machine; $this->page = '/up/about'; $this->qp(); return $this->response; } public function show_about($user) { $this->uinfo = $user; $this->page = '/show/about'; $this->qp(); return $this->response; } public function send_message($subject,$txt,$screen_name) { $this->msg_subject = $subject; $this->msg_txt = $txt; $this->msg_screen_name = $screen_name; $this->page = '/direct_messages/new'; $this->qp(); return $this->response; } public function send_reply($id,$uri,$subject,$txt,$screen_name) { $this->msg_subject = $subject; $this->msg_txt = $txt; $this->msg_screen_name = $screen_name; $this->page = '/direct_messages/new?replyto='.urlencode($id).'&uri='.urlencode($uri); $this->qp(); return $this->response; } public function inbox() { $this->page = '/direct_messages'; $this->qp(); return $this->response; } public function conversation($uri) { $this->page = '/direct_messages/conversation?uri='.urlencode($uri); $this->qp(); return $this->response; } public function send_file($path) { $this->filename = $path; $this->page = '/statuses/mediap'; $this->qp(); return $this->response; } public function set_geo($lat,$long) { $this->lat = $lat; $this->long = $long; }
}
$uri = '[zrl=https://hub.zilla.tech/api]https://hub.zilla.tech/api[/zrl]';
/* example 1, log in as admin and create account */
$test = new HubZilla('admin@example.com','password',$url);
echo $test->create_account('email@example.com','password','dummy7');
exit();
/* example 2, log in as created user and post status update */
$test = new HubZilla('email@example.com','password',$url);
$test->status_update('another test','dummy7','This is another test');
exit();
/* example 3, log in as created user and update about */
$machine = array();
$machine['caps']=array('image','rfid-read','nfc-read');
$test = new HubZilla('email@example.com','password',$url);
$test->up_about(json_encode($machine));
exit();
/* example 4, log in as created user and get 'about' from other local users */
$test = new HubZilla('email@example.com','password',$url);
echo $test->show_about('dummy7')."\n";
echo $test->show_about('waitman')."\n";
exit();
/* example 5, log in as created user and view status */
$test = new HubZilla('email@example.com','password',$url);
echo $test->status_show('dummy7');
exit();
/* example 6, log in as created user and connect to admin */
$test = new HubZilla('email@example.com','password',$url);
echo $test->follow_request('waitman@hub.zilla.tech');
exit();
/* example 7, upload image */
$test = new HubZilla('email@example.com','password',$url);
echo $test->send_file('X206-0.jpg')."\n";
exit();
/* example 8, status post with image - also set geo coord */
$test = new HubZilla('email@example.com','password',$url);
$test->set_geo(40.7464969,-74.0094471);
echo $test->status_update('test with photo','dummy6','This is a test with photo.','X206-0.jpg');
exit();
/* example 9, get direct message inbox */
$test = new HubZilla('email@example.com','password',$url);
$js= $test->inbox();
$inbox = json_decode($js,true);
foreach ($inbox as $k=>$v)
{
$msg = $test->conversation($v['parent_mid']);
$jr = json_decode($msg,true);
foreach ($jr as $jk=>$jm)
{
$id = $jm['id'];
$uid = $jm['uid'];
$parent_mid = $jm['parent_mid'];
$sender = $jm['sender_screen_name'];
$recipient = $jm['recipient_screen_name'];
$date = date('m/d/Y g:i a',strtotime($jm['created_at']));
$message = $jm['text']; echo "Message Id: ".$id."\n"."UID: ".$uid."\n"."Parent Mid: ".$parent_mid."\n". "From: ".$sender."\n"."To: ".$recipient."\n"."Date: ".$date."\n".$message."\n"; echo "---------------------------------------------------\n"; }
}
exit();
/* example 10, send direct message */
$test = new HubZilla('email@example.com','password',$url);
echo $test->send_message('A test subject','Hey there, this is totally like a test.','waitman');
exit();
/* example 11, send direct message reply */
$test = new HubZilla('email@example.com','password',$url);
/* use previous subject */
echo $test->send_reply(33,'e8846d41bb5a884780f21093d4c0eebcd30712583994f76e7e6457867d045534@hub.zilla.tech','','a test reply.','waitman');
/* change the subject */
echo $test->send_reply(33,'e8846d41bb5a884780f21093d4c0eebcd30712583994f76e7e6457867d045534@hub.zilla.tech','A New Subject','a test reply.','waitman');
exit();
oops, i haven't actually noticed that happening before on a code paste. :)
https://hub.zilla.tech/cli.txt
https://hub.zilla.tech/cli.txt
last edited: Tue, 19 Jun 2018 02:40:41 -0400
Hi !Hubzilla Development,
I want to authenticate Hubzilla with external authentication provider like KeyCloak. Basically I don't want to create accounts in Hubzilla server and just want to use trusted tokens issued by third party to login to the system. Does Hubzilla support OAuth2 and OpenID Connect? Any documentation will be greatly appreciated.
I want to authenticate Hubzilla with external authentication provider like KeyCloak. Basically I don't want to create accounts in Hubzilla server and just want to use trusted tokens issued by third party to login to the system. Does Hubzilla support OAuth2 and OpenID Connect? Any documentation will be greatly appreciated.
This is your /admin/features page which will turn on the feature by default for everybody on the site.
You may want /settings/features to turn it on for just your channel instead. Either way, select and enable 'OAuth2 Clients'. You'll then find an OAuth2 management link on the left hand side of your /settings page.
You may want /settings/features to turn it on for just your channel instead. Either way, select and enable 'OAuth2 Clients'. You'll then find an OAuth2 management link on the left hand side of your /settings page.
Hello, !Hubzilla Development
Is there a reason why statistics site poduptime calls Hubzilla software "Redmatrix"? Is it the preferred software name? If it's a remnant of older days, should an issue be opened in Poduptime repo to change it to "Hubzilla"?
Is there a reason why statistics site poduptime calls Hubzilla software "Redmatrix"? Is it the preferred software name? If it's a remnant of older days, should an issue be opened in Poduptime repo to change it to "Hubzilla"?
@sasiflo Yes, I wanted to find out whether it's safe to ask to change it to Hubzilla, that seems to be more relevant.
@James Lamentus Thanks a lot :) That was quick. I hope they'll change it then. There aren't so many statistics Fediverse websites. I often share those websites with newcomers who need to choose a server. So it will be good if the software names are consistent, to avoid confusion.
@James Lamentus Thanks a lot :) That was quick. I hope they'll change it then. There aren't so many statistics Fediverse websites. I often share those websites with newcomers who need to choose a server. So it will be good if the software names are consistent, to avoid confusion.
Here are some statistics for start.hubzilla.org compiled today for those interested in project outreach efforts.
84 registered but never logged in
65 have logged in more than one month after registration
152 have logged in within last month
350 created but never used
Accounts
483 successfully registered84 registered but never logged in
65 have logged in more than one month after registration
152 have logged in within last month
Channels
191 “active” channels (channel_active date is non-null)350 created but never used
Given that we created Hubzilla ⟩⟩ Start in October 2017, I would not judge this to be very successful so far. A total of 500 registrations (which includes any spam registrations) in eight months, with a net result of only 65 active channels, is clearly disappointing. It is true that the goal of start.hubzilla.org is to be a "gateway" hub, where people create an account to try things out and then ideally run their own hub or join another dedicated public hub; but the data show that, at best, less than 200 registrants ever got past the new channel page.
This is actually confusing to me. When a new channel is created via the /new_channel page, the only way a channel can be created in the
If this logic is sound, then it means that 65% of successful registrants were unable to create a channel due to a database failure?
This is actually confusing to me. When a new channel is created via the /new_channel page, the only way a channel can be created in the
channel database table and also have a null value for channel.channel_active is if the create_identity() function fails, and this can only be true if the create_identity() function fails after it has added the table record:...
$r = channel_store_lowlevel(
[
'channel_account_id' => intval($arr['account_id']),
'channel_primary' => intval($primary),
'channel_name' => $name,
'channel_address' => $nick,
'channel_guid' => $guid,
'channel_guid_sig' => $sig,
'channel_hash' => $hash,
'channel_prvkey' => $key['prvkey'],
'channel_pubkey' => $key['pubkey'],
'channel_pageflags' => intval($pageflags),
'channel_system' => intval($system),
'channel_expire_days' => intval($expire),
'channel_timezone' => App::$timezone
]
);
$r = q("select * from channel where channel_account_id = %d
and channel_guid = '%s' limit 1",
intval($arr['account_id']),
dbesc($guid)
);
if(! $r) {
$ret['message'] = t('Unable to retrieve created identity');
return $ret;
}
...If this logic is sound, then it means that 65% of successful registrants were unable to create a channel due to a database failure?
!Hubzilla Development
It looks like Github will be aquired by Microsoft. Since github in itself is not an open source project anyway, the latest news make the argument even bigger.
I would personally love to see redmatrix repositories moving to gitlab. Its open source and there is even some talks of possibilities to federate.
It looks like Github will be aquired by Microsoft. Since github in itself is not an open source project anyway, the latest news make the argument even bigger.
I would personally love to see redmatrix repositories moving to gitlab. Its open source and there is even some talks of possibilities to federate.
I think we should rename things to hubzilla-core (or better simply 'hubzilla') and hubzilla-addons
The 'hubzilla' in the current url is supposed to be the 'user' who published the repo, not a descriptive thing about the content.
The 'hubzilla' in the current url is supposed to be the 'user' who published the repo, not a descriptive thing about the content.
Unfortunately I think that request is a bit late. This is a complicated process involving synchronisation with people all over the world and involves changes to hundreds of scripts and files, and which at this point cannot easily be recalled or restarted.
last edited: Fri, 08 Jun 2018 15:05:32 -0400
cannot easily be recalled
I see, I hadn't realised that it had already been announced. I've now found it on @Hubzilla Announcements .
Still, this is a poor choice. It will be confusing for people viewing, let alone cloning, these repositories. If we don't want to bother folks who have already changed their configs, we could move them to proper names and then create new bare repos, with no issue tracker, under the old names, and config changes to be automatically pushed.
This could be done with the next release so we don't overwhelm folks. I'd be willing to help, but anyway, that's just my point of view, and perhaps my personal experience is not the same as others. If things stay as they are, I'll be fine.
Hello all.
An one user tried import a channel to my hub https://hub.plyuk.rocks via /import app and encountered a problem:
Pictures didn't import.
I found a lot of errors in the log.
Some if this:
and
An one user tried import a channel to my hub https://hub.plyuk.rocks via /import app and encountered a problem:
Pictures didn't import.
I found a lot of errors in the log.
Some if this:
2018-06-04T06:18:17Z:LOG_ERR::dba_driver.php:459:db_logger: dba_pdo: ERROR: INSERT INTO "photo" ("aid", "uid", "xchan", "resource_id", "created", "edited", "ti
tle", "description", "album", "filename", "mimetype", "height", "width", "filesize", "content", "imgscale", "photo_usage", "profile", "is_nsfw", "os_storage",
"os_path", "display_path", "photo_flags", "allow_cid", "allow_gid", "deny_cid", "deny_gid") VALUES ('20', '17', '', '6486b6a561b6b47d51b259613d5a47f7', '2018-0
5-23 07:04:05', '2018-05-23 07:04:05', '', '', 'Profile Photos', 'Avatar - Squid 8.png', 'image/png', '363', '363', '22346', '.PNG
.
', '1', '0', '0', '0', '0', '2fa853ca2664892e5599b369423f4cccd9a85220fc6a7920f1545d07319ab774/6486b6a561b6b47d51b259613d5a47f7', 'Profile Photos/Avatar - Squid
8.png', '0', '', '', '', '');
SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0x89
and
2018-06-04T06:19:27Z:LOG_ERR::dba_driver.php:459:db_logger: dba_pdo: ERROR: INSERT INTO "photo" ("aid", "uid", "xchan", "resource_id", "created", "edited", "title", "description", "album", "filename", "mimetype", "height", "width", "filesize", "content", "imgscale", "photo_usage", "profile", "is_nsfw", "os_storage", "os_path", "display_path", "photo_flags", "allow_cid", "allow_gid", "deny_cid", "deny_gid") VALUES ('20', '17', '', '4e81fb8eb967772050867edf04945fb6cdc532c2bcbd8a2702d57f513cd84147', '2018-05-27 11:33:17', '2018-05-27 11:33:17', '', 'Pejac', 'StreetArt', 'Pejac 2.jpg', 'image/jpeg', '667', '1000', '221027', '.... ', '1', '0', '0', '0', '0', '27abb0c2e17d1468602db5f2dc6bc60d3e3c05b8fd6bf3be2f59c423f00e6296/4e81fb8eb967772050867edf04945fb6cdc532c2bcbd8a2702d57f513cd84147', 'StreetArt/Pejac 2.jpg', '0', '', '', '', '');
SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0xff
It appears that the sync_files() function is using dbesc on the entire data array for input processing; but not using dbescbin on the content column - and postgres servers apparently can't handle binary data directly.
i think you need PDO::PARAM_LOB set on binary data? bytea should be escaped hex or "pg escape", and I don't think pdo will escape right unless you set PARAM_LOB ?? an idea.
There's a pg-style hex transform on initial storage, but this step was overlooked when importing the cloned data. I've pushed a fix, but it's kind of ugly because instead of just escaping an array of data and pushing it to the server we have to call out and treat differently any fields that are special snowflakes.
It's been over two years since we created the Hubzilla project logo. It was part of the project rebranding effort from RedMatrix to Hubzilla. For those unfamiliar with the older RedMatrix branding, it had a logo that looked a lot like a hashtag and the color scheme was red (obviously). Improving the project website was my first contribution, so long ago: https://web.archive.org/web/20131206203928/http://redmatrix.me/#control (check out that sweet parallax effect in the background). The new logo and graphics were a community effort, with generous contributions from people like @Iko and @Glenn and others. An example of some logos in convenient SVG format is here. All of them are in the core repo.
My favorite logo is the version without the house shape:

but it feels somehow too generic. It is also more suitable to small icon usage, like "share on Hubzilla" or "connect on Hubzilla" links; we should have something a bit flashier for larger logo purposes, such as on the project website.
If anyone is feeling creative, try some ideas and share it with us. Maybe it will end up on the project webpage!
My favorite logo is the version without the house shape:

but it feels somehow too generic. It is also more suitable to small icon usage, like "share on Hubzilla" or "connect on Hubzilla" links; we should have something a bit flashier for larger logo purposes, such as on the project website.
If anyone is feeling creative, try some ideas and share it with us. Maybe it will end up on the project webpage!
Just to make it clear for newer members of the hubzilla community: the base logo of hubzilla is the three connected dots. The house or roof etc. are just additions to the logo.
The koala is the mascot of zot! which is the protocol hubzilla is based on.
The koala is the mascot of zot! which is the protocol hubzilla is based on.
I just got to say a big THANK YOU! to all who have been so creative with our protocol mascot Zot!
My original files - SVG, PNG, XCF - are available for you at https://elsmussols.org/cloud/parlehaakon/Zot . I also have Zot somewhere with one to five eucalyptus leaves. These were intended as constitution towards intake of the poison inside the leaves, i.e. you need a constitution of just one to be a member and five to be a developer, our developers are tough as nails - or koalas.
last edited: Tue, 29 May 2018 11:54:27 -0400
@Hubzilla Development+ When creating webpage layouts or editing system pages, the editor already supports and suggests the allowed formatting when you type [ into the editor. A nice extension might be to include discovery of available options. What I mean by that is discovery of available templates when you have selected the template tag, discovery of the regions in the template when you start adding a region, discovery of available widgets when you start the widget tag and discovery of available blocks when you start a block tag. For widgets, discovery of available variables would be extra cool, e.g. adding a Clock widget and then immediately discover the military style variable, or the Portfolio widget and get the title, album and mode variables. For blocks, it would help the member recall what they called a block, removing typos.
What do you think?
What do you think?
code/feature completion can be good but i've also had trouble with some things that drive me crazy. like "intellisense" in visual studio is totally insane when working in a large project. i think if you do it you gotta have a way to easily turn it off it becomes annoying. and i haven't had luck lately with computers deciding the AI is gonna outsmart me and give me what i want before i ask for it. :)
@Andrew Manning Today I am a concept kind of guy. Tomorrow I may be a commit kind of guy. 
#conceptkindofguy #commitkindofguy
#conceptkindofguy #commitkindofguy
If yo try create a article (or message) with two or more exclamation point '!' the visibility always will be "only me" and you cannot change it to public.
I would like to make sorting orders (by comments or by posts) in /network (a.k.a. activity app) a display setting.
I don't think many people switch between those frequently. Moving this switch to display settings and the additional filters (starred, personal and new) to a widget in left aside will unclutter the UI without loosing any functionality. Also there will be more space to name the filters in a way that their function will be selfexplaining.
Any objections on this change?
!!Hubzilla Development
I don't think many people switch between those frequently. Moving this switch to display settings and the additional filters (starred, personal and new) to a widget in left aside will unclutter the UI without loosing any functionality. Also there will be more space to name the filters in a way that their function will be selfexplaining.
Any objections on this change?
!!Hubzilla Development
like you have in diaspora when you click on "my activities“
IIRC that is what you get if you apply the "Personal" filter...
Just throwing an idea out here. We've all discussed the fundamental privacy issue that prevents us from adding images to a comment with an ACL equivalent to the original post. For those new to the concept, this is because the ACL itself (i.e. the distribution list for the post) is private, and since the commenters do not know the ACL or have the same connections as the post author, they cannot set the ACL of an uploaded image/file to match. What a commenter can always do is decide that their image is public, which bypasses the need to know the ACL for the parent post. The tricky part is that some channels have a role in which it is impossible for a standard photo upload to be public; for instance they may set their permission limit to "no one can see my photos".
What if we make a "special" image/file upload type for this purpose, where it is understood that all images uploaded as comment imagery will be technically public? Such "comment files" could still be protected in a way by assigning them complex URLs similar to the "share by link" method of cloud storage platforms. People who have access to the discussion will get this URL as an embedded image or attached file in the normal comment thread, but the internet at large will have no way of querying the hub to retrieve a list of such file URLs, even if they are technically public in the sense of the word as Hubzilla uses it.
What if we make a "special" image/file upload type for this purpose, where it is understood that all images uploaded as comment imagery will be technically public? Such "comment files" could still be protected in a way by assigning them complex URLs similar to the "share by link" method of cloud storage platforms. People who have access to the discussion will get this URL as an embedded image or attached file in the normal comment thread, but the internet at large will have no way of querying the hub to retrieve a list of such file URLs, even if they are technically public in the sense of the word as Hubzilla uses it.
Ok, but then on the commenters side the content has to be public for the internet. It could be permitted just for the post owner, when proxying through the post owner‘s channel.










































Ta linijka dziwnie wygląda na Diasporze.