P2P - UI/UX Design/Mocks

Is there a new peer-to-peer UI from the one implemented on android-p2p-sync?
What are the possible changes?
Is the UX change going to be significant?

cc @rowo

@ekigamba It sounds like the workflow may change after getting feedback from LMH that people were confused by the two buttons on the initial screen. The change would be having a single "connect" button where the handshake is complete (both sides confirming) — and then offering the user a way to send data. So in this case after a "handshake" is established, would it be possible if the receiving user just had to accept the transfer or even didn't have to do anything further?

Going to assign to @isabelcshaw to follow-up on UI reqs, we want this to be the same sync UI for all projects

@rowo I think this will be possible. The users will lose flexibility of choosing whether they want to send or receive the data. Additionally, we'll need to understand the data flow to engineer this into the apps so that it happen automatically

@isabelcshaw @ekigamba @pld  We should talk about this since Francis mentioned we should start needing it for the ANC work too (which goes into the LMH work). @HenryRae and I have started some exploration, but they aren't really informed by anything yet. One proposal was to look into how common apps used by CHWs/our clients do file transfer (ODK Collect, LMH Academy app, Android Beam, Nearby Share), but we haven't researched anything yet.
Next step might be to have a call about this to hear about the new wifi approach and how that might influence things. I'm not sure on a timeline either, so that might be something to think about @isabelcshaw

Cool yes let's talk, I need to understand the argument for why this can't all happen in the background w/no new UI

also i saw some conversation happening on slack.. not sure where that fits in

With Trevor: https://onaio.slack.com/archives/C01JEDB8WTU/p1631716846053200
Francis strategy: https://onaio.slack.com/archives/C01MJK0TWAG/p1631541051018300

@rowo It seems this work is being taken over by the SA team

Latest P2P UX Designs  - https://www.figma.com/proto/kXJMqeQDyzfXp4urKCfE0R/LMH-eCBIS---focused?page-id=5010%3A38742&node-id=5277%3A38741&viewport=364%2C48%2C0.25&scaling=min-zoom&starting-point-node-id=5277%3A38741

In that UI, on screen 42, when it begins to send data, can the user be able to minimize that and perform other tasks in the app with a UI element showing that sync is in progress?

In that UI, on screen 42, when it begins to send data, can the user be able to minimize that and perform other tasks in the app with a UI element showing that sync is in progress?

Should we really allow this to happen ?
If yes, my thought is

if the user should come out of the screen and go to another screen/activity  then alert them once sync is complete  - in app notification
If they come out of the app, go to a different app or lock phone ,  send a system wide notification alert

@f-odhiambo @pld how long will the sync process take? This is kind of one of those things that can get hairy if you make changes to a record that's been synced already. The question is more do you trust the app to be able to handle all this stuff going on at the same time and to sync perfectly? We can conform the UI to support what the technology is capable of doing well.

We'd probably have to disable edits, so then maybe there's no point unblocking the user?
But yea how long those it take is my main question too and I don't know the answer

Latest P2P UX Designs - https://www.figma.com/proto/kXJMqeQDyzfXp4urKCfE0R/LMH-eCBIS---focused?page-id=5010%3A38742&node-id=5277%3A38741&viewport=364%2C48%2C0.25&scaling=min-zoom&starting-point-node-id=5277%3A38741

@f-odhiambo @rowo  cc @ekigamba There is need for

An authentication / pair confirmation screen before data transfer starts on screen 27.
Add a screen for the receiving device similar to screen 27
Because of the request to support CHA >>> CHA sync documented here we may require both the send and receive button on the same page (page 27). This only applies when a CHA connects to a CHA
On screen 30 could we say X number of records sent instead of specifying the type of records. In most cases the data being transferred is non-demographic  data e.g observations, encounters e.t.c that might not make sense to the user and cannot be termed as patients or families. This is for users to understand that records were sent even if it's only patient history data and not actual patients / families.

Latest P2P UX Designs - https://www.figma.com/proto/kXJMqeQDyzfXp4urKCfE0R/LMH-eCBIS---focused?page-id=5010%3A38742&node-id=5277%3A38741&viewport=364%2C48%2C0.25&scaling=min-zoom&starting-point-node-id=5277%3A38741

@f-odhiambo @rowo cc @ekigamba There is need for

An authentication / pair confirmation screen before data transfer starts on screen 27.
Add a screen for the receiving device similar to screen 27
Because of the request to support CHA >>> CHA sync documented here we may require both the send and receive button on the same page (page 27). This only applies when a CHA connects to a CHA
On screen 30 could we say X number of records sent instead of specifying the type of records. In most cases the data being transferred is non-demographic  data e.g observations, encounters e.t.c that might not make sense to the user and cannot be termed as patients or families. This is for users to understand that records were sent even if it's only patient history data and not actual patients / families.

@Rkareko @ekigamba Can we make 1 configurable for team members at the same level. @rowo this might also be a complication in the overall UX/UI, if so we can just add the authentication for everyone.

Latest P2P UX Designs - figma.com/proto/kXJMqeQDyzfXp4urKCfE0R/LMH-eCBIS---focused?page-id=5010%3A38742&node-id=5277%3A38741&viewport=364%2C48%2C0.25&scaling=min-zoom&starting-point-node-id=5277%3A38741

@f-odhiambo @rowo cc @ekigamba There is need for

An authentication / pair confirmation screen before data transfer starts on screen 27.
Add a screen for the receiving device similar to screen 27
Because of the request to support CHA >>> CHA sync documented here we may require both the send and receive button on the same page (page 27). This only applies when a CHA connects to a CHA
On screen 30 could we say X number of records sent instead of specifying the type of records. In most cases the data being transferred is non-demographic  data e.g observations, encounters e.t.c that might not make sense to the user and cannot be termed as patients or families. This is for users to understand that records were sent even if it's only patient history data and not actual patients / families.

@Rkareko @ekigamba Can we make 1 configurable for team members at the same level. @rowo this might also be a complication in the overall UX/UI, if so we can just add the authentication for everyone.

@dubdabasoduba Are you talking about the authentication screen? What do you mean about making one configurable for team members?
The aim of having the authentication/pair confirmation screen is to confirm connection so that devices, CHAs and CHSS, in one room do not forcefully or incorrectly connect to other devices. The device being connected to has to accept the connection request and have a confirmation code to uniquely identify the two connecting devices. The assumption is that the CHW/CHSS name or device name might not be unique enough in some cases.

I had a call with Richard and Kigamba on this,
This is for reference purposes.
We do have 2 sides(Sender i.e CHA, and receiver i.e CHSS) included in the attached screenshot.
The idea is that

