Color picker won't open

Microsoft PowerToys version
0.58.0
Running as admin

[X] Yes

Area(s) with issue?
ColorPicker
Steps to reproduce

Try to open the color picker with the assigned shortcut

I also tried changing the shortcut (I tried ctrl + win + shift + k), that didn't change anything.
PowerToysReport_2022-05-18-12-50-57.zip
✔ Expected Behavior
The color picker to open
❌ Actual Behavior
The color picker did not open
Other Software
N/a

Hi,
The bug report seems to have errors in the event viewer for ColorPicker.
Can you try to see if you can generate a dump file to send through GitHub?
One way of achieving this would be by creating an entry in the Registry Editor (regedit.msc), for Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\PowerToys.ColorPickerUI.exe , according to the instructions in https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps
It should look something like this in the end (but for ColorPickerUI instead of KeyboardManagerEditor):

After that, please replicate the bug, navigate to $LOCALAPPDATA%\CrashDumps in the File Explorer and upload the zipped PowerToys.ColorPickerUI.exe.*.dmp file to a GitHub comment.
The idea is that this could show us the stack trace and help pinpoint what the issue might be. /needinfo

I have it set up just like in the image:

It doesn't seem to actually be  generating any dumps in %LOCALAPPDATA%\CrashDumps, I've tried multiple times and made sure to do a reboot in between. I have attached a new bug report .zip as generated by PowerToys for reference.
PowerToysReport_2022-05-26-10-28-37.zip

Indeed, these are the latest logs:
INFO: 10:20:32.3992853
    [Method]: Main [Class]: Program
    Color Picker started with pid=23048
INFO: 10:20:33.7694879
    [Method]: OnStartup [Class]: App
    Color Picker started from the PowerToys Runner. Runner pid=11244
WARNING: 10:20:34.9076233
    [Method]: SetWindowPosition [Class]: ChangeWindowPositionBehavior
    Failed to get monitor bounds for mouse position-1,1
INFO: 10:21:34.7397298
    [Method]: Main [Class]: Program
    Color Picker started with pid=24208
INFO: 10:21:34.9940009
    [Method]: OnStartup [Class]: App
    Color Picker started from the PowerToys Runner. Runner pid=11244
WARNING: 10:21:35.2692402
    [Method]: SetWindowPosition [Class]: ChangeWindowPositionBehavior
    Failed to get monitor bounds for mouse position-1,1
INFO: 10:23:26.7802810
    [Method]: ChangeCursor [Class]: CursorManager
    Cursor file path was null
INFO: 10:23:26.7805703
    [Method]: ChangeCursor [Class]: CursorManager
    Cursor file path was null
INFO: 10:24:35.5018337
    [Method]: Main [Class]: Program
    Color Picker started with pid=12240
INFO: 10:24:46.9352481
    [Method]: OnStartup [Class]: App
    Color Picker started from the PowerToys Runner. Runner pid=10676
WARNING: 10:24:54.1460565
    [Method]: SetWindowPosition [Class]: ChangeWindowPositionBehavior
    Failed to get monitor bounds for mouse position-1,1

Pretty weird. It looks a lot like: https://github.com/microsoft/PowerToys/issues/17636#issuecomment-1097438344
Does anything there help?

not sure if this is related but sometimes this happens to me as well, seems like certain times the color picker will just take a while to open (~6 seconds) other times it just won't open until I open the settings panel and then press the shortcut again, then it will open right away
log-wise seems Iike I'm also getting that WARNING
WARNING: 10:21:35.2692402
    [Method]: SetWindowPosition [Class]: ChangeWindowPositionBehavior
    Failed to get monitor bounds for mouse position-1,1

Other times I'm just getting an exception instead:
ERROR: 01:19:27.0981608
    [Method]: Main [Class]: Program
    Unhandled exception
Cannot set Visibility to Visible or call Show, ShowDialog, Close, or WindowInteropHelper.EnsureHandle while a Window is closing.
Inner exception:

Stack trace:
   at System.Windows.Window.VerifyNotClosing()
   at System.Windows.Window.InternalClose(Boolean shutdown, Boolean ignoreCancel)
   at System.Windows.Application.DoShutdown()
   at System.Windows.Application.ShutdownImpl()
   at System.Windows.Application.ShutdownCallback(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at ColorPicker.Program.Main(String[] args)

I'll also post the log zip for you to further investigate:
PowerToysReport_2022-06-01-09-01-57.zip

Indeed, these are the latest logs:
[... snip ... ]
Pretty weird. It looks a lot like: #17636 (comment) Does anything there help?

The debug build works work me.

@Meryl That debug build helps you? I didn't understand. Under which conditions does it work and under which condition doesn't it work.
@Davoleo , what about yourself, does that debug build help you at all?

Nope, they're both the same user.

Try exiting PowerToys completely (Check Task Manager in Details to make sure there's no PowerToys.* process running)
After that, try starting PowerToys without Admin privileges and please check if it works. /needinfo
(Wonder if it's something to do with running as admin)

Okay... so for some reason that has permanently fixed it. Running it without admin privileges once seems to have fixed something. It now just works, after rebooting too. I also did a re-install, but considering that remembered my settings I guess that's not saying much. If you have information on how to do a proper clean re-install I could try that, to see if I can at least still replicate the issue.

Same problem here with Windows 11 Developer Preview. The Color Picker simply won't open. I tried changing the shortcut to something else. I also tried deactivating Color Picker, and reactivating it. Nothing works.
Edit: Closing Power Toys from the System Tray, and re-launching it from the Start Menu, seems to have temporarily fixed it.

This is very weird. Perhaps the user used to run PowerToys at start up is different than the user using the Desktop? Or the user that give admin priveleges being different?

Contrary to what I said in my previous comment, it hasn't as it turns out, been fixed permanently for me. It does still occur. I have found that pcgeek86's fix of restarting Powertoys by closing it from the system tray and then re-launching it fixes the problem. I also found no difference in the user under which the process runs, as reported by task manager.
I now wonder if this issue might be related to #17174 (for the record, also an issue I reported) because perhaps the ultimate issue here is that PowerToys just isn't registering the shortcut being pressed at all? Could it be related to the way PowerToys in general 'listens' to keys being pressed?

@Meryl, is it still reproducible on your side with the latest version?
If so, could you please:

Describe how do you reproduce it? (It's not reproducible on my setup);
Cleanup all the logs (%USERPROFILE%/AppData/Local/Microsoft/PowerToys/ColorPicker/Logs);
Reproduce it again and send the latest logs.

Thanks!

It's still reproducable. After updating it works fine initially, but it breaks after a reboot. If I then close PowerToys and start it again manually, it works fine.
I'm having trouble submitting the general logs, because the 'Report bug' option no longer creates a zip file on my desktop. I have attached today's log for ColorPicker instead.
Log_2022-09-07.txt

Through a workaround I was able to create a zip-file containing everything:
PowerToysReport_2022-09-08-12-16-49.zip

Is this still happening?
/needinfo

Yes, as per my comment on september 7th last year:

It works immediately after installing a new version
It doesn't work globally after I have rebooted the machine (PowerToys is set to start automatically)
It does work when the PowerToys window has focus.
It does work globally after I restart PowerToys manually (Exit from system tray, then restart).

Is this issue still relevant in 0.74? /needinfo

I'm no longer encountering this issue.


issue 6319: copy raw sliced value as tail in new value to be converted

Motivation
additional fix for #6319
tested with https://github.com/foundry-rs/foundry/issues/6319#issuecomment-1902693003 not sure though how to add a unit test for it, please advise

Solution

the sliced storage value should be used as tail when returning the value of the storage slot.

can use this one JQNGFHINKS1W7Y5FRXU4SPBYF43J3NYK46

can use this one JQNGFHINKS1W7Y5FRXU4SPBYF43J3NYK46

great, added with https://github.com/foundry-rs/foundry/pull/7194/commits/649f5d961ac2387801dd49340e354f27ff60b4ab


[Feature]: Using template variables inside regex patterns

Is your feature request related to a problem? Please elaborate.
I have some libraries with non standard content, like lectures and sports. I've been using my directory structure as a way to organize this stuff since there's no real way for Plex to get metadata aside from me manually tagging everything. For example, one of my lecture series' may be in Lectures > Medicine > Cardiology > Pathology and the only real way for me to find something specific is to navigate to it using the folder view on whatever Plex client I'm using.
I'd like to use PMM instead, but since I have it organized by directories, I would need to use a Plex builder with a filepath.regex filter:
collections:
  ECG Lectures:
    plex_all: true
    filter:
      filepath.regex: \/data\/Other\/Lectures\/Medicine\/Cardiology\/ECGs\/*

This works well, but it can get cumbersome without a template, especially when I start adding other filters to it.
Describe the solution you'd like
Ideally, I'd like to be able to use a template to auto-generate the regex patterns. As far as I can tell, you can't inject a template variable into the regex pattern currently so I can't use templates at all for this purpose. If it would be feasible, this is how I imagine the metadata yml would be structured:
templates:
  Subject:
    plex_all: true
    filter:
      filepath.regex: \/data\/Other\/Lectures\/<<subject>>\/.+

collections:
  ECG Lectures:
    template: { name: Subject, subject: "((ECGs|Cardiology)|Cardiology\/ECGs)" }

This is probably an overly simplistic demonstration of the use case but it would make PMM a lot more extensible for non standard libraries, especially when combined with the conditionals and optionals.

have you tried this it should absolutly be possible

It does actually work, I'm not sure what I was doing incorrectly before but I tried it again and it worked...


Translations update from Mattermost Weblate

Translations update from Mattermost Weblate for Playbooks/webapp.
It also includes following components:

Playbooks/server

Current translation status:

Hello @weblate,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

/update-branch

Looks like you don't have permissions to trigger this command.
Only available for the PR submitter and org members

hey @calebroseland ,
do you have any idea why the pr wasn't merged by Matterbot?
Thanks

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!

Trying to auto merge this PR.

Pull Request successfully merged
SHA: 29261ef3bcc95ccfeeddf0322ce105f10a8c504f


Transfer console entry point to application

Transfer console entry point (vendor/bin/yii) from yiisoft/yii-console to yiisoft/yii-demo and yiisoft/app

That would give us ability to modify entry point in a way similar to how index.php of a web application is modified.

In Yii 2 entry point was in the root of the application launched as ./yii.

This is not a problem to create your own custom entry point if you need it, just a few minutes.

This is not a problem to create your own custom entry point if you need it, just a few minutes.

Your solution write your own console and yii-db-migration doesn't matter who uses the console.

We can, instead, use "environment" that is read from APP_ENV environment variable. Currently we're toggling configs rebuild with it but, additionally, we can load another config.

Some time passed... After the question reviewing I see these cons in the case of any changes in entrypoint:

We should make changes it in all the repos (application templates) with console entry point
Users won't get fixes on composer update, they should manually track yii-console changelog if there was smthng about the entrypoint.

Decided to postpone it to right before release.


[ISSUE #4088] Anonymous new can be replaced with lambda.[BroadCastSubClient]

Replace with lambda
Fixes #4088 .
Motivation
Replacing with lambda
Modifications
Replacing a function with lambda
Documentation

Does this pull request introduce a new feature? No
If yes, how is the feature documented? Not applicable
If a feature is not applicable for documentation, explain why? Not applicable

Current pr seems to duplicate pr[ #4469].

For there is no response, I'll close this pr and let others do this.


Implement Siamese Network Issue

I was trying to implement a Siamese Network with Keras, I have two input data,
X1 shape: (10000, 52)
X2 shape: (10000, 600)
Each sample in X1 is assumed similar to sample in X2. For example: X1[0] is similar to X2[0]. I was trying to use the following code:
def contrastive_loss(y_true, y_pred):
'''Contrastive loss from Hadsell-et-al.'06
http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf
'''
margin = 1
return K.mean(y_true * K.square(y_pred) + (1 - y_true) * K.square(K.maximum(margin - y_pred, 0)))

left_branch = Sequential()
left_branch.add(Embedding(1000, 32, input_length=52))
left_branch.add(LSTM(64))
left_branch.add(Dense(256))

right_branch = Sequential()
right_branch.add(Embedding(1000, 32, input_length=600))
right_branch.add(LSTM(64))
right_branch.add(Dense(256))

merged = Merge([left_branch, right_branch], mode='cos',dot_axes=1)

final_model = Sequential()
final_model.add(merged)
final_model.summary()

x1 = np.random.randint(1000, size=(10000, 52))
x2 = np.random.randint(1000, size=(10000, 600))
y = np.ones((10000,),dtype=np.int)

final_model.compile(optimizer='adam', loss=contrastive_loss)

final_model.fit([x1, x2], y, nb_epoch=2, batch_size=32)

getoutput_t = K.function([merged.layers[0].layers[0].input], [merged.layers[0].layers[2].output])

getoutput_d = K.function([merged.layers[1].layers[0].input], [merged.layers[1].layers[2].output])

t1 = getoutput_t([x1])[0]

t2 = getoutput_d([x2])[0]

My issue is: after training, t1[0] was very similar to t1[1], but very different from t2[0]. I checked the output of t1 and t2, the generated output were strange:
t1:
array([[ -3.48182112e-01,   6.57344190e-03,  -6.75882818e-03,
4.11706511e-03,  -2.41146213e-03,  -1.14028137e-02,
2.49683809e+00,  -9.19755269e-03,  -2.37327255e-02....]
[ -3.48182231e-01,   6.57369522e-03,  -6.75880583e-03,
4.11719829e-03,  -2.41167075e-03,  -1.14026833e-02,
2.49683785e+00,  -9.19752941e-03,  -2.37324722e-02,...]
.......]])
The t1[0] was almost same to t1[1], same issue also was found in t2.
Thus, I have to concerns:

Is there any issue in my Siamese model? (e.g. loss function or layer design)

I don't have negative sampling so far, thus, the target values are "1", is this the issue?

@joelthchao Could you give me a idea to fix that?


fix(TDI-45356): BP: Align version of "httpclient" and "httpcore" dependencies.

What is the current behavior? (You can also link to an open issue here)
https://jira.talendforge.org/browse/TDI-45356
What is the new behavior?
Please check if the PR fulfills these requirements

[X] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[ ] The code coverage on new code >75%
[X] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[X] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:
Backport of https://github.com/Talend/components/pull/1823 into "master" branch.

Pull request test result: success :star:


Request to add property to MoM Door Token that prevents it from coming back

Firstly, I want to make clear Valkyrie is an excellent well built application and (except for one issue) does everything I could wish for and I am very impressed with it.
I do have one issue.  I am working on a MoM scenario where there are multiple alternative pathways to the same room.  This means that the investigators can enter the same room through more than one possible doorway.
The issue is when the door tokens are made visible for the room it is possible that the door has already been entered (and so has already been removed).  To avoid putting back a door that has already been removed, I've added a flag to the door which is raised when the door is removed.  Then I check if the flag has been raised before placing the door.
What would be cleaner would be to do this in the code.  It would, also, be generally useful.
Alternatively, please can someone suggest an easy way of preventing a door from coming back for rooms that can be entered through multiple doorways.

You need to have conditions for the events that place the explore or sight tokens.  With three or four different ways to enter a tile or room it gets pretty complicated but I was eventually able to get everything working as intended in my scenario.

cbusbird is right. When a room is discovered have it assign a variable under the Vars section of the event. Something like 'FoundBallroom' and set it to 1 for true. Then in any event that would add an Explore Token that would lead into that room have it do a Vars Test where FoundBallroom  != 1.
Just like coding != means does not equal. From here you shouldn't have any duplicate Explore Tokens that will appear. If you have more questions about using variables check out https://github.com/NPBruce/valkyrie/wiki/ValkyrieVars

As others have said (and in the original description) this can be done but is a little tricky.  I don't see a better way to do it thought - Valkyrie doesn't know what you are doing with the tokens and there may be a very good reason to leave a locked door between two explored rooms.

Maybe it could be done by using bit fields or something similar. But that would be really counterintuitive for non-programmers.

If you were going down that path I'd implement structs (bit feilds should only be used these days where the performance is really required, or it is an internal system and not an interface).
Given how vars work, this would just be a grouping of (for example) visible.boolroom.  The only advantage here rather than just visibleBoolroom is maybe you can clear all visable in one go?  Still probably not worth it.
I am however considering a method to query what components (Tile/Token) are visible at the moment.

Nice insight. I agree, not worth it ATM.

Having a method of querying which Tiles are visible would be helpful and would help to simplify the issue.
Currently implimenting entering a room through multiple doors is a pain.
I do not believe either of the two MoM scenarios which currently exist gives an example of this.
Nor does the tutiorial.

They don't, good idea for a mini tutorial.  Volunteers?

I would volunteer but as I am working on a scenario where there are 7 rooms which can be entered from multiple directions I think you may find the issues are more of a pain than you may at first think - or at least I found it so for me : )

Note that there isn't a problem with removing a token that isn't there.  So whenever you place the tile remove all of the connecting tokens (even if they aren't there) and just tell the player to remove any that connect to the tile.  This is how the official scenarios do it.
Of course if you want to be fancy and have text that tells them exactly what to remove it gets a lot more complicated.

Removing the door is not the issue.  The issue is that it comes back.
Take a Room which each can be entered through 4 doors.
Investigator enters the door, the Tile is placed and so is the Doors for the Tile - because it is not visible.
The door is removed and then the Event is called to place the 4 doors.
We then must check which doors should be placed and which not.
Which means a flag for each of the 4 doors that can be entered.
I cannot find a way for the information of which door has been removed to be passed on to the event to place the doors - causing the door to come back.

I will try to write a sample of this situation/mini tutorial. I was going to try and do something to provide some more information on how variables can be used to trigger events and prevent others from taking place. This falls under the later.

Thank you for offering to do a tutorial : )

No problem. I was planning one for using  variables anyways. I'll just make
sure to use something similar to this as well.
On Tue, May 30, 2017, 10:36 AM NicolaZee<EMAIL_ADDRESS>wrote:

Thank you for offering to do a tutorial : )
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/482#issuecomment-304898411,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aahf4Y4TfrssslkEjC9xRI412otqR6mbks5r_CllgaJpZM4Npb_Y
.

@NPBruce Do we have a way of creating a folder for demo scenarios? Or would it just be a normal pull request to be added to the downloadable scenarios?

How I am doing it is adding them all to the existing demo scenario.  You can do this by using a subdirectory and having an event that references another quest.ini.  This reference can't be done in the editor it has to be done manually.  Have a look here:
https://github.com/NPBruce/valkyrie-questdata/tree/master/source/MoM/Demo
https://github.com/NPBruce/valkyrie-questdata/blob/master/source/MoM/Demo/events.ini
If the plan is to have tutorial style demos perhaps the first event will ask if you want to check out new features or see a tutorial, then you can have a list of each as different events.

Or maybe the first event can be buttons that lead to different portions of the demo with a token at the end that removes everything and then takes you back to the menu to choose another demo. That way all we would have to do is merge the files since the coordinates don't matter for the tile placement.

Although, it would complicate things if someone is trying to pick their way through the code to learn it for themselves.

Definately prefer separate scenarios.  Easier to maintain and users can copy individual demos.  You can still return to the menu using event1=../quest.ini if you like.

I don't have push access for that repository. Can I send you the scenario folder?

Yep, either that or do a pull request.

VariablesAndDoors.zip

I still haven't figured out the pull request bit.  I'll have to read some documentation on it.

Not in a position to test at the moment, can you download and try this package:
https://github.com/NPBruce/valkyrie-store/blob/development/MoM/Demo.valkyrie

Was able to run it. Worked fine, now I just need to finish writing the accompanying wiki explaining it all. But that should be easier than having to do a blind example that you can't see in action. Thanks!

I might need to add one more event at the start explaining it since I had
originally put that into the scenario quest data screen
On Tue, May 30, 2017, 9:19 PM NPBruce<EMAIL_ADDRESS>wrote:

Not in a position to test at the moment, can you download and try this
package:
https://github.com/NPBruce/valkyrie-store/blob/development/MoM/Demo.valkyrie
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/482#issuecomment-305054529,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aahf4ZRSvzDGcnGih-jfBTK9R0_ogfYQks5r_MAdgaJpZM4Npb_Y
.

Thank you for adding the door example.  It helps to have something concrete to look at.
I don't know if this is the correct place to raise this but the example does not seem to me to be correct.
If you click on the door to the Interior Door all the doors are removed. This gets rid of all the annoying doors to all the other tiles - hooray!
But surely the Doors to the rooms that have not been explored should remain and not be removed?
To do this each door which can lead to a possibly uncovered room must be checked for the Uncovered Tile flag.
If the door is to a Tile which is not uncovered it should not be removed.
This leads to a flag for every tile that may or may be uncovered and an event for every door which may or may not lead to such a tile (as that's the only way to check the flag)
Alternatively - and this is quite possible or even likely -  I may just be even more confused than I first thought!  : )

Actually I had an intro for the scenario that explained that it was showing only the doors going into the room. In order to show it going out of the room you would have to create alternate Explore tokens that lay in the same location as the doors leading in.
Those events would each have to have a variable that tests to see if that part of the hallway exists. It would be the same process as the doors that lead in, I just didn't want to over complicate the example so that if someone was looking into the code to see how it was done.
I would be glad to send you a copy of how that whole hallway scenario would be written so that you can see how even the sight tokens would be removed depending on how you traverse the corridor.

OK that makes sense and I agree the first scenario now makes sense and should remain as is.
But I think it would be worth adding to the tutorials the complete solution - one which includes the doors going out.
Otherwise it's only half the picture.

I think you've got it! Having the tokens set like that will only spawn the
ones that you need and will remove the ones you don't once they become
obsolete. I will make an advanced version which plays with all the tokens
on the field including the sight tokens
On Wed, May 31, 2017 at 9:01 AM NicolaZee<EMAIL_ADDRESS>wrote:

So if I now have it correct the full solution is as follows:

Have 2 door tokens one on top of each other - the door tokens going in
sits on top of the door tokens going out.
2.
When the room is entered all the door tokens going in are removed –
exposing the door tokens going out.
3.
An event is raised for each door token going out to check if the door
going out leads to a visible room. If the Uncovered flag for the Tile is
raised the door is removed.
So have I got Step 3 correct?
Thank you for your help and patience.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/482#issuecomment-305179315,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aahf4QhGjBLJG-rwb5nhMggQKnSfn7ylks5r_WSqgaJpZM4Npb_Y
.

Hooray!  It makes a lot more sense and I now get why 2 doors are needed.
A big thank you for your help!
I think you will agree it is a bit complicated.
It would be nice to have - as Bruce put it -  'a method to query what components (Tile/Token) are visible at the moment.' It would make it a bit cleaner.
On the other hand I get that it's not essential and there are more pressing urgent issues.
Like not having to select investigators when trying out a tutorial : )

@NPBruce I have a scenario that won't open when I try to start it. I can edit it, but it doesn't show up on the selectable scenarios to play. Any ideas?
BrokenScenario.zip

@LordPyrex Better open up a separate issue for it.

It was in reference to this ongoing thread, but I can split it.
On Wed, May 31, 2017 at 6:15 PM redwolf2<EMAIL_ADDRESS>wrote:

@LordPyrex https://github.com/lordpyrex Better open up a separate issue
for it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/482#issuecomment-305333665,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aahf4QipXDNTR4Uzy1z47JCrCW_eCWxAks5r_eaegaJpZM4Npb_Y
.

My guess would be, that it is because of the unnessessary sub folder inside the archive with the same name as the archive.

No, that was just from zipping it up before sending it, sorry

Sry, saw it myself, thats not it. Can reproduce the problem here with your scenario.
`(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
NullReferenceException: Object reference not set to an instance of an object
at Assets.Scripts.Content.DictionaryI18n.AddRaw (Assets.Scripts.Content.DictionaryI18n dictToCombine) [0x00000] in :0
at Assets.Scripts.Content.DictionaryI18n.ReadFromFileList (System.String basePath, IEnumerable1 localizationFiles, System.String newDefaultLanguage, System.String newCurrentLanguage) [0x00000] in <filename unknown>:0    at QuestData+Quest..ctor (System.String pathIn) [0x00000] in <filename unknown>:0    at QuestLoader.GetQuests (Boolean getHidden) [0x00000] in <filename unknown>:0    at Game.SelectQuest () [0x00000] in <filename unknown>:0    at Assets.Scripts.UI.Screens.MainMenuScreen.Start () [0x00000] in <filename unknown>:0    at Assets.Scripts.UI.Screens.MainMenuScreen.<MainMenuScreen>m__0 () [0x00000] in <filename unknown>:0    at UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) [0x00000] in <filename unknown>:0    at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0    at UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0    at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <filename unknown>:0    at UnityEngine.UI.Button.Press () [0x00000] in <filename unknown>:0    at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <filename unknown>:0    at UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <filename unknown>:0    at UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction1 functor) [0x00000] in :0
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent()
UnityEngine.EventSystems.StandaloneInputModule:Process()
UnityEngine.EventSystems.EventSystem:Update()
(Filename:  Line: -1)`

The quest is set to hidden, which does exactly that!  This is so you can have sub quests which can't be started by users.

Ignore the log I posted. Bruce won the race.
Set this:
; Saved by version: 1.2.0
[Quest]
...
hidden=True

OMG, I'm an ID10T
On Wed, May 31, 2017 at 7:10 PM redwolf2<EMAIL_ADDRESS>wrote:

Ignore the log I posted. Bruce won the race.
Set this:
; Saved by version: 1.2.0
[Quest]
...
hidden=True
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/482#issuecomment-305344032,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aahf4bIjqX8io3VXxbBCX9AanqoQwCoUks5r_fNtgaJpZM4Npb_Y
.

I think you are a hero for taking on making a tutorial for what is the most complex issue (I've so far come across) in implementing a MoM scenario. Everything else was fairly self-explanatory.
So a big thank you for your time and patience.  I am certain it will help others.  There are several 1st ed scenarios (especially fan written ones) where rooms can be entered from multiple directions so anyone converting these will come across this issue.

@NPBruce Here is an advanced version of that multi room scenario. In case someone wants a more through idea of making something like this.
AdvancedTokensAndVariables.zip

@NicolaZee Thank you for that, but I really just consider it sharing what I have learned through trial and error. NPBruce and the other coders have created a solid platform to stand on as far as putting it all together.

Thanks your example.  It definitely helps.  I've tried it and it works.  I am much less confused - so a big thanks is in order.
In regards to examples I think they should be kept as separate zip files - so people can choose which example to try out.  Otherwise once there are hundreds of such examples it will be confusing and wasteful.
I've been breaking it down into its steps and I'm 100% OK with the removing the doors going in.
I've still got an issue with adding the doors going out.  The check for the doors going out is a set of events with each event matching a door checking if the room has been 'entered'.
All events for placing the doors out will be triggered from the Place Tile Event
[EventPlaceTile]
buttons=1
event1=EventPlaceDoorOut1 EventPlaceDoorOut2
add=Tile0
But Instead of firing off all both events, only the first event that matches the condition is triggered.  Consequently each door placement event must (in turn) call the subsequent door placement events in a chain.
EventPlaceDoorOut1 calls EventPlaceDoorOut2
EventPlaceDoorOut2 calls EventPlaceDoorOut1
This is feasible with 2 doors going out but what about 3 doors going out?
EventPlaceDoorOut1 calls EventPlaceDoorOut2 calls EventPlaceDoorOut3
What happens if Door1 resolves but Door2 does not and Door3 should be placed?
What would be great for 'Next Events' would be (as well as 'Random' and 'Ordered'), an additional type 'Concurrent' which would fire off all the events.
But I do get that this would be a significant amount of work and it's not likely to happen. : )

What would be great for 'Next Events' would be (as well as 'Random' and 'Ordered'), an additional type 'Concurrent' which would fire off all the events.

The reason I don't do this is what if event1 changes the conditions for event2?  What is the expected behaviour?  You also need to understand the stack because if event1 calls event3 that will happen before event2, and will have implications on what is enabled.

I am not suggesting that 'Concurrent' should be the default - definitely not - just an option.  If anybody decides to use it they should have enough understanding not to mess things up.
But this (to an extent) is true even with the existing sequential set of events. If Event1 calls Event2 than then calls Event1, the system (perfectly reasonably) goes around in circles.
What you seem be arguing (and apologies if I have the wrong impression) is that because somebody might get things wrong you don't want to add what seems to me potentially useful functionality.  In very rare circumstances it may even be necessary - although to be frank I'm not certain if this is the case.

There actually is an example of nesting in my advanced example. If you look at the door placement that would lead to Halls two and three, you can see that I've called the function for place creating the door on the left through 2 different chains.
The first is a continued chain of events. When EventCheckHall2FromIH runs and passes it places the door leading to the Hall north, the next event in the chain is EventCheckHall3FromIH which goes on to place the door to the west.
The second is setup to run EventCheckHall3FromIH if EventCheckHall2FromIH fails. This is done by having the event listed in order of next events. That way if the north door doesn't need to exist, then it will loop back around to check to see if the third door should exist.
Concurrent would actually complicate the way the system evaluates things. You'd have multiple text boxes launch and once started there wouldn't be a way to control which path you are trying to follow at any given time.
If you look at the way even the FFG scenarios work, it's very linear. Do this, then that, until it's all been done in order. Sometimes it just takes more logic statements than you thought to make it all work.

Thanks - at least I'm starting to get into my head how the multiple doors placement works sequentially.
I'm coming to the conclusion that a big scenario with lots of multiple access doors may be beyond my  abilities.  : )
Although I agree concurrent is more complex for the system, I don't believe it's more complex for the designer.  When placing the doors out, I don't see why I need to worry about the order the doors are placed.
You are right FFG scenarios are very linear in terms of placement of tokens but sometimes I find that annoying.  I was hoping to get away from the repetitive clicking of the 'Continue' button : )
Oh well at least I understand the issues better.

I have a solution for you, but first some more information:
The main reason I don't have this feature (it would actually be easy to add) is that when you have an event only starting one other event it is obvious when the test conditions are checked.  When you have branching trees and multiple paths there are many different ways this could occur and greatly increases confusion.  Having said that if the solution I am about to give you gets used much (I hope not) I will add in the option you suggest.
From the event documentation:
"A trigger can also be "Var" where name is the name of a var that starts with '@' (with the '@' removed). In this case the event will trigger at the end of an event that sets the associated var to 1. The var will be reset to 0 before this even occurs. After this event and it's following events have been resolved any events following the calling event will be resolved. Note that if vars have changed the possible outcomes from the calling event will NOT be redone, so this method of calling events is not recommended in most circumstances."
What this means is you can do this:
Event1 sets @trigger = 1.
Event2 and Event3 have triggers of Vartrigger.
WARNING:
1: Event2 and Event3 should not have conditions that are changed by each other, for the reasons mentioned above.
2: The order of execution is UNDEFINED.  What this means is that sometimes Event3 will happen first.  In reality because of how things work 99% of the time the event that is first in the editor will be first in the game, however this is not guaranteed.  If the memory manager needs to move things around it MAY go the other way.

To provide some context the system described above is designed to be used for D2E travel events.
So I  am travelling from A to B and I want a travel event inserted in the middle, as a generic event, and I need to continue with the B event even though the travel event itself doesn't know where I am.  So it looks like this:
Event A
Sets @travel
Button Travel to B Triggers EventB
Button Travel to C Triggers EventC
Event B
Sets @travel
Button Travel to A Triggers EventA
Button Travel to C Triggers EventC
Event C
Sets @travel
Button Travel to B Triggers EventB
Button Travel to C Triggers EventC
EventTravel
Trigger vartravel
This will inject EventTravel into the event stack from different places, and EventTravel doesn't need to know where to go back to, which is more important when there are a lot of places you can go to/from.

Hooray!
Now that sounds more like it.
A big thanks.
I'm also going to add blocked door tokens to save my sanity.
I have got one room with 4 doors out - which I now realise is not a good idea,

Just one final request for clarification.
With LordPyrex's well thought out (and very helpful) example, I believe it is in effect a 2 door out example - because we don't need to check if the starting tile is visible.
How does it work for a 3 door out - where a check of 'uncovered' is needed for each of the 3 doors?

I've just tried a quick test for placing doors using the var triggers and it worked great.
So, a big thanks.
It has the following advantages:

It scales
It does not matter how many doors there are - the method works the same.

The logic is cleaner
There's no need for a chain of doors out placing events calling each other.

It reduces 'continues'
I found with the previous approach I was doing all the doors out at the end and finding I needed a continue.  This could just be because I was getting confused :)

I will agree there is a danger that the doors may pop up in an odd order but that to my mind is a small price to pay.
So, I'm happy.


rpc error: "error reading server preface: EOF"

I've see this once (not reproducible) while starting a default instance using latest master branch:
INFO[0022] [hostagent] Forwarding "/run/lima-guestagent.sock" (guest) to "/Users/jan/.lima/default/ga.sock" (host)
WARN[0022] [hostagent] guest agent events closed unexpectedly  error="rpc error: code = Unavailable desc = connection error: desc = \"error reading server preface: EOF\""
INFO[0022] [hostagent] The optional requirement 1 of 2 is satisfied

I getting this too (reproducible) with colima:
❯ colima start \
    --arch x86_64 \
    --vm-type=vz \
    --vz-rosetta \
    --mount-type=virtiofs \
    --memory 8 \
    --cpu 8 \
    --network-address \
    --very-verbose
TRAC[0000] cmd ["limactl" "info"]
TRAC[0000] cmd ["system_profiler" "-json" "SPHardwareDataType"]
TRAC[0000] cmd ["limactl" "list" "colima" "--json"]
TRAC[0000] error retrieving running instance: instance 'colima' does not exist
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0000] creating and starting ...                     context=vm
TRAC[0000] cmd ["limactl" "start" "--tty=false" "/var/folders/cx/92gcnn3j4sj3_rc35f2snhhr0000gq/T/colima.yaml"]
> Terminal is not available, proceeding without opening an editor
> `mountType: 9p` is experimental
> Starting the instance "colima" with VM driver "qemu"
> "Attempting to download the image" arch=x86_64 digest= location=/Users/A3389496/.cache/colima/caches/e6a9564d615abecd0b900517181080ab06de3cdbc367f4848d10f18693ce3ce5.raw
> Downloaded the image from "/Users/A3389496/.cache/colima/caches/e6a9564d615abecd0b900517181080ab06de3cdbc367f4848d10f18693ce3ce5.raw"
> [hostagent] hostagent socket created at /Users/A3389496/.colima_lima/colima/ha.sock
> [hostagent] Using system firmware ("/opt/homebrew/share/qemu/edk2-x86_64-code.fd")
> [hostagent] Starting QEMU (hint: to watch the boot progress, see "/Users/A3389496/.colima_lima/colima/serial*.log")
> SSH Local Port: 49239
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] The essential requirement 1 of 2 is satisfied
> [hostagent] Waiting for the essential requirement 2 of 2: "user session is ready for ssh"
> [hostagent] The essential requirement 2 of 2 is satisfied
> [hostagent] Waiting for the guest agent to be running
> [hostagent] Forwarding "/var/run/docker.sock" (guest) to "/Users/A3389496/.config/colima/default/docker.sock" (host)
> [hostagent] Forwarding "/var/run/docker.sock" (guest) to "/Users/A3389496/.config/colima/docker.sock" (host)
> [hostagent] Forwarding "/run/lima-guestagent.sock" (guest) to "/Users/A3389496/.colima_lima/colima/ga.sock" (host)
> "[hostagent] guest agent events closed unexpectedly" error="rpc error: code = Unavailable desc = connection error: desc = \"error reading server preface: EOF\""
> [hostagent] Guest agent is running
> [hostagent] Waiting for the final requirement 1 of 1: "boot scripts must have finished"
> [hostagent] Not forwarding TCP <IP_ADDRESS>:53
> [hostagent] Not forwarding TCP <IP_ADDRESS>:53
> [hostagent] Not forwarding TCP [::]:22
> [hostagent] The final requirement 1 of 1 is satisfied
> READY. Run `limactl shell colima` to open the shell.
INFO[0058] provisioning ...                              context=docker
TRAC[0058] cmd ["lima" "sudo" "mkdir" "-p" "/etc/docker"]
TRAC[0058] cmd int ["lima" "sudo" "sh" "-c" "cat > /etc/docker/daemon.json"]
TRAC[0058] cmd ["lima" "sh" "-c" "grep 'host.lima.internal' /etc/hosts | awk -F' ' '{print $1}'"]
TRAC[0058] cmd ["lima" "sudo" "mkdir" "-p" "/etc/systemd/system/docker.service.d"]
TRAC[0059] cmd int ["lima" "sudo" "sh" "-c" "cat > /etc/systemd/system/docker.service.d/docker.conf"]
TRAC[0059] cmd ["lima" "sudo" "systemctl" "daemon-reload"]
TRAC[0061] cmd ["lima" "sudo" "systemctl" "restart" "docker"]
TRAC[0064] cmd ["docker" "context" "inspect" "colima"]
TRAC[0064] cmd ["docker" "context" "create" "colima" "--description" "colima" "--docker" "host=unix:///Users/A3389496/.config/colima/default/docker.sock"]
> colima
> Successfully created context "colima"
TRAC[0064] cmd ["docker" "context" "use" "colima"]
> colima
> Current context is now "colima"
INFO[0064] starting ...                                  context=docker
TRAC[0064] cmd ["lima" "sudo" "service" "docker" "start"]
TRAC[0067] cmd ["lima" "sudo" "docker" "info"]
TRAC[0068] cmd ["lima" "docker" "info"]
TRAC[0069] cmd ["limactl" "list" "colima" "--json"]
TRAC[0069] cmd ["/opt/homebrew/bin/colima" "daemon" "status" "default"]
TRAC[0069] cmd ["limactl" "stop" "colima"]
> Sending SIGINT to hostagent process 1509
> Waiting for the host agent and the driver processes to shut down
> [hostagent] Received SIGINT, shutting down the host agent
> [hostagent] Shutting down the host agent
> [hostagent] Stopping forwarding "/var/run/docker.sock" (guest) to "/Users/A3389496/.config/colima/default/docker.sock" (host)
> [hostagent] Stopping forwarding "/var/run/docker.sock" (guest) to "/Users/A3389496/.config/colima/docker.sock" (host)
> [hostagent] Stopping forwarding "/run/lima-guestagent.sock" (guest) to "/Users/A3389496/.colima_lima/colima/ga.sock" (host)
> [hostagent] Shutting down QEMU with ACPI
> [hostagent] Sending QMP system_powerdown command
> [hostagent] QEMU has exited
TRAC[0073] cmd ["limactl" "list" "colima" "--json"]
TRAC[0073] cmd ["limactl" "start" "colima"]
> Using the existing instance "colima"
> Starting the instance "colima" with VM driver "qemu"
> [hostagent] hostagent socket created at /Users/A3389496/.colima_lima/colima/ha.sock
> [hostagent] Using system firmware ("/opt/homebrew/share/qemu/edk2-x86_64-code.fd")
> [hostagent] Starting QEMU (hint: to watch the boot progress, see "/Users/A3389496/.colima_lima/colima/serial*.log")
> SSH Local Port: 49299
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 2: "ssh"
> [hostagent] The essential requirement 1 of 2 is satisfied
> [hostagent] Waiting for the essential requirement 2 of 2: "user session is ready for ssh"
> [hostagent] The essential requirement 2 of 2 is satisfied
> [hostagent] Waiting for the guest agent to be running
> [hostagent] Forwarding "/var/run/docker.sock" (guest) to "/Users/A3389496/.config/colima/default/docker.sock" (host)
> [hostagent] Forwarding "/var/run/docker.sock" (guest) to "/Users/A3389496/.config/colima/docker.sock" (host)
> [hostagent] Forwarding "/run/lima-guestagent.sock" (guest) to "/Users/A3389496/.colima_lima/colima/ga.sock" (host)
> [hostagent] Guest agent is running
> [hostagent] Waiting for the final requirement 1 of 1: "boot scripts must have finished"
> [hostagent] Not forwarding TCP <IP_ADDRESS>:53
> [hostagent] Not forwarding TCP <IP_ADDRESS>:53
> [hostagent] Not forwarding TCP [::]:22
> [hostagent] The final requirement 1 of 1 is satisfied
> READY. Run `limactl shell colima` to open the shell.
TRAC[0124] cmd ["lima" "sudo" "cat" "/etc/colima/colima.json"]
TRAC[0125] cmd ["lima" "sudo" "mkdir" "-p" "/etc/colima"]
TRAC[0125] cmd ["lima" "sudo" "mkdir" "-p" "/etc/colima"]
TRAC[0125] cmd int ["lima" "sudo" "sh" "-c" "cat > /etc/colima/colima.json"]
TRAC[0125] cmd ["lima" "sudo" "cat" "/etc/colima/colima.json"]
TRAC[0125] cmd ["lima" "sudo" "mkdir" "-p" "/etc/colima"]
TRAC[0125] cmd ["lima" "sudo" "mkdir" "-p" "/etc/colima"]
TRAC[0126] cmd int ["lima" "sudo" "sh" "-c" "cat > /etc/colima/colima.json"]
INFO[0126] done
TRAC[0126] cmd ["limactl" "list" "--json"]

It was gone after I executed
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/bootpd
/usr/libexec/ApplicationFirewall/socketfilterfw --unblock /usr/libexec/bootpd

as described here: https://github.com/lima-vm/socket_vmnet?tab=readme-ov-file#ip-address-is-not-assigned


Explore MUSL to avoid GLIBC requirement

What is the problem the feature request solves?
Currently we require dynamically linked glibc on the host machine which isn't desirable since it requires certain version of glibc, otherwise the native Comet lib won't be able to load. In particular, the glibc version used to compile and build Comet must be compatible (i.e., older) than the version used to execute Comet.
Another option is to explore x86_64-unknown-linux-musl compile target, which statically links against the MUSL libc and can effectively remove the above constraints. However, there are some reports that MUSL can cause performance degradation, see here and here. We may need to do some benchmark to evaluate.
Describe the potential solution
Evaluate MUSL and check if it can be a potential candidate to co-exist (or replace) with the current GLIBC approach.
Additional context
No response

I tend to agree with using a lower target glibc for compatibility.
If we want to consider MUSL we should also plan on benchmarking different combinations of target (glibc vs musl) and alloc (jemalloc vs system alloc) using a benchmark like TPC-DS.

Yes, this ticket belongs to the "good to have" category IMO. One disadvantage of having to stick to the lowest common denominator for GLIBC is that certain crates may not able to compile. For instance, we ran into issues with mimalloc when building on GLIBC 2.17 IIRC.

This recent blog post is worth a read. It talks about some performance issues with musl's default allocator and how switching to jemalloc helps.
https://blog.sdf.com/p/fast-development-in-rust-part-one

I remember we used jemalloc at the beginning, but we encountered some libraries issues from it and switched it back.


Support for TTL customization

The default TTL value is fixed at 60 seconds. It would be great if users can customize the TTL value, for example, 1 (for automatic).

Thanks for the suggestion. Implemented in 1.3.0.


Fix for issue #2998

PR Checklist

Please check all that apply to this PR using "x":

[ x ] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[ x ] I have checked that this PR does not introduce a breaking change
[ ] This PR introduces breaking changes and I have provided a detailed explanation below

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ x ] Code style update (formatting)
[ x ] Refactoring (no functional changes)
[ ] Documentation changes
[ ] Other - Please describe:

Fixes
An empty div Tag with some associated action removed from sidebar component.
Issue Number: #2998
What is the current behavior?
Sidebar card has an empty div.
What is the new behavior?
Looks better without the empty div.
Other information

@utkarshiam, thanks for the PR!
Can we show you some appreciation for the contribution?
Also, we're giving away some Hacktoberfest bonuses and goodies for this month. We'll get it all figured out after you shoot us an email after this is reviewed/merged.


Copy pipeline schema mapping error

We use Azure Data Factory copy pipeline to transfer data from REST api's to a Azure SQL Database and it is doing some strange things. Because we loop over a set of API's that need to be transferred the mapping is empty from the copy activity.
But for one API the automatic mapping is going wrong, the destination table is created with all the needed columns and correct datatypes based on the received metadata. When we run the pipeline for that specific API, the following message is showed.
{ "errorCode": "2200", "message": "ErrorCode=SchemaMappingFailedInHierarchicalToTabularStage,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed to process hierarchical to tabular stage, error message: Ticks must be between DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks.\r\nParameter name: ticks,Source=Microsoft.DataTransfer.ClientLibrary,'", "failureType": "UserError", "target": "Copy data1", "details": [] }
As a test we did do the mapping for that API manually by using the "Import Schema" option on the Mapping page. there we see that all the fields are correctly mapped. We execute the pipeline again using the mapping and everything is working fine.
But of course, we don't want to use a manually mapping because it is used in a loop for different API's also.

@vdbosschekoen Thank you for your question. Can you please share with us the URL of the doc that you are having issues with?
Please note that we scope issues on this repro to feedback related to the docs. If you have a product question, please post it on MSDN or Stack Overflow. Thank you for your understanding.

sorry it is a more technical question. Will post it on stack Overflow


[TEST] Actor Reminder Perf Test

Description

Actor reminders perf test fixes.
Copied from https://github.com/dapr/dapr/pull/7908 to base on release-1.14 branch
Issue reference

Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

/ok-to-perf actor_reminder

/ok-to-perf actor_reminder

/ok-to-perf actor_reminder

/ok-to-perf actor_reminder


Improvements to k64 internal-flash storage driver

Discover flash integrity failures during erase and program
Optimize away erase when target range is already erased.
Switch to using more specific names in DEVICE_STORAGE_CONFIG_*
Salvage  changes from https://github.com/mbedmicro/mbed/pull/2150 which are still useful

Note: This change-set doesn't have the following (as requested by @mjs-arm):

MUST - Hardwire the K64F storage driver to ASYNC only operation (not user  >configurable).

We still need to resolve if ASYNC operation is to be forced since there are some internal use cases which rely upon synchronous operation.
review: @0xc0170 @sg-
notify: @mjs-arm @marcuschangarm @simonqhughes @meriac

@mbed-bot: TEST
HOST_OSES=windows,linux
BUILD_TOOLCHAINS=GCC_ARM,ARM,IAR
TARGETS=K64F

I don't understand why this previous build was marked as a failure. It did pass according to TestResultViewer. @bridadan
@mbed-bot: TEST
HOST_OSES=windows,linux
BUILD_TOOLCHAINS=GCC_ARM,ARM,IAR
TARGETS=K64F

LGTM

@bridadan @sg- I don't see why automated testing failed here.

@rgrover Sorry about that, this was caused by an erroneous issue with mbed-ls. I've updated the version used on the server so this should be fixed.

@mbed-bot: TEST
HOST_OSES=windows
BUILD_TOOLCHAINS=GCC_ARM,ARM,IAR
TARGETS=K64F,NRF51_DK,NUCLEO_F411RE

/morph test

/morph test

@mbed-bot: TEST
HOST_OSES=windows
BUILD_TOOLCHAINS=GCC_ARM,ARM,IAR
TARGETS=K64F,NRF51_DK,NUCLEO_F411RE

/morph test

/morph test

/morph test

/morph test

@mbed-bot: TEST
HOST_OSES=windows
BUILD_TOOLCHAINS=GCC_ARM,ARM,IAR
TARGETS=K64F,NUCLEO_F411RE


PRs to fix patches in diego-api upstream project

./diego-api/bbs/jobs/patch_bbs_json.sh

relates with #12


Verification

[X] My "brew doctor output" above says Your system is ready to brew. and am still able to reproduce my issue.
[X] I ran brew update twice and am still able to reproduce my issue.
[X] This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

brew config output
HOMEBREW_VERSION: 4.0.16
ORIGIN: https://github.com/Homebrew/brew
HEAD: 01e0c20d01c6aab28d844280d130f0e745e2ddd9
Last commit: 8 days ago
Core tap JSON: 07 May 02:25 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_AUTO_UPDATE_SECS: 86400
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: vim
HOMEBREW_FORCE_BREWED_CURL: set
HOMEBREW_MAKE_JOBS: 10
HOMEBREW_NO_ANALYTICS: set
HOMEBREW_VERBOSE: set
Homebrew Ruby: 2.6.10 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: 10-core 64-bit arm_blizzard_avalanche
Clang: 14.0.3 build 1403
Git: 2.40.1 => /opt/homebrew/bin/git
Curl: 8.0.1 => /opt/homebrew/opt/curl/bin/curl
macOS: 13.3.1-arm64
CLT: <IP_ADDRESS>.1.1679647830
Xcode: 14.3
Rosetta 2: false

What were you trying to do (and why)?
Run brew update
What happened (include all command output)?
After saying 'Current branch stable is up to date', it hangs until I cancel out of it with ctrl-C
Output:
Checking if we need to fetch /opt/homebrew...
Checking if we need to fetch /opt/homebrew/Library/Taps/homebrew/homebrew-services...
Fetching /opt/homebrew...
Updating /opt/homebrew...
branch 'master' set up to track 'origin/master'.
Switched to and reset branch 'master'
Your branch is up to date with 'origin/master'.
Switched to and reset branch 'stable'
Current branch stable is up to date.
What did you expect to happen?
brew update should complete without requiring manual intervention
Step-by-step reproduction instructions (by running brew commands)
1. Add the following two lines to ~/.gitconfig

[diff]
  external = /Users/ww2/remote/bin/git_vimdiff

run brew update

Note: if I remove or comment out the diff.external line in ~./gitconfig, brew update works as expected; see also a similar earlier bug report (#15357), which has a suggested fix.

I can also reproduce this, maybe add --no-ext-dff here?
https://github.com/Homebrew/brew/blob/e62a839001faf69160965c352b66870006c2af65/Library/Homebrew/cmd/update-report.rb#L578
Like this:
diff_output = Utils.popen_read("git", "diff", "--no-ext-diff", api_names_before_txt, api_names_txt)


Unable to hit breakpoint

Hello,
I have difficulties to debug my code using plugin-babel.
If i put a breakpoint in my es6 file test.js, the breakpoint is never hit by chrome dev. I must insert debugger line and the debugger breaks in test.js!transpiled.
If I put a breakpoint in test.js!transpiled, the breakpoint doesn't work.
Could you tell me how do you debug the es6 code ? I don't see any sourcemap.
Maybe changing extension in test.js!transpiled to test.js!transpiled.js could solve the breakpoint problem.
Thank you in advance for your help.

I added sourcemap option to babel and now, the debugger line is hit in my es6 file, but the breakpoints are never applied: only debugger is working. Any idea ?

Perhaps try the fix in https://github.com/systemjs/systemjs/pull/1180 here, which may have been causing this.


rebranding wfs-3.0 -> goapi-features

like the title suggest we need to rename the application/repo/parts of the code, to scrub out the old OAF name of WFS3.0.

After deliberation with @arbakker we are going with -> GOAF


Wrong invite link

When I'm trying to join chat by joinChatByInviteLink, I get error 3: Wrong invite link. The same happens with getDeepLinkInfo. What should I do to solve this problems?

You need to read method documentation:
@invite_link Invite link to import; should begin with "https://t.me/joinchat/", "https://telegram.me/joinchat/", or "https://telegram.dog/joinchat/"

The parameter name is invite_link.

The parameter name is invite_link.

Woops, thank you. Are there any ways to join channels through link?

No.


Add option to return the captured barcode image

I needed to get an image of the recognised barcode, so I wrote this PR to do so.
If enabled (this is disabled by default), it saves the Bitmap returned by BarcodeResult.getBitmap() as a cache file on the internal storage (which doesn't require any additional permission but can be deleted if the device is low on space) and returns its path in the result Intent.
Please don't hesitate to tell me if I have to change something!

Thanks, looks good.


Malformed URL

I haven't been able to get this to work, my Thumbor server always rejects with thumbor:WARNING Malformed URL and a 400 error code.
I've tried:

pass my URL to this tool and use the result as-is
URL encode my url before passing it into this tool
URL encode the entire result of this tool (key and path variables included).

Is there some other step I can take to get this to work?
Thanks!

So after a few hours of fighting this, I figured it out right after I submitted this PR.  The malformed URL was a red herring- my problem was actually with my security key.


Add post push hook to the branch command

Add post push hook to the branch command so that people could use a post_push hook to be able to create a pull request. This would act as nice little utility as it doesn't facilitate any state management.

We don't need this anymore because in the new world order the request-review command has options to support this functionality. Therefore, I am closing this issue.


chore: Fix travis build file

Lymui
Totoro is going to review your PR

What does this PR accomplish

[ ] Add a new feature supporting a new color type
[ ] Provide a fix to the current project
[ ] Add new test

We will check that

[ ] Make sure to have unit test
[ ] Make sure that any test is passing
[ ] Make sure to respect that when converting a type T to return a type T Rgb

🐷 Thanks for contributing ! 🐷

Pull Request Test Coverage Report for Build 174

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

Totals

Change from base Build 171:
0.0%

Covered Lines:
1139

Relevant Lines:
1148

💛  - Coveralls


Catch error in express bodyparser

Malformed json posted to the server will hang the application, so we need to catch that error. It is pointed out here:
http://stackoverflow.com/questions/15819337/catch-express-bodyparser-error

Need to retest as part of new deployment.


Make DateLabel implement IGenericComponent, since it only allows I...

...Model

Thanks.

This PR can be closed due to https://github.com/apache/wicket/commit/ad11f1277684165e64759b10d3c14c40cbe2e79d
Thank you @tkruse

@tkruse Ping!
Please close this PR because we don't have the permissions to do it. Thank you!

closing as requested.


Test medium Resolution for scanning

This might be good enough already, and help out with some resource usage issues we are having on some devices.

Here's documentation on startImageStream:
When running continuously with [CameraPreview] widget, this function runs best with [ResolutionPreset.low]. Running on [ResolutionPreset.high] can have significant frame rate drops for [CameraPreview] on lower end devices.

Tested, seems fine. Sent a PR #1020


Custom swagger provider

Hi,
I have some normal services, but also a controller with dynamic models, that are created from metadata at runtime. I would like to create a swagger specification for this controller, but I am a little bit lost. Which is the main try point, is there an interface I have to implement?

A Swagger spec describes a model with a fixed structure (also see JSON Schema). If the schema is dynamic, you cannot describe it with Swagger / JSON Schema... Can you provide a sample or describe your scenario a little bit more in detail?

You can provide a custom operation or document processor to generate custom schemas for an operation or the document: https://github.com/NSwag/NSwag/wiki/OwinMiddleware#enable-oauth2-authorization

You can change the type with the [JsonSchemaType(typeof(Person))] attribute...


LICENSE

What license is this? (I guess GPLv3+ is what's most common for emacs stuff)

I usually pick either WTFPL (my favorite, see https://github.com/dimitri/el-get/issues/474) or ISC (cross between BSD and MIT but much simpler, see https://en.wikipedia.org/wiki/ISC_license). Picked WTFPL.


Introduce the idea of trusted/untrusted snapshot

Fixes #1523
Description of the changes being introduced by the pull request:
If you do the following steps:

call Updater.refresh() and load, verify and cache all metadata files
modify timestamp snapshot meta information:
(One or more of hashes or length for snapshot changes here)
call Updater.refresh() again
root and timestamp will be updated to their latest versions
local snapshot will be loaded, but hashes/length will be different
then the ones in timestamp.snapshot_meta and that will prevent loading
remote snapshot is loaded and verification starts
then when executing step 6 the rollback checks will not be done because
the old snapshot was not loaded on step 5.

In order to resolve this issue, we are introducing the idea of trusted and
untrusted snapshot.
Trusted snapshot is the locally available cached version. This version has
been verified at least once meaning hashes and length were already checked
against timestamp.snapshot_meta hashes and length.
That's why we can allow loading a trusted snapshot version even if there is a
mismatch between the current timestamp.snapshot_meta hashes/length and
hashes/length inside the trusted snapshot.
Untrusted snapshot is the one downloaded from the web. It hasn't been verified
before and that's why we mandate that timestamp.snapshot_meta hashes and length
should match the hashes and legth calculated on this untrusted version of
snapshot.
As the TrustedMetadataSet doesn't have information on which snapshot is trusted or
not, so possibly the best solution is to add a new argument "trusted"
to update_snapshot.
Even though this is ugly as the rest of the update functions doesn't
have such an argument, it seems the best solution as it seems to work
in all cases:

when loading a local snapshot, we know the data has at some point been
trusted (signatures have been checked): it doesn't need to match hashes
now
if there is no local snapshot and we're updating from remote, the
remote data must match meta hashes in timestamp
if there is a local snapshot and we're updating from remote, the remote
data must match meta hashes in timestamp

Lastly, I want to point out that  hash checks for metadata files are not
essential to TUF security guarantees: they are just an additional layer of
security that allows us to avoid even parsing json that could be malicious -
we already know the malicious metadata would be stopped at metadata
verification after the parsing.
Signed-off-by: Martin Vrachev<EMAIL_ADDRESS>Please verify and check that the pull request fulfills the following
requirements:

[x] The code follows the Code Style Guidelines
[x] Tests have been added for the bug fix or new feature
[x] Docs have been added for the bug fix or new feature

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

8 of 8 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.002%) to 97.27%

Totals

Change from base Build<PHONE_NUMBER>:
0.002%

Covered Lines:
3957

Relevant Lines:
4045

💛  - Coveralls

Are you sure this actually runs the hash computing code? Can you double check with --dump or debug prints or something?

Ohh... I didn't run it because I was assigning self.compute_metafile_hashes_length to True
instead of self.sim.compute_metafile_hashes_length 🤦.
Great catch!

the docstrings are indeed hard, I'll maybe try to suggest something when I'm more caffeinated... otherwise left two code suggestions.

Will wait for your other review.

I would maybe move the compute_metafile_hashes_length = True to the start of the test: we should try to make tests that don't modify the repository in the middle of the test in unrealistic ways and here it seems we should be testing against a repository that includes hashes for all meta versions, not just a single snapshot update.

Agreed. Changed that.

Can you make sure the client testing plan (document or issue) includes this new repository setting as a configuration we should keep in mind when improving tests (so that this doesn't remain the single test using this configuration)

Yes, left a comment here: https://github.com/theupdateframework/python-tuf/issues/1579#issuecomment-940801497

I left some specific comments, the important ones are the new bug in RepositorySimulator and how the hash computation is still more complex than it needs to be

I think I addressed all of your comments.
IMO the only questionable item left are the comments.
Will appreciate a review from you as one who writes documentation in a more succinct way.

🤷 My version is even longer but it does try to explain the purpose of the argument. Up to you.

Liked your version a little more.
Added it.
Additionally, I added a return annotation to _compute_hashes_and_length.

The changes I made:

followed Joshua's advice and didn't pass trusted at all when calling it with downloaded data.
fixed the return type annotation error pointed out by Jussi.


chore: refactor the test

Description
closes: #XXXX
Replacing the testify.Require with gotest.tools assert as much as possible
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)

Codecov Report

Merging #1856 (76b0922) into main (0f23dbc) will decrease coverage by 0.85%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@            Coverage Diff             @@
##             main    #1856      +/-   ##
==========================================
- Coverage   56.92%   56.08%   -0.85%
==========================================
  Files          93       93
  Lines        8791     8791
==========================================
- Hits         5004     4930      -74
- Misses       3422     3496      +74
  Partials      365      365

Impacted Files
Coverage Δ

x/oracle/types/params.go
72.01% <0.00%> (-27.99%)
:arrow_down:

x/oracle/types/msgs.go
81.05% <0.00%> (-6.32%)
:arrow_down:


Sive of depth .npy file

Hi,
Thanks for your amazing work.
I have one question. I am trying the fusion scaling demo on a 640480 image. However, the saved depth .npy file tells that its size is 504364.
Is this because the image_preprocessor of the DPT to fit a 14px patch?
If so, how do we get the depth matching the raw size.
Thanks for your help in advance.

Moreover, when I load the weights of metric_depth model from depth anything v2. The original depth color (with all fusion factors set to 1) is all black (all 0.0 in numpy format). Do you have any idea?

my test code is:
`#!/usr/bin/env python3
-- coding: utf-8 --
---------------------------------------------------------------------------------------------------------------------
%% Imports
import os
import os.path as osp
import sys
import argparse
from time import perf_counter
import cv2
import numpy as np
import torch
import torch.nn.functional as F
This is a hack to make this script work from inside the experiments folder!
try:
import lib # NOQA
except ModuleNotFoundError:
import sys
parent_folder = osp.dirname(osp.dirname(file))
print(parent_folder)
if "lib" in os.listdir(parent_folder): sys.path.insert(0, parent_folder)
else: raise ImportError("Can't find path to lib folder!")
sys.path.append('/home/user/Desktop/muggled_dpt')
from lib.make_dpt import make_dpt_from_state_dict
from lib.demo_helpers.history_keeper import HistoryKeeper
from lib.demo_helpers.loading import ask_for_path_if_missing, ask_for_model_path_if_missing
from lib.demo_helpers.ui import SliderCB, ColormapButtonsCB, ButtonBar, ScaleByKeypress
from lib.demo_helpers.visualization import DisplayWindow, histogram_equalization
from lib.demo_helpers.saving import save_image, save_numpy_array, save_uint16
from lib.demo_helpers.misc import (
get_default_device_string, make_device_config, print_config_feedback, reduce_overthreading
)
---------------------------------------------------------------------------------------------------------------------
%% Set up script args
Set argparse defaults
default_device = get_default_device_string()
default_image_path = '/home/user/Desktop/Test/0000_color.png'
default_model_path = '/home/user/Desktop/Depth-Anything-V2/checkpoints/depth_anything_v2_metric_hypersim_vitl.pth'
#default_model_path = '/home/user/Desktop/Depth-Anything-V2/checkpoints/depth_anything_v2_vitb.pth'
default_display_size = 640
default_base_size = None
Define script arguments
parser = argparse.ArgumentParser(description="Script used to run MiDaS DPT depth-estimation on a single image")
parser.add_argument("-i", "--image_path", default=default_image_path,
help="Path to image to run depth estimation on")
parser.add_argument("-m", "--model_path", default=default_model_path, type=str,
help="Path to DPT model weights")
parser.add_argument("-s", "--display_size", default=default_display_size, type=int,
help="Controls size of displayed results (default: {})".format(default_display_size))
parser.add_argument("-d", "--device", default=default_device, type=str,
help="Device to use when running model (ex: 'cpu', 'cuda', 'mps')")
parser.add_argument("-f32", "--use_float32", default=False, action="store_true",
help="Use 32-bit floating point model weights. Note: this doubles VRAM usage")
parser.add_argument("-ar", "--use_aspect_ratio", default=True, action="store_true",
help="Process the image at it's original aspect ratio, if the model supports it")
parser.add_argument("-b", "--base_size_px", default=default_base_size, type=int,
help="Override base (e.g. 384, 512) model size")
For convenience
args = parser.parse_args()
arg_image_path = args.image_path
arg_model_path = args.model_path
display_size_px = args.display_size
device_str = args.device
use_float32 = args.use_float32
force_square_resolution = not args.use_aspect_ratio
model_base_size = args.base_size_px
Hard-code no-cache usage, since there is no benefit if the model only runs once
use_cache = False
Set up device config
device_config_dict = make_device_config(device_str, use_float32)
Build pathing to repo-root, so we can search model weights properly
root_path = osp.dirname(osp.dirname(file))
save_folder = osp.join(root_path, "saved_images", "fusion_scaling")
Create history to re-use selected inputs
history = HistoryKeeper(root_path)
_, history_imgpath = history.read("image_path")
_, history_modelpath = history.read("model_path")
Get pathing to resources, if not provided already
image_path = ask_for_path_if_missing(arg_image_path, "image", history_imgpath)
model_path = ask_for_model_path_if_missing(root_path, arg_model_path, history_modelpath)
Improve cpu utilization
reduce_overthreading(device_str)
---------------------------------------------------------------------------------------------------------------------
%% Load resources
Load model & image pre-processor
print("", "Loading model weights...", "  @ {}".format(model_path), sep="\n", flush=True)
model_config_dict, dpt_model, dpt_imgproc = make_dpt_from_state_dict(model_path, use_cache)
model_config_dict['max_depth'] = 20.0
if (model_base_size is not None):
dpt_imgproc.set_base_size(model_base_size)
Move model to selected device
dpt_model.to(**device_config_dict)
dpt_model.eval()
Load image and apply preprocessing
orig_image_bgr = cv2.imread(image_path)
assert orig_image_bgr is not None, f"Error loading image: {image_path}"
img_tensor = dpt_imgproc.prepare_image_bgr(orig_image_bgr, force_square_resolution)
print_config_feedback(model_path, device_config_dict, use_cache, img_tensor)
Prepare original image for display (and get sizing info)
scaled_input_img = dpt_imgproc.scale_to_max_side_length(orig_image_bgr, display_size_px)
disp_h, disp_w = scaled_input_img.shape[0:2]
disp_wh = (int(disp_w), int(disp_h))
---------------------------------------------------------------------------------------------------------------------
%% Run model
t1 = perf_counter()
Run model partially to get intermediate tokens for scaling
print("", "Computing reassembly results...", sep="\n", flush=True)
img_tensor = img_tensor.to(**device_config_dict)
with torch.inference_mode():
patch_tokens, patch_grid_hw = dpt_model.patch_embed(img_tensor)
imgenc_tokens = dpt_model.imgencoder(patch_tokens, patch_grid_hw)
reasm_tokens = dpt_model.reassemble(*imgenc_tokens, patch_grid_hw)
t2 = perf_counter()
print("  -> Took", round(1000 * (t2 - t1), 1), "ms")
---------------------------------------------------------------------------------------------------------------------
%% Display results
Set up button controls
Read controls
scale_factors = [1,1,1,1]
Run remaining layers with scaling factors
with torch.inference_mode():
# Run fusion steps manually, so we can apply scaling factors
fuse_3 = dpt_model.fusion.blocks[3](reasm_tokens[3] * scale_factors[3])
fuse_2 = dpt_model.fusion.blocks[2](reasm_tokens[2], fuse_3 * scale_factors[2])
fuse_1 = dpt_model.fusion.blocks[1](reasm_tokens[1], fuse_2 * scale_factors[1])
fuse_0 = dpt_model.fusion.blocks[0](reasm_tokens[0], fuse_1 * scale_factors[0])
depth_prediction = dpt_model.head(fuse_0).squeeze(dim=1)
breakpoint()
Post-processing for display
scaled_prediction = dpt_imgproc.scale_prediction(depth_prediction, disp_wh)
depth_norm = dpt_imgproc.normalize_01(scaled_prediction).float().cpu().numpy().squeeze()
Produce colored depth image for display
depth_uint8 = np.uint8(np.round(255.0 * depth_norm))
depth_color = cmap_btns.apply_colormap(depth_uint8)
Apply modifications to raw prediction for saving
npy_prediction = (F.interpolate(depth_prediction[:, None], (480, 640), mode="bilinear", align_corners=True)).float().cpu().numpy().squeeze()
print(npy_prediction.shape)
print(np.unique(npy_prediction))
#npy_prediction = F.interpolate(npy_prediction[:, None], (480, 640), mode="bilinear", align_corners=True)[0, 0].float().cpu().numpy()
`

I found this is because the weight of the second conv layer in dpt_head.proj_1ch, it map all value into negative number, and the final ReLU layer clamps them into 0.  How can I fixed this for metric depth estiamtion, this is not encountered for relative depth estimation. @heyoeyo

Hi @plusgrey thanks for checking out the repo!

If so, how do we get the depth matching the raw size.

It looks like you've already found a fix for this, using the F.interpolate to scale up the depth prediction. The other thing you can also try is running the model at a different size. It defaults to the 504 sizing, but can be changed using the -b flag, or in your modified version, you can set default_base_size = 640 near the top of the file.
This will actually run the model on a higher resolution copy of the image, and usually gives nicer results. Though the sizing is still limited by the 14px patch sizing, so you'd still need to use F.interpolate to get the exact 640x480 size at the end.

when I load the weights of metric_depth model from depth anything v2

The metric-depth models aren't officially supported inside of muggled DPT, I'm actually a bit surprised it even loads!

final ReLU layer clamps them into 0

Looking more closely at the Depth-Anything-v2 metric-depth model, it doesn't seem to be using the normal 'zoedepth' structure that other DPT models use. Instead it nearly matches the relative depth model, except for that last ReLU layer which appears in the relative-depth models but is replaced by a sigmoid in the metric-depth models.
At some point I may have a closer look at the model weights to see if there is some way to auto-detect the metric model and switch the DPTHead implementation automatically... For now though, if you want to load/run the metric depth-anything 2 model, you could manually modify the muggledDPT head and replace that last ReLU layer with a sigmoid to get it working (this generates reasonable looking output inside the fusion script). The other thing that's different with the metric-depth model is that it scales that sigmoid output by a max_depth value, which you'd need to replace (though you can do this to the depth_prediction result in your script, rather than building it into the model.

Hi @plusgrey thanks for checking out the repo!

If so, how do we get the depth matching the raw size.

It looks like you've already found a fix for this, using the F.interpolate to scale up the depth prediction. The other thing you can also try is running the model at a different size. It defaults to the 504 sizing, but can be changed using the -b flag, or in your modified version, you can set default_base_size = 640 near the top of the file. This will actually run the model on a higher resolution copy of the image, and usually gives nicer results. Though the sizing is still limited by the 14px patch sizing, so you'd still need to use F.interpolate to get the exact 640x480 size at the end.

when I load the weights of metric_depth model from depth anything v2

The metric-depth models aren't officially supported inside of muggled DPT, I'm actually a bit surprised it even loads!

final ReLU layer clamps them into 0

Looking more closely at the Depth-Anything-v2 metric-depth model, it doesn't seem to be using the normal 'zoedepth' structure that other DPT models use. Instead it nearly matches the relative depth model, except for that last ReLU layer which appears in the relative-depth models but is replaced by a sigmoid in the metric-depth models.
At some point I may have a closer look at the model weights to see if there is some way to auto-detect the metric model and switch the DPTHead implementation automatically... For now though, if you want to load/run the metric depth-anything 2 model, you could manually modify the muggledDPT head and replace that last ReLU layer with a sigmoid to get it working (this generates reasonable looking outputs inside the fusion script). The other thing that's different with the metric-depth model is that it scales that sigmoid output by a max_depth value (20.0 by default), which you'd need to replace (though you can do this to the depth_prediction result in your script, rather than building it into the model). Also, if you're using the metric depth output, you'll want to remove the normalize_01 function call, since that will throw away most of the matric depth information.

Hi, @heyoeyo.
Thanks so much for your reply. I have successfully loaded and used the metric_depth model with your muggled_dpt. Although there are some slight deformations, the global metric depth is acceptable.


SHOW SERIES needs some output improvement

This is the output of series events.stats.us.east-1:
> SHOW SERIES FROM "events.stats.us.east-1"
name			tags	id	server_name	tag1	tag2	tag3
----			----	--	-----------	----	----	----
events.stats.us.east-1		4	us.east-1
events.stats.us.east-1		5	us.east-1	2	2	10

When using influx on shell, the current result of SHOW SERIES is:
> SHOW SERIES
name			tags	id	continent	host		region
----			----	--	---------	----		------
cpu_load_short			1			server01	us-west
cpu_load_short			2	asia		server02
cpu_load_short			3	europe		server02
----			----	--	---------	----		------
events.stats.us.east-1		4	us.east-1
events.stats.us.east-1		5	us.east-1	2		2	10

A better result will be:
> SHOW SERIES
name			tags	id	continent	host		region
----			----	--	---------	----		------
cpu_load_short			1			server01	us-west
cpu_load_short			2	asia		server02
cpu_load_short			3	europe		server02
----			----	--	---------	----		------
name			tags	id	server_name	tag1	tag2	tag3
----			----	--	-----------	----	----	----
events.stats.us.east-1		4	us.east-1
events.stats.us.east-1		5	us.east-1	2		2	10

It will be also nice to capture the output into a file. I have thousands of series and when I run "SHOW SERIES" it is impossible to review the result.

I meant to log a bug on the row names not being re-printed, so glad you did :-).
I think it would also be nice if you could run the CLI as a passthrough command.  That is coming likely in a future release hopefully.
As for outputting to a file, you could use the curl command for now and do something like:
curl -G http://localhost:8086/query --data-urlencode "db=foo" --data-urlencode "q=SHOW SERIES"

And direct that to a file, etc.
Let me know if that helps for now.

yes, I am using curl to dump to a file, this is good for now, thanks


Allow Task-returning test methods without async keyword

Enables asynchronous tests that don't use the async state machine while
still rejecting async void methods.
Fixes #500. Discussion on the issue hasn't concluded whether this behavior is intentional or not, but it was requested that I go ahead and open a pull request for it.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: spanglerco sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@AbhitejJohn , @jayaranigarg  do you guys see any issue with this change?

@spanglerco , @mayankbansal018 : Looks good to me. Looks like this also change Assembly/Class/Test Init/Cleanup. Please make sure that any documentation related is updated as well.


Add Weather

Thanks for your advice!I’ll update when I’m back home.Sent from my iPhoneOn Sep 1, 2023, at 3:29 AM, Loïc Reynier @.***> wrote:
@loicreynier requested changes on this pull request.
In README.md:

@@ -784,3 +784,4 @@ Clients for commercial social platforms that had their API access cut off in a w

GNOME Weather - Weather application for the GNOME desktop #gjs #gnome.
Nimbus - Minimal weather applet  #vala #libhandy.
Meteo - Forecast application using OpenWeatherMap API #vala.
+- Weather - Beautiful and lightweight weather app build using Gtk4, #libadwaita and #python.

⬇ Suggested change
-- Weather - Beautiful and lightweight weather app build using Gtk4, #libadwaita and #python.
+- Weather - Lightweight weather application with dynamically changing gradient-based background according to current weather condition #python #libadwaita.
"Beautiful" is not objective, I suggest rather highlighting the background feature. Also the tags should be "#python #libadwaita" to fit the style used here.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>


feat: Adding perf team that maintains perf-team-prometheus-reader NS

This is for Perf&Scale team to be able to read secret created for the service account.

Hello future reviewers :)
It is aligned to following team - is it correct?
https://github.com/orgs/redhat-appstudio/teams/performance
I'm asking because I also noticed I'm in this organization as well:
https://github.com/redhat-appstudio-sre

Looks good to me


Specifying SSH port when executing SCP command.

This was already done in RemoteHostCopy() method, but was not implemented
in MoveHostFile().
This resolves https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/issues/547
Signed-off-by: Mateusz Blaszkowski<EMAIL_ADDRESS>

Thanks!


Add search cutoff ms index setting

Meilisearch v1.8.0 adds a search cutoff ms setting for the index. This setting controls how long Meilisearch will spend processing the sorting of results, but does not control other parts of search so the total time can go above the cutoff.

[ ] Add search_cutoff_ms to the MeilisearchSettings model. The field should be search_cutoff_ms: Optional[int] = None
[ ] Add a get_search_cutoff_ms method to both the AsyncIndex and Index. The url will be self._http_requests.get(f{self._settings_url}/"search-cutoff-ms")
[ ] Add an update_search_cutoff_ms method to both the AsyncIndex and Index. The url will be self._http_requests.put(f{self._settings_url}/"search-cutoff-ms")
[ ] Add a reset_search_cutoff_ms method to both the AsyncIndex and Index.  The url will be self._http_requests.delete(f{self._settings_url}/"search-cutoff-ms")
[ ] Update the settings tests for both async index and index to include search_cutoff_ms
[ ] Add tests for get, update, and reset search cutoff ms to both async index and index  tests.

Note: The changes should start from the meilisearch-1.8.0 branch, and the pull request should be back to the meilisearch-1.8.0 branch.

Closed via #906


[main] Upgrade to latest dependencies

Bump eventing-kafka -nak3
/cc knative-sandbox/eventing-writers
/assign knative-sandbox/eventing-writers
Produced by: knative-sandbox/knobots/actions/update-deps

/lgtm


chore(example/without-flake-parts): init

A useful addition that demonstrates more ways to use services-flake

Cool, this might be of interest to @vancoding too.


chore: add missing multi-provider dependency to sdk-bridge package

Motivation
Running into this build error in the base branch due to a missing multi-provider dependency in the sdk-bridge. This became apparent once we moved to using the pinned version from npm and not the workspace version. We should also consider moving to using workspace:~ for the other dependencies in indexer
➤ YN0000: [@nomad-xyz/sdk-bridge]: Process started
➤ YN0000: [@nomad-xyz/sdk-bridge]: src/BridgeContracts.ts(13,63): error TS2344: Type 'BridgeContext' does not satisfy the constraint 'MultiProvider<Domain>'.
➤ YN0000: [@nomad-xyz/sdk-bridge]:   Property 'domains' is protected but type 'MultiProvider<T>' is not a class derived from 'MultiProvider<T>'.
➤ YN0000: [@nomad-xyz/sdk-bridge]: src/BridgeContracts.ts(38,53): error TS2345: Argument of type 'BridgeContext' is not assignable to parameter of type 'MultiProvider<Domain>'.
➤ YN0000: [@nomad-xyz/sdk-bridge]:   Property 'domains' is protected but type 'MultiProvider<T>' is not a class derived from 'MultiProvider<T>'.
➤ YN0000: [@nomad-xyz/sdk-bridge]: src/BridgeContracts.ts(54,53): error TS2345: Argument of type 'BridgeContext' is not assignable to parameter of type 'MultiProvider<Domain>'.
➤ YN0000: [@nomad-xyz/sdk-bridge]: src/BridgeContracts.ts(70,53): error TS2345: Argument of type 'BridgeContext' is not assignable to parameter of type 'MultiProvider<Domain>'.
➤ YN0000: [@nomad-xyz/sdk-bridge]: Process exited (exit code 1), completed in 9s 495ms

Solution
Add missing multi-provider dependency to sdk-bridge. To unblock us right now, added back the workspace dependency of sdk-bridge. We want to remove this soon once we publish the updated sdk-bridge package.
PR Checklist

[ ] Added Tests
[ ] Updated Documentation
[ ] Updated CHANGELOG.md for the appropriate package

Closing, let's publish a new sdk-bridge version instead since indexer runs in a docker container and cannot find workspace dependencies.


tensorflow.python.client.device_lib.list_local_devices() Bug

I am trying to set up GPU configuration for Tensorflow. The step is very simple - Call tensorflow.python.client.device_lib.list_local_devices() to detect the number of gpu devices on the machine, and then set config for Tensorflow.  The following is the code for reproducing:
from logging import getLogger

import tensorflow as tf
from tensorflow.python.client import device_lib

log = getLogger(__name__)

def get_available_gpus():
    """ Get available GPU devices info. """
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']

def test_gpu_memory_usage():
    # Detect available GPU devices info.
    log.info("On this machine, GPU devices: ", get_available_gpus())

    # Set Tensorflow GPU configuration.
    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.1)
    tf_config=tf.ConfigProto(
        allow_soft_placement=True,
        device_count={'GPU': len(get_available_gpus())},
        gpu_options=gpu_options,
        log_device_placement=True)
    session = tf.Session(config=tf_config)

    # Mimick training process.
    while True:
        pass

test_gpu_memory_usage()

If you run the above code, you could notice that even though you set GPU memory fraction per process to 0.1, it still allocates the whole GPU memory by looking at command nvidia-smi. However, if you don't call get_available_gpus(), the memory allocation works fine. That means, there might be a bug in device_lib.list_local_devices() to prevent setting up Tensorflow GPU memory usage.
PS. My code runs on machine with GPU GeForce GTX 1080, CUDA 8.0, OS Ubuntu 16.04 and Python 3.5, and the above issue could be reproduced using either Tensorflow v.0.12, v.1.0 or v.1.1.

Interesting. Thanks for reporting! If memory serves, getting the list does have side effects (registering the devices).
@mrry might know on the top of his head. I'll take a look later.

Yes, I believe calling device_lib.list_local_devices() invokes the (morally static) DeviceFactory::AddDevices() code for the GPU devices, but doesn't take a ConfigProto  and so passes an empty SessionOptions to the factory.
There's no good reason for that... IIRC we added device_lib.py in order to be able to print diagnostic information about the available devices when running benchmarks, and none of the benchmarks depended on configuring the device initialization. I don't know if there's a technical limitation in the GPU device code that prevents multiple instantiations, or separating the enumeration from the instantiation. #8136 contains a feature request for rationalizing the runtime initialization code, so it might be worth chiming in there.

Thanks @mrry! Closing in favor of #8136. I believe that #8021 has the temporary workaround you need.


no method matching setup_call(::LoopVectorization.LoopSet, ::Expr, ::LineNumberNode, ::Bool, ::Bool, ::Int8, ::Int8, ::Int64, ::Bool)

We get the following error from our tests of Trixi.jl:
  LoadError: MethodError: no method matching setup_call(::LoopVectorization.LoopSet, ::Expr, ::LineNumberNode, ::Bool, ::Bool, ::Int8, ::Int8, ::Int64, ::Bool)
  Closest candidates are:
    setup_call(::LoopVectorization.LoopSet, ::Expr, ::LineNumberNode, ::Bool, ::Bool, ::Int8, ::Int8, ::Int64, ::Int64) at /home/runner/.julia/packages/LoopVectorization/td1Ly/src/condense_loopset.jl:792
  Stacktrace:
    [1] #s96#15
      @ ~/.julia/packages/StrideArrays/7dRyi/src/broadcast.jl:345 [inlined]
    [2] var"#s96#15"(S::Any, D::Any, T::Any, N::Any, C::Any, B::Any, R::Any, BC::Any, UNROLL::Any, ::Any, dest::Any, bc::Any, #unused#::Any)
      @ StrideArrays ./none:0

Package versions:

LoopVectorization v0.12.54 (see https://github.com/trixi-framework/Trixi.jl/pull/740/checks?check_run_id=3161725641#step:6:89)
StrideArrays v0.1.11 (see https://github.com/trixi-framework/Trixi.jl/pull/740/checks?check_run_id=3161725641#step:6:135)
StrideArraysCore v0.1.16

Thanks for this really quick fix :+1:


Using a new API to fetch both public and private repos of a user

What type of PR is this?

/kind bug
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #668
Special notes for reviewers:

Please check the following list before waiting reviewers:

[ ] Already committed the CRD files to the Helm Chart if you created some new CRDs
[ ] Already added the permission for the new API
[ ] Already added the RBAC markers for the new controllers

Does this PR introduce a user-facing change??

None

/cherrypick release-3.3