Does the db sync work for browser?

I tried running the examples/browser/browser.html with the SignalServer changed to <IP_ADDRESS>:9090 and started the js-libp2p-webrtc-star signaling server locally. But when I run it in two tabs then the data being pushed to eventlog doesn't seem to sync across both of them.
Am I missing something here? Does the data sync work in the browser as the node example seem to work fine.
P.S: I am new to IPFS and ordit-db so my knowledge is limited.

I am confused about this as well. I am using the kvstore and data persists while the app is running; however, when I restart the app, the data is gone. I am using the IpfsBrowserDaemon with the signalling server from the browser example.

Following is what I'm seeing, whenever i start in a new incognito window the count starts from beginning i.e. its not syncing.

Hi everyone and thanks for reporting the bugs! We just released a new version of orbit-db, including updated examples. Would you care to take another try and see if this bug still happens?
As a clarification, as @zabirauf shows in his screenshots, you'll have to open the second peer in an incognito tab, otherwise the peers won't connect as they use the same ipfs repo (ie. they have the same IPFS peer id).

@haadcode When i run the example, i get the following error
TypeError: db.load is not a function
    at IpfsBrowserDaemon.ipfs.on (index.js:100)
    at IpfsBrowserDaemon.EventEmitter.emit (events.js:78)
    at _initDaemon.then.then (ipfs-browser-daemon.js:20)

@zabirauf I believe this is due to not updating node_modules after pulling the latest. Make sure you do rm -rf node_modules && npm install after you've pulled from master in order to get the latest modules. Let me know if this helped.

@haadcode Thanks, that solved the issue. I do see the KVStore to be in sync but the log and counter still seem to be unsynced.

@zabirauf thank for confirming this fixed your issue.
I see that in your video, the "Peers" at the top says 0 for both. This means that the two peers are not connected and as such, can't sync the databases (any of them). We still have some bugs related to the connectivity, so it might be that the peers don't connect every time. To go around this, I usually restart both peers until I see "Peers: 1" in both :) Let me know if this helps!

@haadcode Thanks a lot, it works. Everything syncs now 👍 . Closing the issue now.

Great to hear! Please don't hesitate to open new issues if you come across any.


ClusterConnectionManager removes slots in case of errors while parsing partitions

Expected behavior
In case of any errors while cluster topology scanning ClusterConnectionManager should reschedule it.
Actual behavior
In case of errors (e.g. DNS resolution errors) while parsing partitions got from CLUSTER NODES command, ClusterConnectionManager continue processing and updates cluster topology with partially parsed partitions which leads to removing slots from known cluster topology and errors while performing reading/writing ops on removed slots.
Steps to reproduce or test case

Set up big enough (100+ nodes) Redis Cluster /w TLS (or ElastiCache cluster) enabled (it will return DNS names instead of IPs for CLUSTER NODES commands);
Run application doing some reading/writing ops on the cluster;
Wait till getting DNS resolution errors (or emulate any other errors) while cluster topology scanning and partitions parsing;

Redis version
6.2.6
Redisson version
3.17.6

Fixed. Problems with DNS resolution will be fixed in https://github.com/redisson/redisson/issues/1625

Hey, @mrniko. It is mostly about DNS issues, but not only. As far as I can see, you've already substituted handle to thenApply while I was creating a PR, but there is  some additional error handling in my one, please, take a look: https://github.com/redisson/redisson/pull/4604. Hope, you will find it useful.


Check the environment before installing docker

INFO[14:41:47 UTC] Installing docker……
ERRO[14:41:52 UTC] failed to install docker: failed to exec command: sudo sh -c "[ -z $(which docker) ] && curl https://kubernetes.pek3b.qingstor.com/tools/kubekey/docker-install.sh | sh ; systemctl enable docker": Process exited with status 1  node=<IP_ADDRESS>
WARN[14:41:52 UTC] Task failed…
WARN[14:41:52 UTC] error was: interrupted by error
Error: failed to install docker: interrupted by error

Root cause:
root@i-jxd66w7b:~# curl get.docker.com -L | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   183  100   183    0     0    375      0 --:--:-- --:--:-- --:--:--   374
100 13328  100 13328    0     0   6690      0  0:00:01  0:00:01 --:--:-- 22029
# Executing docker install script, commit: 442e66405c304fa92af8aadaa1d9b31bf4b0ad94
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

There is detailed output for each step, but I blocked the output for this step.


unfriendly console system

When you run the executable via double click, the window simply closes with no prompt. (I know in go world we have a neat tool called mousetrap to help with this - https://github.com/inconshreveable/mousetrap)

stdout doesn't echo out errors, you have to open up logs.txt to get any data. E.g. console was empty, but logs noted generic  usage (I hadn't provided parameters).

This has been improved. Will be released in the new 0.2 version. Thanks for the suggestions!


Run integration tests before merging into main

Github has free emulators available for open source. We want to use them to automatically run integration tests on iOS and Android on every check in

@vinothvino42 does it already work?

@vinothvino42 moving this up your queue

Writing integration test for ensemble with flutter integration test framework is not seamless.
I had a chat with full time app tester and he recommended Appium, basically it's a black box testing which doesn't care who the app is built (i.e new framework like ensemble). So, I suggest we git it a try.


Server not showing in online

Hello
after launching a server it doesn't show in online tab so my friends can't join. Only shows in LAN.
It worked just fine yesterday but after I rollbacked it suddenly stopped working. Tried doing every step again, still nothing.

Hi Juhion, do you know if it shows up if your friends search for the server name?
The rollback shouldn't causing any issues. Also, does this happens to a specific world or it happens to ever server you launch with Vox? Does the server shows up if you host it via the in-game menu?


UK number down.

I have the same issue, but I would also like to add that the US number (and I suppose all the other numbers) are down. #


Cast characters to unsigned char before passed to isspace()

This would avoid sign extension.
Reason: The c argument is an int, the value of which the application
shall ensure is a character representable as an unsigned char or equal
to the value of the macro EOF. If the argument has any other value,
the behavior is undefined.
[man7.org] (http://man7.org/linux/man-pages/man3/isspace.3p.html)

This fix is required to use non-ASCII charsets (ex. UTF-8)

Can you add a test case?

@gxc @dofuuz
Sorry, but I cannot see why this should be required to support non-ASCII charsets.
I cannot reproduce these issues. I added commit ab196cb3cfc7efdd0bc5a3a7475a373a88b16407 to Test UTF-8 and dots in keys and the test passed.
For now I will close this pull request.
If this is a Windows issue, please help us to get the test build and run on our Windows runner so we can reproduce it. Then this pull request may be re-considered.


Ionic + ngCordova + background geolocation + DeviceReady issue

Hey Chris,
Please see my question here - http://stackoverflow.com/questions/31195046/ionic-ngcordova-background-geolocation-deviceready-issue. I'm really not sure why this is happening, and despite having worked on it for three days, can't seem to figure it out.
Thanks!

I'm not sure if it's related, but I've experienced something really wonky myself (albeit in the Premium Version).
For some reason, I found window.plugins.backgroundGeoLocation didn't exist sometimes
defined Here
When I changed that to
<clobbers target="window.backgroundGeoLocation" />
My problem went away.

Interesting. I'll give that a shot, stay tuned...

Nah, it didn't fix the issue...I hate to ask, but would you mind pulling down my public repo and seeing if you can repro the issue? (it's a blank screen; when you click the hamburger button it should take you to a page with a map. Then it should start tracking your location.)
It worked perfectly the first time I installed it on my phone, but the second time, it never got to the map page - instead, it just didn't do anything. It's the same way on my production application, pressing the button for the page that uses deviceready doesn't do anything :(
Is there any alternative to using $ionicPlatform.ready or deviceready?

Have you tried installing my plugin directly from teh repo rather than
through this Ionic wrapper?
$ cordova plugin add
https://github.com/christocracy/cordova-plugin-background-geolocation
This Ionic wrapper is not required.
On Thu, Jul 2, 2015 at 5:55 PM, Sahil Talwar<EMAIL_ADDRESS>wrote:

Nah, it didn't fix the issue...I hate to ask, but would you mind pulling
down my public repo and seeing if you can repro the issue? (it's a blank
screen; when you click the hamburger button it should take you to a page
with a map. Then it should start tracking your location.)
It worked perfectly the first time I installed it on my phone, but the
second time, it never got to the map page - instead, it just didn't do
anything. It's the same way on my production application, pressing the
button for the page that uses deviceready doesn't do anything :(
Is there any alternative to using $ionicPlatform.ready or deviceready?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118178872
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

Unfortunately, the app that I'm building is a full on ionic app - the sample app is just something I built to demonstrate the issues I'm having with the production app. That being said, I'm not sure if you mean something specific when you say "this Ionic wrapper" (other than the obvious, Ionic itself). I CAN say, though, that I installed your plugin exactly the way you suggested.
Is there something else that I can do, or somewhere that I'm using Ionic that I don't need to?
My apologies for the lack of understanding.

It occurs to me that the initialization code in my app.js may be relevant - am I configuring it wrong here, perhaps?
.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }

    if (window.cordova) {
      if (window.plugins && window.plugins.backgroundGeoLocation) {
        BackgroundGeolocation.configurePlugin(window.plugins.backgroundGeoLocation);
      }
    }
  });
})

I don't understand...are you using the Premium Version?
You're clearly quoting code there from my Premium Version Sample App

You're absolutely right, that's from the sample app! I could not figure out what I was doing wrong, so I went hunting for more examples of correct usage, and put together what I could.
However, I'm not using the premium version yet; this app is intended to be a prototype for a VC demo. Tech decisions are all being deferred until the startup receives funding :)
So, I take it from your comment that either I don't need the code or it's wrong - should I remove or alter it?

You cannot use code from the premium SampleApp.
The free version hosts its own SampleApp.  See README for details.
Boot this SampleApp on your device.
On Friday, July 3, 2015, Sahil Talwar<EMAIL_ADDRESS>wrote:

You're absolutely right, that's from the sample app! I could not figure
out what I was doing wrong, so I went hunting for more examples of correct
usage, and put together what I could.
However, I'm not using the premium version yet; this app is intended to be
a prototype for a VC demo. Tech decisions are all being deferred until the
startup receives funding :)
So, I take it from your comment that either I don't need the code or it's
wrong - should I remove or alter it?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118258429
.

--
Snet from Gmail Mobile

Hey Chris,
I understand that I can't use code from the premium app. However, the sample in your free app uses jQuery, not Ionic. Since my problem is specifically with the "deviceready" listener on a device, I can't see anything in the the sample app that's helpful to me - I'm sorry if I'm being thick or misunderstanding something.
Could you please help me understand what I need to change in order to get this very simple demo app working? Thanks again for your time.

Precisely.  I want you to boot the SampleApp completely isolated from your
application-code so we can confirm that everything works without Ionic
involved.
On Mon, Jul 6, 2015 at 11:23 AM, Sahil Talwar<EMAIL_ADDRESS>wrote:

Hey Chris,
I understand that I can't use code from the premium app. However, the
sample in your free app uses jQuery, not Ionic. Since my problem is
specifically with the "deviceready" listener on a device, I can't see
anything in the the sample app that's helpful to me - I'm sorry if I'm
being thick or misunderstanding something.
Could you please help me understand what I need to change in order to get
this very simple demo app working? Thanks again for your time.
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118889734
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

Gotcha. Just to ensure that I understand - you're saying you'd like me to use PhoneGap to install the Sample App? Is that right?

I’m not concerned how you install the SampleApp on your device.  I have
nothing to do with PhoneGap.
Personally, I’m on a mac, I have Xcode installed:
$ cordova build ios
$ cordova run ios —device
On Mon, Jul 6, 2015 at 12:01 PM, Sahil Talwar<EMAIL_ADDRESS>wrote:

Gotcha. Just to ensure that I understand - you're saying you'd like me to
use PhoneGap to install the Sample App? Is that right?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118909671
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

Got it. I installed it on two separate phones - a Droid Turbo and a Galaxy S2 - and walked around my office for a couple of minutes with both, on normal and aggressive mode. Neither did anything.
At this point, it seems like perhaps there's something wrong with my installation of cordova - any ideas for what the issue may be?

what Android OS?
devices require accelerometer, GPS and gyroscope.
I built this plugin using a Nexus 4 (2012).

Enable developer mode on your androids, enable usb debugging.  with phone plugged into usb:
$ adb logcat -s TSLocationManager
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100
W/TSLocationManager(19141): Activity detected:still, confidence:100
I/TSLocationManager(19141): - Activity received: still, confidence: 100

You should see a stream of Activity received messages.  If you shake the phone vigorously (for a period of at least activityRecognitionInterval seconds) you should see:
W/TSLocationManager(23088): Activity detected:on_foot, confidence:100
I/TSLocationManager(23088): - Activity received: on_foot, confidence: 100
I/TSLocationManager(23088): - setPace: true
I/TSLocationManager(23088): Location received: Location[fused 45.519262,-73.616923 acc=30 et=+11d0h36m25s717ms]
I/TSLocationManager(23088): BUS Rx:Location[fused 45.519262,-73.616923 acc=30 et=+11d0h36m25s717ms]
D/TSLocationManager(23088): - INSERT, id: 706, timestamp: 2015-07-06T17:45:53Z

Oh, cancel that.  That's the Premium Version.  I always get confused between Free & Premium questions :)

Go for a long walk with Free version.  Go walk about 200 meters away.

Haha no problem, I understand. Will try that.
As for android OS + perms: Tried on Lollipop and Jellybean (don't have a KitKat device); will try giving explicit perms as well.

You’ll save yourself a lot of pain if you use the Premium version.  It’s
completely different Android code and is at least 10 times more efficient
on the battery life.
On Mon, Jul 6, 2015 at 1:52 PM, Sahil Talwar<EMAIL_ADDRESS>wrote:

Haha no problem, I understand. Will try that.
As for android OS + perms: Tried on Lollipop and Jellybean (don't have a
KitKat device); will try giving explicit perms as well.
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118938207
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

I added the following to the Android Manifest:
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:name="android.hardware.location.gps" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.compass" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />

Now, I saw that it was using the location services on the phone, but saw no change on the UI itself, which I think it means that it's still not working. I'm assuming that it's supposed to show lat/long or something on the list, right?

I'd love to use the premium version, but as this is for a prototype and we haven't been authorized to expense the additional cost, I can't yet :(
If you provide temporary dev licenses (good for ~2 weeks or so), then I'd love to go that route.

You shouldn’t need to add those permissions.  The plugin adds those
automatically.
https://github.com/christocracy/cordova-plugin-background-geolocation/blob/master/plugin.xml#L39
The SampleApp does not render a “list”.  it only adds locations and a blue
polyline to the map.
On Mon, Jul 6, 2015 at 2:33 PM, Sahil Talwar<EMAIL_ADDRESS>wrote:

I added the following to the Android Manifest:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" android:required="true" />
<uses-feature android:name="android.hardware.sensor.compass" android:required="true" />
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />

Now, I saw that it was using the location services on the phone, but saw no change on the UI itself, which I think it means that it's still not working. I'm assuming that it's supposed to show lat/long or something on the list, right?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118951056
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

Got it. Yeah, in that case, the map and locations / line don't show up at all - I've tried it on 3 phones now (2 running Lollipop, one running Jellybean). Please see attached image for what it looks like on the two phones running Lollipop - on the Jellybean phone, the lines that make it appear to be a list don't show up; other than that, it's identical.
Is it possible that you were using an older version of android, and that the free version no longer works?

Are you connected to Internet?
On Monday, July 6, 2015, Sahil Talwar<EMAIL_ADDRESS>wrote:

Got it. Yeah, in that case, the map and locations / line don't show up at
all - I've tried it on 3 phones now (2 running Lollipop, one running
Jellybean). Please see attached image for what it looks like on the two
phones running Lollipop - on the Jellybean phone, the lines that make it
appear to be a list don't show up; other than that, it's identical.
Is it possible that you were using an older version of android, and that
the free version no longer works?
[image: screenshot_2015-07-06-12-36-36]
https://cloud.githubusercontent.com/assets/2473487/8530319/4f09afcc-23ee-11e5-8a5b-182a80bd75cb.png
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118956405
.

--
Snet from Gmail Mobile

Yep, I tried both while indoors with WiFi and outdoors with normal 4G LTE data.

Are you monitoring the JavaScript console because clearly there are
errors.  The google map failed to render.
Could be whitelist issues
On Monday, July 6, 2015, Sahil Talwar<EMAIL_ADDRESS>wrote:

Yep, I tried both while indoors with WiFi and outdoors with normal 4G LTE
data.
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118958558
.

--
Snet from Gmail Mobile

Unfortunately, I've never been able to get livereload working on the device via ionic, and I don't know how to get the logs without that. Could you show me how to get them?

I cannot show you, sorry.  When you come here to ask questions, it's
assumed that you're able to debug on your own.
On Monday, July 6, 2015, Sahil Talwar<EMAIL_ADDRESS>wrote:

Unfortunately, I've never been able to get livereload working on the
device via ionic, and I don't know how to get the logs without that. Could
you show me how to get them?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118967218
.

--
Snet from Gmail Mobile

Being able to monitor the ha console of your Cordova app is crucial.  If
you cannot do that, stop what you're doing and don't return until you can
do so.

On Monday, July 6, 2015, Sahil Talwar<EMAIL_ADDRESS>wrote:

Unfortunately, I've never been able to get livereload working on the
device via ionic, and I don't know how to get the logs without that. Could
you show me how to get them?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118967218
.

--
Snet from Gmail Mobile

Okay, I'll go figure that out and come back shortly.

And use this
https://chrome.google.com/webstore/detail/adb/dpngiggdglpdnjdoaefidgiigpemgage
On Monday, July 6, 2015, Sahil Talwar<EMAIL_ADDRESS>wrote:

Okay, I'll go figure that out and come back shortly.
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-118969053
.

--
Snet from Gmail Mobile

Figured it out - actually just used a window.onerror() and found that plugins was null. Dug some more and found that apparently, cordova does not install missing plugins on build, and my colleague had added the plugins folder (reasonably assuming that they would be automatically downloaded). I unignored it, installed the plugins, and we're good :)
Thank you for all your help!

"alert debugging??".
 As soon as I did that, we started down the right path :) Although if they do end up getting funded, I will absolutely use those - they look MUCH better, thank you for the tip!

ADB is really helpful, thank you! Two additional questions:

In the sample app, I found that the link to google maps doesn't resolve by using ADB; that's why I'm having the rendering problem. Here's the error:

I have the following code, and if I call configure without the callback and error functions, it works fine in Android. If I call it with the callback and error functions, it doesn't work on Android or iOS, and throws no errors. Do you know what's going on?

.run(function ($ionicPlatform, $location, $rootScope, $cordovaGeolocation, $cordovaBackgroundGeolocation, $cordovaDevice, $http) {
alert('stop so I can inspect!');
$ionicPlatform.ready(function() {
if(window.StatusBar) {
StatusBar.styleDefault();
}
$location.path('/app');
$rootScope.$digest();

$rootScope.deviceReady = false;

document.addEventListener('deviceready', function () {
    if(window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      window.cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }

    var bgGeo = $cordovaBackgroundGeolocation;
    var deviceId = $cordovaDevice.getUUID();
    var addVisitUrl = 'url-goes-here';

    $rootScope.deviceId = deviceId;
    $rootScope.deviceReady = true;

    var posOptions = { timeout: 5000, enableHighAccuracy: true, maximumAge: 5000 };
    $cordovaGeolocation.getCurrentPosition(posOptions)
        .then(function (location) {
            $rootScope.currentLat = location.coords.latitude;
            $rootScope.currentLong = location.coords.longitude;

            var yourAjaxCallback = function(response) {
                bgGeo.finish();
            };

            var callbackFn = function(location) {
                var data = {
                                deviceId: deviceId,
                                "location": {
                                    "latitude": location.latitude,
                                    "longitude": location.longitude
                                }
                            };
                $http.post(addVisitUrl, data);
                yourAjaxCallback.call(this);
            };

            var failureFn = function(error) {
                alert('Background Geolocation Error: ' + error);
            };

            bgGeo.configure(callbackFn, failureFn, {
                url: addVisitUrl,
                params: {
                    deviceId: deviceId,
                    "location": {
                        "latitude": $rootScope.currentLat,
                        "longitude": $rootScope.currentLong
                    }
                },
                desiredAccuracy: 10,
                stationaryRadius: 10,
                distanceFilter: 10,
                activityType: 'OtherNavigation',
                debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
                stopOnTerminate: false // <-- enable this to clear background location settings when the app terminates
            });

            bgGeo.start(); // Sahil: Do we need this?? Configure calls start internally.
        });
    $rootScope.$digest();
});

});
})
PS. I'm happy to make a new issue if you prefer.