sender(CHA) has their wifi turned on(if not turned on, can we turn it on automatically?),
scans for nearby devices
chooses a device to send to (e.g James' Phone in the screenshot, assuming James is the CHSS device)
at this point on CHSS's device(James Phone) with the app open and wifi turned on, we show a "A device wants to pair" modal, and when CHSS chooses to pair with CHA device
now we can show send data option on CHA's device which when clicked initiates the data transfer.
same progress is shown on the CHSS side once data transfer is initiated by the CHA device.
and when done, we show a data transfer completed message on both devices.

cc: @rowo @f-odhiambo @ekigamba

I don't think we can turn it on automatically, we'll need to show a modal asking them to enable wifi. Also, as @ekigamba pointed out elsewhere, if they haven't syncd GPS recently we may need to wait for GPS to sync so we can verify the time is correct

I don't think we can turn it on automatically, we'll need to show a modal asking them to enable wifi. Also, as @ekigamba pointed out elsewhere, if they haven't syncd GPS recently we may need to wait for GPS to sync so we can verify the time is correct

@pld We might want to also inform the user about the GPS sync. @ekigamba @Rkareko can we block the functionality till Wifi is turned on and GPS sync is complete?

Yes agreed, if either isn't active maybe we can have a modal with the functionalities required, I guess gps is a bit more complicated since it's not just active but synced

I had a call with Richard and Kigamba on this, this below is for reference purposes. We do have 2 sides(Sender i.e CHA, and receiver i.e CHSS) included in the attached screenshot.
The idea is that

sender(CHA) has their wifi turned on(if not turned on, can we turn it on automatically?),
scans for nearby devices
chooses a device to send to (e.g James' Phone in the screenshot, assuming James is the CHSS device)
at this point on CHSS's device(James Phone) with the app open and wifi turned on, we show a "A device wants to pair" modal, and when CHSS chooses to pair with CHA device
now we can show send data option on CHA's device which when clicked initiates the data transfer.
same progress is shown on the CHSS side once data transfer is initiated by the CHA device.
and when done, we show a data transfer completed message on both devices.

cc: @rowo @f-odhiambo @ekigamba

According to the mock ups the receiver would be listening to connection requests all the time so that the Pair with device modal can be called when a connection request comes in. When testing using the sample p2p wifidirect implementation we found out that for peer discovery to happen either the wifi-direct listeners (in the app) or the phone wifi-direct settings page have to be running.
In this case, having the wifi-direct Listeners running always would mean that wifi-direct would have to be on and advertising while the app is running irrespective of whether the users will perform P2P sync or not. This will lead to faster battery drain as well as the app using processing power for advertising.
Due to this we propose that both the sender and receiver devices initiate the P2P flow when it is required. Both would be presented with a scan for devices screen as shown in the mockup below

@HenryRae @dubdabasoduba

is it possible to show the system default modal requesting the user to turn on wifi in P2P?
@pld

is it possible to show the system default modal requesting the user to turn on wifi in P2P? and also GPS sync
If yes, I'll update the copy on the first screen. @pld

@dubdabasoduba ^?

I don't think we can turn it on automatically, we'll need to show a modal asking them to enable wifi. Also, as @ekigamba pointed out elsewhere, if they haven't syncd GPS recently we may need to wait for GPS to sync so we can verify the time is correct

@pld We might want to also inform the user about the GPS sync. @ekigamba @Rkareko can we block the functionality till Wifi is turned on and GPS sync is complete?

GPS Sync will be required to happen during app start or when the date changes but not required during P2P sync process. The GPS sync helps preserve accuracy of records and consistency across all devices.
Depending on the Android version, the user might need to turn on wifi-direct and/or wifi manually. We will redirect to the settings page for some devices

I don't think we can turn it on automatically, we'll need to show a modal asking them to enable wifi. Also, as @ekigamba pointed out elsewhere, if they haven't syncd GPS recently we may need to wait for GPS to sync so we can verify the time is correct

@pld We might want to also inform the user about the GPS sync. @ekigamba @Rkareko can we block the functionality till Wifi is turned on and GPS sync is complete?

GPS Sync will be required to happen during app start or when the date changes but not required during P2P sync process. The GPS sync helps preserve accuracy of records and consistency across all devices.
Depending on the Android version, the user might need to turn on wifi-direct and/or wifi manually. We will redirect to the settings page for some devices

So should we have a design for the worst-case scenario i.e requesting the user to turn on wiFi manually or this too can be a system design/message?

So should we have a design for the worst-case scenario i.e requesting the user to turn on wiFi manually or this too can be a system design/message? @ekigamba

I think we should add a modal to ask for Wifi to be turned on immediately the land on the first p2p screen. This should be shown any time wifi or wifi-direct is not turned on.

I don't think we can turn it on automatically, we'll need to show a modal asking them to enable wifi. Also, as @ekigamba pointed out elsewhere, if they haven't syncd GPS recently we may need to wait for GPS to sync so we can verify the time is correct

@pld We might want to also inform the user about the GPS sync. @ekigamba @Rkareko can we block the functionality till Wifi is turned on and GPS sync is complete?

GPS Sync will be required to happen during app start or when the date changes but not required during P2P sync process. The GPS sync helps preserve accuracy of records and consistency across all devices.
Depending on the Android version, the user might need to turn on wifi-direct and/or wifi manually. We will redirect to the settings page for some devices

@ekigamba In the app design do we have a modal asking the user to turn on GPS before login? @HenryRae We might need a screen for that. I think we can add this to a separate issue.

is it possible to show the system default modal requesting the user to turn on wifi in P2P? and also GPS sync
If yes, I'll update the copy on the first screen. @pld

@dubdabasoduba ^?

I had a call with Richard and Kigamba on this, this below is for reference purposes. We do have 2 sides(Sender i.e CHA, and receiver i.e CHSS) included in the attached screenshot.
The idea is that

sender(CHA) has their wifi turned on(if not turned on, can we turn it on automatically?),
scans for nearby devices
chooses a device to send to (e.g James' Phone in the screenshot, assuming James is the CHSS device)
at this point on CHSS's device(James Phone) with the app open and wifi turned on, we show a "A device wants to pair" modal, and when CHSS chooses to pair with CHA device
now we can show send data option on CHA's device which when clicked initiates the data transfer.
same progress is shown on the CHSS side once data transfer is initiated by the CHA device.
and when done, we show a data transfer completed message on both devices.

cc: @rowo @f-odhiambo @ekigamba

According to the mock ups the receiver would be listening to connection requests all the time so that the Pair with device modal can be called when a connection request comes in. When testing using the sample p2p wifidirect implementation we found out that for peer discovery to happen either the wifi-direct listeners (in the app) or the phone wifi-direct settings page have to be running.
In this case, having the wifi-direct Listeners running always would mean that wifi-direct would have to be on and advertising while the app is running irrespective of whether the users will perform P2P sync or not. This will lead to faster battery drain as well as the app using processing power for advertising.
Due to this we propose that both the sender and receiver devices initiate the P2P flow when it is required. Both would be presented with a scan for devices screen as shown in the mockup below

@HenryRae @dubdabasoduba

@Rkareko I think I agree with the plan. We want to preserve both memory and battery on these devices

@dubdabasoduba

Yes, we need this https://github.com/opensrp/fhircore/issues/465#issuecomment-1050328505.@HenryRae  This is not for worst-case scenario but it's dependent on the Android version
We do not have a GPS modal design. Here is the issue for this

@dubdabasoduba

Yes, we need this https://github.com/opensrp/fhircore/issues/465#issuecomment-1050328505. @HenryRae  This is not for worst-case scenario but it's dependent on the Android version
We do not have a GPS modal design. Here is the issue for this

@HenryRae @dubdabasoduba concerning issue # 3 here what would you advice as the best way to approach UI/UX ?

@HenryRae @dubdabasoduba concerning issue # 3 here what would you advice as the best way to approach UI/UX ?

I think we could show both the send button. We however need to emphasize to the client the following items

Only 1 device can send data at a time.
Only the person sending data should click send on their device.

@HenryRae After our meeting, we have the following options

Add a send and receive button to the send initiation screen. This means the receiver will have to click receive for data transfer to be initiated.
Automatically assume the phone that initiates the pairing is the sender and the receiver doesn't have to do anything for them to receive data.

I would go with option 2 if it's technically viable to track who initiated the pairing.
@Rkareko @ekigamba .

@dubdabasoduba would you describe here what exactly does the receiver need to do in order to make the whole process a success for option 2.

@HenryRae
Option 2 Workflow

The devices search for any available WifiDirect devices.
The CHA/CHW clicks and initiates pairing with the other devices.

Here the code will track where the paring request came from.
The phone that requested the pairing will have the send button.
The phone that accepted the pairing won't have any button shown.  The CHA will just wait for the data to be sent.

cc: @Rkareko @ekigamba

Thanks @dubdabasoduba,
Just for clarity, does this mean the receiver has to only accept pairing? and do they have to have the app open on any screen or they have to specifically be on the P2P screen as well?

Thanks @dubdabasoduba,
Just for clarity, does this mean the receiver has to only accept pairing? and do they have to have the app open on any screen or they have to specifically be on the P2P screen as well?

They have to be on the P2P screen.
They only have to accept pairing.

I'm closing this, if there's still WIP to do based on it let's create new specific issues for that


Select first entry in settings dialog.

This is not the best solution, as it doesn't ensure the first category to be visible, which is visually the first row before the first item.

Probably the smallest PR I've ever made.

 Is this really an improvement? :S. From my side I don't see it like an UX need, and it may even slow down filtering, although I guess we don't have that many items to worry about.

When the locale is in English, for current settings valies it doesn't seem to make much difference. But when you choose some other locale, since the category names are different and sorted in different order, it does get quite annoying when the default selection is at the bottom.
Considering there is a Refresh() call in the filter, I don't think selection change will have much impact. :)

But there could be a way to achieve this with better performance...

I'd prefer  having the filter focused by default...

This was a careless modification I see after all. Didn't take into account that this method is called when the filter text changes, and there also could be null references.
I tried to find better solutions, playing around with FilteredGrid and m_PropertyDescriptors, and now it works well with en_US, but for some reason the internal item selection algorithm (I can't find where it is placed) selects the first item sorted with the English category name (for e.g.):
-en_US- selection:

Although there is "Apply File Extension", "Auto Filter List" is selected first.
-ko_KR- selection:

Is the same as en_US, although it should be:

But for some reason, ko_KR only works incorrectly like that for "FlashDevelop" settings. For other plugins it selects the first item correctly.

I don't know why it doesn't work but this selection is defined in FlashDevelop/Settings/Properties.cs:
[DefaultProperty("AutoFilterList")]

@Meychi I think that's exactly why it doesn't work... If I delete it everything works correctly.


No longer working?

Is it me or has this extension not been working on showdown for a while?

Any chance we can revive this project? I would be willing to donate the costs.


Ignition config

Is there anything to provision a VM from a CoreOS template using an Ignition config ?

After some research, I've found that it is possible on Qemu and a virtio-9p-pci drive but don't know if it is officially supported by Proxmox.
I've not actually got it working.


Cleanup: Energy Meter precision

Session gives hundredths of a kWh (2 numbers right of decimal point), the rest of the items give only tenths (1 number right of decimal). It would be more legible to have all the same precision. I think tenths of a kWh is plenty of precision....

We can display it with one digit here but I'd like to keep it 2 digits for the status bar and limits countdown. This gives a better feeling that energy is coming seeing the counter continuously increasing with elapsed counter.

More precision on status bar makes sense to me too. Same precision in same "area" of the display is legible. Different precision, especially in columns, is harder to scan quickly.

fixed in master

@fhteagle , I see in the screen capture above, your total is only 1.4kwh.
Is it a brand new openevse or have you reset the counter on the OpenEvse firmware ?
Because it should import first time the old counter from OpenEvse.
Would like to know if it failed or if its just because you had no data yet on it.

@KipK -
Good catch. Lifetime on that unit was about 985kWh at the time that screen shot was taken. Looks like another display bug.

@fhteagle total_energy was stored from the OpenEvse module, it can only be reset if you fully erase the Atmega before flashing it ( or perhaps with some RAPI commands but I don't think so ).
It is now handled from the wifi fw, so it seems it has failed on your side.
Can you give me what $GU rapi command gives ? ( in Developper section )

HA does not keep its own accumulation of hours, only what the OpenEVSE reports AFAIK.

$GU
< $OK 7739264 990708^15

The only total provided by the fw is total_energy, there's no other value shared.

I've found the import issue, In fact it imported, but divided the kwh / 1000 ( thought it was watt ) .
Here is a new build that fix it:
https://drive.google.com/file/d/1FUoUDw5dxt1oNGdZbzbvlINi1uz9pAYp/view?usp=sharing
you can now reset the energyMeter by calling an http DELETE to /emeter with the following JSON in body:
{"hard": 1, "import": 1}
it should put everything to 0 then import the old counter


Let's migrate to SpotBugs

Actually FindBugs is deprecated and no longer maintained, SpotBugs is a successor of FindBugs, and enforcing static FindBugs/SpotBugs checks during compilation might be a good proposal ?

This may not be a problem, more like a proposal, there are currently some mistakes in the RocketMQ code that SpotBugs can scan, should we tackle it now？or a pull request may make it more clearly. @ShannonDing
cc @zhouxinyu @lizhanhui

@aaron-ai It's good to migrate to SpotBugs now that FindBugs is not maintained anymore.


feat(EMI-1557): Add Gallery Offer option in Push Notification settings screen

This PR resolves EMI-1557
Description
This PR is a follow-up on artsy/gravity#17116 🔒 and artsy/metaphysics#5441
This PR adds Gallery Offer section in the Push Notifications settings screen to enable the users to opt in/out of receiving notifications for Partner Offers.
Screenshots

iOS
Android

PR Checklist

[X] I have tested my changes on iOS and Android.
[ ] I hid my changes behind a feature flag, or they don't need one.
[X] I have included screenshots or videos, or I have not changed the UI.
[X] I have added tests, or my changes don't require any.
[X] I added an app state migration, or my changes do not require one.
[X] I have documented any follow-up work that this PR will require, or it does not require any.
[X] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

Add Gallery Offers section in Push Notifications settings screen - mrsltun

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (Add Gallery Offers section in Push Notifications settings screen - mrsltun)

  Generated by :no_entry_sign: dangerJS against b4e33dbd08f032322839d993f9306c7fe39c99de


Redesign edit entity view to clearly separate "Merge" from adding relations

The Merge feature - which in Tibschol at least is not a frequently used feature - adding relations is a much more common usecase
It is slightly confusing to have the Merge link below "the Entity is related to" followed by the other entity types to which relations can be added.

Swap the order of Merge with and the entity is related to
Change the text to Merge into
Make the merge explanation clearer
Make it clear that Merge with can expand a panel (like a expand_more icon)

This was implemented in 45de48bea2b81823873066820a079635b8d7a04a


Fix: IE8 has no 'width' property on 'getBoundingClientRect()'; compensating with simple math

I encountered this issue while trying to debug why the headers were not being resized properly.  Upon investigation, I found that the getBoundingClientRect() object in IE8 had no width property, but did have a left and right.  Subtracting left from right yields the desired width.
In my tests, this did the trick for IE8, and didn't break functionality for any other browser.
Demo: https://jsfiddle.net/dimak25/76Lvpejw/
Output-only link: http://fiddle.jshell.net/dimak25/76Lvpejw/9/show/  (IE8 refuses to render jsFiddle properly)

why is the indentation level so different from the rest of the code?


feat: disable gravity bridge messages

Description
Updates Gravity Bridge dependencie. That update disables most of the Gravity Bridge messages.

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] added appropriate labels to the PR
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

The error on e2e is expected
#1: failed to send ethereum claims to Cosmos chain: failed to CalculateGas: rpc error: code = InvalidArgument desc = failed to execute message; message index: 0: paused due to Ethereum PoS migration and PoW fork: service is unavailable: invalid request
the orchestrator is not healthy due to the PR itself, we disabled the GB transactions and peggo can not read it
We could modify e2e tests to not run the orchestrator and also not send any tx between eth <-> umee

Let's leave it for now for v1. I will disable this test.
@RafilxTenfen can you make a relevant change for v3 (main)? I will need to backport this changes to main later on anyway.

Yes, I can collaborate in the branch where you backport this


GPy stop making progress after UserWarning

Greeting!
I met the warning when I play with Poisson likelihood: /usr/local/lib/python2.7/site-packages/GPy/inference/latent_function_inference/laplace.py:222: UserWarning:Not perfect mode found (f_hat). difference: 1.78940106929e-05, iteration: 60 out of max 60
The problem is that after the warning, it seems that all my GPy programs stop making any progress. Is this an issue with GPy?

@alansaul This is expected right? I think the warning is just a printout and the model still optimizes?

That is saying that the mode found for the Laplace approximation isn't perfect (although to be honest, 1e-5 is probably too strict). It shouldn't stop anything running in GPy though, it should continue to optimize (hopefully on the next step it will say "f_hat now fine again"). What do you mean by stopping all your GPy programs stop making any progress?
At the moment we don't inform the user of how bad the mode mismatch gets (as we didn't want to have 100 print outs for an optimization), so it might be worse than 1e-5 if it doesn't later print "f_hat now fine again". I'm not sure how best to handle this, we either need to inform the user every step or have some other solution.
In answer to your question, it's an issue with the Laplace approximation, and perhaps it's stability of its newton updates. You should be cautious when using models that have said "Not perfect mode found", being followed later by "f_hat now fine again", as it indicates that the newton steps used in the approximation are not finding the mode quickly enough (in this case within 60 iterations).
You could try the following (to give it more steps in the newton optimization).
inference = GPy.latent_function_inference.Laplace()
inference._mode_finding_iter = 200
m = GPy.core.GP(X=X, Y=Y, inference_method=inference, etc...)

This will instead allow it to use 200 iterations in its newtons steps to try and find the mode, but could make each optimization step slower as a result.

Thanks for the quick reply!
I think maybe it's just because the optimization is very slow now, or there are other issues with my machine. I will double check about these. Thanks again!


signInSilently returns SIGN_IN_REQUIRED everytime i reload the app.

Steps to Reproduce

You must provide a minimal and easy-to-run reproduction of your issue - how to create a minimal reproduction?. We're a small team of maintainers and do not have time to try reproduce bugs ourselves.

Please try to reproduce the bugs on the provided example app. Either provide a link to the repo that reproduces the bug or provide your version of the index.js file that reproduces the issue and that we can easily use.

Explain the steps we need to take to reproduce the issue.

Include a gif if you think it may help.

If you're asking for help, please make it easy for us to help you!

Expected Behavior

Actual Behavior

Environment
Please provide

react-native version
@react-native-community/google-signin version
your Podfile, output of running pod install and cocoapods version (if applicable)
version of Android, gradle, android plugin for gradle, play-services-auth and version of the Google Play Services app on your phone (if applicable)
version of iOS (if applicable)

hello, please follow the issue template and I'll reopen, thank you

"react-native": "0.61.5",
"@react-native-community/google-signin": "^3.0.4",
"@react-native-firebase/app": "^6.3.4",
"@react-native-firebase/auth": "^6.3.4",
"@react-native-firebase/database": "^6.3.4",
android api 28 im using android pie(9)
googlePlayServicesAuthVersion = "17.0.0"
build.gradle file
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
googlePlayServicesAuthVersion = "17.0.0"
}
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:3.4.1")
classpath 'com.google.gms:google-services:4.2.0'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}
setting.gradle file
rootProject.name = 'textbundle'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
include ':react-native-google-signin', ':app'
project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-signin/android')
include ':@react-native-firebase_auth'
project(':@react-native-firebase_auth').projectDir = new File(rootProject.projectDir, './../node_modules/@react-native-firebase/auth/android')
include ':@react-native-firebase_app'
project(':@react-native-firebase_app').projectDir = new File(rootProject.projectDir, './../node_modules/@react-native-firebase/app/android')
include ':@react-native-firebase_database'
project(':@react-native-firebase_database').projectDir = new File(rootProject.projectDir, './../node_modules/@react-native-firebase/database/android')
app/build.gradle file dependencies
implementation "com.android.support:appcompat-v7:23.0.1"
implementation "com.facebook.react:react-native:+"  // From node_modules
implementation "com.google.android.gms:play-services-base:16.1.0"
implementation "com.google.firebase:firebase-core:16.0.9"
implementation project(path: ":@react-native-firebase_auth")
implementation project(path: ":@react-native-firebase_app")
implementation project(path: ":@react-native-firebase_database")

Is there any fix for that?


Clue Drops

Wilvus was recently nerfed (RIP)
I Propose that wilvus drops elite clue scrolls instead of hards.

Or even better. Give wilvus a clue table and have varying rates to drop any clue.

Even better!


libdokan: More logging on removals

No changes outside more logging on deletions.

LGTM :thumbsup:
is this for BSOD?

For https://github.com/keybase/client/issues/4087


LinkedIn Account Connections in B2C

Hi Team,
The steps in "How do I delete my Azure AD B2C tenant?", specifically #12 stating "If present, under LinkedIn account connections, select No, then select Save." suggests that Azure B2C supports LinkedIn account connections. If so, how do we enable this (it's not in the portal)?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: fc5e148d-b7cf-92e7-4cc7-a65d20d037b6
Version Independent ID: 2ba6e31b-5899-f35a-0f08-d280110ded13
Content: Frequently asked questions (FAQ) for Azure Active Directory B2C
Content Source: articles/active-directory-b2c/faq.md
Service: active-directory
Sub-service: b2c
GitHub Login: @msmimart
Microsoft Alias: mimart

@dastewa Thank you for your feedback . We will investigate and update the thread.

Thanks a lot @shashishailaj - I appreciate the help on clarifying this.

@msmimart we should remove this reference as its not supported in an AAD B2C directory.

@JasSuri - Hi Jas, thank you for confirming this.


Fail to write to DB 'The $v update field is only recognized internally'

Hi,
I'm currently testing the Sink connector and trying to Sync 2 mongoDB clusters where the source cluster is using Debezium CDC and the destination MongoDB is using your MongoDB Sink connector.
my config is:
{
  "name": "mongodb-dst-sink",
  "config": {
    "key.converter": "org.apache.kafka.connect.json.JsonConverter",
    "key.converter.schemas.enable": "true",
    "value.converter": "org.apache.kafka.connect.json.JsonConverter",
    "value.converter.schemas.enable": "true",
    "connector.class": "at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
    "topics": "dbserver1.inventory.customers",
    "mongodb.connection.uri": "mongodb://debezium:dbz@mongodb-dst:27017/inventory",
    "mongodb.change.data.capture.handler": "at.grahsl.kafka.connect.mongodb.cdc.debezium.mongodb.MongoDbHandler",
    "mongodb.delete.on.null.values": "false",
    "mongodb.collections": "customers",
    "mongodb.collection.dbserver1.inventory.customers": "customers"
  }
}

Initially I was able to sync the clusters, however after I was trying to update a document in the source DB, I started getting the below exception.
The exception I get:
2019-07-09 15:04:36,175 ERROR  ||  error on mongodb operation   [at.grahsl.kafka.connect.mongodb.MongoDbSinkTask]
com.mongodb.MongoBulkWriteException: Bulk write operation error on server mongodb-dst:27017. Write errors: [BulkWriteError{index=0, code=9, message='The $v update field is only recognized internally', details={}}].
	at com.mongodb.connection.BulkWriteBatchCombiner.getError(BulkWriteBatchCombiner.java:177)
	at com.mongodb.connection.BulkWriteBatchCombiner.throwOnError(BulkWriteBatchCombiner.java:206)
	at com.mongodb.connection.BulkWriteBatchCombiner.getResult(BulkWriteBatchCombiner.java:147)
	at com.mongodb.operation.BulkWriteBatch.getResult(BulkWriteBatch.java:227)
	at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:280)
	at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:70)
	at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:203)
	at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:194)
	at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:424)
	at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:194)
	at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:69)
	at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:193)
	at com.mongodb.client.internal.MongoCollectionImpl.executeBulkWrite(MongoCollectionImpl.java:468)
	at com.mongodb.client.internal.MongoCollectionImpl.bulkWrite(MongoCollectionImpl.java:448)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.processSinkRecords(MongoDbSinkTask.java:148)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$null$0(MongoDbSinkTask.java:118)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$put$1(MongoDbSinkTask.java:117)
	at java.util.HashMap.forEach(HashMap.java:1289)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.put(MongoDbSinkTask.java:112)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:538)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:321)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
