How use proxy?

When I call Client.Session.create(), the fifth parameter is proxy.
What should be the format proxy?
It can be an example?

going to update doc

Thanks for the quick response.
When the update doc?

Now

checkout README.md


MOM-2024-02-14

What type of PR is this?
Add one of the following kinds:

subproject management

What this PR does / why we need it:
Present the preliminary agenda and template MOM. To be changed.

I removed the "Draft" from this PR.
Please review.

Please review. @jpengar @diegogonmar @hdamker @all

@jpengar please approve this


Adds sleep(millis) function

Hi Carsten, First of all thank you for the wonderful FylWithLua!
I've added a sleep function using usleep(nanos). I needed it for my Lua script "fps_limit.lua", that limits the FPS to 25 in order to save energy and save me from loud fan noise. I did not add it to the documentation yet because I'm not even sure what you think about it. I just thought you may like the idea. I have also implemented my FPS limit function as a plugin written in C, but I loved how I could prototype it with FlyWithLua. Obviously it's a kind of dangerous function, because it suspends threads... so feel free to ignore my pull request.

I have taken over for Carsten as the head of development for FlyWithLua.
I built your fork to test out your pull request and do have a question. Since it looks to me that we are adding in wait states so then even keystrokes are delayed what is the use case?
Thanks Bill

Hi Bill,
I'm not sure about all consequences of usleep but when used without care it indeed could cause all sorts of delays. My usecase is this: I have a MacBookPro i9 and when running X-Plane the Fans are running at fullspeed and with at least 60FPS or more (depending on Vsync on or off and the refresh rate of the display). I was looking for a possibility to literally slow it down in order to keep the cpu/gpu cooler and the fans quiter. So I wrote the script fps_limit.lua script
https://github.com/X-Friese/FlyWithLua/pull/82/files#diff-12cd379fafee96a97bb405cd27b00810297afd82757347746ce34b082c067a03
When toggled via a command it will adaptively introduce delays if the FPS is larger than 25 which is enough for me. Turns out I do not notice any bad behaviour but indeed the system runs cooler and quieter now.
I'd totally understand if you think my addition is not a good fit for FlyWithLua.. I'm unsure about it myself now. I rewrote my little program in C anyway and I might publish it for other users like me.

Hi Bill,
I looked into the topic again and the sleep method I used usleep(nanos) is neither portable nor up to date. The best code I could find on the internet is this:

#ifdef WIN32
#include <windows.h>
#elif _POSIX_C_SOURCE >= 199309L
#include <time.h>   // for nanosleep
#else
#include <unistd.h> // for usleep
#endif

void sleep_ms(int milliseconds) // cross-platform sleep function
{
#ifdef WIN32
    Sleep(milliseconds);
#elif _POSIX_C_SOURCE >= 199309L
    struct timespec ts;
    ts.tv_sec = milliseconds / 1000;
    ts.tv_nsec = (milliseconds % 1000) * 1000000;
    nanosleep(&ts, NULL);
#else
    usleep(milliseconds * 1000);
#endif
}

I did not try it yet, but I will. By now I think FlyWithLua does not really need a sleep(ms) function, but on the other hand if it was portable and reliable then why not. What do you think? Feel free to close the pull request.
Best regards,
Matteo

Did you know you could do this to do the same thing with no extra programs?
X-Plane.exe --lock_fr=030

Did you know you could do this to do the same thing with no extra programs?
X-Plane.exe --lock_fr=030

Oh that's interesting thank you. No I did not know that. I just tried it (I'm on macOS) and indeed the FPS are locked. However CPU and GPU temperatures still rise to quite high temperatures. Whereas when I throttle the flight loop using usleep(microseconds) the whole X-Plane process is slowed down and the temperatures really go down. I'm not sure what side effects my approach has in terms of flight model etc., but I'll keep playing around with it. I really enjoy flying with my fanless MacBook Air M1, but on the intel machine it is no joy at all. I don't blame X-Plane for it, but maybe I'll dare asking a X-Plane developer if they have an idea.
I'll close this pull request as FlyWithLua has really nothing to do with and I guess there's no need for a sleep function.
Thank you for your time and hints.


fix(tests): update WAT used in tests

The excellent pre-existing test suite contains a lot of WAT files as test-cases that seem to have older syntax in them.
The breakage is introduced because the current test suite runs stable, latest and nightly versions of Rust while conducting tests. While the rest of the Wasm toolchain (binaryen, wabt, etc) are hard-coded to versions that should stay compatible with the WAT as they were written, the upstreaming of various changes to Rust itself seems to be causing failures when using the existing WAT for tests.
This PR updates the WAT (mostly operation renaming) that have changed in order to get the [stable|beta|nightly] tests passing again.

Thank you so much @vados-cosmonic, great to see CI green again.


Added sg_dealloc_xxx() and sg_uninit_xxx() suite of functions

These are the equivalent to the sg_alloc/init functions and allow async destruction of resources. This is useful when using sokol in a multithreaded scenario; the render thread does the sg_init/sg_uninit while a separate resource/api/update thread can call the sg_alloc/sg_dealloc.

Looks good! I'll try to do a "merge day" soon where I'll focus on pending PRs.

I'm starting to look into this PR now. I think there's two small problem:

the uninit-functions should put the resource slot back into the SG_RESOURCESTATE_ALLOC state
...and the dealloc-functions need to check whether the resource slot in in the SG_RESOURCESTATE_ALLOC state

I think those changes are trivial, and I'll try to do them during the merge.

Yes, you are right of course, I remember wondering about that when I did it, and I think the only reason I didn't at the time was that in all cases the uninit should be followed by a dealloc anyway so it seemed like it wasn't too critical for my testing.....and then I forgot to go back to it :)

Ok merged, many thanks for the PR!
As described above, I've added the correct "state unwinding". I've also added a couple new tests to sokol-gfx-test.c in the sokol-samples repository:
https://github.com/floooh/sokol-samples/blob/4cf2a1ef723207e6d7a9b1500f79eb048a2f4ce6/tests/sokol-gfx-test.c#L674-L742
Another minor thing you missed is adding new entries to the sg_trace_hooks struct (this only shows up when compiling with SOKOL_TRACE_HOOKS enabled).

Great, thank you and also if there is a next time I'll be sure to look out for the sg_trace_hooks!


Examples do not work.

Platform: Windows 7 x64
Golang: 1.7.4
Hello example prints:
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x5f45a9]
goroutine 1 [running]:
panic(0x748d80, 0xc0420040b0)
c:/go/src/runtime/panic.go:500 +0x1af
github.com/gopherjs/gopherjs/js.(*Object).Get(0x0, 0x7c9d11, 0x8, 0xc0420260e8)
D:/gopath/src/github.com/gopherjs/gopherjs/js/js.go:32 +0x29
honnef.co/go/js/dom.(*window).Document(0xc0420260e8, 0xc0420260e8, 0xc0420cdf08)
    D:/gopath/src/honnef.co/go/js/dom/dom.go:969 +0x4a

main.main()
D:/gopath/src/github.com/influx6/gu/examples/hello/hello.go:13 +0x69
D:\gopath\src\github.com\influx6\gu\examples\hello>
And susribe example do not build at all. "go build" command do not create executable file.

Thanks for getting in touch, the library is aimed at providing html rendering, to run examples, simply open the index.html file within the corresponding example directory.

To simplify you started I have included a readme in the examples folder with directions.
Do please get back incase you are facing any other difficulties.

Sorry please close the issue once you feel satisfied.

Thanks for quick tips :) I think I understand how I should use examples :)


Coding Standards

I Think coding standards are very important and maybe should be built into the compiler like go does(a little bit). Also someone should write a tool like gofmt which will take pony code and format it. It makes formatting things a lot easier. When I was in the java world we always had our own custom formatting files for a project targeting different IDE's and it was a pain to manage. So it would be great if there was a single standard which we can all follow.
From @andymcn  naming conventions, layout, 80 character line limit, etc. https://github.com/CausalityLtd/ponyc/pull/385
What does everybody else think?

So it would be great if there was a single standard which we can all follow.

I can't disagree with this part enough.  We need to avoid discouraging a diversity of approaches.  There's no reason a language/compiler/runtime needs to impose a certain formatting style on all of its users.  If someone wants to write a third-party package, that's fine (I just won't use it), but I can already tell you that you and I will not agree on certain code formatting rules, so those rules have no place in this repo.
I believe @andymcn was talking about code style rules for this repository, which obviously does have a place in this repo.  But imposing onto other projects in the community your ideas about what code is another subject entirely.
Also, even when you can agree on standards within a single project (as you should be able to for the project to continue) there's no way a tool can maintain all the standards you need to think about.  For example, naming standards; it can enforce capitalization patterns, but not sane, conflict-aware naming.
So let's let the maintainers agree about code style guidelines for this repository, but don't impose your rules on the rest of us, and keep your gofmt-like tools somewhere in a repo of your own.
Sorry if I come across as a bit agressive, but I am very passionate about this issue.  We need diversity, not uniformity, in projects across our community (we only need uniformity within projects).

I agree that a variety of styles is a good thing, and I was indeed talking about a coding style within this repo - sorry if that wasn't clear. Obviously the standard library needs to have sensible, consistent names, API styles, etc and I think it will make things easier for new comers to the language if the examples are all in the same style.
One of the good things about Pony is that it is much easier to parse than most languages, simply because we considered that an important goal from the start and always consider the affect on parsing when making any syntax changes. This means that it is much easier to write auto-formatting tools for Pony than for most languages.

After further thought I still agree with @jemc that the compiler shouldn't be forcing these things. Considering each point mentioned:

Naming conventions. The compiler does actually already force a few things such as types starting with a capital letter, methods, parameters, fields and locals starting with lower case, etc. I think anything much beyond this is too restrictive, especially when some people will want to use naming that fits in with other projects and C libraries. And getting into a Microsoft enforced Hungarian notation situation would definitely be bad.
Layout. This is one where there is a lot of variation, but I do think that's fine. People naturally want different layouts because of what they're used to, a C programmer and a Haskell programmer both coming to Pony will probably naturally lay things out differently, and that's fine.
Line length. This absolutely should not be limited by the compiler. We limit to 80 characters because some of the devs use old style editors or want 2 columns of code on small screeens. But if someone writes on a huge screen with a single column of code, why should we force them to only use the left 30% of their screen?

One thing to bare in mind particularly for points 2 and 3 is that such restrictions can make it very hard to produce autogenerated code, which tends to be hard to layout nicely and have very long lines.
So thanks for the suggestion, but I think we'll say no to this one.
Writing an auto-formatting tool is a very good plan however, as I said Pony was specifically designed with this kind of thing in mind. If any one wants to give this a try please do and feel free to ask stupid questions if you get stuck.