Getting this error . I am unable to figure out what is causing the issue.
here is my code
angular.module('starter', ['ionic','ionic.service.core', 'starter.controllers', 'starter.services','ngCordova'])

.run(function ($ionicPlatform,  $rootScope, $cordovaGeolocation, $cordovaBackgroundGeolocation, $cordovaDevice, $http) {
    alert('stop so I can inspect!');
  $ionicPlatform.ready(function() {
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }

   // $location.path('/app');
   /* $rootScope.$digest();

    $rootScope.deviceReady = false; */

  /*  document.addEventListener('deviceready', function () {
        if(window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
          window.cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }

          */
         var bgGeo = window.backgroundGeoLocation;
         console.log(bgGeo);
    /**
    * This callback will be executed every time a geolocation is recorded in the background.
    */
    var callbackFn = function(location, taskId) {
        var coords = location.coords;
        var lat    = coords.latitude;
        var lng    = coords.longitude;

        // Simulate doing some extra work with a bogus setTimeout.  This could perhaps be an Ajax request to your server.
        // The point here is that you must execute bgGeo.finish after all asynchronous operations within the callback are complete.
        setTimeout(function() {
          bgGeo.finish(taskId); // <-- execute #finish when your work in callbackFn is complete
        }, 1000);
    };

    var failureFn = function(error) {
        console.log('BackgroundGeoLocation error');
    }

    // BackgroundGeoLocation is highly configurable.
    bgGeo.configure(callbackFn, failureFn, {
        // Geolocation config
        desiredAccuracy: 0,
        stationaryRadius: 50,
        distanceFilter: 50,
        disableElasticity: false, // <-- [iOS] Default is 'false'.  Set true to disable speed-based distanceFilter elasticity
        locationUpdateInterval: 5000,
        minimumActivityRecognitionConfidence: 80,   // 0-100%.  Minimum activity-confidence for a state-change
        fastestLocationUpdateInterval: 5000,
        activityRecognitionInterval: 10000,
        stopDetectionDelay: 1,  // Wait x minutes to engage stop-detection system
        stopTimeout: 2,  // Wait x miutes to turn off location system after stop-detection
        activityType: 'AutomotiveNavigation',

        // Application config
        debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
        forceReloadOnLocationChange: false,  // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when a new location is recorded (WARNING: possibly distruptive to user)
        forceReloadOnMotionChange: false,    // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when device changes stationary-state (stationary->moving or vice-versa) --WARNING: possibly distruptive to user)
        forceReloadOnGeofence: false,        // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when a geofence crossing occurs --WARNING: possibly distruptive to user)
        stopOnTerminate: false,              // <-- [Android] Allow the background-service to run headless when user closes the app.
        startOnBoot: true,                   // <-- [Android] Auto start background-service in headless mode when device is powered-up.

        // HTTP / SQLite config
        url: 'http://posttestserver.com/post.php?dir=cordova-background-geolocation',
        method: 'POST',
        batchSync: true,       // <-- [Default: false] Set true to sync locations to server in a single HTTP request.
        autoSync: true,         // <-- [Default: true] Set true to sync each location to server as it arrives.
        maxDaysToPersist: 1,    // <-- Maximum days to persist a location in plugin's SQLite database when HTTP fails
        headers: {
            "X-FOO": "bar"
        },
        params: {
            "auth_token": "maybe_your_server_authenticates_via_token_YES?"
        }
    });

    // Turn ON the background-geolocation system.  The user will be tracked whenever they suspend the app.
    bgGeo.start();

    // If you wish to turn OFF background-tracking, call the #stop method.
    // bgGeo.stop()

  });
})

Getting above error , but unable to solve this.
Pasting my code and plugin.xml file along with it.
angular.module('starter', ['ionic','ionic.service.core', 'starter.controllers', 'starter.services','ngCordova'])

.run(function ($ionicPlatform,  $rootScope, $cordovaGeolocation, $cordovaBackgroundGeolocation, $cordovaDevice, $http) {
    alert('stop so I can inspect!');
  $ionicPlatform.ready(function() {
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }

   // $location.path('/app');
   /* $rootScope.$digest();

    $rootScope.deviceReady = false; */

  /*  document.addEventListener('deviceready', function () {
        if(window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
          window.cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }

          */
         var bgGeo = window.backgroundGeoLocation;
         console.log(bgGeo);
    /**
    * This callback will be executed every time a geolocation is recorded in the background.
    */
    var callbackFn = function(location, taskId) {
        var coords = location.coords;
        var lat    = coords.latitude;
        var lng    = coords.longitude;

        // Simulate doing some extra work with a bogus setTimeout.  This could perhaps be an Ajax request to your server.
        // The point here is that you must execute bgGeo.finish after all asynchronous operations within the callback are complete.
        setTimeout(function() {
          bgGeo.finish(taskId); // <-- execute #finish when your work in callbackFn is complete
        }, 1000);
    };

    var failureFn = function(error) {
        console.log('BackgroundGeoLocation error');
    }

    // BackgroundGeoLocation is highly configurable.
    bgGeo.configure(callbackFn, failureFn, {
        // Geolocation config
        desiredAccuracy: 0,
        stationaryRadius: 50,
        distanceFilter: 50,
        disableElasticity: false, // <-- [iOS] Default is 'false'.  Set true to disable speed-based distanceFilter elasticity
        locationUpdateInterval: 5000,
        minimumActivityRecognitionConfidence: 80,   // 0-100%.  Minimum activity-confidence for a state-change
        fastestLocationUpdateInterval: 5000,
        activityRecognitionInterval: 10000,
        stopDetectionDelay: 1,  // Wait x minutes to engage stop-detection system
        stopTimeout: 2,  // Wait x miutes to turn off location system after stop-detection
        activityType: 'AutomotiveNavigation',

        // Application config
        debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
        forceReloadOnLocationChange: false,  // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when a new location is recorded (WARNING: possibly distruptive to user)
        forceReloadOnMotionChange: false,    // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when device changes stationary-state (stationary->moving or vice-versa) --WARNING: possibly distruptive to user)
        forceReloadOnGeofence: false,        // <-- [Android] If the user closes the app **while location-tracking is started** , reboot app when a geofence crossing occurs --WARNING: possibly distruptive to user)
        stopOnTerminate: false,              // <-- [Android] Allow the background-service to run headless when user closes the app.
        startOnBoot: true,                   // <-- [Android] Auto start background-service in headless mode when device is powered-up.

        // HTTP / SQLite config
        url: 'http://posttestserver.com/post.php?dir=cordova-background-geolocation',
        method: 'POST',
        batchSync: true,       // <-- [Default: false] Set true to sync locations to server in a single HTTP request.
        autoSync: true,         // <-- [Default: true] Set true to sync each location to server as it arrives.
        maxDaysToPersist: 1,    // <-- Maximum days to persist a location in plugin's SQLite database when HTTP fails
        headers: {
            "X-FOO": "bar"
        },
        params: {
            "auth_token": "maybe_your_server_authenticates_via_token_YES?"
        }
    });

    // Turn ON the background-geolocation system.  The user will be tracked whenever they suspend the app.
    bgGeo.start();
});
})

Plugin.xml file
<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
    xmlns:android="http://schemas.android.com/apk/res/android"
    id="com.transistorsoft.cordova.background-geolocation"
    version="1.2.0">
    <name>BackgroundGeolocation</name>
    <description>Sophisticated, battery-efficient background-geolocation plugin for Cordova</description>
    <license>MIT</license>
    <keywords>cordova, phonegap, background geolocation</keywords>

    <engines>
        <engine name="cordova" version=">=3.0.0" />
    </engines>

    <!--
        Pre-Cordova 5, non-npm plugin reference.  Uncomment this if you're not using Cordova 5.
    <dependency id="org.apache.cordova.dialogs" />
    -->

    <!-- Cordova 5 npm-style plugin referernce.  Comment this out if you're not using Cordova 5 -->
    <dependency id="cordova-plugin-dialogs" />

    <js-module src="www/BackgroundGeolocation.js" name="backgroundGeoLocation">
        <clobbers target="window.backgroundGeoLocation" />
    </js-module>

    <!-- android available in Premium Version: http://transistorsoft.github.io/cordova-background-geolocation -->

     <platform name="ios">
        <!-- required background modes:  App registers for location updates -->

        <config-file target="*-Info.plist" parent="NSLocationAlwaysUsageDescription">
            <string>TSLocationManager requires background location tracking</string>
        </config-file>

        <config-file target="*-Info.plist" parent="UIBackgroundModes">
            <array>
                <string>location</string>
            </array>
        </config-file>

        <config-file target="config.xml" parent="/*">
            <feature name="backgroundGeolocation">
                <param name="ios-package" value="CDVBackgroundGeoLocation"/>
            </feature>
        </config-file>
        <framework src="SystemConfiguration.framework" weak="true" />
        <framework src="AudioToolbox.framework" weak="true" />
        <framework src="AVFoundation.framework" weak="true" />
        <framework src="libsqlite3.dylib" weak="true" />
        <framework src="src/ios/TSLocationManager.framework" custom="true" />
        <source-file src="src/ios/CDVBackgroundGeolocation.m" />
        <header-file src="src/ios/CDVBackgroundGeolocation.h" />
     </platform>