2019-07-09 15:04:36,177 ERROR  ||  writing 2 document(s) into collection [inventory.customers] failed -> remaining retries (2)   [at.grahsl.kafka.connect.mongodb.MongoDbSinkTask]
2019-07-09 15:04:36,177 ERROR  ||  WorkerSinkTask{id=mongodb-dst-sink-0} RetriableException from SinkTask:   [org.apache.kafka.connect.runtime.WorkerSinkTask]
org.apache.kafka.connect.errors.RetriableException: Bulk write operation error on server mongodb-dst:27017. Write errors: [BulkWriteError{index=0, code=9, message='The $v update field is only recognized internally', details={}}].
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.processSinkRecords(MongoDbSinkTask.java:170)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$null$0(MongoDbSinkTask.java:118)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$put$1(MongoDbSinkTask.java:117)
	at java.util.HashMap.forEach(HashMap.java:1289)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.put(MongoDbSinkTask.java:112)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:538)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:321)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.mongodb.MongoBulkWriteException: Bulk write operation error on server mongodb-dst:27017. Write errors: [BulkWriteError{index=0, code=9, message='The $v update field is only recognized internally', details={}}].
	at com.mongodb.connection.BulkWriteBatchCombiner.getError(BulkWriteBatchCombiner.java:177)
	at com.mongodb.connection.BulkWriteBatchCombiner.throwOnError(BulkWriteBatchCombiner.java:206)
	at com.mongodb.connection.BulkWriteBatchCombiner.getResult(BulkWriteBatchCombiner.java:147)
	at com.mongodb.operation.BulkWriteBatch.getResult(BulkWriteBatch.java:227)
	at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:280)
	at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:70)
	at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:203)
	at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:194)
	at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:424)
	at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:194)
	at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:69)
	at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:193)
	at com.mongodb.client.internal.MongoCollectionImpl.executeBulkWrite(MongoCollectionImpl.java:468)
	at com.mongodb.client.internal.MongoCollectionImpl.bulkWrite(MongoCollectionImpl.java:448)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.processSinkRecords(MongoDbSinkTask.java:148)
	... 16 more