Yeah... I guess the naming convention itself solves most of the enforcing it like in Go. I agree that the line length should not be limited to 80 and a compiler should never do that. A tool with configuration options to auto format pony code  on save should prove to be useful so I'll try to make that one. pony-fmt. That should solve this my issue. Thanks! For your feedback!


401 Bad credentials []

Intermittently seeing these types of errors, wonder if we are not using an authenticated request to github and suffering from lower rate limits, either that or we are calling github too much and we could look at caching details?
WARNING: GET https://api.github.com/repos/jenkins-x-labs/jxl/pulls/83: 401 Bad credentials []

/remove-lifecycle stale


Cannot read property importKey of undefined

What is your Test Scenario?
try to login on platform https://vimbox.skyeng.ru
What is the Current behavior?
my test inputs values to email and password fields and click login button, then i`m redirecting to empty page, also I can see error in console "Cannot read property "importKey" of undefined
https://monosnap.com/file/b0xlIpf98socqIgUinzxXdFySnLPa2
What is the Expected behavior?
test user is redirected to https://vimbox.skyeng.ru/showcase
What is your web application and your TestCafe test code?

https://vimbox.skyeng.ru - app I try to login

Your website URL (or attach your complete example):

Your complete test code (or attach your test files):

You can fing my code here https://github.com/tusia95/e2e-tests-testcafe
I use login method:
with selectors
loginField: Selector = Selector('[name="username"]');
passwordField: Selector = Selector('[action*="submit"] [name="password"]');
loginButton: Selector = Selector('[class*=password-form-button]');
async enterCredentials(t: TestController, email: string, password: string) {
await t
.typeText(this.loginField, email, {replace: true, paste: true})
.typeText(this.passwordField, password, {replace: true, paste: true})
.click(this.loginButton)
}

Your complete configuration file (if any):

const createTestCafe = require('testcafe');

createTestCafe('localhost', 1337, 1338)
    .then(tc => {
        testcafe = tc;
        const runner = testcafe.createRunner();
        return runner
            .src('./testcafe/*.tests.ts')
            .browsers(['chrome'])
            .concurrency(3)
            .run();
    })
    .then(failedCount => {
        console.log(`Failed tests: ${failedCount}`);
        testcafe.close();
    });

Your complete test report:

Screenshots:

https://monosnap.com/file/b0xlIpf98socqIgUinzxXdFySnLPa2

Steps to Reproduce:

Go to my website
Execute this command...
See the error...

Your Environment details:

testcafe version:                  1.14.2

node.js version:                    Node.js v14.16.1.

command-line arguments:  testcafe "chrome -incognito" group.tests.ts

browser name and version: Chrome Version 91.0.4472.77 (Official Build) (64-bit)

platform and version:          Win10

other:

Could you please send us the entire test file?
I tried to run this code:
import from 'testcafe';

async function enterCredentials(t: TestController, email: string, password: string) {
    const loginField: Selector = Selector('[name="username"]');
    const passwordField: Selector = Selector('[action*="submit"] [name="password"]');
    const loginButton: Selector = Selector('[class*=password-form-button]');

    await t
        .typeText(loginField, email, {replace: true, paste: true})
        .typeText(passwordField, password, {replace: true, paste: true})
        .click(loginButton)
}

fixture(`Fixture`).page(`https://vimbox.skyeng.ru/showcase`);

test(`Test`, async (t) => {
    await enterCredentials(t, 'email', 'password');
});

I used the following console:
testcafe "chrome -incognito" group.tests.ts

However, I couldn't reproduce the issue.

Victoria you can fin my code here https://github.com/tusia95/e2e-tests-testcafe

you should input real email/password - these data contains in my code (go to the github link)

Hi, @tusia95
Thank you for sharing the example with us. The problem is that the SubtleCrypto.importKey() method used in the code of the website you tested is available only in secure contexts. To solve the problem, you need to either specify --hostname localhost (because localhost is a secure context) or use SSL. See the following documentation entries about these options: --hostname and --ssl.
Also please note that you probably don't need to pass the --incognito flag for Chrome because TestCafe launches browsers with a clean profile by default and some Incognito Mode features (such as disabling cookies) may affect test execution.


chore: Bump CNI Version for Windows Swift and Overlay

What this PR does / why we need it:
Upgrade CNI version from v1.4.32 -> v1.4.35 for windows swift and overlay
Which issue(s) this PR fixes:

Fixes #
Requirements:

[X] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[X] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

@jaer-tsun Added two labels. You need to create PRs from a branch instead of a cloned repo to run all tests

Fyi: https://github.com/Azure/AgentBaker/pull/2241

we may need to wait for v1.4.36 if we can't overwrite existing zip in acs-mirror

@jaer-tsun All Windows VHD build tests failed in "Run VHD cache test". It seems like that the package in Mooncake has the different file size from that in global. Please help to check it.

@jaer-tsun All Windows VHD build tests failed in "Run VHD cache test". It seems like that the package in Mooncake has the different file size from that in global. Please help to check it.

@AbelHu Upstream is taking a look at allowing us to overwrite existing zip, seems like the hash different there compared to chinacloud and our own account

@jaer-tsun we only compare the file size for now since we do not get the hash from somewhere.

filesize mismatch has been resolved

All checks pass, updating branch and merging:


Fix dev:oidc npm script

Closes #1034

Relevant if https://github.com/getodk/central-frontend/pull/1035 is accepted.

#1034 not recreatable, so this change is not required.


Integration tests break on Windows because of line breaks

Integration tests fails on Windows because it uses different kind of line breaks than UNIX systems.

Fixed on develop, tested on Windows and macOS


Red cross mark shown before LFX easyCLA logo even contributor has Covered.

Pranab to talk to Craig about it - red cross mark as well as alignment of covered in the box.

Obtained images from the design team:

Updated images in DEV, STAGING, and PROD. Updated Python link to images - minor change to the not-signed image.  Pushed changes to DEV and STAGING.  Ready for test.

Verified for Not Covered and Covered Statuses on DEV and Staging Environment. Please find the screencast as follows:
DEV Not Covered:

Staging Not Covered:

DEV Covered:

GitHub : https://github.com/A-Manish-Foundation/Project-001/pull/1
Staging Covered:

@manishv09  to re-execute on Dev with new PR.
@dealako  to add steps to execute the flows Missing ID on Commit & Confirmation Needed.

Verified today for red cross when request is geted:

Verified today for red cross when request is geted:

@manishv09  as discussed, please create a separate ticket for verification of "Missing ID on Commit" and "Confirmation Needed" use cases - this one probably very rare one so mark Release as Post-EasyCLAv2Release and labelled it as tier-3.
And then you can mark this ticket as QA Done since the frequent use cases of "Covered" and "Not Covered" are verified and found to be working fine.
cc @dealako , @pranab-bajpai

@manishv09  as discussed, please create a separate ticket for verification of "Missing ID on Commit" and "Confirmation Needed" use cases - this one probably very rare one so mark Release as Post-EasyCLAv2Release and labelled it as tier-3.
And then you can mark this ticket as QA Done since the frequent use cases of "Covered" and "Not Covered" are verified and found to be working fine.
cc @dealako , @pranab-bajpai

With reference to above comments, a separate ticket is being raised for verification of rare use cases.
https://app.zenhub.com/workspaces/easycla-5ed619832c71a855a76ef404/issues/communitybridge/easycla/2416

With reference to above comments, a separate ticket is being raised for verification of rare use cases.
https://app.zenhub.com/workspaces/easycla-5ed619832c71a855a76ef404/issues/communitybridge/easycla/2416


Users can't close popup in mobile browsers

Expected behavior:
In mobile browsers users can close popup with close icon.
Actual behavior:
There is no close icon or any ways to close popup.
Steps to reproduce the behavior:

Create instance of widget:

 const widget = new RampInstantSDK({
      variant: 'auto',
    }).show();

2. Open popup in Chrome/Firefox mobile browser

This ramp helps us to buy using fiat, ex: my bank card disabled my online payments with crypto, how can I start using my wallet then?


*: Cosmetics

Fix noticed typos, clarify things in a couple of places. Only minor changes.

Thanks for helping and merging, Kamil.

For the reference: this was the last patch in my current queue. I suggest I use current version for some time with ZODB/go and wendelin.core, and if everything is ok we tag new release after some such testing.


Reimplement Calendar car app

With Connected being replaced with MyBMW, the Calendar app and the ability to navigate to upcoming appointments is going away. This ability is provided by Android Auto, and so it would fit in the purview of Android Auto Idrive.

In early version is available in the calendar branch, and here's a test build to try out before I merge to the main branch!

In early version is available in the calendar branch, and here's a test build to try out before I merge to the main branch!

I tried today this test build, I can confirm that  (check the comment & the screenshot organized this way)
1 | 2
3 | 4

the app shows up (BMW Calendario, so it takes the Italian Language app name

scrolling between dates works flawlessly
it highlights also the holidays with an "halo" under the day number (as instance, December 8Th is an Catholic Holiday)

3 & 4) it is not connected to the Google Calendar (but maybe it is not supposed to, at least at this stage ;), I quickly tried to add an appointment \ reminder for my Mum birthday to try just for curiosity

in any case, excellent job as always :)

Hmmm! That's disappointing, it works very well for me and my Samsung Calendar (which Google Calendar sees the same events). The fact that it sees the holidays means that it has the READ_CALENDAR permission, so it's not that...
Do you have several calendars in Google Calendar, and do some of them at least show up? I wonder what the pattern is, since your Holiday calendar shows up.

I checked and the app I'm using is MIUI Calendar 12.5.1-data, so maybe It works weird as all the MIUI apps do :) i confirm i gave the permissions. The app Is linked to my Google Calendar(s) more than One account. Actually if you see the screenshot, December 5 have Also the "halo" thing as It has inside something but After clicking on It, nothing shows up.. i'll do more tests and let you know.

I don't seem to get any entries in the calendar, using Samsung email (1 exchange and 1 imap account)  on a S20 ... Any specific setting needed apart from granting access to AAI ? (running build <IP_ADDRESS> Calendar)
thanks, Marc

On first usage you should be prompt to give access to android calendar default app. Check if you have in default calendar entries from Samsung email app.
e.g. I have exchange app in Workspace (email&calendar) and this calendar evens are not seen, as this spaces are independent.