</plugin>

The plugin has moved here
https://github.com/transistorsoft/cordova-background-geolocation-lt
This version is no longer supported

Maybe I posted it in wrong thread but the issue is there. Please can you tell me how to fix it ?

Please install the correct version and comment on the repo here
https://github.com/transistorsoft/cordova-background-geolocation-lt
On Mon, Jan 4, 2016 at 6:54 AM, Rishant Agarwal<EMAIL_ADDRESS>wrote:

Maybe I posted it in wrong thread but the issue is there. Please can you
tell me how to fix it ?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-168656833
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

And start by installing the free iOS SampleApp
https://github.com/transistorsoft/cordova-background-geolocation-SampleApp
On Mon, Jan 4, 2016 at 1:54 PM, Chris Scott<EMAIL_ADDRESS>wrote:

Please install the correct version and comment on the repo here
https://github.com/transistorsoft/cordova-background-geolocation-lt
On Mon, Jan 4, 2016 at 6:54 AM, Rishant Agarwal<EMAIL_ADDRESS>wrote:

Maybe I posted it in wrong thread but the issue is there. Please can you
tell me how to fix it ?
—
Reply to this email directly or view it on GitHub
https://github.com/christocracy/cordova-plugin-background-geolocation/issues/202#issuecomment-168656833
.

--
Chris Scott
Transistor Software http://www.transistorsoft.com

--
Chris Scott
Transistor Software http://www.transistorsoft.com

Hello Sir,
This Is My Code  I want to get Lat Long When App Is Minimised or in background position . When app is running its working fine , but when i minimized applcation it stops working . when controller comes in this method its print only first console ,console.log('Entering in geolocation'); after this nothing happen in this method, can anyone help me?
.controller('AppCtrl', function ($scope, $state,$interval, $ionicModal, $ionicPopover, $timeout, $http, $ionicPlatform, userFactory,$cordovaGeolocation,$filter) {
setInterval(function(){
  getLocation();

},50000);

function getLocation(){
  var posOptions = {timeout: 10000, enableHighAccuracy: false};
  console.log('Entering in geolocation');
  $cordovaGeolocation
    .getCurrentPosition(posOptions)
    .then(function (position)
    {
      console.log('Getting Location');
      var now = new Date();
      var nowdate = $filter('date')(now, 'yyyy-MM-dd');
      var nowtime = $filter('date')(now, 'HH:mm:ss');
      var userid = localStorage.jumboUserId;
      var lati =  position.coords.latitude;
      var longi =  position.coords.longitude;
      var date = nowdate;
      var time = nowtime;
      console.log('Getting Location');
      userFactory.trackUser(userid, lati, longi, date, time).then(function (data) {
        console.log('done');
        console.log('Location sending');
      });
    }, function (err) {
      // error
    });
}

});


sileo 522 error

iphone xs max @ ios13.5
my steps:
unc0ver restoreFS -> odyssey click "jailbreak"
refresh sources in sileo and get all return status 522.

Fixed in e938c35 and will be in next release. For now install the sileo beta deb with ssh.


3.x-slim are missing /etc/services which breaks getservbyname

This breaks socket.getservbyname() on those images, while that function works fine on 2.7-slim.
docker run -ti python:3.6-slim ls -l /etc/services
ls: cannot access /etc/services: No such file or directory

and
docker run -ti python:3.5-slim ls -l /etc/services
ls: cannot access /etc/services: No such file or directory

vs
docker run -ti python:2.7-slim ls -l /etc/services
-rw-r--r-- 1 root root 19605 Oct 21  2014 /etc/services

Try installing the "netbase" Debian package, I believe it's responsible for
providing that file.

Thanks. Yes I've worked around it already, but just noticed the (unexpected) discrepancy between the 2.7 and 3.x images.

It makes me curious what's pulling it in for 2.7 and whether that's to be
expected.

Yea could be a bug the other way round too indeed.

Now that I'm at a keyboard, I can't actually reproduce the problem as described:
$ docker pull python:2.7-slim
2.7-slim: Pulling from library/python
Digest: sha256:2130a0b8fe2e3a9f6b35cc9210e862e05c4f48dbb36de6fafd4d3ca1d3932d21
Status: Image is up to date for python:2.7-slim

$ docker run --rm python:2.7-slim ls -l /etc/services
ls: cannot access /etc/services: No such file or directory

$ docker pull python:3.6-slim
3.6-slim: Pulling from library/python
Digest: sha256:c76c238aff91f7204754bb6927a8e627ea7cd3ce320ee20b7f7d1d9627bc47a3
Status: Image is up to date for python:3.6-slim

$ docker run --rm python:3.6-slim ls -l /etc/services
ls: cannot access /etc/services: No such file or directory

Me neither when pulling the latest tag... was it removed on purpose?

It wasn't removed through an active action, but it's definitely not a bug
that it's gone -- the slim variants are supposed to include the absolute
bare minimum we can possibly get away with, so if we don't need "netbase",
it won't be included.

If getting away with includes having a non-functional socket.getservbyname(), then that's fine, there are easy workarounds (once you've figured out why it's broken).

For reference, this file also just disappeared on the 2.7 branch between 2.7.13 and 2.17.14.

That's probably due to https://github.com/debuerreotype/docker-debian-artifacts/issues/36#issuecomment-385212707.


Failed to load mods Pypostprocessing

Mod source
Factorio Mod Portal
Which mod are you having an issue with?

[ ] pyalienlife
[ ] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[X] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[ ] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[X] Crash
[ ] Progression
[ ] Balance
[X] Pypostprocessing failure
[ ] Other

What is the problem?

Steps to reproduce
starting up the game after loading the new mods generated this issue. game runs fine when disabeling all mods, cannot be run without pypost.
Additional context
No response
Log file
factorio-current.log
factorio-previous.log

For me I had the same error. In my case it was the same issue as #199.
Maybe you want to try to disable Lighted Poles for now and maybe you are good to go for now.

Found the mod that was causing the issue. The forked deadlocks loaders is not playing nice. Downloaded the original and the worked. Issue can be closed


Use-case(s): BIDS-inspired/like standards

Quite often projects do not adopt BIDS due to complexity, not perfect fit, (???) and establish new standards/file layouts while saying they are "BIDS-like".  The likeness varies greatly. Quite often it is only in the aspect of having folders and file names with some metadata in them. It is not really worth mentioning those approaches I guess. But there is a good number of BIDS-like standards (as in my words - formalized descriptions adopted by a considerable number of people) which are worth reviewing and analyzing for what could minimize divergence between them and current BIDS through possibly introducing missing but reasonable and desired features into BIDS 2.0.
This issue would be used to collect pointers and possibly summarize/point to summaries of rationale behind each one
DANDI layout
Established by me and @satra for https://dandiarchive.org, primarily due to complete lack of usable .

There is no specification and layout is largely "enforced" via dandi organize command on a set of .nwb files.
dandiset.yaml schema is defined within pydantic model in https://github.com/dandi/dandi-schema/blob/master/dandischema/models.py#L1405

Notable divergences:

no dataset_description.json - metadata is in "in-house" dandiset.yaml
no ses-*/ level subfolder but there is ses- entity in the target filenames (convergence possible through #54)
no datatype (AKA modality) subfolder (related: #55, convergence possible through #54)
main file format is .nwb (convergence through https://bids.neuroimaging.io/bep032 for animal ephys data, discussed/not (yet) accepted in BIDS 1.0 for micr/: https://github.com/bids-standard/bids-specification/pull/1632)
entity labels/values could contain - and +.  (TODO: ref BIDS PR)
Suffix can contain + (no PR yet I think)
Suffix contains (often multiple) data modalities contained within the single .nwb file, concatenated with +

PsychDS
https://psych-ds.github.io/ https://github.com/psych-ds/psych-DS (attn @mekline and @bleonar5 - would appreciate details/feedback alike for DANDI here or in a dedicated issue/doc)
NeuroPrint
Request for summarization of rationale/divergences: https://github.com/neuroinformatics-unit/NeuroBlueprint/issues/51

ping @tgbugs for SPARC info on bids-like

SPARC Data Structure (SDS)
The SPARC platform has a preprint online that describes a BIDS inspired data structure: https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>0563v2. Rough details are also on their wiki.

also pinging @saskiad and @dyf for bids inspired data container for the allen institute for neural dynamics

that's good. although, i'm not quite sure that use-case is too distant. practically speaking, we run into that issue with ukbiobank and any of the large datasets where we need to process a few subjects with bids-apps. we have had to create sub-bids to satisfy bids and hence tools like fmriprep. one could say that bids should not care about that. however, a self-contained single subject/session subset would be a relevant use-case in bids i believe.
ps. the challenge has been that bids has the different levels of consolidation of information: grouped (participants, sessions, etc) inheritance (via jsons), and single (the files). this necessitates a connected structure that relies on those pieces of information. the advantage of bids is efficiency (for the grouped files; although longitudinal data is inefficient) and deduplication (for the inheritance), and readability (single path+filename).
these different use cases may be good to consider in bids 2.

Will also add Templateflow: https://www.templateflow.org/usage/archive/#acceptable-data-types

https://brain-development.org/brain-atlases/atlases-from-the-dhcp-project/cortical-surface-template/ describes itself as "using BIDS conventions", and proceeds to define custom entities and metadata.

Our NeuroBlueprint specification is definitely in the BIDS-inspired category.  Together with @JoeZiminski we are working on putting together a list of divergences from BIDS and the rationale behind them.

however, a self-contained single subject/session subset would be a relevant use-case in bids i believe.
...
these different use cases may be good to consider in bids 2.

@satra see

https://github.com/bids-standard/bids-2-devel/issues/59 which was born out of the #60 I have mentioned, and
https://github.com/bids-standard/bids-2-devel/issues/54

May be we should add/promote upvoting via :+1: on the issues, so "go wild" ;)

I can share some context on Psych-DS if it's helpful, but I'm unsure how to comment on DANDI. Our data standard is pretty explicitly modeled on BIDS and our validator tool is a essentially a very pared-down fork of BIDS' recent deno implementation.
Definitely our reasoning for diverging instead of using BIDS directly or creating some sort of module within it has to do with complexity. A big part of the ethos of our project is simplicity, since we're trying to bring researchers with a lack of experience with explicit data standards into the fold of producing FAIR datasets. We designed our standard to be the minimal set of conventions for producing consistently-structured, machine-readable datasets with linked metadata, and we avoided the impulse to include additional advanced/options conventions or conventions governing the internal content of datafiles, because we figured that even the presence of this additional material in our documentation could scare off our target audience.
On a technical level, I noticed that the BIDS deno-based validator only applied rules to files that actually appeared within datasets, with no functionality to produce errors/issues in cases where certain elements were absent, and since this notion of presence/absence was important in our schema, that was one initial additional impetus for diverging with our own tool. Additionally, with Psych-DS 1.0 at least, we only wanted to validate simple tabular CSV data, and a lot of the structure of the BIDS validator had to do with applying different rules and conventions depending on datatype.
We followed BIDS' lead when it came to our usage of linkML for creating a structured model of our schema, and I definitely used BIDS' examples explicitly when developing our stack of tools, which was extremely helpful.
These are just a few random thoughts and pieces of context. Feel free to ask me anything specific and I can answer in detail. Also, I should mention that @mekline is on maternity leave until sometime this June/July and @ianchandlercampbell is our interim director for the project.

That is very valuable insights @bleonar5 , thank for sharing!
Given that you seems to use BIDS schema, my short overarching summary would be to: Re-use BIDS schema formalization to derive a customized subset of the BIDS standard to simplify domain specific use and adoption. If I am totally off -- please correct me ;)

I noticed that the BIDS deno-based validator only applied rules to files that actually appeared within datasets, with no functionality to produce errors/issues in cases where certain elements were absent, and since this notion of presence/absence was important in our schema, that was one initial additional impetus for diverging with our own tool.

Could you elaborate here (or even as a dedicated issue against bids-validator, which is if not pertinent - could be closed) more on this since I am not fully grasping, since as to me bids-validator must error whenever any REQUIRED component (metadata or file) is missing.

Additionally, with Psych-DS 1.0 at least, we only wanted to validate simple tabular CSV data, and a lot of the structure of the BIDS validator had to do with applying different rules and conventions depending on datatype.

also sounds very intriguing and like something what could be generally applicable to BIDS. Could you elaborate more?

We followed BIDS' lead when it came to our usage of linkML for creating a structured model of our schema

do you have a link to linkML models handy?

@yarikoptic My first response was a bit cursory and based on my memory of our initial rationales for diverging, I'll try to dig in a bit deeper here. I think your summary of our rationale was correct: we wanted to provide similar structures and standards to those that BIDS provides, for researchers that deal with behavioral data rather than complex physiological data. @satra informed us about the BIDS' team's development of a structured schema model in linkML, and this satisfied one of our core desiderata for the project, which was to have an externalized, structured schema that we could reference across validator tools in multiple frameworks (node, R, python). So, we used the combination of pruned-down versions of BIDS' in-development Deno validator and linkML schema as (very helpful) jumping off points for our own development, with proper citations and acknowledgements, of course.
@mekline has had a much longer history with the development of Psych-DS as an independent entity, and could possibly speak to our rationales for divergence much better, and she may be able to share more detailed thoughts on her return. One crucial element that I'm remembering now is a technical difference between the structure of most physio data and the behavioral data that we're interested in. Physiological data is so rich and often tied to multiple measurements over time, that it seems to be a standard assumption (and I think this is reflected in the BIDS spec) that datafiles will be organized around individual subjects/sessions. In a lot of behavioral datasets, this is not the case, as the whole set of responses for a given subject may be representable in a single row, and one datafile may represent the data gathered from an entire experiment. BIDS is complex and my knowledge of/experience with it only extends to the research I did prior to beginning development of the Psych-DS validator, but it seemed to us that following some kind of subject-oriented system of data organization would be necessary for compliance with BIDS, and this was a major rationale for divergence. (@TheChymera, I think this paragraph is the most relevant answer to your second question)
As for the matter of presence/absence of files/directories that I mentioned previously, I think this is actually just an issue with the deno-based validator rather than the older, public-facing validator. And the deno validator is still in development, so it may just be that I mistook a bug/unfinished component for an actual aspect of the BIDS spec. Basically, if you provide an otherwise-valid BIDS dataset that is missing an element (such as the dataset_description.json file) to the web validator, it produces an error as expected (DATASET_DESCRIPTION_JSON_MISSING). If you do the same with the deno validator, it output a VALID_DATASET result and does not report the absence of the required file. This is because the validator crawls the   filetree of the dataset, finds whatever files/directories are present, and runs a series of checks on them based on the rules in the linkML schema. But if a core file is missing, the crawler never encounters the file in question, so the relevant rules that would assert the necessity of the files presence are never applied. I could certainly create an issue for this if it's helpful, but I was unsure if it's appropriate given the fact that the validator has not been publicly released, and this feature may be scheduled for later in the development plan.
Here is a link to our linkML schema model as it currently stands (in development). At the moment it is not really intended to be used with the standard linkML validator library, and is more being used as just a structured, machine-readable implementation of our schema.

@TheChymera Here is a minimal Psych-DS file structure, from the Psych-DS spec document, whose contents we are in the process of integrating into a more holistic readthedocs site for the project/schema/validator
MyProjectFolder
README.txt
dataset_description.json
data/
study-myproject_data.csv
study-myproject_data.json
Thank you for the heads up about the dead links, I will do a once-over on our read me and take care of those ASAP

Thank you @bleonar5 !!

In a lot of behavioral datasets, this is not the case, as the whole set of responses for a given subject may be representable in a single row, and one datafile may represent the data gathered from an entire experiment.

similar aspect relevant to phenotype data, per our discussion with @surchs. If I would recall correctly we arrived (or I forced ? ;) ) to the conclusion that there could be a "nominal data representation": per sub/ses representation (even if a single row) + derived composition somewhere else -- after all the notion of the "derivative" dataset is steadily becoming less of an ugly duck in BIDS world.  But also it might relate to the discussion of

#36
where similarly a decision could be made to aggregate metadata at the higher levels since it is the most useful and sensible representation.  And needless to say that it does relate to
#54
as if there is no sub- folder -- data per subject should reside somewhere/somehow ;)

Sorry if this feels "too jumpy", but I think there is a common pattern emerging here across different aspects ;)

I could certainly create an issue for this if it's helpful

please do, or let me know if I should do -- since it does sound like a true bug since validator must error out if any of the required files in files/common/core.yaml is missing.

Hey @yarikoptic
Sorry for the delay in replying, we (me and @JoeZiminski) were aiming to write a full post on this, intended for our website but things have been busier than expected. Please find below a summary of the logic behind NeuroBlueprint, where it diverges with BIDS, in what ways BIDS is not fulfilling our requirements, and how this could remedied with with BIDS 2.0.
For context, we recently wrote two blog posts motivating NeuroBluerint and the related data-management tool datashuttle.
NeuroBlueprint motivation
The main motivation for NeuroBlueprint is to provide a version of folder standardisation with a very low barrier for entry, mostly focused on the data acquisition stage of a project. We found BIDS, while necessarily detailed with the aim of full standardisation and reproducibility, can be too detailed for researchers very busy in the early stages of a project. For our purposes, we at this stage just want to know where researchers' data are in a predictable way, for ingestion into analysis pipelines.
A more minor consideration was that BIDS is somewhat biased towards techniques used in human subjects (MRI, EEG, MEG), while NeuroBlueprint is more geared towards systems neuroscience (animal subjects), similar to NWB. While BIDS is slowly moving towards accommodating such data (most notably with BEP032 for animal ephys), the "human legacy" still informs much of its design and terminology.
The founding idea of NeuroBlueprint is that some standardisation is preferable to no standardisation. Our initial goal was to present systems neuroscientists with a small subset of BIDS requirements (those that are easy to adhere to at the data acquisition stage), which would make it easier for researchers to transition to "full BIDS" (or NWB) later, at the stage of paper publication and data sharing. However, while iterating on the NeuroBlueprint spec we realised that we had to break with BIDS in some areas, even within the subset we mandate.
Divergences from BIDS
Unlike BIDS, we currently make no requirements on metadata, file names, file format, etc. Essentially the only things we do require at present are a BIDS-style folder hierarchy and naming, specifically:

We adopt the BIDS distinction between rawdata vs derivatives at the top level (though there's no sourcedata).
We mandate the hierarchical organisation of rawdata into subject > session > datatype sub-folders (though unlike BIDS,  the session level can't be skipped).
The naming of subject- and session-level folders follows the BIDS convention of key-value pairs separated by underscores, but unlike BIDS we don't define a strict set of entities for users to choose from. Instead, me only mandate that the first entity is sub-<index> for subject- and ses-<index> for session-level folders (to at least ensure that these folders can be uniquely identified).
The biggest break with BIDS comes at the level of data types and modalities (see section below).
We suggest, but do not require, that files are named following BIDS-like key-value pair conventions, but that's not a strict requirement at present. Similarly, we recommend, but do not require, that tabular metadata are saved in BIDS-style TSV files.

Datatypes and modalities
We have ended up 'actively' diverging from BIDS in this area. For researchers creating file / folder names manually, the BIDS 'modality' concept, in which different modalities are distinguished by suffix, was not very convenient. For example, if collecting two types of microscopy data stored in a micr folder, the researcher would need to make sure to never forget to add the correct suffix to a filename, lest they get their data types confused. This convention seems like an optimisation better suited for the data-publication stage of a project (which we aim to write converters for in future) whereas in the acquisition stage it is easier to separate things into distinct folders.
Moreover, the existing BIDS datatypes do not map well onto the methods typically used in systems neuroscience labs. For example, BIDS reserves anat for structural MRI data and func for fMRI, neither of which are frequently acquired in our field. Another example is that BIDS employs micr for microscopy data, but the spec seems to be designed primarily for structural microscopy and doesn't adequately cover in vivo functional imaging techniques ('optical physiology', e.g. calcium imaging), which are abundant in animal neuroscience. Though we could possibly "coerce" such data to fit within micr, we are not sure that's necessarily desirable, as structural and functional imaging data are likely to be pre-processed and analysed in completely different ways (analogous to MRI's anat and func).
As such, we have taken liberties with datatype names, and at present we only mandate 4 datatypes (behav, ephys, funcimg, anat). We use the anat datatype for any kind of anatomical (structural) imaging, and funcimg for any kind of functional imaging. We are planning to extend these, but will almost certainly require everything be separated into different datatype-level folders instead of relying on modality-specific suffixes. There's an ongoing discussion on this topic here and we'd love to hear your thoughts.
Although this seems like a major divergence, we thought it would be relatively easy to reconcile once a project is complete, with appropriate converters. It would essentially involve moving/renaming datatypes and adding appropriate modality suffixes as needed.
Wish list for BIDS 2.0
As is apparent from above, what we'd love to see in BIDS 2.0 is a re-thinking of the datatype/modality concept, or at least some room for flexibility in defining/naming datatypes.
The absolute dream would be to have BIDS 2.0 consist of a set of specific and atomic rules, the same way that linters like ruff do. In this way, it would be very easy for others like us to adopt a specific subset of rules, by specifying which to include/exclude etc. We could even have "rulesets", i.e. pre-specified sets of rules that are useful in specific scenarios (e.g. "data acquisition", "uploading to OpenNeuro/DANDI", etc.). I'm aware that this is too much to ask for, technically challenging, and likely out-of-scope for BIDS, but one can dream.
Conclusion
We absolutely love what BIDS has done for the neuroimaging community and we are on board with extending its benefits to other research communities. NeuroBlueprint is still young and many of its points are still amenable to change, as long as we stick to our main design consideration, which is to keep the spec minimal and easy to adopt.  Let's keep the conversation going!

As a placeholder for deeper discussion here are some links that provide a partial overview of SDS. I have a poster on this an Neuroinformatics so can update with that here as well when it is ready.
How SDS models ontological participants that was inspired by the discussion in https://github.com/bids-standard/bids-specification/issues/779.
Changelog for the latest version of SDS and the actual release.
The most important change in this context would be our move to accommodate data management processes where most or all file metadata is stored in a manifest file of some kind, that might look like mapping file names, object ids, checksums, s3 object paths, etc. to metadata records in a separate system in addition to the traditional folder naming conventions. I think this touches on
The manifest changes also relate to how BIDS-like standards can enforce data modality file type requirements (e.g. that mri should have nifti files, ephys should have nwb, microscopy ome-tiff, etc. while allowing png files elsewhere in the dataset) without necessarily having to have folders for each modality which can result in a nxm-fold increase in directories for n subjects and m modalities.
With retard to interoperability between standards, there is discussion in the changelog about one way to make file system conventions (data set standards) nestable using a file called .dss. For example if you have a data collected across modalities that already have standards such as MRI with BIDS, ephys with DANDI, peripheral physiology with SDS, etc. it is possible to combine them all without conflict in a single hierarchy.


Uploaded nested blob don't immediately appear in Azure view without refreshing

OS: All
Build Version: 20200903.1
Repro Steps:

Upload one file with specify a path "a/b/c/New Microsoft Word Document.docx" to a blob container.
Check the uploaded blob in Azure view.

Expect:
Nested blob shows in Azure view.

Actual:
Only show the blob file in Azure view.

More Info:
This issue does not reproduce after refreshing.

This issue has become stale and is at risk of being closed. The community has 60 days to upvote the issue. If it receives 5 upvotes we will keep it open and take another look. If not, we will close it. To learn more about how we handle issues, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this issue has received less than 5 community upvotes and we closed it. Still a big Thank You to you for taking the time to create it! To learn more about how we handle issues, please see our documentation.
Happy Coding!


RBAC: access denied - cannot access notebook created in my namespace

Checks

[X] I have searched the existing issues.
[X] This issue is NOT specific to the CLI. (If so, please open an issue on the CLI repo)

deployKF Version
0.1.4
Kubernetes Version
Client Version: v1.28.8
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.1-eks-b9c9ed7

Description
I was trying to access a notebook I created, but surprisingly I was denied access to the notebook in my own namespace / profile.

Relevant Logs
Don't know where to look for relevant logs (some kyverno pod?), but I'm happy to be instructed and update this field with the relevant logs.
deployKF Values (Optional)
deploykf_auth:
  dex:
    connectors:
      - type: google
        id: google
        name: Google
        config: (...)

deploykf_profiles_generator:
  users:
    - id: bernardo-galvao
      email<EMAIL_ADDRESS>  profiles:
    - name: bernardo-galvao
      members:
        - user: bernardo-galvao
          access:
            role: edit
            notebookAccess: true

Additional context:

using EKS
managing access via Access Entries of EKS
my user is not in the aws-auth ConfigMap

I think fixing that should fix the issue

@bgalvao are the notebooks the only places you are seeing "RBAC: Access Denied" errors?
For example, is this user able to browse the dashboard in that namespace, and view pipelines?

Hey @thesuperzapper, yes that is the only place.

I can navigate to volumes, create volumes.
Can navigate to Tensorboard

(I disabled KF pipelines for this instance of deployKF as my team does not use them.)

@thesuperzapper
Big thanks to @gilcardoai for finding the solution. (Expand for diffs)
ns-owner-access-istio AuthorizationPolicy
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  annotations:
    role: admin
    user<EMAIL_ADDRESS>  name: ns-owner-access-istio
  namespace: bernardo-galvao
spec:
  rules:
    - when:
        - key: request.headers[kubeflow-userid]
          values:
-           -<EMAIL_ADDRESS>+           -<EMAIL_ADDRESS>    - when:
        - key: source.namespace
          values:
            - bernardo-galvao
    - to:
        - operation:
            paths:
              - /healthz
              - /metrics
              - /wait-for-drain
    - from:
        - source:
            principals:
              - cluster.local/ns/kubeflow/sa/notebook-controller-service-account
      to:
        - operation:
            methods:
              - GET
            paths:
              - '*/api/kernels'

Profile

apiVersion: kubeflow.org/v1
kind: Profile
metadata:
  finalizers:
    - profile-finalizer
  name: bernardo-galvao
spec:
  owner:
    kind: User
-   name<EMAIL_ADDRESS>+   name<EMAIL_ADDRESS>

That being said, I have not looked into the internals of deployKF, but there seems to be an override Authorization policy that is perhaps supposed to be updated with an authorize action for my user (bernardo.galvao@pumpkinai.com), because all it has is a DENY action for the only email that was present before as the owner of the Profile<EMAIL_ADDRESS>ns-owner-access-istio--override

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: ns-owner-access-istio--override
  namespace: bernardo-galvao
spec:
  action: DENY
  rules:
    - from:
        - source:
            notPrincipals:
              - cluster.local/ns/deploykf-istio-gateway/sa/deploykf-gateway
      when:
        - key: request.headers[kubeflow-userid]
          values:
            -<EMAIL_ADDRESS>

Also, when I tried to add my own email as the ownerEmail of profile, like this
deploykf_profiles_generator:
  users:
    - id: bernardo-galvao
      email<EMAIL_ADDRESS>  profiles:
    - name: bernardo-galvao
      ownerEmail<EMAIL_ADDRESS>      members:
        - user: bernardo-galvao
          access:
            role: edit
            notebookAccess: true

that is not something that is allowed:
(profile name: 'bernardo-galvao') may not include users with same email as profile owner, but user 'bernardo-galvao' at index 0 has email<EMAIL_ADDRESS>
meaning that it uses the default<EMAIL_ADDRESS>
Sorry for the long comment, I wanted to be as detailed as possible. The project deployKF is awesome and I want to see it grow!

@bgalvao I know it's a bit confusing you should NOT set yourself as "owner" of any profiles.
You should not even change it from<EMAIL_ADDRESS>just remove that account from staticPasswords and assign yourself as a "member" with edit access.
I will probably actually remove the ability to set an owner, because it just causes to many problems:

You can't update the owner of a profile
Profile owners can log in to stuff like "minio" and "argo server" UIs
If someone tries to use the "manage contributors" page of the dashboard, they will break the profiles.

@bgalvao either way, you should never be messing with the AuthorizationPolicies.
Can you confirm if you were previously trying to set the profile owners with a deploKF value?
Also, you should revert those changes by re-generating your manifests, and syncing (with prune enabled).

Can you confirm if you were previously trying to set the profile owners with a deploKF value?

Yeah, but some validator did not allow to use an email that was already set for a user, so I reverted it.
The fix for the behavior I wanted anyway is in the workaround mentioned in https://github.com/kubeflow/kubeflow/issues/6576, so it is good that way for us. Thanks :)
(imo this can be closed)


Rendering in Windows XP

Thanks for quick response. Nice control.

I Found this problem in XP again. =)

This happens when a windows pass over the title bar.
Originally posted: 2011-03-09T09:55:30

Fixed in source code drop 56447 and most recent download.
Originally posted: 2011-03-11T17:29:35


[BUG] embedDocuments is undefined

Why is 'this.embeddings.embedDocuments(texts)' undefined in the 'addDocuments' method of 'C:\Users\Wiz.Chen\AppData\Roaming\npm\node_modules\flowise\node_modules\langchain\dist\vectorstores\typeorm.cjs'? Consequently, 'vectors' in 'addVectors' is also undefined?"

I uploaded a document, and the document is as follows json file.

It's because I used the same Deployment Name for both Azure OpenAI Chat and Azure Embedding. After discussing with my team, I learned that there are two distinct Deployment Names: 'gpt-35-turbo-16k-deploy' and 'text-embedding-ada-002-deploy'. I couldn't use just one of them; otherwise, it wouldn't work. I changed Chat to 'gpt-35-turbo-16k-deploy' and Embedding to 'text-embedding-ada-002-deploy' and everything is working fine now! Thanks a lot.


gpg: decryption failed: No secret key

After importing my key to another PC:
ss@pc:~$ echo "test message string" | gpg --encrypt --armor --recipient<PHONE_NUMBER> -o encrypted.txt
gpg: BBBBBBBBBBBBBBBB: There is no assurance this key belongs to the named user

sub  cv25519/AAAAAAAAAAAAAA 2018-11-30<EMAIL_ADDRESS> Primary key fingerprint: AAAA AAAA AAAA AAAA AAAA  AAAA AAAA AAAA AAAA AAAA
      Subkey fingerprint: AAAA AAAA AAAA AAAA AAAA  AAAA AAAA AAAA AAAA AAAA

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y
ss@pc:~$ gpg --decrypt --armor encrypted.txt
gpg: encrypted with 255-bit ECDH key, ID CCCCCCCCCCCCC, created 2018-11-30
<EMAIL_ADDRESS>gpg: decryption failed: No secret key

I have no idea what is going on.
ss@pc:~$ gpg --card-status
Reader ...........: 1050:0407:X:0
Application ID ...:<PHONE_NUMBER>1234567890
Application type .: OpenPGP
Version ..........: 3.4
Manufacturer .....: Yubico
Serial number ....: 16358784
Name of cardholder: [not set]
Language prefs ...: [not set]
Salutation .......:
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: not forced
Key attributes ...: rsa4096 rsa4096 rsa4096
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 6
KDF setting ......: off
Signature key ....: AAAA AAAA AAAA AAAA AAAA  AAAA AAAA AAAA AAAA AAAA
      created ....: 2022-04-13 22:00:57
Encryption key....: BBBB BBBB BBBB BBBB BBBB  BBBB BBBB BBBB BBBB BBBB
      created ....: 2022-04-13 22:01:32
Authentication key: CCCC CCCC CCCC CCCC CCCC  CCCC CCCC CCCC CCCC CCCC
      created ....: 2022-04-13 22:01:59
General key info..: [none]

ss@pc:~$ gpg --list-secret-keys
ss@pc:~$ gpg --list-keys
/home/lz/.gnupg/pubring.kbx
---------------------------
pub   ed25519 2018-11-30 [SC]
      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
uid           [ unknown]<EMAIL_ADDRESS>sub   cv25519 2018-11-30 [E]

PS: ssh with public key works

gpg --encrypt --armor --recipient<PHONE_NUMBER>
...
gpg: decryption failed: No secret key

This indicates that you don't have the secret key of<PHONE_NUMBER> in your gpg keyring. You can check via gpg -K.

@smlx gpg -K return empty. How can I SSH then, if no secret key? Maybe<PHONE_NUMBER> is the encryption one?
By the way, what I actually want to do is sign commits, for which I get the same error as above. The only thing that works in SSH.
What should I do?

I don't know if this will help but these are the notes I made of the steps to follow on a new Linux system:

Login.

Add these lines to .profile (making sure to replace «your keyID here» with your keyID):
export KEYID=«your keyID here»
export GPG_TTY=$(tty)
echo "KEYID=$KEYID, GPG_TTY=$GPG_TTY"

Either source .profile or logout/login again so those variables get set.

Initialise GnuPG:
$ gpg -k

Import your public keys.

if stored on a key server, something like:
$ gpg --keyserver hkps://keyserver.ubuntu.com:443 --recv $KEYID

if you need to retrieve from another machine then:

On that other machine:
$ gpg --armor --output $KEYID.public.keys.asc --export $KEYID

Transport the file to the new machine by some means, then import it:
$ gpg --armor --import $KEYID.public.keys.asc

Check what got imported:
$ gpg -k $KEYID

You should get something other than silence or an error.

Edit to set ultimate trust:
$ gpg --edit-key $KEYID
trust
5
y
quit

Confirm no private keys in place:
$ gpg -K $KEYID
gpg: error reading key: No secret key

Insert the YubiKey.

Run:
$ gpg --card-status

You'll get a whole lot of output about the card and keys stored on it. The result is the stubs pointing to your private keys stored on the YubiKey being added to ~/.gnupg/private-keys-v1.d.

Repeat the private keys check:
$ gpg -K $KEYID

This should produce a result, including these critical bits:
ssb>  rsa4096 yyyy-mm-dd [A]
ssb>  rsa4096 yyyy-mm-dd [E]
ssb>  rsa4096 yyyy-mm-dd [S]

Remove the YubiKey.

Create a test file:
$ ls -al >plaintext.txt

Encrypt that file:
$ gpg --armor --recipient $KEYID --output ciphertext.asc --encrypt plaintext.txt

Try to decrypt that file:
$ gpg --armor --output recovered.txt --decrypt ciphertext.asc

The system will prompt:

To connect the card.
To unlock the card with the PIN.

The YubiKey will flash waiting for a touch.

Compare original with round-trip result
$ diff -s plaintext.txt recovered.txt
Files plaintext.txt and recovered.txt are identical

@Paraphraser  what if I only have the public key, not the key id?
Anyways
gpg --list-keys
/home/ss/.gnupg/pubring.kbx
---------------------------
pub   ed25519 2018-11-30 [SC]
      123456789ABCDEF123456789ABCDEF12345
uid           [ unknown]<EMAIL_ADDRESS>sub   cv25519 2018-11-30 [E]

so I guess I have the key id. But I already did all of this process :( and SSH works

In my earlier reply, I hope I didn't give you the impression I was any kind of expert on this stuff. I'm not (0.5 on a 10-point scale if I'm feeling generous). My general approach is to keep belting the problem with whatever digital hammer is within reach and only stop thwacking stuff when the thing I'm trying to achieve seems to work.
I won't say I followed the DrDuh guide exactly when I set up my own YubiKeys in late 2019 but the notes I made at the time show my process was reasonably close to what the guide says now.
Here are the patterns I see on my own systems:
$ gpg -k $KEYID
pub   rsa4096/0xAAAAAAAAAAAAAAAA yyyy-mm-dd [C]
      Key fingerprint = AAAA AAAA AAAA AAAA AAAA  AAAA AAAA AAAA AAAA AAAA
uid                   [ultimate] Given Last (nick<EMAIL_ADDRESS>…
sub   rsa4096/0xBBBBBBBBBBBBBBBB yyyy-mm-dd [S]
sub   rsa4096/0xCCCCCCCCCCCCCCCC yyyy-mm-dd [E]
sub   rsa4096/0xDDDDDDDDDDDDDDDD yyyy-mm-dd [A]

$ gpg -K $KEYID
sec#  rsa4096/0xAAAAAAAAAAAAAAAA yyyy-mm-dd [C]
      Key fingerprint = AAAA AAAA AAAA AAAA AAAA  AAAA AAAA AAAA AAAA AAAA
uid                   [ultimate] Given Last (nick<EMAIL_ADDRESS>…
ssb>  rsa4096/0xBBBBBBBBBBBBBBBB yyyy-mm-dd [S]
ssb>  rsa4096/0xCCCCCCCCCCCCCCCC yyyy-mm-dd [E]
ssb>  rsa4096/0xDDDDDDDDDDDDDDDD yyyy-mm-dd [A]

I interpret that as:

RSA master key having Certify.
Separate RSA sub-keys for each of Signing, Encrypting and Authenticating.
The "sub" (public) sub-keys being in the local keychain.
The "ssb>" (private) sub-keys being on the YubiKey.

So, let's put a pin in that and examine your pattern:
gpg --list-keys
/home/ss/.gnupg/pubring.kbx
---------------------------
pub   ed25519 2018-11-30 [SC]
      123456789ABCDEF123456789ABCDEF12345
uid           [ unknown]<EMAIL_ADDRESS>sub   cv25519 2018-11-30 [E]

I interpret that as:

Elliptic curve (rather than RSA) master key having Sign and Certify.
A public sub-key with Encryption in the local keychain.
No information about private keys.

Quite different - agreed?
The question I ask myself is, "can I replicate that?" After a few false starts, it turns out the answer is yes.
Setup steps (Raspbian):
$ RAMDISK="/run/user/$(id -u)/ramdisk"
$ mkdir "$RAMDISK"
$ sudo mount -t tmpfs -o size=128M myramdisk "$RAMDISK"
$ sudo chown $USER:$USER "$RAMDISK"; chmod 700 "$RAMDISK"
$ export GNUPGHOME=$(mktemp -d -p "$RAMDISK")
$ cd "$GNUPGHOME"
$ wget -O $GNUPGHOME/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
$ PASSPHRASE=$(gpg --gen-random --armor 0 24)

Generate "ECC and ECC" with "Curve 25519":
$ gpg --expert --full-generate-key
gpg: keybox '/run/user/1002/ramdisk/tmp.USf3fSZhYJ/pubring.kbx' created
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
   (9) ECC and ECC
  (10) ECC (sign only)
  (11) ECC (set your own capabilities)
  (13) Existing key
  (14) Existing key from card
Your selection? 9
Please select which elliptic curve you want:
   (1) Curve 25519
   (3) NIST P-256
   (4) NIST P-384
   (5) NIST P-521
   (6) Brainpool P-256
   (7) Brainpool P-384
   (8) Brainpool P-512
   (9) secp256k1
Your selection? 1
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: Test Example
Email address<EMAIL_ADDRESS>Comment:
You selected this USER-ID:
    "Test Example<EMAIL_ADDRESS>
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /run/user/1002/ramdisk/tmp.USf3fSZhYJ/trustdb.gpg: trustdb created
gpg: key 0xFFA9E42FB6BD3765 marked as ultimately trusted
gpg: directory '/run/user/1002/ramdisk/tmp.USf3fSZhYJ/openpgp-revocs.d' created
gpg: revocation certificate stored as '/run/user/1002/ramdisk/tmp.USf3fSZhYJ/openpgp-revocs.d/436AA047E89984A588D05FA6FFA9E42FB6BD3765.rev'
public and secret key created and signed.

pub   ed25519/0xFFA9E42FB6BD3765 2022-06-10 [SC]
      Key fingerprint = 436A A047 E899 84A5 88D0  5FA6 FFA9 E42F B6BD 3765
uid                              Test Example<EMAIL_ADDRESS>sub   cv25519/0xF9B081BC3EBB4E27 2022-06-10 [E]

Pattern analysis:
$ gpg --list-keys
/run/user/1002/ramdisk/tmp.USf3fSZhYJ/pubring.kbx
-------------------------------------------------
pub   ed25519/0xFFA9E42FB6BD3765 2022-06-10 [SC]
      Key fingerprint = 436A A047 E899 84A5 88D0  5FA6 FFA9 E42F B6BD 3765
uid                   [ultimate] Test Example<EMAIL_ADDRESS>sub   cv25519/0xF9B081BC3EBB4E27 2022-06-10 [E]

Pretty much identical pattern to yours - agreed?
So, the first issue would seem to be to figure out why, if we both followed the DrDuh guide, I wound up with RSA with C plus S+E+A split over sub-keys, while you have elliptic curve with S+C plus a single E sub-key.
One possibility is, assuming your "2018-11-30" is true, you were working a year ahead of me so maybe the guide was different then?
Another possibility. I have another key-pair which is analogous to your pattern:
$ gpg -k 0x1111111111111111
pub   rsa4096/0x1111111111111111 2019-12-18 [SC] [expires: yyyy-mm-dd]
      Key fingerprint = 1111 1111 1111 1111 1111  1111 1111 1111 1111 1111
uid                   [ unknown] Given Last (nick<EMAIL_ADDRESS>sub   rsa4096/0x2222222222222222 2019-12-18 [E] [expires: yyyy-mm-dd]

$ gpg -K 0x1111111111111111
sec   rsa4096/0x1111111111111111 2019-12-18 [SC] [expires: yyyy-mm-dd]
      Key fingerprint = 1111 1111 1111 1111 1111  1111 1111 1111 1111 1111
uid                   [ unknown] Given Last (nick<EMAIL_ADDRESS>ssb   rsa4096/0x2222222222222222 2019-12-18 [E] [expires: yyyy-mm-dd]

Those are from Keybase. RSA but the SC plus E is the same as yours. I generated and exported those, and then used them to sign the master key I was generating for the YubiKey. Why? For no better reason than that it seemed like a good idea at the time. Perhaps you did something similar?
While the steps I outlined in my earlier reply let me get going on a new machine given only my public keys plus the YubiKey, any time I want to do something more serious, I need to go back to the snapshot of the master-key generation just before the private keys were transferred to the YubiKey. That's Backup in the DrDuh guide.
I'm afraid that I didn't go to quite the extremes in the guide:
$ BACKUP="$RAMDISK/$(date +%F)-$KEYID.tar.gz"
$ tar -zcf "$BACKUP" .

then I saved that .tar.gz into an encrypted disk image. The truly paranoid would probably clutch their worry-beads but…

Anyway, given this backup, I can restore to the moment before the private keys were transferred to the YubiKey. That means I can edit whatever needs to be edited and then repeat the basic process of:

Take another backup.
Transfer the (updated) private keys to the first YubiKey.
Restore the backup.
Transfer the (updated) private keys to the second YubiKey.
Save the backup into the encrypted disk image ready for next time.

Unless you skipped the "make a backup" step or have since lost the backup, you should be able to do the same.
The last possibility is that you see if Recovering lost GPG public keys from your YubiKey solves your problem. I have not tried it so I have no idea whether it works - please remember to report back here if it does.
If none of this helps you have an "ahah" moment, you might have to start from scratch and generate all-new keys.

Please reopen if there's still an issue to discuss.

I have had similar problems, found this by web searching, and wrote up a few things I learnt to fix it (for me) on https://github.com/vorburger/vorburger-dotfiles-bin-etc/blob/main/docs/yubikey.md#troubleshooting; perhaps this will be useful for others stumbling over this in the future.


Domoticz Groups use incorrect api

Using Ha-Bridge to control a Domoticz GROUP using the 'Domoticz Tab' to create the device.
It uses the command:
http://IP:8080/json.htm?type=command&param=switchlight&idx=15&switchcmd=On
It should use:
http://IP:8080/json.htm?type=command&param=switchscene&idx=15&switchcmd=On
note 'switchscene' rather than 'switchlight'.
(n.b. Domoticz 'scenes' are correctly constructed using the 'swicthscene' api command)

Will look t the code when decoding the devices and apply this. Thanks

So, what is the type in the Domoticz tab that it shows before you create the device?

Never mind, I see the type is 'Group' that is returned


WFLY-9724 Undertow does not allow UTF-8 characters in URLs

Retest this please

Retest this please

@stuartwdouglas actually since this ends up as an EAP7 issue it needs analysis etc. so I am adding the Feature label


register not working locally

Version(s) affected
production
Description
I have installed all the package required and launched all makefile but make frontend report a warning:
[WARNING] You are compiling assets in development. Symfony will not serve any changed assets until you delete the files
in the "public/assets" directory.
and if i go to localhost/register  to try the app, the js throws an error:
Uncaught (in promise) TypeError: 1 is undefined
How to reproduce
clone the repo
install php8.2 with the required package
make build
stop apache2 server
make up
composer require symfony/runtime
chown $USER:$USER on the folder to avoid errors
chmod 775 for the same reason
make frontend
Possible Solution
i think the prod could have a different behaviour but if in the env i change to prod the warning stay the same
Additional Context
No response

Hi,
The command make frontend compiles the assets for production.
If you want to use this project for development, please use make watch.

Hi, i tried the make watch just now and the this is the result:
WARN[0000] /home/alessandro/Desktop/symfony-webauthn-demo/docker-compose.yml: the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion
WARN[0000] /home/alessandro/Desktop/symfony-webauthn-demo/docker-compose.override.yml: the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion
[OK] Updated all packages in importmap.php.
WARN[0000] /home/alessandro/Desktop/symfony-webauthn-demo/docker-compose.yml: the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion
WARN[0000] /home/alessandro/Desktop/symfony-webauthn-demo/docker-compose.override.yml: the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion
! [NOTE] Executing Tailwind (pass -v to see more details).
Browserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
Rebuilding...
Done in 380ms.
after this the console doesn't return usable and the error in the register is the same. Could it be useful re-run from zero?


Show P99 latency in envoy dashboards

The current dashboards show P90 latency. We should either update that to display P99, or add an additional line that charts P99 latencies.

Fixed in #189

I am reopening this as I am only seeing P99 for upstream latencies, but not downstream latencies. Pinging @stevesloka to make sure I am not crazy, and confirm his change only modified the upstream latencies panel.

Bah yeah, I only did for upstream. I think maybe I misunderstood, can update to fix.

Sounds good @stevesloka. Assigning to you, but happy to take it if you're busy.

@alexbrand I added the P99 to the Downstream panel.


Scope Issue - Support

Hi @antillas21, I am new to rails and trying to implement datatables since the dataset being displayed will be ~100k.
Models: Administrator < User , Participant < User, Member < ActiveRecord::Base
Now to give different access rights, I have the members_controller in the admin folder and participant folder. I created the member_datatable:
class MemberDatatable < AjaxDatatablesRails::Base
include AjaxDatatablesRails::Extensions::Kaminari
search
sort
private
data
def get_raw_records
Member.all
end
and my measure_controller in the admin folder has this:
class Administrator::MembersController < ApplicationController
before_action :verify_administrator
def index
@members = Member.all
respond_to do |format|
format.html
format.json { render json: MemberDatatable.new(view_context) }
end

end
now my path is, administrator_members_path and on loading it I get this error:
NameError (uninitialized constant Administrator::MembersController::MemberDatatable):
I think that this is a scope issue.. and I'm not sure how to get MemberDatatable to connect with the controller within admin scope.

When I move MemberDatatable.rb from datatables folder to models, it starts working but does not recognize searchable columns:
NoMethodError (undefined method `id' for #Class:0x007f830ba70d10):
This is my searchable:
def searchable_columns
@searchable_columns ||= [Member.id]
end
I had to turn off sorting as well because of the same error

You have to write searchable_columns in string format:
@searchable_columns ||= ['Member.id']

see the instruction properly in README.md file

Yes you are right.. I don't know how did I miss the quotes!


Add russian translation

It would great if one other russian speaker could proofread this :)

Hey.. could you update the russian translations here: https://crowdin.com/project/excalidraw/ru#


Can not install better-sqlite3

I keep getting these errors when I try to install it
gyp ERR! configure error
gyp ERR! stack Error: Command failed: C:\Users\Ahmad Alfalasi\AppData\Local\Programs\Python\Python37-32\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                                ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:294:12)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at maybeClose (internal/child_process.js:962:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Ahmad Alfalasi\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Ahmad Alfalasi\Desktop\Current bots\bot\node_modules\integer
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Ahmad Alfalasi\Desktop\Current bots\bot\package.json'
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of erlpack@discordapp/erlpack but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN bot No description
npm WARN bot No repository field.
npm WARN bot No README data
npm WARN bot No license field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\Ahmad Alfalasi\AppData\Roaming\npm-cache_logs\2019-06-21T12_06_10_612Z-debug.log

please search through the other issues.. your question has most likely been answered.
but to quickly sum it up.
you need to install windows build tools. then python if it doesn't install maybe add the path to the environment. then run npm. then do the rebuild. if you want more info just search!

Done that method already, doesn't work at all

Hi, do you install node.js with nvm or not?

Follow every step here: https://github.com/JoshuaWise/better-sqlite3/issues/170#issuecomment-441734343

SyntaxError: invalid syntax

It looks like a mismatched version of Python of JavaScript

Let me know it this fixes it, run before install: npm i -g node-gyp@latest

Closing due to inactivity

npm i -g node-gyp@latest

I have same issue, this doesn't help

npm i -g node-gyp@latest

I have same issue, this doesn't help

same issue here

+1