2019-07-09 15:04:36,665 INFO   ||  <IP_ADDRESS> - - [09/Jul/2019:15:04:36 +0000] "GET /connectors/mongodb-dst-sink/status HTTP/1.1" 200 170  3   [org.apache.kafka.connect.runtime.rest.RestServer]
2019-07-09 15:04:41,181 ERROR  ||  error on mongodb operation   [at.grahsl.kafka.connect.mongodb.MongoDbSinkTask]
com.mongodb.MongoBulkWriteException: Bulk write operation error on server mongodb-dst:27017. Write errors: [BulkWriteError{index=0, code=9, message='The $v update field is only recognized internally', details={}}].
	at com.mongodb.connection.BulkWriteBatchCombiner.getError(BulkWriteBatchCombiner.java:177)
	at com.mongodb.connection.BulkWriteBatchCombiner.throwOnError(BulkWriteBatchCombiner.java:206)
	at com.mongodb.connection.BulkWriteBatchCombiner.getResult(BulkWriteBatchCombiner.java:147)
	at com.mongodb.operation.BulkWriteBatch.getResult(BulkWriteBatch.java:227)
	at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:280)
	at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:70)
	at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:203)
	at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:194)
	at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:424)
	at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:194)
	at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:69)
	at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:193)
	at com.mongodb.client.internal.MongoCollectionImpl.executeBulkWrite(MongoCollectionImpl.java:468)
	at com.mongodb.client.internal.MongoCollectionImpl.bulkWrite(MongoCollectionImpl.java:448)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.processSinkRecords(MongoDbSinkTask.java:148)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$null$0(MongoDbSinkTask.java:118)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$put$1(MongoDbSinkTask.java:117)
	at java.util.HashMap.forEach(HashMap.java:1289)
	at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.put(MongoDbSinkTask.java:112)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:538)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:321)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

What is the problem and how can I overcome it?

Some more inputs, the following is the events structure with the $v in the patch :
  "payload": {
    "after": null,
    "patch": "{\"$v\" : 1,\"$set\" : {\"last_name\" : \"MyNewName\"}}",
    "source": {
      "version": "0.9.5.Final",
      "connector": "mongodb",
      "name": "dbserver5",
      "rs": "rs0",
      "ns": "inventory.customers",
      "sec":<PHONE_NUMBER>,
      "ord": 1,
      "h":<PHONE_NUMBER>350356000,
      "initsync": false
    },
    "op": "u",
    "ts_ms":<PHONE_NUMBER>351
  }
}

Hi @mottish!
Thx for reporting your issue. It seems that this is indeed a bug at least for MongoDB versions 3.6+ Obviously this field $v has been added to the oplog format and is not expected by the current implementation. When you look at the documentation of the update format in the Debezium docs https://debezium.io/docs/connectors/mongodb/#change-events-value you can see that the "$v" field is not mentioned there. However there is the following note:

The content of the patch field is provided by MongoDB itself and its exact format depends on the version. You can thus expect that the messages will not be same for MongoDB 3.4 and 3.6 and you should be careful while upgrading the MongoDB instance to a new version. All examples in this document were obtained from MongoDB 3.4 and might differ if you use a different one.

So from what I've quickly seen I'm afraid you need to wait until a fix is provided.
PR is of course welcome :)

Hans,
I am also stuck at this error. I am testing insert,delete and update operations and it fails for update operation.
mongos> db.demo_collA.updateOne({"_id" : "10129-2015-CMPL", "certificate_number" : 5346909},{ $set: {"business_name" : "RJ A&C CHIMNEY CORP."}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
mongos> db.demo_collA.find({"_id" : "10129-2015-CMPL", "certificate_number" : 5346909})
{ "_id" : "10129-2015-CMPL", "certificate_number" : 5346909, "business_name" : "RJ A&C CHIMNEY CORP.", "date" : "Apr 22 2015", "result" : "Violation Issued", "sector" : "Home Improvement Contractor - 100", "address" : { "city" : "QUEENS VLG", "zip" : 11428, "street" : "210TH ST", "number" : 9440 } }
mongos> db.demo_collB.find({"_id" : "10129-2015-CMPL", "certificate_number" : 5346909})
{ "_id" : "10129-2015-CMPL", "certificate_number" : 5346909, "business_name" : "A&C CHIMNEY CORP.", "date" : "Apr 22 2015", "result" : "Violation Issued", "sector" : "Home Improvement Contractor - 100", "address" : { "city" : "QUEENS VLG", "zip" : 11428, "street" : "210TH ST", "number" : 9440 } }
Above update() triggering below exception.
Caused by: com.mongodb.MongoBulkWriteException: Bulk write operation error on server localhost:27017. Write errors: [BulkWriteError{index=0, code=65, message='multiple errors for op : The $v update field is only recognized internally :: and :: The $v update field is only recognized internally :: and :: The $v update field is only recognized internally', details={"causedBy": [{"index": 0, "code": 9, "errmsg": "The $v update field is only recognized internally"}, {"index": 0, "code": 9, "errmsg": "The $v update field is only recognized internally"}, {"index": 0, "code": 9, "errmsg": "The $v update field is only recognized internally"}]}}].
My current source and target db version is 3.6.8.
As per your explanation, it seems this issue is related to 3.6 and above versions. Do you have a plan to fix this bug in upcoming releases? I am assuming upgrading to 4.0 may not help. Correct me if I am wrong. Alos downgrading to 3.4 is not an option in my case.

THX for checking this! Of course a fix is planned for the next patch release 1.3.2. Cannot tell right now when there will be an official release but as soon as there is a fix on master I'll let you know :) Ideally someone from the community steps up and sends a PR - would you like to?

Thanks, Hans for a reply. I wish I have a java skill already to fix this issue. I am an operational guy with little coding knowledge :).
Quick question: I know MongoDB officially announced Kafka connector which is developed on top of your code. Do you think even that connector also will have the same issue?

I'm pretty sure the official connector is also affected. AFAIK there were no considerable functional changes for the sink side - at least none that I'm aware of. Additionally, the bug is related to processing events coming from another 3rd party project, namely Debezium so I think it would currently not have a very high priority. What I'll do however is provide the fix in the official repo as well after seeing an knowing that it works here.

Thanks, Hans. Appreciate it.

I already looked into it. The fix itself is a trivial one for this very issue. But it will still take me a bit to adapt unit tests, documentation etc. and do a hotfix release. Try to find some time at the beginning of next week.

Hi @hpgrahsl, Thank you for looking into it quickly!
Will wait for your fix, I was looking in the code to resolve it but couldn't find yet a proper fix for it beside a workaround to drop this field using regex.
I was also trying to use Kafka connect ReplaceField to omit this field, however the "patch" value is not a json and treated as Text so it wasn't possible.
Thanks again for your great work with this connector!

Hi @hpgrahsl , I continue to do testing with large dataset 34 million records in a live test environment and I got another bulk write operation error as below.   Thought I will share with you.
2019-07-12 07:20:13,606] ERROR writing 472 document(s) into collection [oz_next_new.assets] failed -> remaining retries (3) (at.grahsl.kafka.connect.mongodb.MongoDbSinkTask:161)
[2019-07-12 07:20:13,606] ERROR WorkerSinkTask{id=oz_next_assets_sink_01-0} RetriableException from SinkTask: (org.apache.kafka.connect.runtime.WorkerSinkTask:551)
org.apache.kafka.connect.errors.RetriableException: Bulk write operation error on server localhost:27017. Write errors: [BulkWriteError{index=135, code=28, message='Cannot create field 'renditions' in element {2: null}', details={}}].
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.processSinkRecords(MongoDbSinkTask.java:170)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$null$0(MongoDbSinkTask.java:118)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$put$1(MongoDbSinkTask.java:117)
at java.util.HashMap.forEach(HashMap.java:1289)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.put(MongoDbSinkTask.java:112)
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:538)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:321)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