Thank you all so much for testing!
I'm not sure what options there are for supporting Mi Calendar... I do see that it has its own Content Provider to provide access to its events, but the API contract is undocumented and very different from the native Android Calendar Content Provider, and unlikely to be guaranteed between versions. Is there a setting in Mi Calendar to synchronize their calendar with other apps? The original BMW Connected Calendar would not support it either, it only has code to query the system calendar.
I'm also not sure how Samsung email will integrate with it; as long as it's pushing the events to the system calendar so that they are visible in Google Calendar on the phone, it should work fine. My Samsung S9 uses the native Google Account Sync to fill things in the system calendar, which then shows up in Samsung Calendar. I did not add any filtering options in AAIdrive for now, so all events that are viewable should show up. The Work Profile calendar is indeed entirely separate and can't be seen from the main apps.
If AAIdrive Calendar doesn't have permission, it'll show a button in the phone UI to grant it and it'll show a one-time popup in the car app to request access. You'll probably have already granted this, which should be all you need to do.
The app name is hardcoded into the BMW app resources, so I'm delighted that it has a translated name! I don't think any other car app has a translated name like that!
I don't know of a way to show the day view in the sidebar while in the month view: that screen is entirely managed by the car, and all I do is provide a list of highlighted days for the month that the car says it is showing.
I'd like to hear more about the bug about the selected day being different when going back to the month view, I tried to support this feature. In fact, it seems very sticky for me, so that it goes back to the last selected day even when exiting the app and going back into it.
Please also tell me more about the month view showing an event on December 5th but no event showing in the day view. The code to find events for the Day view purposely looks a day ahead and behind to catch events that cross midnight (technically it won't show events in the Day view if you click into the middle of a week-long event, which aren't going to be super relevant to navigation but still fixable if that's preferred).
The Day view might support adding an icon or something; the BMW Calendar code says that there's a field for an ID of an image from the icon pack, which didn't work for either attempt I tried, but I haven't yet tried sending an actual image in this field which does work in other lists in the car. I planned to explore this after merging this branch to the main branch.

about "Please also tell me more about the month view showing an event on December 5th but no event showing in the day view. " i noticed that the halo is simply the one always present in the "selected" day :/
today I tried both only Miui Calendar & even Google Calendar but suddenly completely stopped working for me (the calendar worked but neither the holidays were shown today).. I surely manager to broke something, I'll try again some testings in the next days and give you some reports

How do you like the wording on this note, if the Mi Calendar is installed on the phone?

Maybe it would be better something like this:
_Events from Vendor Specific calendar apps (e.g. Mi Calendar) or from Work Profile that are not sync with default Android Calendar may not show up in the car.
The car will show the events that are visible in Google Calendar only (including shared calendars)._

How about this? The description at the top always shows up, indicating that Google Calendar will be the definitive view, and the Mi Calendar notice only shows up if Mi Calendar is installed.

Quick question, is it possible to present only calendars where I see details ? In Gcalc I have some read-only calendars where I only see free/busy and no detail and on daily bases it's not needed to present in the car.
So would be nice to have option to show only selected calendars from Gcalc or if not possible to present only the event that have title/details. Thanks.

In my test (and peeking in some Android code) it should hide events from calendars that aren't selected to display in Google Calendar.
I can also add an option to hide events without details or location easily enough! Thanks for the suggestion!

In my test (and peeking in some Android code) it should hide events from calendars that aren't selected to display in Google Calendar. I can also add an option to hide events without details or location easily enough! Thanks for the suggestion!

In my case not showing calendars that are unselected works fine. Adding the toggle to hide events without details would be nice and would solve the problem. Not sure about hidding events without location, as sometime I create tasks in calendar without location.

I implemented this toggle to hide any events that have neither a description or a location, so if one of those fields is provided it will still show the event.

Great, will test it over the weekend

I tested the latest commits but unfortunately for me the calendar doesn't work any more. No matter the toggle to hide event without location/details is on or off.  App shows the calendar permission granted but in car no events.
Previously it was working almost fine.
Still there is a situation that when I enter details at that day and press back button on idrive controller, the selected day is usually 1st day of the month or first Sunday of the month.
Request:

on details page you have link under date on top of the view, but now when you press it i see some empty page, maybe it would be nice to link that date to move to next date details page.

https://youtu.be/aubJHFo2vgE

Did you ever see the highlighted halo in the Month view, as shown in the pictures from berseker?
No i haven't seen.
I'll check tomorrow both versions and let you know.

I checked version with roll-backed commit 7f099d3 works fine. Below are 2 movies showing the working calendar with and without hiding empty events. Unfortunately, no halo even on Christmas Days (24-26 Dec).
https://youtu.be/XRAtZnOEtog
https://youtu.be/KzOwn9GU9vw
Version with that commit fails

Did you ever see the highlighted halo in the Month view, as shown in the pictures from berseker?
actually also myself after that first "quick test" i did not manage to see the "holidays" again . not sure which is the reason

@jezikk82 thank you for the test! Can you clarify which commit shows the working Day view and which one does not show any events in the Day view? The option to hide empty events came after that 7f099d3 Day View change, so that's promising...
Please try out cloning the repo down again and remove the Ignore line from this test file and uncomment some of the debugging from the query module and try out running the CalendarTest from your IDE. You can edit the CalendarTest to query with a null day parameter to simulate the month view. Perhaps add an extra logging line above the splitEventIntoDays loop to see if it's finding events there and they're somehow making it into the loop for some reason. It should add lines to your Logcat tab (filterable by the word Calendar) with what events it found.
Thank you for your patience in helping with the project!

I only rolled back single commit no 7f099d3. So in 2 files mentioned there i have old content.
Will try tomorrow CalendarTest and let you know.

I encountered a crash, and it seems that sometimes the phone's CalendarProvider can unexpectedly return null strings for the title, description, or location strings. I just added a guard for that behavior, and perhaps it might fix the problem you were seeing.

I'm extremely busy now and didn't have time to test what you stated. Today I made a quick test of what you committed and I don't work for me. I see only full day event, no other. Doesn't matter if the toggle to hide is on or off. Will share some pics later showing the problem.

I appreciate the time you spend helping test this project!
That looks like progress, since you hadn't seen the Highlighted Days halos before! Do I understand you are running the tip of the main branch but with 7f099d3 reverted in your build? That commit is meant to make sure that, if a day is highlighted in the month view (such as your Dec 17), then it will show up in the day view. Of course, those short events you demonstrate should show up anyways, so there's still something behaving wrong there. The toggle will affect whether an empty event is shown in the Month view too, not just the Day view, they should always match.
Does the "p.s." mean that I fixed that bug you were encountering?

Today's testes I performed on clean version from github.
No, previously I havent seen Highlighted Days halos, now it's present on days that have all day events.
Yes, you fixed the but I demonstrated on previous video when going back from day view highlighted was not the right day.
As soon as I get some free time will try to check with 7f099d3 reverted and let you know.

By chance I think I found root cause of the problem, actually two problems.

In Google calendar I have couple of different calendars, not only from Google but from others apps as well. What I did is to mark all of them as visible in GCalendar and made an event in all of them one by one. That way I discovered that only events from subscribed GCalendar Holiday events and week numbers are presented and from alphabetically first calendar on the list. In my case of it's a calendar from some app I dont use so much. Checked it twice and adding events from GCalendar and choosing that calendar make event visible in the car.
Not sure how You were taking events before, but It was working for me before the 7f099d3. I showed that in this video: https://www.youtube.com/watch?v=KzOwn9GU9vw

Two link that may be useful:
https://stackoverflow.com/questions/14423189/how-to-get-calendar-event-by-date-range-or-month-in-android/15331996#15331996
https://stackoverflow.com/questions/61012807/android-calendar-provider-does-not-return-latest-data

Toggle to hide events without details is not working as expected as well. On Dec 17 I have some events, I edited them to use the calendar I stated before as I see them in the car.

Browns event are synced from read only calendar and Title is "BUSY" no details. However in car they are presented without title (see video above) - toggle remove that entries.
Blue are mine, some of them have Teams meeting details, other have addresses in it and some have only title and times This last set it also hidden when toggle is on.

Any progress ?
I looked at https://developer.android.com/guide/topics/providers/calendar-provider#kotlin but can't find in AAID where to modify to ask for all subscribed calendars.

I haven't been able to think of anything. I recently added a change to require a title to be considered detailed enough to show in the car, which you may have seen.
The single line in AAIdrive that asks for calendar events is here. It uses an official helper function to query all events from the Instances table. This function automatically adds a query parameter of visible=1, which I believe would properly show all events for visible calendars and not include unchecked calendars. You could try copying this helper function and modifying it to not add this visible parameter, and maybe it will help find more events from your phone.
The change in 7f099d3 is to, when viewing the day view, to query the entire month and then filter for any events that have the correct day, as opposed to previously querying for events specifically by day, to handle the case where events span across the day. Because the same query is now being queried for both month and day view, any highlighted days in the month view should have events in the day view.
Have you checked in ADB Logcat to see if your phone is logging any crashes? Technically, when trying to set an icon for an event in the day view, I'm sending an RHMIResourceIdentifier while the official BMW Connected Calendar used to just send an integer, and perhaps your car is returning an exception and mine is just ignoring it? I just pushed up a change to remove this code and match the original Calendar app's behavior, just in case.

It this intended to be running on iDrive4, too?
Currently, it seems broken (at least in my car/setup):

Had the chance to test it with the ID4 XML file, but still the same situation.
I will try to get the log output next time.

Very interesting! Thank you for the log snippet!
Would you be able to swap out MyBMW for BMW Connected 6.4, manually grant it the Calendar permission through the Android settings, and see how the official BMW Connected Calendar behaves? I deciphered the Calendar app protocol by reading the decompiled code from BMW Connected, but I didn't see any special handling for ID4 in there and I wonder what I'm missing...

Alright, I will test it. Anything in particular I should do, like saving logcat messages again?
Side note: From my previous experiences, neither the BMW calendar apps from the Connected and Classic versions of the app were perfect, but the one from the BMW Connected Classic app worked better. It showed all my calendars from my phone (and even let me select/deselect every calender via the options menu in iDrive). The one from the newer Connected app only showed my Google calendar.
Both had in common that the left side-menu was a bit broken, the bottom menu entry (used for scrolling I think) was not visible but selectable.

Capturing logcat messages isn't necessary for testing BMW Calendar, it has its logs muted. If you have a rooted phone, an advanced technique would be to install and run tcpdump -i lo to capture the car traffic, but probably not necessary.
That's curious that Classic's Calendar was more functional! I'll peek in that codebase to see if it has any clues! I'd be most interested to see if the new BMW Connected Calendar works properly in your ID4, and I'd appreciate an overview (perhaps a video?) of how BMW Classic Calendar works. Thank you so much for your patience and assistance!

Here is a video showing the behavior of the original calendar app from the BMW Connected app:
https://user-images.githubusercontent.com/1875852/148662516-f9db8caa-6b7a-4837-a55d-68dbf518636c.mp4
And here is a demo of the Connected Classic's calendar app:
https://user-images.githubusercontent.com/1875852/148662548-525b4f31-e0bc-4653-883e-ea6651419adc.mp4

I just added a phone interface section to show what calendars and events the app can see, hopefully it helps debug the calendar visibility problems!

Hi, I just tested new release and it confirm what I manage to find earlier. It only takes one "default???" calendar (now it's xiaomi default) not the GCal and other subscribed calendars. All the calendars except Contact are marked as visible in GCalendar app.
That's interesting as well, as I don't have a Xiaomi Calendar app on my phone installed. It as removed with xiaomi debloater just after I bought the phone. Previously the "default??" calendar was from some project management app I tested, but after complete removal and clean-up with ADB it changed to xiaomi calendar DB (previously removed). Strange behaviour.
Maybe the best way would be to mark which calendars include in the car as you already have most of the  ui for it. (same swipe behaviour as with music apps)

That's fascinating! I just pushed up a branch that adds a debug row showing what sync provider each calendar comes from, check it out! Please feel free to experiment with this code and explore the data further.
I'm reluctant to add a separate customization of what calendars to view: This adds several extra user interaction steps and a complicated data storage model, which is tricky to keep in sync with the default data, in order to make its behavior diverge from the phone's native view of the data. I'd much rather have it work automatically, by figuring out the weird incompatibility with your (or perhaps, any?) Huawei phone.

Quick check:

hope that can help you somehow to discover what's going on with at least Huawei/Xiaomi phones.
I also would like to see the event from calendars I have marked in GCalendar without any extra layer, but if there are some problems in querying/implementation maybe that's a workaround.

Closing this implementation ticket as complete, and split off the remaining bugs to be tracked separately.


Open external terminal launch/debug with correct Terminal

VSCode Version: 1.4.0
OS Version: OS X El Capitan 10.11.5

When debugging/launching your code, VSC doesn't use your external terminal preference set in settings.json. I think it should be global, or at the very least, another option to be able to change for that specific type of action.
Steps to Reproduce:

In your settings.json, set your terminal to a different one. e.g. for OSX, use:
// Customizes which terminal application to run on OS X.
"terminal.external.osxExec": "iTerm.app"

In launch.json, set an action with "externalConsole": true

Start debugging/running your application

Your application will run in the default Terminal.app (or your OS equivalent)

Expected behavior:
Last step should respect your preferences

fyi @Tyriar

Today external terminals managed in debug adapters are completely independent from VS Code and have no access to the the corresponding settings.
But we plan to consolidate this in the future.

This should work since August 2016.

VSCode Version: 1.7.2 - 7ba55c5860b152d999dda59393ca3ebeb1b5c85f
OS Verson: macOS Sierra 10.12.1
Same reproduce steps. The Terminal.app opened instead of iTerm.app
The right click 'open in terminal' option open the iTerm.app specified in the settings.json.
The launch.json "externalConsole" option seems ignoring the setting in the settings.json

@weinand but I reported this at the end of august :)

@Evilcat325 @chenasraf What debug extensions are you using? Options in launch.json are implemented by a specific debug extension. So if it doesn't work, it is a problem of a debug extension and not VS Code in general.

I've just verified that this works fine in the Node debugger of VS Code (extension: Node Debug).
BTW, Node Debug's externalConsole attribute has been deprecated. Please use the console attribute instead (and if you are not seeing externalConsole as deprecated, then you are not using Node debug).

@weinand  Thanks for fast respond and explained the detail of the process. I was using the cpp debugger and it still use the externalConsole attribute,  I guess I would have to open a issue at their repo. Thanks for the help


CRI: An empty DNSConfig != unspecified

If we find that DNSConfig is provided and empty (not nil), we should not
replace it with the host's resolv.conf.
Also adds tests.
Fixes https://github.com/kubernetes/kubernetes/issues/120748
@aojea @fungaren

/ok-to-test
/area cri

/lgtm

/cherry-pick release/1.7

/cherrypick release/1.7


About the parameter setting of training command

I use the command CUDA_VISIBLE_DEVICES=0,3 OMP_NUM_THREADS=4 python -m torch.distributed.launch --nproc_per_node=2 train.py --id retrain_s0 --stage 0 to train the model, but an error occurred.
The error message is as follows：
CUDA Device count:  2
CUDA Device count:  2
I am rank 0 in this world of size 2!
I will take the role of logging!
I am rank 1 in this world of size 2!
Traceback (most recent call last):
File "train.py", line 55, in
logger = TensorboardLogger(para['id'], long_id)
File "/root/projects/code/STCN/util/logger.py", line 46, in init
repo = git.Repo(".")
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/git/repo/base.py", line 220, in init
self.working_dir = self._working_tree_dir or self.common_dir  # type: Optional[PathLike]
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/git/repo/base.py", line 303, in common_dir
raise InvalidGitRepositoryError()
git.exc.InvalidGitRepositoryError
Traceback (most recent call last):
File "train.py", line 64, in
model = STCNModel(para, local_rank=local_rank, world_size=world_size).train()
File "/root/projects/code/STCN/model/model.py", line 26, in init
STCN(self.single_object).cuda(),
File "/root/projects/code/STCN/model/network.py", line 80, in init
self.key_encoder = KeyEncoder()
File "/root/projects/code/STCN/model/modules.py", line 129, in init
resnet = models.resnet50(pretrained=True)
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torchvision/models/resnet.py", line 300, in resnet50
return _resnet('resnet50', Bottleneck, [3, 4, 6, 3], pretrained, progress,
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torchvision/models/resnet.py", line 262, in _resnet
state_dict = load_state_dict_from_url(model_urls[arch],
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torch/hub.py", line 528, in load_state_dict_from_url
return torch.load(cached_file, map_location=map_location)
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torch/serialization.py", line 593, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torch/serialization.py", line 762, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: unpickling stack underflow
Killing subprocess 24445
Killing subprocess 24446
Traceback (most recent call last):
File "/root/miniconda3/envs/pytracking/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/envs/pytracking/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torch/distributed/launch.py", line 340, in
main()
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torch/distributed/launch.py", line 326, in main
sigkill_handler(signal.SIGTERM, None)  # not coming back
File "/root/miniconda3/envs/pytracking/lib/python3.8/site-packages/torch/distributed/launch.py", line 301, in sigkill_handler
raise subprocess.CalledProcessError(returncode=last_return_code, cmd=cmd)
subprocess.CalledProcessError: Command '['/root/miniconda3/envs/pytracking/bin/python', '-u', 'train.py', '--local_rank=1', '--id', 'retrain_s0', '--stage', '0']' returned non-zero exit status 1.
I don't set the parameter master_ port and keep the parameters id unchanged because I fail to understand the tutorial.
Do you know the cause of the problem, and could you kindly teach me how to set the parameter master_ port and id ?

The error seems to come from git, which I used to log the commit id in tensorboard for tracking. You are probably using it in a non-git setting (e.g., .git damaged somehow). You can either recover the git info (git clone or otherwise) or just remove any references to git in the code.
master_port is a parameter of DDP. Read PyTorch's tutorial to learn more, but the idea is just to tie it to an unused port.
id is a unique identifier of an experiment. It is just the "name" of a run.

I got it, thank you very much.

I got it, thank you very much.


moving coordination server

Lets say I've setup  an innernet network successfully with 4-5 cidrs and  2 dozens servers an suddenly my coordination server goes down.
How would I handle restoring it?
Would I just spin up another vps, copy db file and re-install innernet server and relaunch it  - would that be it?

Yep, exactly. If the external IP changes, you'll also have to update the external-endpoint in your /etc/innernet/[network].conf.
The coordinating server uses a simple SQLite database, so you can also take easy backups a la:
sqlite3 /var/lib/innernet-server/mynetwork.db ".backup mynetwork.db.bak"

Peers that are already connected to each other will remain connected to each other while the the coordinating server is down, but peers trying to join the network won't be able to obviously until it's back up.
Hope that helps! I'm interested to hear other ideas on other simple ways to make innernet more high-availability for more use cases (or ways to make backups even simpler). For our case at tonari, the coordinating server going down for a small period of time is not a major issue (although I'm happy all the same it has yet to go down) since our peers will remain connected and continue streaming to each other, so we opted initially to keep code complexity down and not offer HA solutions.

@mcginty Thank you!
this seems fairly simple and maintainable to handle server fallout (at least at my current scale).
appreciate you finding the time to opensource this and share with the community :+1:

I see two options for kubernetes deployment:
Option1:

replace file-based sqlite with distributed sqlite like rqlite
host multiple innernet-servers behind loadbalancer
if one node goes down, mutlple other nodes are still available to handle requests

Option2:

use persistent distributed storage to store sqlite files
run single innernet-server with attached kubernetes-service
if pod goes down, it'll get restarted automatically and storage gets reattached

Personally, I believe that Option2 is faster to achieve without doing any changes to innernets codebase.
Any thoughts?

I see two options for kubernetes deployment: Option1:

replace file-based sqlite with distributed sqlite like rqlite
host multiple innernet-servers behind loadbalancer
if one node goes down, mutlple other nodes are still available to handle requests

Option2:

use persistent distributed storage to store sqlite files
run single innernet-server with attached ingress node
if pod goes down, it'll get restarted automatically and storage gets reattached

Personally, I believe that Option2 is faster to achieve without doing any changes to innernets codebase.
Any thoughts?

What about the idea of using dns record as seed?


Pass mock player objects to strategy

So players can't cheat by modifying their opponents.
Cheating by looking at what the opponent's strategy will do is still possible (should it be?)

There are quite a few strategies that are now built that actually 'take advantage' of this though. They're put in their own 'cheaters' list and a separate tournament is run for them (see second plot in the README). I think it's good fun to be able to allow that (there's just been a pull request that changes the opponent's strategy to 'always cooperate', I want to write one that has a separate response to all known strategies etc...).
I'm happy to keep those in and just keep track of non cheating strategies by investigating the pull requests.

I've reread the code and pull request properly and see that yours would indeed just stop 'mind control'... That's perhaps not a bad idea... Not sure, what do you think @JasYoung314 (Jason wrote the mind control one).
There's a bit of me that wants to let everyone cheat in anyway they want (again pointing to the fact that they are kept separate from the other strategies), I like the idea that 'cheating' is a 'no rules' kind of thing. People might keep on thinking of smarter coding tricks to beat each other (I actually have a plan for mindreader...).

@christianp I think that having a no holds barred cheating tournament is kind of fun (Personally I'm enjoying the challenge of using coding tricks to beat the opponent).
However, having these anti cheat failsafes in the main tournament might not be a bad idea. Is there a way to only use mock players in the main tournament?

There probably (inherit a CheatingTournament class) is but I'd still have to inspect things carefully at every pull request so probably easier to just leave it as it is?

I think leaving cheating in is a good idea (as two of my three strategies rely on cheating)

My opinion is that this is a question of focus. Cheating is simply "beside the point", because it reduces the contest to technical questions of coding. Sure, you can continue to find ways to change an opponent's strategy, history or the opponent itself! For example, here is a player that kicks MindControl's butt:
class MindWarper(Player):
    name = 'Mind Warper'
    def __setattr__(self, name, val):
        if name == 'strategy':
            print 'Not so fast!'
        else:
            self.__dict__[name] = val
    def strategy(self, opponent):
        opponent.strategy = lambda opponent: 'C'
        return 'D'

We could now devise a way to defeat MindWarper with a MindBender player that modifies the internal dict of MindWarper, or whatever. It might also make sense to harden the Player base class to disallow certain types of cheating as they are discovered. Python is flexible enough to allow for all that.
This is all very entertaining, but I don't think it's relevant to the goal of the project. Presumably it is about game theory and the evolution of cooperation. Not about the subtlteies of the Python language. Python is super flexible and that is why conventions are so important. A convention that clearly states the rules of the game is enough to not waste time on so much extra code.
Just my two cents.

Yeah I completely agree with you and it's great that that's how this has
been going (not many cheating strategies have been submitted at all). I
don't see the harm of having a side tournament which includes the cheaters
(simply for fun and just seeing the response dynamics you illustrated is in
itself interesting). I plan on having a thorough go at some documentation
and revamping the readme over the weekend so I might clarify all this
(giving a slightly less visible spot to the cheaters).
I'd almost not want to incorporate checks and limits on the cheaters
tournament as I don't want to take away from the actually interesting one
(without cheaters). By having a no holes barred tournament it will either
interest no one or be a cool to for some to learn certain python
subtleties.
Adding my own two cents :)
On Thu, 26 Feb 2015 17:22 Karol M. Langner<EMAIL_ADDRESS>wrote:

My opinion is that this is a question of focus. Cheating is simply "beside
the point", because it reduces the contest to technical questions of
coding. Sure, you can continue to find ways to change an opponent's
strategy, history or the opponent itself! For example, here is a player
that kicks MindControl's butt:
class MindWarper(Player):
name = 'Mind Warper'
def setattr(self, name, val):
if name == 'strategy':
print 'Not so fast!'
else:
self.dict[name] = val
def strategy(self, opponent):
opponent.strategy = lambda opponent: 'C'
return 'D'
We could now devise a way to defeat MindWarper with a MindBender player
that modifies the internal dict of MindWarper, or whatever. It might
also make sense to harden the Player base class to disallow certain types
of cheating as they are discovered. Python is flexible enough to allow for
all that.
This is all very entertaining, but I don't think it's relevant to the goal
of the project. Presumably it is about game theory and the evolution of
cooperation. Not about the subtlteies of the Python language. Python is
super flexible and that is why conventions are so important. A convention
that clearly states the rules of the game is enough to not waste time on so
much extra code.
Just my two cents.
—
Reply to this email directly or view it on GitHub
https://github.com/drvinceknight/Axelrod/pull/57#issuecomment-76222431.

I'd almost not want to incorporate checks and limits on the cheaters tournament as I don't want to take away from the actually interesting one (without cheaters). By having a no holes barred tournament it will either interest no one or be a cool to for some to learn certain python subtleties.

Sure, that's the simplest approach. I think it will lead to a side tournament that will be very far from the original one and focused on the tricks. Anyway, I'm all for the fun, so I guess I should put MindWarper in there :)

Yeah I expect the side tournament to be completely different. If at some point it did become too chaotic then perhaps we could bring in some restrictions.
Let me know what you think @christianp if you're OK with it I'll close this pull request. Happy to discuss further though :)