@rajarameshyv thx for sharing. honestly I haven't seen this error before... never :)
[BulkWriteError{index=135, code=28, message='Cannot create field 'renditions' in element {2: null}', details={}}]
Try to find out what it even means cause from this rather cryptic error message I have no idea what exactly went wrong or why the write didn't succeed. Will keep you updated.

@mottish @rajarameshyv good news see above :-)

Thank you, it works!

Thank you @hpgrahsl. Download from https://www.confluent.io/connector/kafka-connect-mongodb-sink/ will have this change?

@rajarameshyv yes but in fact the download from confluent hub will only include this when the next release will be done and published there. until then you have to use the latest from build from master branch.

@rajarameshyv ah and what about your other issue you posted above? did you find anything why this might happen? I think it would be a good idea if you extract this part and open a separate issue for this so that we don't loose track :-) THX in advance.

@hpgrahsl So far search using google, looks like an issue related to updating array with NULL value with some values triggering this error. But I am not 100% sure. I am planning to reproduce this from mongo shell.
And Han, I don't find a procedure how to build jar file using master. Appreciate if you can post me a link or procedure. Sorry if this is a trouble for you.

ok. I see. so directly in the project root you simple run
mvn clean package
this then builds different artefacts in the target/ folder. what you then take is the uber-jar containing all dependencies which can be found here target/kafka-connect-mongodb/kafka-connect-mongodb-1.3.2-SNAPSHOT-jar-with-dependencies.jar after a successful build. this is what you can deploy to your kafka-connect installation.

Thank You @hpgrahsl. I will try this. Appreciate for sharing steps.

 Good luck :)

@hpgrahsl Fix for $v update field issue working. Thank You. I will create a separate issue for other errors I am getting.


Upgrade deprecated method from QT4 to QT5

These methods and header inclusion format were deprecated from QT4 to QT5.
Source : http://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5#toAscii.28.29_and_fromAscii.28.29_Methods_are_deprecated
These were causing build errors, these errors have been documented [before]((http://stackoverflow.com/questions/14260475/qdialog-not-such-file-or-directory-qt-windows)

This looks good, but the commit message author have what appears to be a user name rather than your actual name. We, like many open source projects, need to be able to clearly identify who contributed code, and this includes attributing those contributions.

Apologies for the delay. I edited the author name of both commits. Do let me know if I've gone wrong somewhere. Thank you

It looks like you edited many of the other commits in the history too, I can cherry-pick these two commits onto a branch based on master, and take that. I will do that later, the commits look great now, but the history has diverged.

Closing as PR #5 fixes the problem with history divergence.


Lemony Thickets: Ground textures, paths, grass

[x] Ground textures
[x] Paths
[x] Grass

It would be nice if the ground wasn't 100% covered in frosting.

[ ] Draw textures for bare spots (cake)
[ ] Draw center textures for bare/frosting transitions
[ ] Draw edge textures for bare/frosting transitions
[ ] Fix frosting waves to weave around  bare spots

The ground textures look slightly too patterny. It might also be nice to see some pebbles here and there.

[ ] Add gingerbread pebbles
[ ] Fix overly patterny unfrosted ground textures


Show stats on service flags

@stratospher was interested in addrman entries with the v2 service flag set - we could show a percentage for a set of known service flags as global stats

just doing a thought dump here:

v2 service flag stats is more interesting for ipv4+ipv6 (since tor, i2p, cjdns are already encrypted). the percentage might not change much because there's less tor, i2p, cjdns addresses in these addrman.

would be cool to see how much % of the addrman is filled

was interesting to see service flag distribution were kind of same across different addrman!


the documentation page has unnecessary horizontal scroll

🐛 Bug Report
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Link to repl or repo (highly encouraged)
Please provide a minimal repository on GitHub.
Issues without a reproduction link are likely to stall.
Run npx envinfo --system --binaries --npmPackages @xstyled/system,@xstyled/styled-components,styled-components --markdown --clipboard
Paste the results here:

Can't reproduce.


Slow dialog opening

It's takes about a second to open the dialog. What's wrong with it?
How can I speed it up?

I have a similar problem

Have you fixed it?

@brianpkelley have you fixed it?

Yes, its been pushed to the v0.2.5 branch, but not merged into develop or master yet.

@brianpkelley Thanx a lot!


Never ARPs for Service IP

I don't know if this is a kube-vip issue or a cloud-controller issue. The actual issue is "fails to ARP," which I think makes it a kube-vip issue.
Describe the bug
Kube-vip is installed in hybrid  mode and successfully arps for the assigned VIP for the API server. When continuing with the instructions to ARP for Kubernetes services, it assigns an IP but never ARPs for it. Nothing shows up in the logs.
To Reproduce
Steps to reproduce the behavior:

deploy hybrid mode from current image (using K3s 1.20.2+k3s1)
configure it to ARP for API server
install cloud provider - at this point it creates the plndr configmap but doesn't populate it. docs say to create it, but should actually say to edit it
edit configmap and add cidr-global
expose a service
note that IP is assigned
IP is not reachable, doesn't show up in ARP tables, and is not in an ARP reply from the leader node (or any other)

Expected behavior
Expected it to ARP for service address the way it is for the API server address. The only log info is:
E0306 14:35:47.658013       1 node_controller.go:113] failed to get instances from cloud provider

Screenshots
I0306 14:33:44.654867       1 event.go:255] Event(v1.ObjectReference{Kind:"Service", Namespace:"default", Name:"demo", UID:"85d48007-b106-4b3a-93e8-51ec88bba5ca", APIVersion:"v1", ResourceVersion:"53375", FieldPath:""}): type: 'Normal' reason: 'EnsuringLoadBalancer' Ensuring load balancer

➤ k get service
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
demo         LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>   8080:31684/TCP   7m9s

➤ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- <IP_ADDRESS> ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
[a|default] ~/D/w/m/c/r/d/2021.01-ha-rancher-with-k3s|master⚡?
➤ arp -an | grep <IP_ADDRESS>
? (<IP_ADDRESS>) at (incomplete) on en25 ifscope [ethernet]

➤ arp demo-a
demo-a.cl.monach.us (<IP_ADDRESS>) at 2:84:8:4a:dd:1c on en25 ifscope [ethernet]

➤ arp <IP_ADDRESS>
? (<IP_ADDRESS>) at 2:84:8:4a:dd:1c on en1 ifscope [ethernet]
? (<IP_ADDRESS>) at 2:84:8:4a:dd:1c on en25 ifscope [ethernet]

Environment (please complete the following information):

OS/Distro: Ubuntu 18.04
Kubernetes Version: K3s v1.20.2+k3s1
Kube-vip Version: 0.3.2

Kube-vip.yaml:
If Possible add in your kube-vip manifest (please remove anything that is confidential)
apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
    deprecated.daemonset.template.generation: "2"
    objectset.rio.cattle.io/id: ""
    objectset.rio.cattle.io/owner-gvk: k3s.cattle.io/v1, Kind=Addon
    objectset.rio.cattle.io/owner-name: kube-vip
    objectset.rio.cattle.io/owner-namespace: kube-system
  labels:
    objectset.rio.cattle.io/hash: df8554deac08f5bfb609d09470da1244dab4a242
  name: kube-vip-ds
  namespace: kube-system
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      name: kube-vip-ds
  template:
    metadata:
      creationTimestamp: null
      labels:
        name: kube-vip-ds
    spec:
      containers:
      - args:
        - manager
        env:
        - name: vip_arp
          value: "true"
        - name: vip_interface
          value: ens18
        - name: port
          value: "6443"
        - name: vip_cidr
          value: "32"
        - name: cp_enable
          value: "true"
        - name: cp_namespace
          value: kube-system
        - name: svc_enable
          value: "true"
        - name: vip_leaderelection
          value: "true"
        - name: vip_leaseduration
          value: "5"
        - name: vip_renewdeadline
          value: "3"
        - name: vip_retryperiod
          value: "1"
        - name: address
          value: <IP_ADDRESS>
        image: plndr/kube-vip:0.3.2
        imagePullPolicy: Always
        name: kube-vip
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
            - NET_RAW
            - SYS_TIME
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      hostNetwork: true
      nodeSelector:
        node-role.kubernetes.io/master: "true"
      restartPolicy: Always
      schedulerName: default-scheduler
      serviceAccount: kube-vip
      serviceAccountName: kube-vip
      terminationGracePeriodSeconds: 30
      tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/master
        operator: Exists
  updateStrategy:
    rollingUpdate:
      maxUnavailable: 1
    type: RollingUpdate
---
apiVersion: v1
data:
  cidr-global: <IP_ADDRESS>/29
kind: ConfigMap
metadata:
  creationTimestamp: "2021-03-06T14:32:29Z"
  name: plndr
  namespace: kube-system
  resourceVersion: "53658"
  uid: c60a07d3-6af6-463b-b511-ed097729eeb0

Additional context
The elected leader Pod happily reports that it's ARPing for the VIP IP, and doesn't report anything problems.

This is a bug in the cloud-controller.. it was originally designed to set a service.status.. it needs updating to edit a service.spec.externalIP

This is fixed with new release of plunder cloud-controller 0.1.5 (manifests updated)