How about this - strategies in the cheating list get the raw object, but non-cheating strategies get the mock object.

I'm hesitant. That would work just fine but either way I'd still have to inspect the pull requests carefully (to make sure that a cheater is not put in the wrong list), not really sure it adds much apart from a slightly more complicated overall class...
I don't think anyone is going to wilfully try and actually cheat (as opposed to creating 'cheater' strategies) anyway so I'm not sure this is solving a problem. Not at all meaning to be negative just hesitant to add code that I'm not sure has a purpose...
Perhaps I'm too optimistic about people submissions and also about my ability to not be tricked :)

What does everyone think?

I tend to agree with Vince - it's unnecessary, assuming people don't really cheat.
Plus, a cleaner solution to block mind control and basically kill all current cheating would be to pass just a copy of the opponent's history to strategy, since we don't expect it to use anything else.

I'm going to go ahead and close this pull request but feel free to reopen if anyone wants to talk about it more. Really appreciate it @christianp, it's been good to discuss. Please throw a strategy in :)


Ignore tslint in the generated files

Add /** tslint:disable*/  to all generated files.

Coverage remained the same at 96.053% when pulling 96a799726bec983fa6db72eca61721f798bd4ecf on msiegenthaler:tslint-ignore into eead53c1faa7274c80423b7afc90680444517f16 on nknapp:master.

This is also a partial fix of #8


Product images fail without error message

I uploaded this beautiful picture of my product:

Everything seemed to work, but my product still shows as:

Tried some other images but they failed too.

@joshfraser I tried adding the image to one of my shop and it worked. Wonder if GitHub upload modified it. Do you have a google drive link to the origin image?

You're looking at the "preview" shop and not a deployed instance, yeah?

Yes, the preview version. A separate issue is my deployed version isn't showing up yet. Not sure if that's due to slow DNS propagation or the Ethereum network being clogged up?
Here's the link to the image:
https://drive.google.com/file/d/1276UDb-VGMLbsXUYB8xMD-0cuUjD9XVT/view
Perhaps more useful are my console logs:

That 401 on /products/upload-image seems relevant.

@joshfraser can you look at your networks tab and look at what the full URL is for that?  That endpoint doesn't intentionally return a 401 unless you fail auth.  Might be worth going to https://same-hostname/auth and see what happens.

Good call @mikeshultz. Image uploads work on dshopapi.ogn.app but not dshop.originprotocol.com

There's a lot of weirdness going on right now with the hostnames switching up.  I think some configurations are probably pointing at backends that you may have no logged into.  Maybe try to login directly do https://dshop.originprotocol.com, if you can.

Haven't been able to repro this directly and just want to chalk this up to auth weirdness between the move to the new domain.  @joshfraser, is everything working now?  Okay to close?

Gonna close this for now unless @joshfraser tells me otherwise.


Make NucleiDetection CLI work on WSI, ROIs and run in parallel using Dask

This PR makes NucleiDetection CLI work on both small/simple png/jpg images and large whole-slide images. Furthermore, it can also be used to detect nuclei within an ROI (must be specified in base_pixels space) of the image.
The following additional parameters have been added to the CLI:

Analysis ROI - specified the region-of-interest within which the analysis should be done. Must be a four element vector in the format "left, top, width, height" in the space of the base layer. Default behavior is to process the whole image.

Analysis Tile Size - The tile size to be used for block wise analysis.

Analysis Magnification - The magnification (default: 20x) at which the analysis should be done.

Minimum foreground fraction - minimum fraction of foreground that should be present in a tile for it to be analyzed.

LAB Mean and stddev of reference image - for reinhard color normalization

Dask scheduler address - Must be in the format ":". By default it will use all but one core on the machine the CLI is running on.

The CLI runs error free from the command-line.

When run from inside docker image using docker run it produces the following warning but still produces the correct result
test_data/L1.png: Not a TIFF or MDI file, bad magic number 20617 (0x5089).
ERROR:root:pylibmc exception
Traceback (most recent call last):
  File "/build/miniconda/lib/python2.7/site-packages/large_image/server/cache_util/memcache.py", line 106, in __getitem__
    return self._Cache__data[hexVal]
  File "/build/miniconda/lib/python2.7/site-packages/pylibmc/client.py", line 156, in __getitem__
    value = self.get(key)
ConnectionError: error 3 from memcached_get(d8ecf46a701fe737fcf05d6abaae8518): (0x128ead0) CONNECTION FAILURE(Connection refused),  host: <IP_ADDRESS>:11211 -> libmemcached/connect.cc:156
ERROR:root:Memcached ServerDown exception
Traceback (most recent call last):
  File "/build/miniconda/lib/python2.7/site-packages/large_image/server/cache_util/memcache.py", line 125, in __setitem__
    self._Cache__data[hexVal] = value
  File "/build/miniconda/lib/python2.7/site-packages/pylibmc/client.py", line 163, in __setitem__
    if not self.set(key, value):
ServerDown: error 47 from memcached_set: (0x128ead0) SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY,  host: <IP_ADDRESS>:11211 -> libmemcached/connect.cc:720

@cooperlab Can you please review?

Codecov Report

Merging #249 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #249   +/-   ##
=======================================
  Coverage   60.79%   60.79%
=======================================
  Files           8        8
  Lines         352      352
=======================================
  Hits          214      214
  Misses        138      138

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 07af226...12a4dbc. Read the comment docs.

We can use python 2.7.13 if we are on the girder 1.x-maintenance branch instead of the v1.7.0 release.

At this moment, since everything works with python 2.7.12 as well, I don't mind holding the upgrade until we have completely migrated ti girder-2.0.


Minor user guide edit, and UI enhancements

Pull Request Test Coverage Report for Build 173

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.699%

Totals

Change from base Build 172:
0.0%

Covered Lines:
2203

Relevant Lines:
2512

💛  - Coveralls


Version bump

Can we get a release? https://github.com/nco/pynco/compare/0.0.3...master
In particular I need:

https://github.com/nco/pynco/commit/7df130e36520a3fc112e366d51deae2819a509cb

I've been building my own patched conda packages but they break all the time as requirements in conda change. https://anaconda.org/axiom-data-science/pynco/files
Thanks!

Release 0.0.4 doesn't seem to appear in pypi yet?

@kwilcox - you should have permissions to do a release on pypi too.


swap text in sort by price

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR type

[x] Bugfix
[ ] Feature
[ ] Refactoring

What's new?

[x] PR closes #2678

Before submitting Pull Request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged the recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[x] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </rmrk/collection/26902bc2f7c20c546a-1FVG7>
[ ] I've tested PR on mobile and everything seems works
[ ] I found edge cases
[ ] I've written some unit tests 🧪