Invalid dot files generated if go source files contains extra '.' or '-'

Tried to run goimportcycle on a work project and it generated code similar to the following (sanitized work information from it)
subgraph cluster_pkg_main {
	label="main";
	style="filled";
	fontcolor="#000000";
	fillcolor="#ffffff";

	pkg_main_file_device-api [label="device-api.go", style="filled", fontcolor="#000000", fillcolor="#ffffff"];
};

pkg_graph_file_schema.resolvers -> pkg_model_file_models_gen [color="#000000"];

Dot will throw an error due to both pkg_main_file_device-api and pkg_graph_file_schema.resolvers containing a - and a . respectively. Manually changing those to _ fixes the error.

Working on a potential fix for this in my free time. I'll open a PR when I have it ready.


feat(quotes): add new quotes

Hey @dk3775
I have added new quotes please review my pr
Could you look please?


Finalize the field type for pointcloud

Description
The output type of lidars should be clarified.
Purpose
The message information from the sensor drivers should be available for users to implement their own drivers.
Relate discussion: https://github.com/autowarefoundation/autoware/discussions/101
Definition of done

[ ] The details of output message from sensor drivers should be available in documentation

We have discussed on this in the Architecture WG
https://github.com/autowarefoundation/autoware/discussions/364

Lidar:
We still need to agree on pointfield definition
PointXYZI+LaserChannel+Time
Do we want to remove laser channel after preprocessing is done within sensor module?
We can still allow additional fields if required

@xmfcx will create a PR to design document.

https://github.com/autowarefoundation/autoware-documentation/pull/180 This is being worked on.


Changed shortcuts in command of editors

Ctrl+D to deleteLine
Ctrl+L to gotoLine
Tab to defaultTab

.


fix: string-args

showing string args and fixed spacing
https://github.com/hirosystems/explorer/issues/1350

:tada: This PR is included in version 1.148.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Need Examples

Is your feature request related to a problem? Please describe.
No proper example provided
Describe the solution you'd like
Providing an example will help the developer to understand how to use it.

@yahu1031 do you expect this to be dealt with by #337 ?

@cpswan yes Chris. That can be. Lable this duplicate.


[A11y] Jaws is not announcing column header name while navigating to table cells

URL: 1745273
Note:
Issue is not observed with NVDA.
Similar issue observed in below scenario
Hit the URL: https://www.nuget.org/
Navigate to "Sign in" control and hit enter.
Navigate to "Sign in with Microsoft" control and hit enter.
Search for a key term (say “json”) from search box.
Click on "Newtonsoft.json" control and hit enter.
Navigate to "Used By" control and hit enter.
Observe whether the screen reader is announcing the column headers for the column header names or not.
Expected Result:
While navigating in a table using table shortcut keys(Ctrl+Alt+arrow keys), screen readers should read corresponding column header name when we are moving from column to other column
Example: Pattern Column1 * , Result Column 2 Select any package that has an ID beginning with Alpha
Environment Details:
App name: NuGet Service
#URL: https://www.nuget.org
OS and Browser Details:
Edition Windows 11 Enterprise
OS build 22621.1105.
Chrome version:  109.0.5414.120 (Official Build) (64-bit)
Screen reader: JAWS, NVDA
Repro Steps:
Hit the URL: https://www.nuget.org/
Navigate to "Sign in" control and hit enter.
Navigate to "Sign in with Microsoft" control and hit enter.
Select “API Keys” from the Profile Dropdown and hit enter.
Navigate to "Create" button and hit enter and Unselect Push Checkbox.
Observe whether the screen reader is announcing the column headers for the column header names or not.
User Impact:
Screen reader users will not be able to get the information of the table clearly.
Recommendations:
Refer Repository of bug fixes code snippets

Cannot reproduce. Sent back to tester.

AzDo issue closed.


Quarkus native build fails with Quarkus CXF WS-Security

While having the dependency quarkus-cxf-rt-ws-security on classpath, quarkus native build fails with
UnsupportedFeatureException: No instances of io.netty.buffer.PooledByteBufAllocator are allowed in the image heap as this class should be initialized at image runtime. To see how this object got instantiated use --trace-object-instantiation=io.netty.buffer.PooledByteBufAllocator.
This happens on any sample project created using:

Quarkus version: 2.15.3.Final (latest to date, also applies to any version above 2.12.0.Final AFAIK) with Java 11
quarkus-cxf-rt-ws-security version: 1.7.3

Steps to reproduce:

create project with CXF dependencies including Quarkus CXF WS-Security:  https://code.quarkus.io/?a=native-build-test&j=11&e=io.quarkiverse.cxf%3Aquarkus-cxf&e=io.quarkiverse.cxf%3Aquarkus-cxf-rt-ws-security&extension-search=cxf
run ./mvnw package -Pnative -Dquarkus.native.container-build=true (Docker required as this is a container-build)

Things that I tried:

log suggested --trace-object-instantiation to find root cause
--initialize-at-run-time native build arg with some possible culprits
--initialize-at-build-time native build arg with some possible culprits

Any help/suggestions appreciated.

Facing the same problem here.
Quarkus version: 2.16.0.Final with Java 11
quarkus-cxf-rt-ws-security version: 1.7.3
I updated the quarkus version because the cxf extension was tested against Quarkus 2.16.0.Final (https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/user-guide/create-project.html#_which_quarkus_platform_versions_are_compatible_with_a_given_quarkus_cxf_bom_version)

Facing the same problem here.
I test it with:
Quarkus version: 2.15.3.Final with Java 17
quarkus-cxf-rt-ws-security version: 1.7.3
Quarkus version: 2.16.0.Final with Java 17
quarkus-cxf-rt-ws-security version: 1.7.3
Quarkus version: 2.15.3.Final with Java 17
quarkus-cxf-rt-ws-security version: 1.5.0
All That versions don't passed the native compilation with the same error message that adamov9 said.
I test it with:
Quarkus version: 2.15.3.Final with Java 11
quarkus-cxf-rt-ws-security version: 1.4.0
This compile natively successfuly with no errors.

I believe these errors may be due to the org.ehcache.shadow.org.terracotta.utilities.io.Files being repackaged to org.terracotta.utilities.io.Files in the version of ehcache we depend on.
Would any of you be able to run a small test for us - essentially, you would need to build the quarkus-cxf project locally, replacing the lines here with the code below.  You can download the relevant source code from the releases page.
    @BuildStep
    void runtimeInitializedClass(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
        Stream.of(
                "org.ehcache.sizeof.impl.JvmInformation",
                //"org.ehcache.shadow.org.terracotta.utilities.io.Files",
                "org.terracotta.utilities.io.Files",
                "org.ehcache.shadow.org.terracotta.offheapstore.util.PhysicalMemory",
                "org.ehcache.shadow.org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource",
                "org.ehcache.shadow.org.terracotta.offheapstore.storage.portability.BooleanPortability",
                "org.ehcache.xml.XmlConfiguration",
                "org.ehcache.xml.ResourceConfigurationParser")
                .map(RuntimeInitializedClassBuildItem::new)
                .forEach(runtimeInitializedClass::produce);
    }

Let me know if any questions on the above.

I believe these errors may be due to the org.ehcache.shadow.org.terracotta.utilities.io.Files being repackaged to org.terracotta.utilities.io.Files in the version of ehcache we depend on.
Would any of you be able to run a small test for us - essentially, you would need to build the quarkus-cxf project locally, replacing the lines here with the code below. You can download the relevant source code from the releases page.
    @BuildStep
    void runtimeInitializedClass(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
        Stream.of(
                "org.ehcache.sizeof.impl.JvmInformation",
                //"org.ehcache.shadow.org.terracotta.utilities.io.Files",
                "org.terracotta.utilities.io.Files",
                "org.ehcache.shadow.org.terracotta.offheapstore.util.PhysicalMemory",
                "org.ehcache.shadow.org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource",
                "org.ehcache.shadow.org.terracotta.offheapstore.storage.portability.BooleanPortability",
                "org.ehcache.xml.XmlConfiguration",
                "org.ehcache.xml.ResourceConfigurationParser")
                .map(RuntimeInitializedClassBuildItem::new)
                .forEach(runtimeInitializedClass::produce);
    }

Let me know if any questions on the above.

Thank you @shumonsharif for looking into this.
I tried it with a dummy project as described in my original post and it seems like the issue with the image build is solved. 🎉
Right now I can not carry out any functional tests but as quarkus-cxf build's tests ran successfully I assume all is good.
Any chance of including the fix in an upcoming release?

Thanks @adamov8 for your help; I couldn't recreate the issue exactly as you all described (similar errors, but different classes ending up on the image heap for me) - so I wanted you to confirm the fix.
I'm not yet sure how the existing quarkus-cxf code passed the build / integration tests, I think it should have failed.  I noticed that 1.7.2 was the last successful execution of a build relating to a release: https://github.com/quarkiverse/quarkus-cxf/actions/runs/3731967005.  The build job seems to be getting skipped entirely since 1.7.3:  https://github.com/quarkiverse/quarkus-cxf/actions/runs/3930187089.
@ppalaga @famod Could you please advise; is the build skipping during release by design, or an issue that needs to be resolved?  I recall we had some build issues at some point that we were trying to fix, but don't remember if it's the same.  Also, pls share any thoughts on possibly releasing a fix for this issue, which branches should we target?

Some good news ... I think I finally identified the root cause for this issue.  The quarkus-cxf BOM is not used in https://code.quarkus.io generated projects.  This results in these generated projects using the incorrect version of ehcache.
@adamov8 Can you please try the workaround below and let us know if it resolves your issue?
Add the quarkus-cxf-bom dependency:
  <dependencyManagement>
    <dependencies>
      ....
      <dependency>
        <groupId>io.quarkiverse.cxf</groupId>
        <artifactId>quarkus-cxf-bom</artifactId>
        <version>1.7.3</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

Remove all the version elements for the quarkus-cxf dependencies:
    <dependency>
      <groupId>io.quarkiverse.cxf</groupId>
      <artifactId>quarkus-cxf-rt-ws-security</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkiverse.cxf</groupId>
      <artifactId>quarkus-cxf</artifactId>
    </dependency>

Depending on the version of quarkus-cxf you're using, you may also need to add the following in your application.properties file:
quarkus.native.additional-build-args=--initialize-at-run-time=org.ehcache.shadow.org.terracotta.offheapstore.util.PhysicalMemory

Thanks @adamov8 for your help; I couldn't recreate the issue exactly as you all described (similar errors, but different classes ending up on the image heap for me) - so I wanted you to confirm the fix.
...

I can't reproduce the exact error either, my hunch is that this is because of the Mandrel image being used - the floating tag might point to a newer version of the underlying GraalVM.

@adamov8 Can you please try the workaround below and let us know if it resolves your issue?
...

Just for the record, as of the time of testing I have version GraalVM <IP_ADDRESS>-Final Java 17 Mandrel Distribution logged when using container build with Quarkus version 2.15.3.Final.
All works fine using the BOM, did not have to use quarkus.native.additional-build-args.

All works fine using the BOM, did not have to use quarkus.native.additional-build-args.

Thank you so much @adamov8 for your help once again!
I will defer to @ppalaga and @famod on how to best handle this issue.  I think we may need to explicitly state somewhere that the BOM should be used instead of version tags for the quarkus-cxf dependencies.  We also have an open issue around the BOM inclusion for the generated projects:  https://github.com/quarkiverse/quarkus-cxf/issues/651.

I will defer to @ppalaga and @famod on how to best handle this issue. I think we may need to explicitly state somewhere that the BOM should be used instead of version tags for the quarkus-cxf dependencies.

It's already there, no? https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/user-guide/create-project.html#dependency-management

Thanks @famod!  I think the doc you referenced is very good, but may possibly not be as obvious to get to, for folks generating their projects from https://code.quarkus.io.  Would it be worth including the same content here:  https://github.com/quarkiverse/quarkus-cxf#configuration?  Or maybe even a codestart which simply includes a README file that gets bundled with the generated projects?  Not sure if there really is a good solution for this, just throwing out some ideas.


Project setup

[ ] Demo app
[ ] README
[ ] Makefile
[ ] CI
[ ] Module

This was closed by #7 correct?


Shed interiors

[x] Figure out how we're cover to cover the walls and ceiling.Plywood or plaster board.
[ ] figure out where the electrical outlets are
[ ] buy the boards (ply/plaster)
[ ] install them

[ ] walls
[ ] ceiling

Consider using 気密遮音コーキング

We'll use plaster boards.


Add "Scheme 9 from Empty Space"

What does this PR do?
Add book: Scheme 9 from Empty Space (first edition) by Nils M. Holm.
For resources
Description

This textbook contains the complete and heavily commented source code to an interpreter for a broad
subset of R5RS Scheme.

Why is this valuable (or not)?
This book shows how to implement the Scheme programming language in C.
How do we know it's really free?
The author's website links to the author's old website, which says that the file in question is in the public domain:

All of the above stuff is now in the public domain no matter what the license files in the individual packages say.

For book lists, is it a book? For course lists, is it a course? etc.
This is a book (a zip file containing a PDF and source code).
Checklist:

[x] Read our contributing guidelines
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction)

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Please contact the author to see if he wants us to list the book. While he's made it available in the past, it seems unclear that he wants it distributed on various websites today - a deleted statement on an archived website seems a bit "sketchy"!