Had issue bounty label?

[x] Fill up your KSM address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

oh impressive spot!
joining payout for bug reporting plus bug fix )
pay 100 usd

😍 Perfect, I’ve sent the payout
💵 $100 @ 168.52 USD/KSM ~ 0.593 $KSM
🧗 DY4SQF2iD456tH89aQtz5wv1EV3BbSW8wKKuMcwbmXaj1pM
🔗 0xfe326f5510db288bcd02602f27ff357bbd60d235a850086083f3a28bdb221ed2
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Update Docker to 2.0.0.rc35

Description
A clear and concise description of what the bug is.
Changed the papermerge images flages from 'latest' to '2.0.0.rc35'. After starting the containers again, i receive Server Error (500).
db container logs:
2021-02-25 17:59:45.746 UTC [43] ERROR:  column core_user.role_id does not exist at character 276

2021-02-25 17:59:45.746 UTC [43] STATEMENT:  SELECT "core_user"."id", "core_user"."password", "core_user"."last_login", "core_user"."is_superuser", "core_user"."username", "core_user"."first_name", "core_user"."last_name", "core_user"."email", "core_user"."is_staff", "core_user"."is_active", "core_user"."date_joined", "core_user"."role_id", "core_user"."created_at", "core_user"."updated_at" FROM "core_user" WHERE "core_user"."id" = 1 LIMIT 21

2021-02-25 17:59:48.468 UTC [44] ERROR:  column core_page.hocr_step_0 does not exist at character 304

2021-02-25 17:59:48.468 UTC [44] STATEMENT:  SELECT "core_page"."id", "core_page"."document_id", "core_page"."user_id", "core_page"."number", "core_page"."page_count", "core_page"."text", "core_page"."norm_doc_title", "core_page"."norm_folder_title", "core_page"."norm_breadcrump", "core_page"."norm_text", "core_page"."lang", "core_page"."image", "core_page"."hocr_step_0", "core_page"."hocr_step_1", "core_page"."hocr_step_2", "core_page"."hocr_step_3" FROM "core_page" WHERE "core_page"."document_id" = 7 ORDER BY "core_page"."number" AS

papermerge_worker log:
psycopg2.errors.UndefinedColumn: column core_page.hocr_step_0 does not exist

LINE 1: ...m_text", "core_page"."lang", "core_page"."image", "core_page...

                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  File "/opt/app/.venv/lib/python3.8/site-packages/celery/app/trace.py", line 405, in trace_task

    R = retval = fun(*args, **kwargs)

  File "/opt/app/.venv/lib/python3.8/site-packages/celery/app/trace.py", line 697, in __protected_call__

    return self.run(*args, **kwargs)

  File "/opt/app/.venv/lib/python3.8/site-packages/papermerge/core/management/commands/worker.py", line 30, in txt2db

    doc.update_text_field()

  File "/opt/app/.venv/lib/python3.8/site-packages/papermerge/core/models/document.py", line 728, in update_text_field

    for page in self.pages.all():

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 287, in __iter__

    self._fetch_all()

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 1308, in _fetch_all

    self._result_cache = list(self._iterable_class(self))

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 53, in __iter__

    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1156, in execute_sql

    cursor.execute(sql, params)

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 66, in execute

    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers

    return executor(sql, params, many, context)

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute

    return self.cursor.execute(sql, params)

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__

    raise dj_exc_value.with_traceback(traceback) from exc_value

  File "/opt/app/.venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute

    return self.cursor.execute(sql, params)

django.db.utils.ProgrammingError: column core_page.hocr_step_0 does not exist

LINE 1: ...m_text", "core_page"."lang", "core_page"."image", "core_page...

                                                             ^

Expected
Login page without error
Actual
Website response with Server Error 500 -Looks for me like there was no update for the db schema.
Info:

OS: Docker on Debian
Browser Edge
Database PostgreSQL 12.3
Papermerge Version 1.5.5 to 2.0.0.rc35

@w4tzmann, thank you for reporting this. I will fix it.

I close this issue as duplicate of #311.

I am getting this same problem with a fresh installation (Linuxserver latest image). It looks as if others are having the same problem. An issue has been opened with linuxserver.
https://www.reddit.com/r/Papermerge/comments/ls7dq3/new_update_broke_my_instance_docker/

yes, there is an issue with upgrading from 1.5.x to 2.0.0. I fixed it and tomorrow I will release next release candidate.

@ciur,
Thanks, appreciate your work on this -- excited to check it out. Just an FYI, if feedback is helpful at all, this was a new (fresh) installation, not an upgrade.


Timezone gets reset to GMT-00:00

I've really enjoyed using this app over the last couple of years but there is one issue I keep running into. When I initially create a task and then set either a start date or due date, everything works as intended (the Timezone is automatically populated with Pacific Standard Time (PST). I get a notification when that time elapses. But say that I can't get to that task and I want to reschedule it for the next day. When I select the task to change the due/start date, the Timezone field will be set to GMT-00:00. So if I just absentmindedly changed the day for the due/start date, the actual time listed next to it would be wrong because the Timezone is completely off now. I'm using the latest F-Droid version. Am I doing something wrong here? Are you able to reproduce this? Thanks!

Actually, I can not reproduce this issue. Do you use any synchronization app? Does this also happen on local, unsynced lists?

Ah that's something I hadn't thought of. I use CalDAV (Davx for Android) to sync my lists to a backup server. I couldn't reproduce this with a local task so that's a good sign. Are you aware of why this could be happening with a synced list? If not, then I can close this and try to debug elsewhere.

I have the same problem, also using DAVx5. So far, I couldn't find a related DAVx5 issue in their issue tracker.

I think I could find the root cause for my problem: It seems to be my CalDAV provider mailbox.org. I can reproduce the problem with Evolution in debugging mode, so I assume that the same happens with DAVx5, too:
Sent to server:
DUE;TZID=Europe/Berlin:20210413T100000

Received from server:
DUE:20210413T080000Z

This also occurs for me using privateemail.com, a service of NameCheap.


depend-info in manifest mode

Is your feature request related to a problem? Please describe.
I want to query the dependency graph for an entire project. The current depend-info command only works in classic mode, in which the dependencies are shown for only one port. To query the dependencies for an entire project, one would have to parse the vcpkg.json manifest and call depend-info for each port.
Proposed solution
Provide an (explicit or implicit) manifest mode for the depend-info command.
Examples:

vcpkg depend-info <- search for vcpkg.json in current directory
vcpkg depend-info vcpkg.json

Describe alternatives you've considered
No response
Additional context
No response

You can create a new folder newdir in the vcpkg/port directory, and then copy your project's vcpkg.json to the new folder. Then run the following command to get all dependencies.
./vcpkg depend-info newdir --format=tree

That worked indeed. However, this is not really appropriate for automated build processes and pipelines scenario, as it would require modifying the vcpkg installation directory.

That worked indeed. However, this is not really appropriate for automated build processes and pipelines scenario, as it would require modifying the vcpkg installation directory.

Yes, this is just a temporary solution, I will try to modify to read the vcpkg.json file directly to show the dependencies.

As a mitigation, you can try vcpkg install --dry-run.

I'll note two things here

The simplest way of hacking around the current limitation is an overlay port: vcpkg depend-info my-app --overlay-ports=.
The information returned from the trick above can be wrong, because the versions it selects are not done according to the manifest, nor is it a simple checkout of the registries (we have a private vcpkg registry).

Currently the only way to install a specific package version is via manifest mode. There is no way to define a package version on the classic command line install. There is none for depend-info either. To to see the dependencies of a specific package version, would be nice if depend-info either works with the manifest file or if there was a way to specify the package version on the command line.

@BillyONeal Can vcpkg query dependent packages in manifest mode?

To to see the dependencies of a specific package version, would be nice if depend-info either works with the manifest file

What works is https://github.com/microsoft/vcpkg/issues/36520#issuecomment-1930449009.

Use the command vcpkg install --dry-run to achieve the results you need. I will close this issue. If you have new issue, please submit a new issue.

Please reopen.

vcpkg install --dry-run does NOT permit to have parent/children relationship. This feature is needed.
All good package manager permit to do this.


task(chats): load the conversations on initialization and not do based on what is there in the state

task(chats): load the conversations on initialization and not do based on what is there in the state

To clarify, uplink relies on the state to list the conversation(s), however if the state.json is deleted or corrupted (or if the account is being recovered in #1935), uplink would not show the conversations in the side bar. While it is possible to load up direct messages by clicking on the chat button with friends, it would not be possible to load group conversations from warp since uplink does not provide any means for that.
A solution would be :

To exclude the conversation metadata from state.json and load the conversation into the state in memory.
Initialize the conversation in the state if there been any update between what is in warp compared to the data in state.json


feat: Delete theme when application is deleted

Description
This PR archives the related themes when an application is deleted aka archived.
Fixes #13251
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

JUnit tests
Manually

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=d124e7a

/ok-to-test sha=798426f


Can't Activate Grid View / APP Button

Hello.
I am using MST2_EU_SK_ZR_P0253T on a Skoda Technisat 5Q0035874A MIB2 unit and trying to activate the grid menu. This has been retrofitted to the car with the larger 8" screen.
When activating the User-switchable MenuMode, rebooting the unit doesn't make any difference (no additional menu option.)
Is it possible to update to the 03xx/04xx firmware and allow the "APP" button to work on the 8" screen?
Thanks,
Paul.

Realised the grid view isn't supported on P02XX and requires P03XX or P04XX.
Force upgraded unit to P0480 and the gird view is now available.
Benefit also is that the APP button also works.


Adding dropResults parameter in queryOptions to drop the resultTable field from the response

This PR adds a parameter to queryOptions to drop the resultTable from the response. This mode can be used to troubleshoot a customer's query (which may have sensitive data in the result) using metadata only.
Manual testing report:
% ./bin/quick-start-batch.sh
...
% curl http://localhost:9000/sql -d '{"sql":"select * from billing limit 10","trace":false}'
{"resultTable":{"dataSchema":{"columnNames":["alternateCharge","alternateUsage","baseCharge","baseUsage","billingMonth","buildingType","city","creditHistory","customerId","firstName","isCarOwner","lastName","levy","maritalStatus","missedPayment","overdueBalance","standingCharge","tax","totalNet","totalToPay"],"columnDataTypes":["BIG_DECIMAL","BIG_DECIMAL","BIG_DECIMAL","BIG_DECIMAL","STRING","STRING","STRING","STRING","INT","STRING","BOOLEAN","STRING","BIG_DECIMAL","STRING","STRING","BIG_DECIMAL","BIG_DECIMAL","BIG_DECIMAL","BIG_DECIMAL","BIG_DECIMAL"]},"rows":[[10.16,112.62,67.44,457.56,"201904","Condominium","Palo Alto","A",341,"Rebecca",false,"Effertz",2.55,"U","Paid",0,7.49,17.18,87.65,104.82],[0,0,150.32,1161.67,"201903","Condominium","Mountain View","A",374,"Reba",true,"OKeefe",4.68,"S","Paid",0,5.62,31.48,160.62,192.1],[0,0,58.13,449.21,"201904","Condominium","Palo Alto","A",398,"Sydnee",false,"Farrell",1.91,"S","Paid",0,5.62,12.87,65.66,78.53],[0,0,114.91,888.02,"201901","Apartment","Cupertino","A",427,"Susanna",false,"Schaefer",3.62,"S","Paid",0,5.62,24.33,124.15,148.48],[0,0,86.72,670.17,"201808","Apartment","Cupertino","B",435,"Stephen",true,"Conn",3.05,"M","Paid",0,14.87,20.51,104.64,125.15],[0,0,115.73,894.34,"201808","Apartment","Palo Alto","A",441,"Rickey",false,"Smitham",3.64,"M","Paid",0,5.62,24.5,124.99,149.49],[0,0,184.78,1427.99,"201808","Apartment","Cupertino","A",465,"Kristina",true,"Towne",5.99,"U","Paid",0,14.87,40.31,205.64,245.95],[0,0,57.59,445.09,"201904","Apartment","Mountain View","A",499,"Alexane",false,"Weber",1.95,"M","Paid",0,7.35,13.11,66.89,80],[0,0,95.55,738.44,"201810","Apartment","Santa Clara","A - Excellent",503,"Elouise",true,"Hickle",3.31,"U","Paid",0,14.87,22.29,113.74,136.03],[0,0,128.86,995.82,"201906","Apartment","Mountain View","A - Excellent",533,"Ansley",true,"Bogisich",4.03,"M","Paid",0,5.62,27.15,138.51,165.66]]},"exceptions":[],"numServersQueried":1,"numServersResponded":1,"numSegmentsQueried":1,"numSegmentsProcessed":1,"numSegmentsMatched":1,"numConsumingSegmentsQueried":0,"numConsumingSegmentsProcessed":0,"numConsumingSegmentsMatched":0,"numDocsScanned":10,"numEntriesScannedInFilter":0,"numEntriesScannedPostFilter":200,"numGroupsLimitReached":false,"totalDocs":694,"timeUsedMs":9,"offlineThreadCpuTimeNs":0,"realtimeThreadCpuTimeNs":0,"offlineSystemActivitiesCpuTimeNs":0,"realtimeSystemActivitiesCpuTimeNs":0,"offlineResponseSerializationCpuTimeNs":0,"realtimeResponseSerializationCpuTimeNs":0,"offlineTotalCpuTimeNs":0,"realtimeTotalCpuTimeNs":0,"segmentStatistics":[],"traceInfo":{},"minConsumingFreshnessTimeMs":0,"numSegmentsPrunedByBroker":0,"numSegmentsPrunedByServer":0,"numSegmentsPrunedInvalid":0,"numSegmentsPrunedByLimit":0,"numSegmentsPrunedByValue":0,"explainPlanNumEmptyFilterSegments":0,"explainPlanNumMatchAllFilterSegments":0,"numRowsResultSet":10}
% curl http://localhost:9000/sql -d '{"sql":"select * from billing limit 10","trace":false,"queryOptions":"dropResults=true"}'
{"exceptions":[],"numServersQueried":1,"numServersResponded":1,"numSegmentsQueried":1,"numSegmentsProcessed":1,"numSegmentsMatched":1,"numConsumingSegmentsQueried":0,"numConsumingSegmentsProcessed":0,"numConsumingSegmentsMatched":0,"numDocsScanned":10,"numEntriesScannedInFilter":0,"numEntriesScannedPostFilter":200,"numGroupsLimitReached":false,"totalDocs":694,"timeUsedMs":6,"offlineThreadCpuTimeNs":0,"realtimeThreadCpuTimeNs":0,"offlineSystemActivitiesCpuTimeNs":0,"realtimeSystemActivitiesCpuTimeNs":0,"offlineResponseSerializationCpuTimeNs":0,"realtimeResponseSerializationCpuTimeNs":0,"offlineTotalCpuTimeNs":0,"realtimeTotalCpuTimeNs":0,"segmentStatistics":[],"traceInfo":{},"minConsumingFreshnessTimeMs":0,"numSegmentsPrunedByBroker":0,"numSegmentsPrunedByServer":0,"numSegmentsPrunedInvalid":0,"numSegmentsPrunedByLimit":0,"numSegmentsPrunedByValue":0,"explainPlanNumEmptyFilterSegments":0,"explainPlanNumMatchAllFilterSegments":0,"numRowsResultSet":10}
% curl http://localhost:9000/sql -d '{"sql":"select * from billing limit 10","trace":false,"queryOptions":"dropResults=TrUE"}'
{"exceptions":[],"numServersQueried":1,"numServersResponded":1,"numSegmentsQueried":1,"numSegmentsProcessed":1,"numSegmentsMatched":1,"numConsumingSegmentsQueried":0,"numConsumingSegmentsProcessed":0,"numConsumingSegmentsMatched":0,"numDocsScanned":10,"numEntriesScannedInFilter":0,"numEntriesScannedPostFilter":200,"numGroupsLimitReached":false,"totalDocs":694,"timeUsedMs":2,"offlineThreadCpuTimeNs":0,"realtimeThreadCpuTimeNs":0,"offlineSystemActivitiesCpuTimeNs":0,"realtimeSystemActivitiesCpuTimeNs":0,"offlineResponseSerializationCpuTimeNs":0,"realtimeResponseSerializationCpuTimeNs":0,"offlineTotalCpuTimeNs":0,"realtimeTotalCpuTimeNs":0,"segmentStatistics":[],"traceInfo":{},"minConsumingFreshnessTimeMs":0,"numSegmentsPrunedByBroker":0,"numSegmentsPrunedByServer":0,"numSegmentsPrunedInvalid":0,"numSegmentsPrunedByLimit":0,"numSegmentsPrunedByValue":0,"explainPlanNumEmptyFilterSegments":0,"explainPlanNumMatchAllFilterSegments":0,"numRowsResultSet":10}

Added integration tests as well.

Codecov Report

Merging #10419 (1b65f14) into master (3bad67d) will decrease coverage by 45.90%.
The diff coverage is 61.53%.

@@              Coverage Diff              @@
##             master   #10419       +/-   ##
=============================================
- Coverage     70.32%   24.43%   -45.90%
+ Complexity     6105       49     -6056
=============================================
  Files          2055     2028       -27
  Lines        111389   110638      -751
  Branches      16939    16850       -89
=============================================
- Hits          78337    27034    -51303
- Misses        27566    80780    +53214
+ Partials       5486     2824     -2662

Flag
Coverage Δ

integration1
24.43% <61.53%> (+0.02%)
:arrow_up:

integration2
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...va/org/apache/pinot/spi/utils/CommonConstants.java
0.00% <ø> (-24.40%)
:arrow_down:

...roker/requesthandler/BaseBrokerRequestHandler.java
59.27% <50.00%> (-13.83%)
:arrow_down:

...t/common/response/broker/BrokerResponseNative.java
90.58% <50.00%> (-5.87%)
:arrow_down:

...e/pinot/common/utils/config/QueryOptionsUtils.java
68.18% <71.42%> (+0.38%)
:arrow_up:

... and 1538 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[Frictionless] Remove One Metadata Dependency

One new metadata was introduced to differentiate frictionless pages from others, because we need to fire an extra "landing" event on frictionless pages. This PR will remove the need of using an extra metadata, and just rely on a dom scanning.
Resolves: https://jira.corp.adobe.com/browse/MWPW-146143
Test URLs:

Before: https://stage--express--adobecom.hlx.page/express/feature/image/remove-background
After: https://fqa-rm-meta-dep--express--adobecom.hlx.page/express/feature/image/remove-background

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 36.29%. Comparing base (9929319) to head (c2dc27e).
Report is 1 commits behind head on stage.

Additional details and impacted files
@@            Coverage Diff             @@
##            stage     #799      +/-   ##
==========================================
- Coverage   36.49%   36.29%   -0.20%
==========================================
  Files         132      132
  Lines       26146    26146
==========================================
- Hits         9541     9489      -52
- Misses      16605    16657      +52

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

the analytics requirement is not finalized, so closing for now


Devika server not running due to gevent module not being found even though it is installed

File "C:\WINDOWS\system32\devika\devika.py", line 7, in
from gevent import monkey
ModuleNotFoundError: No module named 'gevent'
To Reproduce
Steps to reproduce the behavior:

Go to ' cd devika'
Click on ' python devika.py'
See error

If I skip this stage in the installation instructions I get a crash
PS C:\WINDOWS\system32\devika> cd ui/

bun install
bun run dev
bun install v1.1.3 (2615dc74)
📦 Installing [202/208]
uh-oh: index out of bounds
bun will crash now 😭😭😭

To solve frontend issue.

Delete both nodemodules and bun.lockb
Do bun install in UI
Now run bun run dev.
Open localhost3000
If it's white screen restart bun run dev

To solve backend issue.

Create a virtual environment
The do pip install -r requirements.txt

It will install gevent

it dont work.. backend alway grevent issue at least for me..

It happened to me as well and it was because I forgot to run "uv pip install -r requirements.txt" before python3 devikya.py...


anonymous user can pull, but not push

even though I use * in the ACL, anonymous user is only able to pull, but not push to the registry. Is this a requirement or by design?

no, should work. please post verbose log (-v 2)

@cpdevws could u post you config here? in my env, anonymous push does not work.

I think it could be related to https://github.com/cesanta/docker_auth/issues/39 (which also requires actions="*")


Implement support to ctl:requestBodyProcessor=XML inside libmodsecurity

More information about ctl:requestBodyProcessor=XML can be found at ModSecurity reference manual: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual

Closed. 6a7b970fe39db2b6a49109d322add550e75fef91


visual result error

Hello,Sirs:
Thank you for your great work a lot! I use:"./tools/dist_test.sh ./projects/configs/bevformer/bevformer_tiny.py ./ckpts/bevformer_tiny_epoch_24.pth 1"  to test and get the results_nusc.json successfully.

But when i use visual.py to watch the results, it seems wrong! Do you know the reason? Expect for your reply and best regards!

If I get closer, it seems no problem. Maybe I should  try with bevformer_r101_dcn_24ep.pth later, haha~

Maybe these are low quality results with low confidence scores.

Maybe these are low-quality results with low confidence scores.

Thank you for your reply, and when I use bevformer_r101_dcn_24ep.pth to test it seems normal and better, although it may occur false negtive sometimes, it doesn't matter. Thank you for your work again!
result one: find one false negtive.

result two: looks good!


Remove "single dataset" mode

Before the split of Explorer into separate desktop and hosted repos, the code supported both "single" and "multi-root" dataset modes. Only that latter is needed for hosted explorer. Remove all "single dataset" code, for which there is considerable config-related logic.  (search for "single_dataset").
Worth doing before any config system redesign work, since it may lessen the footprint of the code that needs to be grokked and redesigned.
DoD:

All configuration logic and default config properties related to "single dataset" mode have been removed
Explorer works exclusively in "multi-root dataset" mode. All tests pass (unit and E2E).
RDS postgreql db for Explorer is deprovisioned via single-cell-infra changes.
Dev documentation updated to remove any mention of "user annotations" or "labels"
Team informed of change.

Worth noting that removing 'single dataset mode' code does not include removing all/any (I need to go back and look) of the cli code; the cli is used for launching the local development server.

Re: RDS postgreql db for Explorer is deprovisioned via single-cell-infra changes. under DoD, see also #1276


Node test config:check always returns 0

Platform<EMAIL_ADDRESS>Raspberry Pi 4, Linux raspberrypi 4.19.97-v7l+
Node Version: v10.19.0
MagicMirror Version: 2.10.1
Description: The command "npm run config:check" always returns success regardless of the validity of the configuration file it is checking. The test is in the file tests/configs/check_config.js
Steps to Reproduce: Create an invalid config/config.js (e.g. delete the closing ] or } for a module) and run "npm run config:check" from a shell command prompt. After the npm command completes, run the command "echo $?". The output of "echo $?" is always 0 no matter which config file I check.
Expected Results: Checking valid configuration files should return 0 while checking invalid configurations should return 1 or other non-zero values.
Actual Results: The config:check test always returns 0
Configuration: I used a very simple config.js with the closing ] commented out:
modules: [
{
module: "alert",
},
{
module: "updatenotification",
position: "top_bar"
},
{
module: 'MMM-Remote-Control',
},
//  ]
Additional Notes: This is a minor bug and would not effect most users. I am developing a command line script to manage my MagicMirror's many configuration files. One feature I have implemented is checking the validity of a configuration file before installing it. In order to do this programmatically in my script I needed to make the following one line change to  the file tests/configs/check_config.js
*** check_config.js.orig	2020-02-10 14:29:40.399261804 -0800
--- check_config.js	2020-02-10 14:26:04.376118867 -0800

*** 61,66 ****
--- 61,67 ----
error = errors[idx];
console.log("Line", error.line, "col", error.character, error.reason);
}

      process.exit(1);
  }

});
}