also, we avoid linking to zip files.

First version (2008) is under Public Domain.
Current (2014) don't.
At his college page... https://web.archive.org/web/20181010075503/http://www.bcl.hamilton.ie/~nmh/t3x.org/zzz/

OK, I found https://t3x.org/#attic
Taking him at his word, I'll add it to unglue.it and we can link there.

https://unglue.it/work/506723/ copyright date is 2007


Allow users to specify number of docs per index when creating workloads

Description
create-workload currently fetches all documents from specified indices in --indices. Users should have the option to specify a subset of documents if they do not want to use all of the documents. In this PR, OSB now supports running --total-docs in conjunction with --indices. It takes in a comma-separated list of document counts that correspond to the respective index in the list of indices in --indices.
# Example: if movies and actors has a total document count of 3000 and 2000 respectively, users can specify that they want only 1500 documents from movies index and 1200 documents from actors index with these parameters.
--indices=movies,actors --total-docs=1500,1200

See #289 for more details.
Issues Resolved
#289
Testing

[x] New functionality includes testing

Tested it with a few indices in private cluster. Tested the following cases:

with single index and single doc count
with multiple indices and multiple doc counts
with multiple indices and single doc count (should result in error as both doc counts need to be provided)
with single index (should get all documents)
with multiple indices (should get all documents)

See #289 for outputs and more details

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Also consider modifying the user interface to options of this sort: --number-of-docs idx1:count1 --number-of-docs idx2:count2  which might be more intuitive.


Ignore commented-out expect statements

What
Use regex replacements to remove comments from code prior to analysing it.

Why
To fix #1

Notes
Housekeeping

[x] Unit tests
[x] Documentation is up to date
[x] No additional lint warnings

Codecov Report

Merging #2 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master     #2   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          29     30    +1
  Branches        9      9
=====================================
+ Hits           29     30    +1

Impacted Files
Coverage Δ

src/index.js
100% <100%> (ø)
:arrow_up:

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 7035d9f...aa5f867. Read the comment docs.

Nice one @hiddentao! I was struggling away doing this on my phone over here 😆
Feel free to add yourself to the contributors table withyarn contributor.
I've added a couple of minor comments btw :)

My bad if you run yarn contributor:gen it'll add you to the contributors table in the readme after running yarn contributor which you've done ☺

Done.


Add kafka guide

First draft

So exciting!!!

And I love it!

Just two minor comments and I think we can ship it!


Crash at opening S/MIME encrypted mails

Hi,
at opening S/MIME encrypted mails the setMessage() method gets null instead of a messageViewInfo Object (https://github.com/k9mail/k-9/blob/master/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java#L81). As the result line https://github.com/k9mail/k-9/blob/master/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java#L87 fails, because there is no field name "message" that could be accessed.

master is currently not in a stable state. See https://groups.google.com/forum/#!topic/k-9-dev/GHyqzZaTkP8
Until we have proper PGP/MIME support please don't report issues like this. Chances are this will be fixed once we're done. Pull requests to fix existing issues are of course always welcome.


BaseApp Source

Hi,
are there any plans on putting the base app sources on this or another GitHub repository?
Thanks
Julian

No, but this is available to authorized partners using other means.

okay, you mean like the product DVD right? then this case can be closed then

On the BC 15 DVD, you find the Base app objects under "Dynamics 365 Business Central 2019 Release Wave 2.DE.36649\Applications\BaseApp\Source\Base Application.Source.zip"


Update README.md with features list?

Currently this project has a very minimalist and unclear README.md overview and furthermore the comments inside the project files are in Russian, could we arrange a better documentation in English @farag2?
Thanks.

Hello. I'll update readme file and add english comments when 1903 release. I think it could happen this week.
Is the description from for example https://github.com/Disassembler0/Win10-Initial-Setup-Script suitable?
I didn't provide description, because only me and some forum members use this script. If even another users create such topics, I'll do that.

Thanks for replying on such short notice @farag2.
The best approach would be to create a detailed list with enhancements that you offer and short introduction, the format you linked is a good start!

Ok. Give me some days. Is it OK, if there will be comment in english and below comment in russian?
Like this:
comment
комментарий

You could aim for the solution that best fits your backers/target audience.
I'm speaking from my prior experience, I'd highly recommend any repository to use only English for comments and main documentation. Attempting to do it in multiple languages extends the size as well as adds a whole new scope of work to the project.
You should always proceed in a way that doesn't involve too much micro moderation between each update :).

OK, Google. Thank you, Siri. :)

@xRiot,
is it much better?
e.g.
# Turn off diagnostics tracking services
# Отключить службы диагностического отслеживания
$services = @(
	# Connected Devices Platform service
	# Служба платформы подключенных устройств
	"CDPSvc",
	# Connected User Experiences and Telemetry
	# Функциональные возможности для подключенных пользователей и телеметрия
	"DiagTrack",
	# Data Usage
	# Использование данных
	"DusmSvc",
	# SSDP Discovery
	# Обнаружение SSDP
	"SSDPSRV")
Foreach ($service in $services)
{
	Get-Service -ServiceName $service | Stop-Service -Force
	Get-Service -ServiceName $service | Set-Service -StartupType Disabled
}

Naturally, good work @farag2!

I think, I've done translating script. May be upload tomorrow.

I've updated all script. Please help to improve the translation, if needed.

Is there a way to control, one by one, what is being done?
It seems the script is doing a lot of things behind the scene and it would be great to have ste by step option for Yes / No / Skip.

@RoyiAvital, hello. Unfortunately, there is no way due to command line interface. So you must open the code and comment out what you do not to be executed or update the code. I do not want to add
$Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice)

to the every function. Anyway yo can add it everywhere you want.
P.S. Now we are cooking a C# GUI version of script. No ETA.
[]


[bug] Room with name api

You can create a room with the name 'api',
it not only becomes not visitable, it also becomes undeletable.
My suggestion would be to make the rooms acceable und example.org/r/
It would separate, the manager from the rooms and makes it easier to configure reverse proxies.
I'm running authentik (similar to keycloak, a autentication server) and i had to make a special regex so /api is secured.
This rule would be easier if there where a clear separation between rooms and manager.
What do you think?
This project is awesome, BTW :) :+1:

Also creating rooms with name css and  js could be problematic, because then administration would not be available.
When using traefik, I suggest to protect the whole adminitration, but that creates a problem with lobby, since that would be then password protected too.
You can host administration under different domain by exposing port 8080 directly from neko rooms and revere proxy it. So you could have e.g. admin.example.org and rooms.example.org domains.
But I agree with you, that it would be easier to have rooms under some (as mentioned r/) path prefix. Plan for v2 is to separate lobby and admin completly, and to remove traefik dependency.
What we could do in this verision is to restrict room names (api, css and  js), add optional path-prefix config value to neko-room that would be empty by default (to maintain backward compatibiltiy) but would allow to specify own prefix.

Sounds good :) Thank you :)

With new proxy, /api is registered before room handler. Therefore it makes room named /api inaccessible. But with set up path prefix this can be prevented.


crash of mavlink-routerd

after this running for sometime without issue (we have increased the frequency of messages to 10Hz from 1Hz from the FCU)
mavlink-routerd is crashing with the following errors when i try to run it
pi@CameraPi:~ $ /usr/bin/cpulimit --limit=30 /usr/bin/mavlink-routerd  -e <IP_ADDRESS>:14550 -e <IP_ADDRESS>:14551 /dev/ttyACM0:115200
mavlink-router version v2-146-g9261530
Could not open /dev/ttyACM0 (Device or resource busy)
i upgraded it to the latest version here as the one i was running was 88 comits behind but i also still get this on re-spawn (Its being cpulimited on start-up to 30% for load, and this did work okay last week)
pi@CameraPi:~ $ /usr/bin/cpulimit --limit=30 /usr/bin/mavlink-routerd  -e <IP_ADDRESS>:14550 -e <IP_ADDRESS>:14551 /dev/ttyACM0:115200
mavlink-router version v2-229-g022333d
Could not open /dev/ttyACM0 (Device or resource busy)
but the device is there and its the port the the flight control unit FCU it should be closed in the handler
pi@CameraPi:~ $ ls /dev/ttyACM1
/dev/ttyACM1
Secondly i saw this error also when the mavlink-routerd crashed one time.
TCP Address already in use
i cant understand that as your code already has this or something similar which should allow the reuse when in TIME_WAIT state
std::bool yes = 1;
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *)&yes, sizeof(yes));
and thats in the tcp.open method ???
and thidly i got this error
poll error for fd 4
Critical fd 4 got error, exiting
I dont know what this means ????
Is anyone able to explain this strange behaviour I'm seeing and point me towards a resolution

this is the other error im getting as above
mavlink-router version v2-229-g022333d
Opened UART [4]CLI: /dev/ttyACM0
UART [4]CLI: speed = 115200
Opened UDP Client [5]CLI: <IP_ADDRESS>:14550
Opened UDP Client [7]CLI: <IP_ADDRESS>:14551
TCP Server: Could not bind to tcp socket (Address already in use)
Process 14384 terminated abnormally
and with setsocket the serial port problem shows used except there is no more mavlink-routerd running and no other application opening this port, so i cant see why it gives me the above errors some of the time.
pi@CameraPi:~ $ setserial -g /dev/ttyACM[0123]
/dev/ttyACM0: Device or resource busy
/dev/ttyACM1, UART: unknown, Port: 0x0000, IRQ: 0
the effect is that the program reading the UDP endpoint is also going down all the time with this ??

after reboot some of these errors cleared and mavlink-routerd then started up nicely
however on connecting to the end point it dies like this
poll error for fd 4
Critical fd 4 got error, exiting

poll error for fd 4
Critical fd 4 got error, exiting

fd 4, per your logs above correspond to:
Opened UART [4]CLI: /dev/ttyACM0
UART [4]CLI: speed = 115200

It means that for some reason it failed to open the UART.  Is that serial port working reliably? Are you able to open screen /dev/ttyACM0 115200 and see the data coming in?
What board is this?

but the device is there and its the port the the flight control unit FCU it should be closed in the handler
pi@CameraPi:~ $ ls /dev/ttyACM1
/dev/ttyACM1

But it complains that the device that failed is /dev/ttyACM0, not /dev/ttyACM1

making sure the code reading off the endpoint first before starting the mavlink-routerd seemed to work for me

if the port vanished, it may have been disconnected (if it's usb). But per the name it seems to be the SoC uart, so it's likely a kernel driver bug. You will have to look at dmesg to check if kernel says anything when that happens.

and make sure you have an up-to-date kernel

making sure the code reading off the endpoint first before starting the mavlink-routerd seemed to work for me

I think this is coincidence. If it's a kernel  driver bug, then it will work when you boot and later stop working.

thanks very much ill check it when it re-occurs it shows fine right now again, i think ill look for the up to date kernel its possible something else i saw unrelated also may be the kernel

kernel did need update and its in progress
for info to others its :-
sudo apt update
sudo apt full-upgrade
sudo rpi-update

did you have any issues after doing the updates?
We should probably change mavlink-router to avoid crashing, but the fix seems to be on the kernel side.

no issue it upgraded fine and seemed to be stable, that seemed to fix the issue. Using a tcp endpoint seemed more stable than the udp but it might just have been co-incidence, just left that method for now, and i didnt see the fault again yet.

Thanks for confirming. Closing the issue.


Explore label rendering with TexturedPhotogrammetryMesh.render_pyvista()

The render_pyvista method allows you to generate realistically-styled images from a camera viewpoint. We currently only use it to generate simulated images in the concept figures notebook and not in the core workflow. We should consider whether it can be used in the label rendering stage of the main workflow.
Since pytorch_3d uses a differentiable renderer, it may have additional overhead compared to a traditional rendering pipeline. We use pytorch_3d because this differentiable rendering exposes the pixel-to-face correspondences we need for texture aggregation. But in the label rendering stage, we don't need this information and another rendering pipeline might be faster.
To make render_pyvista work, we'd have to make sure that it can render integer labels correctly. Some things to look into would be

[ ] Can "flat" lighting be turned on so there is no impact on the labels?
[ ] Can interpolation between two adjacent values be turned off, so we don't get spurious intermediate values?
[ ] Is this pipeline actually faster than using pytorch_3d? Because pytorch3d is GPU enabled, I'm not sure.

There may be other considerations as well

By turning off diffuse lighting (setting default 1.0 to 0.0) and enabling ambient lighting (setting default 0.0 to 0.5), we get something like this. These parameters are set in plotter.add_mesh(). I still need to check how it compares against pytorch3d, but seems promising.

I noticed that slight shadows were being cast on the ground mesh / on other shapes, which I found to be caused by ssao. Setting enable_ssao parameter to false in the render_pyvista fixed this.

This seems really promising. In my mind, the next step would be figuring out the best way to avoid colormapping values. I'm pretty sure duplicating the texture as three channels would work. But maybe there's an easier way with what you know about explicitly controlling the colormap.

We got to the point where we could do flat label rendering, but to do so we had to duplicate the one-channel label into three channels. We should benchmark whether there are major memory or performance penalties to this, or if there's another option.


Reduce depenencies: remove luasec

In order to reduce dependencies we want to replace luasec (used by the Websocket module luws) with luaossl.

According to the documentation, luaossl it is a low level API for OpenSSL. There is no easy way to wrap a socket with TLS like with luasec. Creating such a wrapper with luaossl may be possible but requires deep knowledge of the OpenSSL API.
An alternative solution would be lua-http, which contains a WebSocket client and uses luaossl. But it requires the native library cqueues which is not available to Exasol UDFs.
So we decided to leave the dependencies as they are (both luasec and luaossl).


lutaml_uml_datamodel_description macro

We need to create a new macro for generating datamodel ascidoc code similar to the one used in https://github.com/metanorma/ogc-citygml-xmi/issues/1 in lutaml macro. Proposed format:
[lutaml_uml_datamodel_description, /path/to/file.xmi, /path/to/config.yml]
--
[.preface]
---
some text
---

[.footer]
---
My custom footer text
---
--

Where:

/path/to/file.xmi - required, path to uml datamodel xmi file
/path/to/config.yml - optional, path to special yaml config file, look below for format
block text, .preface, .footer macroses - optional, sets predefined text to be inserted into the temaplte during render, .preface and .footer is just an example of naming, TODO: define actual blocks

The above-mentioned macro need to use supplied xmi file and generate adoc code similar to the one used here - https://github.com/metanorma/ogc-citygml-xmi/blob/master/sources/standard/_packages.liquid and insert into the document.
Yaml config file.
Additional config file used to tell the parser what packages to use in the render and in what order, also it can hold packages to skip.
example:
packages_to_render:
  - one
  - two*
  - skip: three
  - four

packages_to_render - main attribute, need to be a list of string/objects. Each string interpreted as a pattern that will be used to select packages can have a wildcard - * in order to match multiply packages. In order to skip some packages one can use an object instead of a string: skip: three*, each object will be taken and matched against package name and if pattern matches it will skip it.

I think at the current point we can use a YAML file like this:
packages:
  # includes these packages
  - "Package *"
  - two*
  - three
  # skips these packages
  - skip: four

[lutaml_uml_datamodel_description, /path/to/file.xmi, /path/to/config.yml]
--
[.before,package="Package 1"]
---
Text before Package 1
---

[.after,package="Package 2"]
---
Text after Package 2
---
--

@ronaldtse implemented in #35

Implement support for xmi file diagrams lookup. Example of diagram ref in requirement file - https://raw.githubusercontent.com/metanorma/ogc-dggs-xmi/feature/lutaml_uml_datamodel_description/sources/as21-dggs/requirements/_temporal_geometry_and_topology.adoc?token=AAI2XFBA62KNW4HLX5A6GXLBCEDPW. Proposed syntax:
lutaml-figure:[name="Fig: Primitives of Zonal Identifier"]

Eg: use diagram name as a lookup id and transform it into <<figure-{{ diagram.xmi_id}}>>(EA names diagram images by this pattern)

For the record with @w00lf we've also discussed:

Because lutaml programmatically generates content, you can generate attributes like:
:figure-MyFigureName: EAID_C2D34AA2_FF6B_4b2d_BF51_89A80AE81170
Then in asciidoc you can retrieve it via:
This is my ID {figure-MyFigureName}

This is implemented. Thanks @w00lf .


Close file handles if close_on_exit even if safer.writer() fails; use future type annotations

Summary by Sourcery
Close file handles when 'close_on_exit' is set, even if 'safer.writer()' fails, and update type annotations to use future syntax for better readability.
Bug Fixes:

Ensure file handles are closed if 'close_on_exit' is set, even when 'safer.writer()' fails.

Enhancements:

Adopt future type annotations for improved code readability and maintainability.

@Chiemezuo: these are three tiny commits but I thought each would be educational for you.

Thanks!