Adding this call to process.exit(1) works for me but it may not be the best solution. I also found it cleaner, especially after this change, to run the config test with --silent option to npm:
npm run --silent config:check
My MagicMirror control script is in my Gitlab repository at https://gitlab.com/doctorfree/Scripts in the MagicMirror subdirectory at MagicMirror/mirror.sh

@doctorfree adding it in only this spot would not be correct. You also would add it here:

Missing file https://github.com/MichMich/MagicMirror/blob/master/tests/configs/check_config.js#L39
Wrong permissions https://github.com/MichMich/MagicMirror/blob/master/tests/configs/check_config.js#L46

Nevertheless, I would rather go with https://eslint.org/docs/rules/no-process-exit recommendations and throw an error instead.


Question about eq.2 in the paper

Hi, I have a question about equation 2 (smoothness loss) in the paper. I hope you can help me understand it. Does the equation mean multiply gradient with a depth map and nearby view (ex: delta_x * D^) or calculate the gradient of the depth map and nearby view? Computing the gradient of the depth map and nearby view makes sense for me. If it isn't, would you mind to explain more about it?

Hi @johnnylu305! Thank you for showing interest in our work!
\delta_x \hat{D} - Computes the gradient of the depth map along the x direction and is weighted by e^{-|\delta_x I|}. Here, I is the image of the same view whose depth map is estimated. As |\delta_x I| increases, the exponential term reduces which ensures that the depth gradients are not penalized for smoothness. Having high image gradients most probably points out to change of object and hence the gradients of depth map are penalized lesser for smoothness.

Hi, @RahulSajnani  thank you for explaining it. I have some last questions about the code.
In pose_vec2mat, why do we add 0.5 offsets, and why do we multiply the transformation matrix with invert_mat? Is it related to the dataset?
In inverse_warp, why src_cam_to_tgt_cam = tgt_pose_mat.inverse() @ src_pose_mat?
I thought we will use src_pose_mat.inverse() @ tgt_pose_mat to get the target camera instead of tgt_pose_mat.inverse() @ src_pose_mat.

Hi @johnnylu305! The pose_vec2mat block that you are referring to isn't used in the current version of the code as I convert the matrix into a 4 x 4 matrix in the dataset itself. So it breaks out of this block https://github.com/RahulSajnani/DRACO-Weakly-Supervised-Dense-Reconstruction-And-Canonicalization-of-Objects/blob/d697905da990487589f88068c886a32d2ef57118/DRACO/inv_changed.py#L218-L221. src_pose_mat transforms points from the camera frame to the world frame (^{W}T_{C1}) and tgt_pose_mat transforms points from world frame to camera frame 2 (^{W}T_{C2}). Therefore, to transform points from camera 1 (source) to camera 2 (target) we perform tgt_pose_mat.inverse() @ src_pose_mat = inv() @ () =


Unkonwn error

Hi
When I want to use this package in my project this error appeared.
My product built with react-redux and I use redux-observable.
Could not find "store" in either the context or props of "Connect(DataTableContainer)". Either wrap the root component in a , or explicitly pass "store" as a prop to "Connect(DataTableContainer)".
Could you please help me?
Best regards

https://sean-ww.github.io/react-redux-datatable/get-started/get-started.html#include-reducer
Is that what you're missing?

@sean-ww Actually i did it. I combined DataTableReducer to my reducers but the error still appeared

I haven't set it up before with redux-observable, so I'm not sure if that's the issue or not.
You can find a basic example of a store: https://github.com/sean-ww/react-redux-datatable/blob/master/src/example/src/store.jsx
That is then used in the storybook examples:
https://github.com/sean-ww/react-redux-datatable/blob/master/src/example/src/components/Story.jsx
react-redux-datatable is quite a high-level solution, and if you need something lower level that you can do more with then the underlying solution is react-bootstrap-table2

@sean-ww, is it even important what kind of middlewares @mehrdad-parsa68 uses?
I mean, it seems the react-redux-datatable is not deeply related to Saga, RX, observables or anything else, it only uses redux and redux store for its functionality, and I guess it should work.

@dophlin yeah I can't see any obvious reason why there would be a link, it really should be unrelated. As long as you are still creating a store that it can connect to then it should work.

I tried and solve the problem but new error appeared when i give it my API location :
Error: Actions must be plain objects. Use custom middleware for async actions.

Do you have the thunk middleware as shown in the example store?

I am having the same problem right now.

I am having the same problem right now.

I am having the same problem, is there any solution for this? I am not using any middleware.

@dophlin yeah I can't see any obvious reason why there would be a link, it really should be unrelated. As long as you are still creating a store that it can connect to then it should work.

Is middleware like thunk or saga compulsory here?

It makes use of all middleware shown in the example (including redux-thunk):
https://github.com/sean-ww/react-redux-datatable/blob/master/src/example/src/store.jsx
They are dependencies of the project

i have this error but when i put that in const Datatable it will different error
const DataTable = () => (

);
it is loop forever i think the cause when the API is not correct.

is this how to combine the reducer ?
const allReducers = combineReducers({
sidebar    : sideBarReducer,
table      : sideBarTable,
router     : router,
DataTableReducer : DataTableReducer
});

Combining reducers example:
import { combineReducers } from 'redux';
import { reducer as myOtherReducer } from 'react-redux-other';
import exampleReducer from 'core/app.reducer';
import somethingElseReducer from './Thing/Something.reducer';
import { DataTableReducer } from 'react-redux-datatable';

export default combineReducers({
    appReducer,
    other: myOtherReducer,
    exampleReducer,
    somethingElseReducer,
    DataTableReducer,
});

Combining reducers is not specific to react-redux-datatable, other than you must include the DataTablesReducer as shown.
It's exported, from the package:
https://github.com/sean-ww/react-redux-datatable/blob/master/src/index.jsx
There is nothing different from the example in the docs.
This package however is no longer actively maintained. If what's there work for you then it's good, but please be aware that it is not actively worked on.


Reduced the size of all screenshots.

Description
Reduced size of all png screenshots using: pngquant -f --ext .png --quality 70-95 *.png.
Most were only reduced marginally but some were reduced a lot. This should probably be done for each new screenshot to ensure source control and the doc website loads as fast as possible.
Also:
Removed workbench from a few screenshots.
Removed unused screenshots.

Codecov Report

Merging #343 into trunk will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              trunk     #343   +/-   ##
=========================================
  Coverage     58.06%   58.06%
  Complexity    10100    10100
=========================================
  Files          1153     1153
  Lines         73868    73868
  Branches       7337     7337
=========================================
  Hits          42893    42893
  Misses        28496    28496
  Partials       2479     2479

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ffb434e...43e81ea. Read the comment docs.

Some of those images have been reduced already in the past. In my tests pngquant will happily compress those again, but that would probably be at 0.75*0.75 quality.

I've updated the PR:

removed an unused screenshot
de-duped a screenshot and
compressed all png images with an individual saving of more than 2048 bytes using the command line and script below.

find xdocs/ src/ test/ bin/ -iname "*.png" -print0 | xargs -0 -n 1 -P 3 ./compare-size.sh
#!/bin/bash
set -e
err_report() {
    echo "Error on line $1"
    rm -v "${2}.new"
}
trap 'err_report ${LINENO} ${1}' ERR

pngquant --quality=70-100 --output "${1}.new" "${1}"

oldSize=$(stat -c%s "${1}")
newSize=$(stat -c%s "${1}.new")
let "diff = ${oldSize} - ${newSize}" || true # if sum is 0
let "threshold = ${newSize} + (1024 * 2)"

if [[ ${oldSize} -ge ${threshold} ]]
then
    echo "${1} compressed, saved ${diff}"
    mv "${1}.new" "${1}"
else
    rm -v "${1}.new"
fi

Deleted the wrong branch...

Hi Team,
if there are volunteer to merge this one, thanks in advance.
Regards