SiamMask to ONNX conversion error

Hello,
Has anyone tried to convert SiamMask to ONNX?
I am trying to achieve this using shupinghu's code from #125 with minor editing, but I end up with the following error:
RuntimeError: Unsupported: ONNX export of Slice with dynamic inputs. DynamicSlice is a deprecated experimental op. Please use statically allocated variables or export to a higher opset version.
Here is the code.
import torch
import torchvision.models as models
import torch.nn as nn
import argparse
import torchvision
import torch.onnx

from collections import OrderedDict
from pysot.core.config import cfg
from pysot.models.model_builder import ModelBuilder

parser = argparse.ArgumentParser(description='trans demo')
parser.add_argument('--config', type=str, help='config file')
parser.add_argument('--snapshot', type=str, help='model name')
args = parser.parse_args()

cfg.merge_from_file(args.config)
cfg.CUDA = torch.cuda.is_available() and cfg.CUDA
device = torch.device('cuda' if cfg.CUDA else 'cpu')

class ConvertModel(nn.Module):
    def __init__(self, model):
        super(ConvertModel, self).__init__()
        self.model = model

    def forward(self, template, search):
        zf = self.model.backbone(template)
        xf = self.model.backbone(search)

        if cfg.MASK.MASK:
            zf = zf[-1]
            self.model.xf_refine = xf[:-1]
            xf = xf[-1]
        if cfg.ADJUST.ADJUST:
            zf = self.model.neck(zf)
            xf = self.model.neck(xf)
        mask, self.mask_corr_feature = self.model.mask_head(zf, xf)
        cls, loc = self.model.rpn_head(zf, xf)

        return cls, loc, mask

model0 = ModelBuilder()
model0.load_state_dict(torch.load(args.snapshot, map_location=lambda storage, loc: storage.cpu()))

model0.eval()
# print(model0)
model = ConvertModel(model0)

x = torch.randn(1, 3, 127, 127)
z = torch.randn(1, 3, 255, 255)

torch_out = torch.onnx._export(model, (x,z), "onnx-ized.onnx", export_params=True)

I get the params for dummy_input from the config file for that model.
Can anyone help me with that?

Seems, that the problem was with the opset. Switching it to 11 was enough to solve this particular problem. My fault.
I`ve also encountered a need to split the network into two parts and transfer the mask_refine part of it into another file. However, during inference I get the following error:
2020-05-28 12:19:08.281828359 [E:onnxruntime:, sequential_executor.cc:183 Execute] Non-zero status code returned while running Conv node. Name:'Conv_149' Status Message: Invalid input shape: {0,0}
Traceback (most recent call last):
  File "/home/zeleniyslonik/PycharmProjects/onnx_siammask_tracker_python/track_on_video_onnx.py", line 230, in <module>
    processor.Execute()
  File "/home/zeleniyslonik/PycharmProjects/onnx_siammask_tracker_python/track_on_video_onnx.py", line 103, in Execute
    outputs = self.tracker.track(roiFrame)
  File "/home/zeleniyslonik/PycharmProjects/onnx_siammask_tracker_python/tracker/siammask_tracker.py", line 325, in track
    mask = self.sess_mask.run(None, {self.input_name_mask_1: xf_refine_1,
  File "/usr/lib/python3.8/site-packages/onnxruntime/capi/session.py", line 142, in run
    return self._sess.run(output_names, input_feed, run_options)
onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Non-zero status code returned while running Conv node. Name:'Conv_149' Status Message: Invalid input shape: {0,0}

The name of a layer and shape in the Status Message can vary. I believe, that this error can be linked to the TraceWarnings I get during conversion:

/home/zeleniyslonik/.local/lib/python3.8/site-packages/torch/tensor.py:464: RuntimeWarning: Iterating over a tensor might cause the trace to be incorrect. Passing a tensor of different shape won't change the number of iterations executed (and might lead to errors or silently give incorrect results).
  warnings.warn('Iterating over a tensor might cause the trace to be incorrect. '
/home/zeleniyslonik/PycharmProjects/pysot_tracker_standalone/pysot/models/head/mask.py:77: TracerWarning: Converting a tensor to a Python index might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
  p0 = F.pad(f[0], [16, 16, 16, 16])[:, :, 4*pos[0]:4*pos[0]+61, 4*pos[1]:4*pos[1]+61]
/home/zeleniyslonik/PycharmProjects/pysot_tracker_standalone/pysot/models/head/mask.py:78: TracerWarning: Converting a tensor to a Python index might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
  p1 = F.pad(f[1], [8, 8, 8, 8])[:, :, 2*pos[0]:2*pos[0]+31, 2*pos[1]:2*pos[1]+31]
/home/zeleniyslonik/PycharmProjects/pysot_tracker_standalone/pysot/models/head/mask.py:79: TracerWarning: Converting a tensor to a Python index might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
  p2 = F.pad(f[2], [4, 4, 4, 4])[:, :, pos[0]:pos[0]+15, pos[1]:pos[1]+15]

I use the following code for the conversion:
import torch.nn as nn
import torch.onnx

from pysot.core.config import cfg
from pysot.models.model_builder import ModelBuilder

config = '/home/zeleniyslonik/Desktop/pysot_tracker_standalone/siammask_r50_l3/config.yaml'
snapshot = '/home/zeleniyslonik/Desktop/pysot_tracker_standalone/siammask_r50_l3/model.pth'

cfg.merge_from_file(config)
cfg.CUDA = torch.cuda.is_available() and cfg.CUDA
device = torch.device('cuda' if cfg.CUDA else 'cpu')

class ConvertModel(nn.Module):
    def __init__(self, model):
        super(ConvertModel, self).__init__()
        self.model = model

    def forward(self, x1, x2, x3, mask_corr, pos):
        mask_refine = self.model.refine_head([x1, x2, x3], mask_corr, pos)
        return mask_refine

model0 = ModelBuilder()
model0.load_state_dict(torch.load(snapshot, map_location=lambda storage, loc: storage.cpu()))

model0.eval()
# print(model0)
model = ConvertModel(model0)

self_xf_dummy_0 = torch.randn(1, 64, 125, 125)
self_xf_dummy_1 = torch.randn(1, 256, 63, 63)
self_xf_dummy_2 = torch.randn(1, 512, 31, 31)
mask_corr_feature_dummy = torch.randn(1, 256, 25, 25)
pos_dummy = torch.randint(low=0, high=20, size=(2,))

torch_out = torch.onnx._export(model, (self_xf_dummy_0, self_xf_dummy_1, self_xf_dummy_2, mask_corr_feature_dummy, pos_dummy),
                                       "siammask_mask_refine.onnx",
                                       export_params=True, opset_version=11, verbose=True)

Should I ask it here or it is irrelevant to the project and I should ask it at ONNXRuntime page?
If not, how can it be solved? I am really stuck at it. Thanks in advance.

Glad to know you have solved this issue, and thanks for sharing with us!

@zeleniyslonik did you ever figure this out?


Rosalina interferes with install of CIA files

On an installation of a CIA file with the latest build of FBI, if you pull up the Rosalina menu, it will cause the installation to cancel out and fail.  Not sure if this is more of an FBI issue or a Rosalina issue.
Steps to reproduce the issue:

Start installation of a CIA
Pull up Rosalina, with or without changing any options within it
Exit Rosalina.  The install will say it was canceled.

I'm fairly certain this is a result of the "B" button press to exit the Rosalina menu also being caught by FBI and cancelling the CIA installation. Not an FBI problem.


Add ability to use Individual API key in deliver and pilot

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I see several green ci/circleci builds in the "All checks have passed" section of my PR (connect CircleCI to GitHub if not)
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.
[x] I've added or updated relevant unit tests.

Motivation and Context

Resolves #22115
Description

altool used internally by deliver and pilot has not support Individual API Keys yet.
With this change, fastlane determines the type of API key when uploading a build, and if the API key is a Team API Key, it will use the API key as is, but if it is an Individual API Key, it will not use the key and will use the the application specific password.
Testing Steps
Prerequisites

Issue your Individual API Key as described in https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api/
Issue your application specific password as described in https://support.apple.com/en-us/102654
Export environment variables in your shell env

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
INDIVIDUAL_API_KEY_ID
INDIVIDUAL_API_KEY_CONTENT_BASE64
FASTLANE_USER (necessary if it is not specified in your AppFile)

Build your application with Release configuration

Steps
# fastlane/Fastfile
lane :deploy do
  app_store_connect_api_key(
    key_id: ENV.fetch("INDIVIDUAL_API_KEY_ID"),
    key_content: ENV.fetch("INDIVIDUAL_API_KEY_CONTENT_BASE64"),
    is_key_content_base64: true,
  )
  pilot(ipa: "/path/to/app.ipa")
  deliver(ipa: "/path/to/app.ipa")
end

fastlane deploy

I successfully uploaded my app to TestFlight and AppStore Connect with this branch's fastlane.

If I understand this correctly, when running the pilot command (with distribute_external set), this will:

Use altool to upload the build - using app specific password
Use the testflight command to send for review and distribute to external testers - using individual API key

Did I get it somewhat correctly? :)

Just tested this successfully using the pilot command. 🎉

Thank you much for this!
I didn't know fastlane supports individual API keys, will be nice if this can also be reflected on the documention.
Thank you!


Accessories assign the same instance name for Commissionable Node Service

Problem
Each accessory assigns the same instance name for the Commissionable Node service.
Device1:
instance:"000000014A77CBB3-0000000000000002", name:"_matter._tcp", state:Registered, port:5540, priority:0, weight:0
--
instance:"7F785DB45B043129", name:"_matterc._udp,_S0,_L3840,_C1,_V9050", state:Registered, port:5540, priority:0, weight:0
Done

Device2:
instance:"000000014A77CBB3-0000000000000003", name:"_matter._tcp", state:Adding, port:5540, priority:0, weight:0
--
instance:"7F785DB45B043129", name:"_matterc._udp,_S0,_L3840,_C1,_V9050", state:Adding, port:5540, priority:0, weight:0
Done

Full commissioning of the second device failed to resolve the IP address because of failure during sending SRP client services to OTBR.
Proposed Solution
The instance name should be random

I think I've been hitting a really similar problem, when I factory reset a device and then re-add it, it fails to register with SRP due to being a duplicate record. If I go to the border router and disable and enable the SRP server, it seems to work ok and allow the device to register.
Where is the instance id assigned? I can't seem to find it in the code....


Training code

Hi Keyan, super great work! I was wondering could you also provide the training code of DISTS?

Hi Keyan, super great work! I was wondering could you also provide the training code of DISTS?

Hi Keyan, super great work! I was wondering could you also provide the training code of DISTS?


[Question] - problems when running module example for Followers

All pre-checks have been done and TWINT is updated.
Command Ran:
import twint
c = twint.Config()
c.Username = "twitter"
c.User_full = True
c.Format = "Username: {username} | Bio: {bio} | Url: {url}"
twint.run.Followers(c)
Description of Issue
I've been able to use many of the other module features without  problems, but when I try to pull data using the Followers moules I don't have as much luck.  I've tried to research the problem, but so far I've hit a wall.  Welcome your help since clearing I am doing something wrong.  When I run the above I get the following:
(base) C:\Users\Computer\Desktop\twint-master\twint>python testing.py
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
replace() argument 2 must be str, not None [x] get.User
'NoneType' object is not subscriptable [x] get.User
replace() argument 2 must be str, not None [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
'NoneType' object is not subscriptable [x] get.User
However, sometimes it will work and the formatted output just repeats itself, such as:
Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: mimippiii | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624Username: {username} | Bio:<PHONE_NUMBER>61754624...…………...

Using Windows 10 on the Anaconda prompt.

I hve a similar issue when using the command:
twint -u uname -o output.csv --csv
the username has an underscore at the end of the name.

@adnanmig what's you actual issue? If it's not related to this, please open a new issue

I receive the same error as mentioned in the original post when running the command:
twint -u uname -o output.csv --csv
with the latest TWINT ona fresh install.

@adnanmig

Same problem,
I remove c.Format line, but it still not work.
'NoneType' object is not subscriptable [x] get.User err

With every username?
-------- Messaggio originale --------
On 6 Giu 2019, 08:13, ervlh ha scritto:

Same problem,
I remove c.Format line, but it still not work.
'NoneType' object is not subscriptable [x] get.User err
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@hpiedcoq pei
some username work well, other Non.
Have you implement any method to fetch infos for a list of users?

You can iterate over a list with Twint as module, or do some shell scripting via CLI
I'm going to try with some users and see what happens when it crashes
-------- Messaggio originale --------
On 6 Giu 2019, 11:05, ervlh ha scritto:

@hpiedcoq pei
some username work well, other Non.
Have you implement any method to fetch infos for a list of users?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank for your answer.
I tried iterate the list with Lookup method, and see other problem with output data.
I config c.Pandas = True, then try to get twint.storage.panda.User_df as the output for each item.
May we use twint.storage.panda.clean() inside the loop?

This should do what you need
import twint

c =twint.Config()
c.Username = "username1"
c.Pandas = True
twint.run.Lookup(c)

twint.storage.panda.User_df = None
c.Username = "username2"
twint.run.Lookup(c)
df = twint.storage.panda.User_df
print(df)

So for every username which you want iterate over, you have to reset the User_df

@pielco11
Thanks very much,
I tried twint.storage.panda.clean() and it work well.


feat(*) wasm_socket unix domain socket support

Thank you for the detailed review @thibaultcha! I'll change the code to address all comments.


Formula Exports prepends "@" to Add In Function

Hi Thank you for the amazing module!  I have become unstuck on my final challenge:
If I set Cell Value to a formula that uses an Add-In similar to:
"=IA.MYFUNCTION(param,param)"
when I open the workbook in Excel it is output as:
=@IA.MYFUNCTION(param,param)
Excel just gives me a #NAME error a this point.  Any thoughts on what I am doing wrong?
I had a read of #1109 and #1105 but wasn't able to find a solution from those.
Thanks again!

Please post a way to repro this, including the PS and xlsx

This does the trick for me, also creates a @ before the function, XLOOKUP in my case.
Code in Powershell.
$excelPackage.Workbook.Worksheets['Sheet1'].Cells['AD2'].Formula = "=XLOOKUP(O2,SNGData[Config Id],SNGData[Block],""_Not Found"",0,1)"
Excel content in sheet: "=@XLOOKUP(O2,SNGData[Config Id],SNGData[Email],"_Not Found",0,1)"
If I set this value as a string (.Value) it does not add the @ character, but it also not a formula. Once entered It becomes a formula.
PowerShell 7.2.2
ImportExcel/7.3.0

Hmm, might be just my Excel version acting up...
https://support.microsoft.com/en-us/office/implicit-intersection-operator-ce3be07b-0101-4450-a24e-c1c999be2b34?ui=en-us&rs=en-us&ad=us
Running on Mac, V16.60 (22041000)
But would be nice if it did not happen.

Please post a way to repro this, including the PS and xlsx

Example with xlsx before and after.
ps1 extension not allowed to upload, added .txt as suffix.
test1.xlsx
test1_after.xlsx
Reproduce_#1154.ps1.txt.

is XLOOKUP the new function for O365? I don't have that function in my Excel, run it locally. When I run the script it does not add the @.

Yes, it is a new function (a great one!).
"Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web Excel 2021 Excel 2021 for Mac Excel for iPad Excel for iPhone Excel for Android tablets Excel for Android phones"
https://support.microsoft.com/en-us/office/xlookup-function-b7fd680e-6d10-43e6-84f9-88eae8bf5929

I was afraid of that, might be another new thing from Excel.
Xlookup is a much needed improvement on vlookup.
https://support.microsoft.com/en-us/office/xlookup-function-b7fd680e-6d10-43e6-84f9-88eae8bf5929
They keep on going...
https://techcommunity.microsoft.com/t5/excel-blog/announcing-new-text-and-array-functions/ba-p/3186066

I will try this later, maybe that will prevent the intersection addition.
If you remove an automatically added @ and later open the workbook in an older version of Excel, it will appear as a legacy array formula (wrapped with braces {}), this is done to ensure the older version will not trigger implicit intersection.

Hmm, this breaks the Excel file. It then tries to repair the file, contents of that cell is gone.
Added three to D6 first, saved without values in E column.
$excelPackage.Workbook.Worksheets['Sheet1'].Cells['E6'].Value = '={XLOOKUP(D6,Count[CountString],Count[CountNumber],"Not Found",0,1)}'

Oh, typo in previous remark, the opening curly bracket needs to go before the = sign.
Breaks the Excel file in the same way though.

Another angle tried, what if I add the formula already in the original data (coming from powershell object).
Using your MultipleTables example code, added the formula as data.
 If not please could you post a small repro. I could not repro it with the XLOOKUP

@dfinke It's in Excel Microsoft 365; the desktop version...
I'll see if I can strip the file of it's data on Monday. It contains a ton of sensitive info, so it will be a chore. But I ran some commands to see the cell when the formula is in correctly and it says it's an Array Formula. Wondering if that means we have to set it with Set-ExcelRange?

Be great if you could check with Set-ExcelRange, though it that should use the same code path for setting formulas, I'd need to check. Optimally, this should work, so I need to determine the root cause.

@phillipsmikealan Hi, not to harass you, but were you able to verify with the Set-ExcelRange?
My skill level is too low to do ut myself :-(.
And I really start to dislike those pesky @ in my formulas.

Succes! I have succeeded to prevent Excel from adding the @ to the formula when it opens the file.
I started with an Excel file which already has an XLOOKUP formula in it, this is in the xml:
<c r="D2" s="0" t="str"><f>_xlfn.XLOOKUP(D1,Table1[a],Table1[b],"Not Found",0,1)</f><v>w</v></c>
Then using ImportExcel I added the same formula in code with the string that I see in the Excel UI in the cell mentioned above:
=XLOOKUP(D1,Table1[a],Table1[b],"Not Found",0,1) in the cell below it.
So when checking the xml I saw the difference in the prefix, "=" when added in code, and "_xlfn." in Excel itself.
There is not much data on this, but this article describes what it is used for:
https://support.microsoft.com/en-us/office/issue-an-xlfn-prefix-is-displayed-in-front-of-a-formula-882f1ef7-68fb-4fcd-8d54-9fbb77fd5025
So, if I would add that prefix to the Formula in code instead of "="?
And, yes that worked, when opening the file Excel recognises it and does not prefix it with @.
It does need to be added as .Formula, with .Value is the actual value that is used by Excel as a Value.
So this works for me.
$excelPackage.Workbook.Worksheets['Sheet1'].Cells['AD2'].Formula = "_xlfn.XLOOKUP(O2,SNGData[Config Id],SNGData[Block],""_Not Found"",0,1)"
There is one remaining "issue" for me, I would expect the Formula to be repeated, as it is in a cell belonging to a table.
It does not do that when opening the file though, only when entering in the UI.
But luckily another user already solved that here: https://github.com/dfinke/ImportExcel/issues/1175
Thank you @Gtoml!
I just have to write the formulas (in 4 columns) about x times as reported in the $range: A1:AE157481 for the table I am currently using for testing.
Which just takes under 4 seconds, so that is do-able.
And since it cannot be said enough, BIG thanks for @dfinke to have made this module!

Yes, that will be fun to do. But I am also generation some other Excel files and there a formula is still looking like this, the @ is added as a prefix to a column, regardless of using _xlfn. prefix.
Let me see if that can be resolved as well.
=IF(Delta7!A2="No Delta",0,COUNTA(UNIQUE(ChangedEffectPolicies[@assignmentName]&ChangedEffectPolicies[@assignmentScope]&ChangedEffectPolicies[@policyName])))
As mentioned in #1183.

Ah, ok, it is about how Excel interprets the formula when opening the file, there is a tag "t" (type?) that is either "e" or "array".
When it is "e" Excel adds the @ to make sure nothing breaks, but it actually does.
This happens when the formula is added without the _xlfn. prefix.
In this case it is not the IF itself that triggers this, but the UNIQUE. So it is solved when prefixing UNIQUE with the _xlfn. prefix.
Funny enough the saved formula is also saved without the "=" prefix before the IF :-).
<c r="A14" cm="1"><f t="array" ref="A14">IF(Delta7!A2="No Delta",0,COUNTA(_xlfn.UNIQUE(ChangedEffectPolicies[assignmentName]&ChangedEffectPolicies[assignmentScope]&ChangedEffectPolicies[policyName])))</f><v>2</v></c>. There is no difference if the Formula is added with or without the "=" prefix when opening the file.
I'll do a more generic FAQ writeup for the @ challenge, tomorrow or in the weekend.

Cool, one added benefit of prefixing with _xlfn. is that the calculation is done when opening the sheet.
A UNIQUE formula will not do that if not prefixed.
The -Calculate option does not make a difference, now saving without it, the prefix triggers the calculate.


metrics: metrics_local: Remove key argument to optimize performance

Signed-off-by: Hiroshi Hatake<EMAIL_ADDRESS>
Which issue(s) this PR fixes:
Folows up #3440
What this PR does / why we need it:
This is because our use cases doesn't need key for distinguish plugins
and agents.
One of the use cases to specify plugin_id calling has a possibility to become the bottleneck for performance.
The reason is Kernel#instance_variable_defined? method is relatively
heavy operation.
Docs Changes:
No needed.
Release Note:
Same as title.

I was just curious about it, how much performance is improved by this PR?

I was just curious about it, how much performance is improved by this PR?

For synchronous output plugin case, 2x faster than the previous implementation.
For buffered/asynchronous buffered case, 10% faster at the maximum which depends on batch operation frequency, I think.


Env vars not loading for non-ruby project

In a non-ruby project, with the following registry block in deploy.yml:
registry:
  server: ghcr.io
  username: myuser
  password: ["KAMAL_REGISTRY_PASSWORD"]

and the following in .env:
KAMAL_REGISTRY_PASSWORD=the_password

I get the following when running kamal registry login:
  ERROR (SSHKit::Command::Failed): docker exit status: 256
docker stdout: Nothing written
docker stderr: WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://ghcr.io/v2/": denied: denied

However, if I inline the env var like this: KAMAL_REGISTRY_PASSWORD=the_password kamal registry login then it logs in successfully.
So it appears that for some reason it's not auto-loading the vars in the .env.
Do I need to do anything special to get dotenv to load the file?

Hi @fritzblue, I think you need <%= ENV["BASECAMP_REGISTRY_PASSWORD"] %> rather than ["KAMAL_REGISTRY_PASSWORD"]

This format sets the password as-is instead of loading from .env:
password: ["KAMAL_REGISTRY_PASSWORD"]

You want something like this. If you only need the one username then you can keep that like you have but the password part should be structured like this to load from .env.
registry:
  username:
    - KAMAL_REGISTRY_USERNAME
  password:
    - KAMAL_REGISTRY_PASSWORD

heys guys,
having the same problem
ERROR (SSHKit::Command::Failed): docker exit status: 256
docker stdout: Nothing written
docker stderr: WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://registry-1.docker.io/v2/": EOF
when running kamal setup

This happens to me when using a non-root user.
These commands that I've manually run helped (source):
# no need to add a docker group, it's already exists
# sudo groupadd docker

sudo usermod -aG docker $USER
newgrp docker

Hey Folks,
I had the same problem as @lethunder
ERROR (SSHKit::Command::Failed): docker exit status: 256
docker stdout: Nothing written
docker stderr: WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://registry-1.docker.io/v2/": EOF

It turned out it was because docker was not running. I turned on docker via the Desktop app on my m2 Mac

@williamkennedy thanks for this comment! It worked for me to just open docker 😏

this error message also could be ur GITHUB token is expired or wrong


Remove Drew Karriker from all the repositories

just looked through every repo i could think of and don't see you in any. i removed you from the whole org a while back. are you still getting notifications? if you tell me which repos you're in i can remove you but i don't see any. maybe you have them starred?

are you talking about something other than being a collaborator on repos? you're still a member for the azure pipelines. i can remove you from there if you want

just kidding i actually can't remove you from the psa-dst azure devops project because you're the owner


Telemetry forwarding

Move telemetry recorder to Common.
Make parameters string/string for simplicity.
Handle python/telemetry.
Handle exception as FaultEvent.
Update tests.

Tests probably need to be moved from CookiecutterTests project. We should probably create CommonTests at some point. Also, may try to build faulting Pylance to try exception reporting.

We already have telemetry logging functionality in PythonTools project, via IPythonToolsLogger service (defined in VSCommon/Logging). We should be able to use that.
The code in Cookiecutter was written as standalone source base from the rest of PTVS, so it got its own implementation.

Perhaps instead replace IPythonToolsLogger by the common set? It looks about the same except it has PythonLogEvent which are not applicable anymore since analyzer is gone? Basically wrap common class and export the wrapper.


Axiomatise sectors

Description of the issue
In PR #1321 we introduced the object property is sector of. So far it is only used once:
'mineral oil refining sector' 'is sector of' some 'mineral oil refining process'
However, we have now the possibility to relate all sector classes to what they are about.
Ideas of solution
Add the following axioms:

'agriculture, forestry and land use sector' 'is sector of' ???
'energy demand sector' 'is sector of' ???
'building sector' 'is sector of' ???
'commercial sector' 'is sector of' ???
'heating and cooling sector' 'is sector of' ???
'household sector' 'is sector of' ???
'transport sector' 'is sector of' some transport
'energy transformation sector' 'is sector of' ???
'electricity sector' 'is sector of' some 'electricity generation process'
'industry sector' 'is sector of' some 'industrial process'
'waste and wastewater sector' 'is sector of' ???

Workflow checklist

[ ] I discussed the issue with someone else than me before working on a solution
[ ] I already read the latest version of the workflow for this repository
[ ] The goal of this ontology is clear to me

I am aware that

[ ] every entry in the ontology should have a definition
[ ] classes should arise from concepts rather than from words

We currently axiomatise the subsector relationship with part of. Example:
'CRF sector (IPCC 2006): petroleum refining' 'is part of' 'CRF sector (IPCC 2006): energy industry'
As we use this a lot, we might think about introducing a special object property for that. Something like:
subsector of: A part of relation between a subsector and its parent sector.
Domain and range would be both sector.
If we want to, we might also introduce the inverse has subsector as subproperty of has part:
A has part of relation between a sector and its parent subsector.

Also sector individuals can get is sector of axioms.
Example: 'CRF sector (IPCC 2006): cement production' 'is sector of' some (production and 'has physical output' some cement).

Further axioms on individual level:

'CRF sector (IPCC 2006): chemical industry' 'is sector of' some (production and 'has physical output' some 'chemical substance')
'CRF sector (IPCC 2006): CO2 captured' 'is sector of' some 'carbon capture'
'CRF sector (IPCC 2006): CO2 emissions from biomass' ' is sector of' some ('CO2 emission' and 'causally downstream or within' some ('combustion' and 'has physical input' some biofuel)) [^1]
'CRF sector (IPCC 2006): CO2 transport and storage' 'is sector of' some (transport and 'has participant' some 'carbon dioxide')
'CRF sector (IPCC 2006): CO2 transport and storage' 'is sector of' some 'carbon storage'
'CRF sector (IPCC 2006): fuel combustion' 'is sector of' some combustion
'CRF sector (IPCC 2006): industrial processes and product use' 'is sector of' some 'industrial process'
'CRF sector (IPCC 2006): international aviation' 'is sector of' some ('international transportation' and 'has participant' some aircraft)
'CRF sector (IPCC 2006): international bunkers' 'is sector of' some ('international transportation' and 'has participant' some aircraft or watercraft)
'CRF sector (IPCC 2006): iron and steel production' 'is sector of' some (production and 'has physical output' some steel)
'CRF sector (IPCC 2006): maritime navigation' 'is sector of' some ('international transportation' and 'has participant' some watercraft)
'CRF sector (IPCC 2006): metal industry' 'is sector of' some (production and 'has physical output' some metal)
'CRF sector (IPCC 2006): mineral industry' 'is sector of' some (production and 'has physical output' some mineral)
'CRF sector (IPCC 2006): railways' 'is sector of' some (transport and 'has participant' some train)
'CRF sector (IPCC 2006): transport' ('is sector of' some transport) and not ('is sector of' some 'international transport')

[^1]: This is a nice example of what we can already express with the OEO, isn't it? 😄

And if we even want to define subsector, that would be something like: A subsector is a sector that is part of an other sector.
subsector EquivalentTo: sector (and 'part of' some sector)

I just tested this and does not work.

The (non-BFO aligned) Semanticscience Integrated Ontology (SIO) has:

has part (SIO_000028): has part is a transitive, reflexive and antisymmetric relation between a whole and itself or a whole and its part.

Characteristics: reflexive, transitive
Examples: a collection of cars has as a car as a part;a car has an engine as a part; a car has a piston as a part;

has proper part SIO_000053: has proper part is an antisymmetric, irreflexive (normally transitive) relation between a whole and a distinct part.

Examples: a car has an engine as a proper part; a car has a piston as a proper part;
Characteristics: asymmetric, irreflexive

We could introduce something similar:

has proper part: A has part relation that denotes an antisymmetric, irreflexive (normally transitive) relation between a whole and a distinct part. If we then set the characteristics of this new relation correctly, it should work!

This issue went stale. I had a look what I already implemented in the test branch and what is missing.
Open:

[ ] definition for propoer part of
[ ] definition for has subsector
[ ] definition for subsector of

Proposals:

proper part of: A relation between and entity A and an entity B in which A is a part of B but A is not B itself.
has subsector: A relation between a sector A and a sector B in which B is a part of A but is not A itself.
subsector of: A relation between a sector A and a sector B in which A is a part of B but is not B itself.

Why do we need the proper part relations? Couldn't we just add subsector of and has subsector as proper relations, without being surelations of has part?

Why do yo not want to have a proper hierarchy of object properties?

We could introduce something similar:

has proper part: A has part relation that denotes an antisymmetric, irreflexive (normally transitive) relation between a whole and a distinct part. If we then set the characteristics of this new relation correctly, it should work!

Discussing this with @fabianneuhaus: Our tools cannot deal with transitivity, irreflexivity and assymetry all at once and protege spits out an error. That is the/a reason why has proper part is not used (much) in other ontologies, and probably the reason why transitivity is left out in SIO.

Okay, then I delete has proper part and proper part of from what I implemented in #1788 and we can finalise this issue.

Vielen Dank für Ihre Nachricht. Ich bin bis 20.06.2024 nicht im
  Büro und werde Ihre E-Mail erst danach bearbeiten können.
Thank you for your message. I am out of office until June 6 2024.

Mir freundlichen Grüßen
Mirjam Stappel


[AutoPR datashare/resource-manager] Add RP Data Share to specification folder [Public Preview]

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6583

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/6295


luci-themes: depends on luci-base and small front change

[x] This PR is not from my main or master branch :poop:, but a separate branch :white_check_mark:
[x] Each commit has a valid :black_nib: Signed-off-by<EMAIL_ADDRESS>row (via git commit --signoff)
[x] Each commit and PR title has a valid :memo: <package name>: title first line subject for packages
[ ] Incremented :up: any PKG_VERSION in the Makefile
[x] Tested on: (architecture, openwrt version, browser) :white_check_mark:
[ ] ( Preferred ) Mention: @ the original code author for feedback
[ ] ( Preferred ) Screenshot or mp4 of changes:
[ ] ( Optional ) Closes: e.g. openwrt/luci#issue-number
[ ] ( Optional ) Depends on: e.g. openwrt/packages#pr-number in sister repo
[x] Description: (describe the changes proposed in this PR)

Add luci-base as depends for luci themes.
Open footer links in new tab instead of replacing OpenWrt WebUI.

I rarely work with themes: is the +luci-base dep certain?

Themes are meaningless without luci-base. After this change, themes can be auto removed when removing luci-base (For firmware without luci built-in)

Thank you.


Doctrine\DBAL\Types\Type::__toString str_replace() bug

When a database type is named using the word 'Type', it will get removed and cause the following error:
Error: Class 'MyAppBundle\Type\TypeAccount' not found

/Users/dohpaz42/Development/MyApp/src/MyAppBundle/Type/TypeAccountType.php:18
/Users/dohpaz42/Development/MyApp/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php:128
/Users/dohpaz42/Development/MyApp/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php:69
/Users/dohpaz42/Development/MyApp/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php:147
/Users/dohpaz42/Development/MyApp/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php:888
/Users/dohpaz42/Development/MyApp/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php:181
/Users/dohpaz42/Development/MyApp/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php:164
/Users/dohpaz42/Development/MyApp/tests/MyAppBundle/Entity/AccountTest.php:29

The following defines my type in code. I've found that if I do not return an instance of the type from convertToPHPValue I do not get the error.
Doctrine config
# Doctrine Configuration
doctrine:
    dbal:
        driver:   pdo_pgsql
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

        types:
            currency:       MyAppBundle\Type\CurrencyType
            type_tx:        MyAppBundle\Type\TypeTransactionType
            acct_equation:  MyAppBundle\Type\AccountEquationType
            type_acct:      MyAppBundle\Type\TypeAccountType
            datetimetz:     Doctrine\DBAL\Types\VarDateTimeType

MyAppBundle\Type\TypeAccountType
<?php
namespace MyAppBundle\Type;

use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Platforms\AbstractPlatform;

class TypeAccountType extends Type
{
    const TYPE_ACCOUNT = 'type_acct';

    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
    {
        return $this::TYPE_ACCOUNT;
    }

    public function convertToPHPValue($value, AbstractPlatform $platform)
    {
        return new TypeAccount($value);
    }

    public function convertToDatabaseValue($value, AbstractPlatform $platform)
    {
        return $value->toTypeAccount();
    }

    public function getName()
    {
        return $this::TYPE_ACCOUNT;
    }
}

I've tracked the error down to Doctrine\DBAL\Types\Type::__toString() in that it blindly removes any instance of the word Type from the class name, when in fact the intent is to remove the last instance of the word Type. Since my class is TypeAccountType, it is being turned into Account, which does not exist and causes the error to be thrown.
Doctrine\DBAL\Types\Type
    /**
     * @return string
     */
    public function __toString()
    {
        $e = explode('\\', get_class($this));

        return str_replace('Type', '', end($e));
    }

I am willing to make a unit test and a PR, but wanted to document and get feedback first.

Makes sense, but it might be better in doctrine/dbal if there isn't any ORM code involved.
I'm trying to think whether there's any way somebody might have worked-around the problem that would result in a backwards-compatibility break if it were to be fixed.

The way I see it, there are two plausible workarounds:

Rename your types so they do not include the word 'type'
Overload the __toString method and implement your own solution

In either case, no BC would occur.
As for where to put this, this is defined in the Types\Type, why wouldn't it be fixed in the same place? Forgive my ignorance, as I'm new to Symfony and its methodologies.

The way I see it, there are two plausible workarounds:
Rename your types so they do not include the word 'type'
Overload the __toString method and implement your own solution
In either case, no BC would occur.
As for where to put this, this is defined in the Types\Type, why wouldn't it be fixed in the same place? Forgive my ignorance, as I'm new to Symfony and its methodologies.

It's not specifically related to this ticket, but I also wanted to point out that using substr() and strrpos() would also net a 2x performance boost over the use of explode() and end().


Support for conditionally showing sections of a form as it is filled

I have a very long form which is made up of a number of fieldsets/sections. It would be nice to be able to reveal the fields to be filled section by section, i.e. once a section is filled and verified, the next section will automatically reveal itself.
It would be nice to have a way to determine if a section has been completed, something like a $isValid property on the section. I imagine it looking something like:
schema = {
  type: "object",
  properties: {
    one: {
      type: "string"
    }
    two: {
      type: "string"
    }
    three: {
      type: "string"
    }
    four: {
      type: "string"
    }
  }
  required: ["one", "two", "three", "four"]
};

form = [
  {
    key: "fieldset1",
    type: "fieldset",
    items: [...] // ("one" and "two")
  },
  {
    key: "fieldset2",
    type: "fieldset",
    items: [...], // ("three" and "four")
    condition: form.fieldset1.$isValid
  }
];

There are a couple things that I'm unsure of. For instance, is it possible to refer to fieldset1 by the key it was given in the form definition? The other is how validation is triggered in the section's scope, in order to populate the value of $isValid.
I would be happy to work on the feature and submit a PR, but I'm unsure as to where to get started on it.

@JamesGuthrie I haven't forgotten this, just trying to find time to respond properly, I would expect this is quite painless to do as an add-on. I'll try to elaborate within a few days.

@JamesGuthrie damn I did forget it, did you find the solution?
This would be quite easy to do with the calculate add-on in the example folder of the latest code in dev branch. I'll close this but please re-open if you still need help with it or further explanation.


Add some pretty CSS

somewhat fixed in 8c0ede8 i just used the css from the main comfi.es site, idk what default css we could add to the embeds by default


"ERROR invalid body size" when submitting an GET request with parameters

The following GET is submitting an invalid request to my Rails server, which is actually rejecting it outright without even processing it. It is similar to this SO request here
I know my setup works because it has been working fine before i added the parameters to the GET request, and it works for POST requests.

I would like to print and see the full request it is making to the server. Is there a way to automatically print the full network request?
Is there anything i can change to make the GET work?

M
extension Routes: TargetType {
  var baseURL: NSURL { return NSURL(string: "http://localhost:3000")! }

  var path: String {
    switch self {
    // POST REQUEST - WORKS
    case .CreateUser:
      return "/users.json"
    // GET REQUEST - FAILS WHEN THERE ARE PARAMETERS
    case .Stickers:
      return "/stickers.json"
    }
  }

  var method: Moya.Method {
    switch self {
    case .CheckUsernameAvailability, .CreateUser:
      return .POST
    default:
      return .GET
    }
  }

  var parameters: [String: AnyObject]? {
    switch self {
    case .CreateUser (let username, let phoneNumber):
      return ["username":username, "phone_number": phoneNumber ]
    case .Sticker:
      return ["test""test]
    default:
      return nil
    }
  }

let endpointClosure = { (target: Routes) -> Endpoint<Routes> in
  let epc = Endpoint<Routes>(URL: url(target), sampleResponseClosure: {.NetworkResponse(200, target.sampleData)}, method: target.method, parameters: target.parameters,         parameterEncoding: .JSON )

  return epc.endpointByAddingParameters(target.defaultParameters)
}

Hi! Let me try to help you :)

When you're creating request via your MoyaProvider — it returns you a thing conforming to Cancellable protocol.
You can simply print it to your logs so see how you can re-create this request via curl
I believe you should use .URL parameters encoding for get request, instead of .JSON

thanks! both works great.
i was not aware of the need to use .URL when doing GET requests. :)

By the way, @Austinate is there an example of using headers to pass in authentication information like tokens?

OAuth & HTTPAuth are described here
But if you need just token as header field — i'd configure custom Alamofire.Manager with header fields as described here.
I'm not 100%(just 99.9% 🙃) sure that's the best way for Moya, so maybe someone will correct me

@mingyeow for additional fields just take a look at Alamofire readme (Advanced Usage section)

For additional token fields you could use Endpoint settings, explained here (with auth token as well).

0.01% ¯_(ツ)_/¯


Solve day 12 part 2

https://adventofcode.com/2022/day/12#part2

This was pretty easy thanks to implementing a distance field for part 1.
https://www.redblobgames.com/pathfinding/tower-defense/


[KARAF-129] Add upgrade option to Feature install command

Feature upgrade implemetation via install command option.

Karaf 4.x already likely supports feature upgrade (thanks to the feature lifecycle).

May be it is not so clear stated in documentation. How I can upgrade feature from one version to another without uninstall/install it entirely?
Main idea behind this patch is minimizing changes of current bundle cache state. We are changing feature version in requirements and put it to deployer. Deployer calculate minimum required changes and execute it. No useless refreshes, un/installs etc. is performed.

Currentl documentation states:

You can update a release by installing the same feature (with the same SNAPSHOT version or a different version).

Thanks to the features lifecycle, you can control the status of the feature (started, stopped, etc).

You can also use a simulation to see what the update will do.

But what hepend with old feature when new is installed? It will stay here and should be manualy uninstalled. But old feature may contains singleton bundles or something like plugins with previous version or fragments that may be incorrectly associated with the new feature bundles. On my experience there is many features that not support two versions installed at the same time.
By un/installing, starting/refreshing bundles in one deployer "transaction" we achieve behaviour closest to clean uninstall/install cylce without useless install/unistall stop/start operations on unchanged bundles.
Actualy this patch writen for Karaf 4.0.0 and successfuly used by our ops team in production. Main use case is upgrade of customer own features with business functionality that contains many relatively "static" dependencies: unistall 130+ bundles and install it again is not so optimal... Installation of new version and then delete old version is not possible because there 1 singleton bundle (e.g. DataNucleus Core) that can not be installed in parallel.


[SPARK-21884] [BACKPORT-2.2] [SPARK-21477] [SQL] Mark LocalTableScanExec's input data transient

This PR is to backport https://github.com/apache/spark/pull/18686 for resolving the issue in https://github.com/apache/spark/pull/19094

What changes were proposed in this pull request?
This PR is to mark the parameter rows and unsafeRow of LocalTableScanExec transient. It can avoid serializing the unneeded objects.
How was this patch tested?
N/A

Test build #81302 has started for PR 19101 at commit 3ee18ce.

Test build #81302 has finished for PR 19101 at commit 3ee18ce.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81302/
Test PASSed.

Thanks! Merged to 2.2

Thank YOU!


Fix missing avoidance updates when using same velocity

When using avoidance, if you set the same velocity for the agent as a previous frame, you won't get an update from the avoidance system.
This PR changes both the set_target_position and set_velocity setters to always accept user provided values, even if they are the same. This ensures that pathing and avoidance logic is always run when the user expects.
This change is intended to go into 4.0 as a bug fix.  Issue was first introduced in RC1 as part of #72570.  Thanks to @Scony for finding it.

Thanks!


Simplify interface to write custom runtimes

When writing custom runtimes, MLServer requires the user to know a bit about the V2 request and response structure, as well as codecs. This can add some friction when it comes to writing custom code.
When working in Tempo, one of the main aims was to simplify how “custom models” were implemented. Therefore, it would be interesting to revisit some of these ideas to help simplify MLServer runtimes.
With this goal in mind, it would be interesting to let the user write runtimes like the one below:
class MyCustomRuntime(MLModel):
    # Use signatures to declare the expected request and response content types
    async def predict(self, payload: np.array) -> np.array:
        # Do something with the payload
        pred = payload.sum(keepdims=1)

        # Return result as is
        return pred

Under the hood, MLServer could look at the Python type hints to determine the right content types that should be used, and add them to the model metadata. This would allow MLServer to, on-the-fly, find the right set of codecs and encode / decode the request and response.
Multiple Inputs / Outputs
The V2 protocol lets the user send and return multiple input and output “heads”. To account for this, the new simplified interface could use the names of the function arguments to match them with the incoming request:
class MyCustomRuntime(MLModel):
    # Input `foo` would get passed as kwarg `foo`, and input `bar` as kwarg `bar`
    async def predict(self, foo: np.array, bar: np.array) -> np.array:
            ...

When encoding back the response though, the signature itself doesn’t show any info about the expected names. Therefore, MLServer will need to:

Look at the outputs field of the model metadata, and match the returned values based on their order.
In the absence of the above, make up some default names (e.g. output-0, output-1, etc.).

Note that this doesn’t include function signatures with a single “multi-input/-output” return type, like a Pandas Dataframe. In these cases, MLServer will look at the column names to infer the right output names.
Variable Content Types & Advanced Use Cases
In some cases, the approach suggested above may show some limitations though. For example, if we think of runtimes which accept a variable set of content types, like the MLflow or SKLearn runtimes (which accept either dataframes or numpy arrays), or other advanced use cases.
However, these use cases should still be supported by the current approach which would remain valid. That is, when using the “low-level” InferenceRequest and InferenceResponse types (which correspond to the respective V2 payloads), the encoding / decoding will be the user’s responsibility (who will need to call something like self.decode).

Just caught up with this as part of reviewing #765:

In some cases, the approach suggested above may show some limitations though. For example, if we think of runtimes which accept a variable set of content types, like the MLflow or SKLearn runtimes (which accept either dataframes or numpy arrays), or other advanced use cases.
Perhaps I misunderstand, but couldn't this be solved by accepting a union of types and at runtime inspecting what we actually got and dynamically structure the V2 return output? Or are we talking about something else (I expect almost every sklearn use case to decide a priori if they want to send arrays or dataframes and then not mix-and-match at runtime)?

That's a great point and a great suggestion. It would definitely allow for dynamic types in returned output values. I'm not sure about inputs though. That is, could we differentiate between a pd,Dataframe and a np.array from a V2 request payload? I imagine we could if we relied on extra annotations in the payload (e.g. like parameters.content_type)?
TBH for returned outputs, we could even ignore the hinted type and just look at the payload that it's returned. That should provide all the info we need to encode the response.
Having said that, I'd save this one for the next iteration of this work. For this initial attempt, it may be best to keep it simple and let the current implementation simmer for a bit. In the meantime, to make sure this doesn't fall through the cracks, I've opened up this issue:
https://github.com/SeldonIO/MLServer/issues/767


bug(fix-typo):capitalize the word have

What does this PR do?
I capitalize the word Have in modules.py

@dharmykoya  Refer your issue number.

issue number is 34

Thanks @dharmykoya! 👍


Rigged for testing tomorrow.

@vinomca-megam  Your must preserve logs

Lets debug with the store.js.

@vinomca-megam
Also replace this line in package.json in the ui with
    "ember-api-store": "git://github.com/megamsys/ember-api-store.git"

`
run ./scripts/update-dependencies


Added onClick handler back to the Card component

After upgrading Blue to the latest version in Beacon, I found out that the Card component no longer had an onClick handler when they were given an href or to attribute. I've added it back to fix its behavior.

Coverage remained the same at 100.0% when pulling 84615ae1590f2e3dd3efe5e67ef51b30c5b28fc1 on card-onclick into ba3daf9f3177c5ce6d3540668f4b7f9e61b2f734 on master.

@Charca Thanks for catching this! Gonna add a couple of tests 🙌

Will merge as soon as Travis tests pass ❤

Coverage remained the same at 100.0% when pulling 186c51e57b155d756c0965008cad0ed9de9bd0a0 on card-onclick into ba3daf9f3177c5ce6d3540668f4b7f9e61b2f734 on master.


Update init.py

Hi @karenkyang I've refactored the code so the init file doesn't have every method in it anymore. This should make it much easier to maintain/modify going forward.
We can just delete and re-create this branch on the latest version of the code on Tuesday, and put your modifications in the create_dataset.py file.


Update BlazorMobile.Build behavior for Blazor WebAssembly 3.2.0 Preview 2

Update BlazorMobile.Build behavior for Blazor WebAssembly 3.2.0 Preview 2.
As the dist folder does not exist anymore with this new version, as seen here:

As a result of this change, the structure of the published output of a Blazor WebAssembly app is now more consistent with other ASP.NET Core apps. A Blazor WebAssembly app is now published to the /bin/Release/netstandard2.1/publish/wwwroot folder (a dist folder is no longer generated). To publish a standalone Blazor WebAssembly app as a static site, copy the contents of the published wwwroot folder to your static site host. If the Blazor WebAssembly app is hosted in an ASP.NET Core app, the client Blazor WebAssembly app is published into the wwwroot folder of the published server app just like any other static web asset.

This is also referenced in https://github.com/Daddoon/BlazorMobile/issues/173

Some draft search for myself:
Scénario idéal :

Import des target nécessaire pour que BuildsDependsOn soit défini
Import des targets nécessaire pour que PublishDependsOn soit défini
Remplacer BuildsDependsOn par la liste de PublishDependsOn si possible
Remplacer PublishDependsOn par BuildsDependsOn. La cible précédente étant déjà effectuée l’action ne devrait pas être appelée une seconde fois.
Vérifier fonctionnement des scripts Blazor

https://docs.microsoft.com/fr-fr/visualstudio/msbuild/msbuild-targets?view=vs-2019
https://stackoverflow.com/questions/54703037/trouble-overriding-builddependson-in-c-sharp-project
https://stackoverflow.com/questions/6387702/automatically-publish-clickonce-when-build-finishes-in-visual-studio
https://docs.microsoft.com/fr-fr/visualstudio/msbuild/how-to-extend-the-visual-studio-build-process?view=vs-2019
http://sedodream.com/2013/02/12/MSBuildDependsOnTargetsVersusBeforeTargetsAfterTargets.aspx
https://stackoverflow.com/questions/50775659/how-to-run-msbuild-with-specific-target-when-publishing
https://gist.github.com/guitarrapc/ca740578776db7fca21c844daf89bb4a
https://stackoverflow.com/questions/47179705/net-core-override-default-build-targets
https://stackoverflow.com/questions/52775774/what-is-the-correct-way-to-do-a-dotnet-publish-on-project1-before-building-pro
https://stackoverflow.com/questions/12165715/call-publish-after-build-in-msbuild-build-in-msbuild

Done (differently than expected) but done !


update convertdate

Convertdate had a dependency cap (now removed) on pytz,
preventing downstream users from updating.
Convertdate 2.3.0 also introduced a breaking change to the
hebrew.to_jd_gregorianyear conversion - both return types
are now handled to support 2.2 and 2.3 being used downstream.

Pull Request Test Coverage Report for Build 965

16 of 18 (88.89%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 99.978%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

holidays/countries/israel.py
16
18
88.89%

Totals

Change from base Build 941:
-0.02%

Covered Lines:
9271

Relevant Lines:
9273

💛  - Coveralls

Looks like this was fixed by 904a24f82fe01d9198b945b86f6426be3f03f13f

In fact, it required a bit more work to get everything sorted :) but yes, now it's in fact fixed by v<IP_ADDRESS> released some hours ago.
Thank you very much for your support!


using DataFrames in jupyter

LoadError: UndefVarError: dataFrame not defined
while loading In[12], in expression starting on line 3
`using DataFrames
df = dataFrame(A = [1,2], B = [e, pi], C = ["xx", "xy"])
showln(df)`

That's DataFrame.

Thanks


Add separate fonts and theme for PDF generation

Fix symbols rendering in PDF generation.

Add custom theme for PDF
Add custom fonts for PDF
Change symbols to similar, but which are supported by both fonts.
Add system files to .gitignore

The result will look like this:
PDF

HTML

I have to replace symbols in HTML in order to make it work correct in both PDF and HTML. Let me know what do you think.
Let me know what do you think about this.
Refers to #709

great -- PDF version now looks fine and HTML unchanged. Thx!

:+1:

👍


[BUG] Storage Library v8.3 does not remove padding when decrypting contents when downloading a blob with CloudBlockBlob.openInputStream()

Describe the bug
In the storage library v8.3, downloading and decrypting a blob that was client-side encrypted with the storage library fails when using CloudBlockBlob.openInputStream(). This fails because it does not remove the padding added during the client-side encryption when decrypting the blob contents. This causes an IOException to be thrown since the MD5 integrity check fails. If the content MD5 validation is disabled, you can see the resulting byte array has the additional nul bytes from the padding added during encryption.
This bug is specific to downloads using CloudBlockBlob.openInputStream(). In the below code snippet I compare the behavior to that of CloudBlockBlob.download().
To Reproduce
Run the code snippet below to reproduce the behavior being described.
Code Snippet
    String storageAccount = "<your storage account>";
    String containerName = "<your container name>";
    String blobName = "<your blob name>";
    String sasToken =  "<your sas token>";

    // build client to talk to storage
    URI storageEndpoint = new URI(
        "https",
        storageAccount + "." + endpoint + "/",
        null,
        null);
    StorageCredentials azCreds = new StorageCredentialsSharedAccessSignature(sasToken);
    CloudBlobClient blobClient = new CloudBlobClient(storageEndpoint, azCreds);

    // get blob reference
    CloudBlobContainer container = blobClient.getContainerReference(containerName);
    CloudBlockBlob blockBlob = container.getBlockBlobReference(blobName);

    // set up upload with client side encryption
    BlobRequestOptions options = new BlobRequestOptions();
    SymmetricKey symmetricKey = new SymmetricKey();
    BlobEncryptionPolicy encPolicy = new BlobEncryptionPolicy(symmetricKey, null);
    options.setEncryptionPolicy(encPolicy);
    byte[] contents = "Hello World".getBytes();
    ByteArrayInputStream is = new ByteArrayInputStream(contents);

    // upload blob
    blockBlob.upload(is, contents.length, null, options, null);

    // download same blob two different ways
    // expect this to succeed
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    blockBlob.download(outputStream, null, options, null);
    byte[] downloadResult = outputStream.toByteArray();

    // expect this to fail with IOException with an integrity check error message
    byte[] openInputStreamResult = null;
    try {
      InputStream inputStream = blockBlob.openInputStream(null, options, null);
      openInputStreamResult = inputStream.readAllBytes();
    }
    catch (Exception ex)
    {
      System.out.println("Download failed with Ex: " + ex.toString());
    }

    // disable MD5 check to see downloaded contents
    options.setDisableContentMD5Validation(true);
    InputStream inputStream = blockBlob.openInputStream(null, options, null);
    openInputStreamResult = inputStream.readAllBytes();

    // downloaded contents should be equal, but aren't
    System.out.println("Contents equal: " + Arrays.equals(downloadResult, openInputStreamResult));
    System.out.println("downloadResult: " + new String(downloadResult));
    System.out.println("openInputStreamResult: " + new String(openInputStreamResult));
    System.out.println("downloadResult length: " + downloadResult.length);
    System.out.println("openInputStreamResult length: " + openInputStreamResult.length);

Expected behavior
I expect that the padding added by the client side encryption would be stripped during decryption as it is with CloudBlockBlob.download() and that no IOException would be thrown.
Setup (please complete the following information):

OS: CentOS7
IDE : IntelliJ
Version of the Library used: Storage library used is v8.3.0. Keyvault Library used is v1.0.0.

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

@gapra-msft Gauri, can you please look at this at your earliest availability.

@andresc-snowflake I've investigated this and have found what I believe to be the root cause. I'm checking with my team to see if there was an intentional reason for having the stream behavior operate this way before taking any further steps. I'll follow up here soon when I have more information.

@rickle-msft bringing this back to the top of your inbox

This issue was resolved and the fix released back in Feb


(3.1.0) need to change class lookup in project browser and ? for use with 3.6.0 image

When there is more than one class with the same name in a symbol list, the Project Browser will find the wrong class when browsing by package or by symbol dictionary.
This happens in 3.6.0, since there are multiple classes for each of the following Stream classes: ReadStream, WriteStream, and PositionableStream. There are legacy and the portable variants for each of those classes, but in a standard 3.6.0 image, Jadeite will only see the portable variant even when explicitly browsing the legacy packages or the legacy symbol dictionary.
The legacy WriteStream class in the GemStone_Legacy_Streams  symbol dictionary does not have any instance variables:
{
(((Rowan projectNamed: 'UnPackaged') asDefinition
	packageNamed: 'UnPackaged-GemStone_Legacy_Streams')
	classDefinitionNamed: 'WriteStream')
		propertyAt: 'instvars'.
(GemStone_Legacy_Streams at: #WriteStream) instVarNames.
}

 anArray( anArray( ), anArray( ))

but the project browser on the package and symbol dictionary are showing the wrong class:

I am in the process of replacing the use of globalNamed: in Rowan itself (which is the reason for the mixup) and we need to do the same sweep for the Jadeite code base ... we'll need to provide additional context package or symbol dictionary name in addition to the class name when doing class lookups ...
I think this bug should be fixed sooner rather than later as it prevents developers from using Jadeite to work on legacy streams classes.

I am in the process of replacing the use of globalNamed: in Rowan itself

What are you replacing the senders of globalNamed: with?

I replaced the use of globalNamed: with explicit lookup of the class in a symbol list and/or symbol dictionary ... for the project browser the lookup needs to depend upon the context ... if you are viewing the contents of a package, there is a symbol dictionary associated with each package and the lookup of classes in the package should use that symbol dictionary ... if you are viewing the class in a symbol dictionary, then that symbol dictionary should be used for lookup ... if you are looking at a class in another class's hierarchy, then the actual class in the hierarchy should be used ... since lookup could result in finding a different class ...

When raising the Find Class Dialog window, Jadeite gets it's list of classes from ClassOrganizer new classes.  However, in my image, this code only returns one PositionableStream with oop 14027009.
If there are two classes in the image, I think that we should show both in the Find Class Dialog window and let the user choose which they want to go to.
@dalehenrich What's the magic for getting a list of classes that includes both PositionableStream classes?

I have found a case that appears to reproduce this.
Inspecting this:
{(Globals at: #GemStone_Portable_Streams) asArray first  . (Globals at: #GemStone_Legacy_Streams) asArray at: 2  }
If you inspect the second one, you will see it has a couple of instance variables, thus proving to be the legacy one.
If I browse class on this, I appear to go to the portable one (no instvars).
Rowan does not seem to support multiple classes with the same names, as a thing for users to do, which is allowed in GemStone (this was somewhat of a great idea in olden days, but is way more headache than worth whatever value someone once thought it had).  This ought to be decided if it's a restriction or a good thing.

presumably doing a "browse class" currently does a lookup in the symbol list, so "getting the wrong class" is possible ... multiple classes with the same name can co-exist in symbol lists, but it is necessary to work a bit harder to browse them and manage them ... the plan is to support loading multiple classes with the same name into symbol lists and multiple symbol dictionaries and by extension that means that Jadeite will need to support the browsing of said classes ... However, I don't consider this capability to be supported  for the 3.7.1 GemStone release ...


Implement deleting of data types

In the data type listing, show a wastebasket icon to the far right (after create date) so that a data type may be deleted.  Do not show the wastebasket for items that are core types, or are already disabled.

Done!


Curious about performance of multiple optimizers vs single optimizer

Just curious if you ever tested using a single optimizer for all the networks, and if so, was the performance worse? Similarly, have you run any experiments varying the learning rate or other optimizer parameters per layer?
Thanks!
Sean

Hi Sean,
are you talking about the SincNet paper (https://arxiv.org/abs/1808.00158)
or my latest work (https://arxiv.org/abs/1812.00271)?
In general, if you would like to play with different optimization stuff you
can take a look into the SincNet implementation within the PyTorch-Kaldi
project (https://github.com/mravanelli/pytorch-kaldi). Pytorch-Kaldi can
define different optimizers for each neural netowork in your model.
Mirco
On Tue, 16 Apr 2019 at 07:11, seandickert<EMAIL_ADDRESS>wrote:

Just curious if you ever tested using a single optimizer for all the
networks, and if so, was the performance worse? Similarly, have you run any
experiments varying the learning rate or other optimizer parameters per
layer?
Thanks!
Sean
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mravanelli/SincNet/issues/35, or mute the thread
https://github.com/notifications/unsubscribe-auth/AQGs1nhkpH2VaQBGKuWaOvsilBLy1Z__ks5vha_ugaJpZM4cx-pm
.

I was referencing the earlier SincNet paper, and specifically, the code in this repo. The current setup uses 3 separate optimizers for the 3 separate nets (CNN, DNN1, DNN2). Currently, they all use the same hyper parameters. I was just curious if you ever looked at varying the parameters for the different nets. For example, learning rate of .001 for CNN but .01 for DNN1, etc.

Yes, we did it to allow more flexibility to the users that can possibly
explore different optimization strategies on different networks. In this
study, we didn't do it, but could be interesting to try..
https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avast.com
https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Tue, 16 Apr 2019 at 23:01, seandickert<EMAIL_ADDRESS>wrote:

I was referencing the earlier SincNet paper, and specifically, the code in
this repo. The current setup uses 3 separate optimizers for the 3 separate
nets (CNN, DNN1, DNN2). Currently, they all use the same hyper parameters.
I was just curious if you ever looked at varying the parameters for the
different nets. For example, learning rate of .001 for CNN but .01 for
DNN1, etc.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mravanelli/SincNet/issues/35#issuecomment-483918837,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQGs1sQ28-8AsI6WuoiGP0UH2x_QOn9Iks5vho6bgaJpZM4cx-pm
.


Merge from internal 1.7.1

Issue #, if available:
Description of changes:
Update the logic for the start session when voice streaming is not started in the flow
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Why are the release files not updated? I only see changes to api.js


Use fragments when possible

Always use fragments on api > 11.
I do think though that the default library convention will be to "show all prefs at once" when single pane, unless our Extras tell us otherwise or the user overrides this behavior.

@cachapa
+1 single pane but still separate headers and preferences screens


How to set loss function and metrics in deepmedic?

Hi, kamnitsask:
Great work! Thank you for sharing your code.
I have a question to ask you. How can I set loss function and metrics in deepmedic or in theano ?
For example,in keras, the lose function could be set as mean_squared_error , dice_coef_loss, etc. and metrics could be set as [dice_coef] or  metrics=[accuracy] when compiling the model.
How to change the loss function and metric in deepmedic? I want to change the default setting to  dice_coef_loss and dice_coef.
Thanks
Gu Yu

Hi and sorry for the very late reply, I ve been quite overwhelmed lately, hopefully I ll manage to support this again more often.
Keras is a higher layer over theano, so it provides quite some functionality in a modular way. In this project, built straight with theano, you ll have to write the new loss function yourself and call it.
The loss function is called in ./deepmedic/cnn3d.py in the compileTrainFunction() function, where the negativeLogLikelihood is called. You ll have to write a similar cost function for dice and call it (I have an implementation of dice lying somewhere around, I may as well push it soon).
Regarding metrics: Situation is similar and more involved than Keras. You need to return the values you want from the train/validation function back to the cpu, and log them. Then if you want to plot them, update the plotting script ./plotTrainingProgress.py . In the ./deepmedic/cnn3d.py -> compileTrainFunction() and compileValidationFunction(), check how the cost is being returned, or the true positives / true negatives are returned by getRpRnTpTnForTrain0OrVal1(...), and returned to the function that calls a training iteration  ./deepmedic/trainValidateTestVisualiseParallel.py-> doTrainOrValidationOnBatchesAndReturnMeanAccuraciesOfSubepoch()
Sorry again for the late reply.
Kostas

Thanks for your reply!
I maybe trouble you again when I have some other questions.
Thanks again for your help!
Gu Yu


Register version 0.4.2

@JuliaRegistrator register()

Registration pull request created: JuliaRegistries/General/62973
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.4.2 -m "<description of version>" ab03fb574e873d7851aa3979c8e7955b146addcc
git push origin v0.4.2


gotemplate --version still reports 2.7.4 in version 3.9.1

Come on, guys :)

The culprit is right there in main.go:
https://github.com/coveooss/gotemplate/blob/45dbe90c10b2f1b5e8182601ce887b65346e7ef3/main.go#L28
I'm not sending a PR because I wouldn't know what version to replace 2.7.4 with (I guess 3.9.2?)

Thank you for the catch.
In fact, the problem was caused by the fact that the variable was no longer public version instead of Version.
The GitHub action goreleaser shoult take care of it.

Hello @giorgiga,
The issue wasn’t what I initially thought. The root cause lies in your build process.
If you download our pre-built version of the executable, the version is reported correctly because we use goreleaser to publish our binaries, which automatically sets the main.version based on the tag that triggered the build.
However, if you’re compiling it yourself, you’ll need to provide the -ldflags option:
go build -o gotemplate -ldflags "-X main.version=1.2.3"

I replaced the version string by:
var version = "major.minor.patch # locally built, should be replaced by the build process with -ldflags \"-X main.version=<version number>\""
in #264

Thanks - I fixed the build for NixOS.
Not my business, but... to avoid this same issue with other distros as they start to package gotemplate, I'd recommend you document the build process :)


Feedback on EVA - Improvements to scripts and work flow listed in the document

I have noticed few issues when working with a customer who's trying to test EVA feature in his environment. Suggesting the following corrections/updates to the document based on my observation:
Issue#1:
Use of "Read-Host" to pass the values to variables in "Operator enables a user subscription for EVA" section of the document is throwing below exception when trying to grant consent from tenant side
Invoke-AzResourceAction : OperationNotAllowed : The Emergency VM Access feature is not enabled for subscription ''
Suggestion:
Although the actual cause for this is not known, assigning the values directly to variables isn't causing any issues. A work around here is to remove "Read-Host" in the commands and pass values directly like below:
$FQDN = "Enter External FQDN"
$RegionName = "Enter Azure Stack Region Name"
$TenantID = "Enter TenantID"
$TenantSubscriptionId  = "Enter Tenant Subscription ID"
Note: The cause for this being investigated and tracked via a work item created with engineering team
Issue#2:
The tenant ID to be provided for "$TenantID" variable in the operator section. This is not an issue with a single tenant environment as there is only a single tenant ID.
However, this causes confusion when customer is having a multi-tenancy environment as the document doesn't clearly capture the tenant ID to be provided. Providing tenant ID of any of the guest directory will throw following exception:
Login-AzAccount : InteractiveBrowserCredential authentication failed: AADSTS650057: Invalid resource. The client has requested access to a resource which is not listed in
the requested permissions in the client's application registration. Client app ID: (Microsoft Azure PowerShell).
Suggestion:
The value for "$TenantID" should always be the tenant ID of home directory as it's only used for connecting to admin ARM endpoint. Adding a statement to provide the home directory tenant ID irrespective of the environment(single/multi-tenant) clears the confusion
Issue#3:
The ERCS VM to which PEP session has to be created. Executing the commands for connecting to the console in an ERCS VM other than the one listed by "$enableVMAccessResponse" command throws an exception
Suggestion:
Instead of having to enable RDP access for all ERCS VMs as suggested in the document(Note section of Operator enables remote desktop access to ERCS VMs), operator can create a PEP session only to the ERCS VM received from tenant (Output of "$enableVMAccessResponse")
The sections in the document can also be restructured for a clear workflow:
Work Flow:  Operator enables EVA feature for an user subscription -> Tenant user grants permission for the VM access -> Operator creates PEP session and launches the console

Operator enables a user subscription for EVA:

No changes are needed

User to request VM console access

Include only the points 1-2 which is to be performed by tenant user

Operator enables remote desktop access to ERCS VMs

The section can be renamed appropriately and moved below tenant section as this activity needs to be performed based on the output from tenant's execution
Must include the instructions for creating PEP and account to be used from existing section along with the points 3-9 from Tenant section
Point 10 should contain the "Revoke-RdpAccessToErcsVM" command as this is the last step to be performed to harden the ERCS VM permissions

Issue#4:
There's an additional space in the script executed by tenant after "-ErrorAction Stop `" which throws an error
Suggestion:
Clearing the additional space from both Az and AzureRM script should resolve the issue
Some additional feedback:
Requesting the following changes to the script used by tenant to include:

The commands for connecting to ARM endpoint
Display the output that tenant user should share with operator:

ERCS VM name
Commands for Connecting to VM console which includes the resource ID

Note: The $UserTenantID listed below should be the guest user's tenant ID. It'll be the same as home directory tenant ID in case of single tenant environment but will vary with each tenant in case of a multi-tenant environment
#Updated script for Azure RM modules
$RegionName = ""
$FQDN = ""
$UserTenantID = ""
#Add environment & authenticate
Add-AzureRmEnvironment -Name AzureStackUser -ARMEndpoint https://management.$RegionName.$FQDN
Login-AzureRmAccount -Environment AzureStackUser -TenantId $UserTenantID
$SubscriptionID= "your Azure subscription ID"
$ResourceGroup = "your resource group name"
$VMName = "your VM name"
$vmResourceId = "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroup/providers/Microsoft.Compute/virtualMachines/$VMName"
$enableVMAccessResponse = Invoke-AzureRMResourceAction     -ResourceId $vmResourceId
-Action "enableVmAccess"     -ApiVersion "2020-06-01"
-ErrorAction Stop `
-Force
Write-Host "Please provide the following output to operator`n" -ForegroundColor Yellow
Write-Host "ERCS Name:`t$(($enableVMAccessResponse).ERCSName)" -ForegroundColor Cyan
Write-Host "ConnectTo-TenantVm -ResourceID $($vmResourceId)" -ForegroundColor Green
Write-Host "Delete-TenantVMSession -ResourceID $($vmResourceId)" -ForegroundColor Green
#################################################################################################################
#Updated Script for AZ modules
$RegionName = ""
$FQDN = ""
$UserTenantID = ""
#Add environment & authenticate
Add-AzEnvironment -Name AzureStackUser -ARMEndpoint https://management.$RegionName.$FQDN
Login-AzAccount -Environment AzureStackUser -TenantId $UserTenantID
$SubscriptionID= "your Azure subscription ID"
$ResourceGroup = "your resource group name"
$VMName = "your VM name"
$vmResourceId = "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroup/providers/Microsoft.Compute/virtualMachines/$VMName"
$enableVMAccessResponse = Invoke-AzResourceAction     -ResourceId $vmResourceId
-Action "enableVmAccess"     -ApiVersion "2020-06-01"
-ErrorAction Stop `
-Force
Write-Host "Please provide the following output to operator`n" -ForegroundColor Yellow
Write-Host "ERCS Name:`t$(($enableVMAccessResponse).ERCSName)" -ForegroundColor Cyan
Write-Host "ConnectTo-TenantVm -ResourceID $($vmResourceId)" -ForegroundColor Green
Write-Host "Delete-TenantVMSession -ResourceID $($vmResourceId)" -ForegroundColor Green
#################################################################################################################
Lastly, the EVA feature is limited to Windows servers running with a GUI version as core operating system doesn't support On-screen keyboard functionality. So it's impossible for a customer to login to a core server even though he can connect to it's console as Ctrl+Alt+Del key combination cannot be sent as an input. Customer needs to engage Microsoft support to provide console access from unlock PEP in the event he needs to address an issue with Windows Core OS. A note can be added in the document that outlines this statement.

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

ID: 221ace5c-e2df-f784-d570-a39563c13a8d
Version Independent ID: 38a14acb-21f5-5378-6ece-50e89e437025
Content: Emergency VM access in Azure Stack Hub - Azure Stack Hub
Content Source: azure-stack/user/emergency-vm-access.md
Service: azure-stack
Sub-service: azure-stack-hub
GitHub Login: @sethmanheim
Microsoft Alias: sethm

@sethmanheim
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@sethmanheim
Can you please check and add your comments on this doc update request as applicable.

@JohnBMSFT I have made some of the fixes suggested here but will need more information about what you're suggesting in the "Some additional feedback" section. There isn't enough information here to make updates (i.e. what sections and scripts you're referring to).

Hi Seth,
Providing below some additional information on the suggestions I requested for the EVA document. Please let me know if you need any additional information.
Issue#4:
There's an additional space in the script executed by tenant after "-ErrorAction Stop `" and throws an error. Although it is not preventing the script from execution it just throws below error.
Error Details: Space highlighted in line 10 is the cause for below error
@.***
Suggestion:
Clearing the additional space from both Az and AzureRM scripts under "Tenanthttps://docs.microsoft.com/en-us/azure-stack/user/emergency-vm-access?view=azs-2108&tabs=azurerm1#user-to-request-vm-console-access" section should resolve the issue
###################################################################################################################################################################
Some additional feedback:
Requesting the following changes to the script used by tenant to include:
#1: The commands for connecting to ARM endpoint
Current Scenario:
The existing documenthttps://docs.microsoft.com/en-us/azure-stack/user/emergency-vm-access?view=azs-2108&tabs=azurerm1#user-to-request-vm-console-access doesn't contain any commands to connect to tenant ARM endpoint. It simply suggests to open PowerShell and sign-in to the subscription which might be confusing to any new customer.
@.***
Suggestion:
We can either include a link pointing to the below document in the first point asking customer to connect to tenant ARM endpoint using PowerShell or include the commands from the link directly in the script.
Connect to Azure Stack Hub with PowerShell as a user - Azure Stack Hub | Microsoft Docshttps://docs.microsoft.com/en-us/azure-stack/user/azure-stack-powershell-configure-user?view=azs-2108&tabs=az1%2Caz2%2Caz3%2Caz4
The commands I included in the GitHub request contains a variant of the commands listed in the above document. I'd prefer leaving the existing script intact and adding the above link to point#1.
###################################################################################################################################################################
#2: Display the output that tenant user should share with operator

ERCS VM name
Commands for Connecting to VM console which includes the resource ID

Current Scenario:
The script discussed above doesn't return any output. However, the point 2 from document suggests tenant user to provide the details of ERCS VM Name and VMResourceID to operator.
@.***
@.***
Suggestion:
I've suggested to include the following lines at the end of the script so tenant user can share the output to operator which contains the commands needed by operator at a later stage(Snip from doc) along with the ERCS VM name.
Write-Host "Please provide the following output to operatorn" -ForegroundColor Yellow Write-Host "ERCS Name:t$(($enableVMAccessResponse).ERCSName)" -ForegroundColor Cyan
Write-Host "ConnectTo-TenantVm -ResourceID $($vmResourceId)" -ForegroundColor Green
Write-Host "Delete-TenantVMSession -ResourceID $($vmResourceId)" -ForegroundColor Green
@.***
Script Output with above lines included:
@.***
###################################################################################################################################################################
#3: EVA limitation with Windows Core OS:
Lastly, the EVA feature is limited to Windows servers running with a GUI version as core operating system doesn't support On-screen keyboard functionality. So it's impossible for a customer to login to a core server even though he can connect to it's console as Ctrl+Alt+Del key combination cannot be sent as an input. Customer needs to engage Microsoft support to provide console access from unlock PEP in the event he needs to address an issue with Windows Core OS.
We cannot pass Windows + U key combination here to launch on-screen keyboard as Core OS doesn't support it.
@.***
Suggestion:
A note can be added in the article that outlines the above limitation with Windows Core OS.
###################################################################################################################################################################
I had gone through the changes made so far to the document using the below link:
https://review.docs.microsoft.com/en-us/azure-stack/user/emergency-vm-access?view=azs-1802&branch=pr-en-us-10265&tabs=azurerm1
The tenant sectionhttps://review.docs.microsoft.com/en-us/azure-stack/user/emergency-vm-access?view=azs-1802&branch=pr-en-us-10265&tabs=azurerm1#user-to-request-vm-console-access just needs changes to the script and point#1 which I suggested above.
The title for operator sectionhttps://review.docs.microsoft.com/en-us/azure-stack/user/emergency-vm-access?view=azs-1802&branch=pr-en-us-10265&tabs=azurerm1#operator-enables-remote-desktop-access-to-ercs-vms can be renamed appropriately to cover the actions being performed(For example: Operator enables remote desktop access to ERCS VMs and launches VM console) and first paragraph can be updated as shown below.
Point#1 can include a statement to connect only to the ERCS VM provided by tenant user and the "Note" section can be discarded.
Also the reason for suggesting to move the "Revoke-RdpAccessToErcsVM" command to the end is because this should be the last step to be performed to harden the ERCS VM permissions once end user is done with his work through the VM console.
@.***
###################################################################################################################################################################
Best Regards,
John B.
Support Engineer
Microsoft Azure Stack Hub Technical Support
Customer Service and Support
<EMAIL_ADDRESS>Working hours: Mon-Fri 13:30 - 22:30 IST (GMT+5:30)
If you are looking for support outside of my working hours, please send an email to Azure Stack Hub CSS @.> with your case number and availability.
We are always interested to hear your feedback. Please feel free to reach my manager regarding the level of service you have received<EMAIL_ADDRESS>[MSFT_logo]
From: Seth Manheim @.>
Sent: Saturday, June 18, 2022 1:48 AM
To: MicrosoftDocs/azure-stack-docs @.>
Cc: John B (MINDTREE LIMITED) @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-stack-docs] Feedback on EVA - Improvements to scripts and work flow listed in the document (Issue #1950)
@JohnBMSFThttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJohnBMSFT&data=05|01|v-johnb1%40microsoft.com|b02ca9c284ad4e8f6f4208da509e7f89|72f988bf86f141af91ab2d7cd011db47|1|0|637910938968004871|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=xCYsGgzuNic2enZCea9YsrPCrGK5ek8xmFJWs%2FM9YCQ%3D&reserved=0 I have made some of the fixes suggested here but will need more information about what you're suggesting in the "Some additional feedback" section. There isn't enough information here to make updates (i.e. what sections and scripts you're referring to).

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-stack-docs%2Fissues%2F1950%23issuecomment-1159200663&data=05|01|v-johnb1%40microsoft.com|b02ca9c284ad4e8f6f4208da509e7f89|72f988bf86f141af91ab2d7cd011db47|1|0|637910938968004871|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=v82Mdky0%2F%2BbNCUwjGt25gBNZ%2F%2BsGfruejjj6Pr3WCbg%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAV4BMBXG3YRRG65XNMWWYC3VPTMQDANCNFSM5W2QDWVA&data=05|01|v-johnb1%40microsoft.com|b02ca9c284ad4e8f6f4208da509e7f89|72f988bf86f141af91ab2d7cd011db47|1|0|637910938968004871|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=A7yL0cfLQzIN2YfPh7Rhyu7ezkMyXMQCryHs04BI100%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

@JohnBMSFT Thank you for taking the time to write this up. It seems clear, and I will work on these changes ASAP.

All the changes have been published, but feel free to open a new issue, if anything else pops up. Contacting me internally would be preferable, FYI. :-) #please-close


Per Project statistic

Thanks for this great tool!
Do you guys think it would be possible to do a subset of this functionality on a per project basis?
I am thinking about error per day specifically.

sentrycli project prod --ctime daily
+------------+-------+------+
|    day     | count |    % |
+------------+-------+------+
| 2016-04-09 |    25 | 10.8 |
| 2016-04-10 |    27 | 11.6 |
| 2016-04-11 |    14 |  6.0 |
| 2016-04-12 |     8 |  3.4 |
| 2016-04-13 |    11 |  4.7 |
| 2016-04-14 |    12 |  5.2 |
| 2016-04-15 |    18 |  7.8 |
| 2016-04-16 |    28 | 12.1 |
| 2016-04-17 |    23 |  9.9 |
| 2016-04-18 |     4 |  1.7 |
| 2016-04-19 |    15 |  6.5 |
| 2016-04-20 |    16 |  6.9 |
| 2016-04-21 |    12 |  5.2 |
| 2016-04-22 |    19 |  8.2 |
+------------+-------+------+

Hey,
Thank you for brining this up. It seems we could use https://docs.sentry.io/api/projects/get-project-stats/. It's not super urgent though so it might take some time (weeks most likely). Of course MR are welcome.


no way to disable waiting for msg animation

i'd like my keyboard to notify me of new messages.. the others are fine too... but i dont want it taking over my keyboard 24/7 with a "waiting for message" animation when i have setup my own animations for that. so i'd like to have a way to disable it taking over control of the animations for the waiting for msg.

I've modified how it works and removed the waiting for message event. Now when no animations are playing it will fallback to your other apps that have Chroma focus or to Synapse.


Bug fix for image requests

Bug Fix for the following Bugs:
Bug 1: Not all image requests return an URL. For example, when a band
has no logo or band photo. Also, an album may have no cover.
For example:
band = metallum.band_for_id("67530")
photo = band.photo <- this will lead to a crash cause band has no photo
Bug 2: Not all image urls include a "?" mark.
For example:
band = metallum.band_for_id("67530")
album = band.albums[0]
cover_url = album.cover
If that happens url[:url.find('?')] cuts the last character of the URL.
All the best
cpwo-89

Looks good, thanks!


Dupe bug with QFP12 Redstone Processor

Place unprogrammed processor on the ground, use pickaxe to pick it up, regularly you'll get 2 back.  I am using a pick that has luck on it to break the processor to pick it up, so I don't know for sure whether it's not the luck causing multiple processors to be returned.  But it's really easy to replicate.
Mod version 0.2.3.

I see that as well, however it's not actually that you get two dropped but rather, that the original one you placed didn't get consumed and reappears as a glitch.


Add prefix argument to Quickopen command (CTRL+P)

Add an argument (prefix) to "workbench.action.quickOpen" command.
This way you can populate the content with predefined values ("task JS:", "view_", ...) to filter the result using different keybinding.
I think the quickOpenService.show() method has already a prefix argument, so all we need to do is add it to the registered command.

I'd like to take this if no one else started working on it.
Should be a quick fix :)
@bizoo can you please elaborate just a little bit?
Once you press CTRL + P, the command input appears, then what is the next step?
As far as i can tell right now you have the option to view the tasks, recent files, got to symbol and others.

The goal is only to fill the input with the given argument, everything else must works the same.
Currently when I want to compile my Java code, I type "task Java:" and select the desired item in the list (I have A LOT of task for different purpose).
I like to have a keybinding that open the quickOpen ("workbench.action.quickOpen") and prefill the input with "task Java:", something like (not sure if it's the correct syntax for "args"):
  { "key": "ctrl+alt+j", "command": "workbench.action.quickOpen",
                    "args": { "prefix": "task Java:" }}

Could be used for different purpose, like filter the list of files:
"view_*.java"
Thanks @cristianhosu for looking at it.

@bizoo - finished. Can you have a look? or maybe @bpasero
Thank you

Hello @bizoo
Args usually represents an array and is treated as such.
Thus, is it acceptable for this issue to be implemented as:
{ "key": "ctrl+alt+j", "command": "_workbench.quickOpen",
"args": ["view Git"]}
In the example the args will be an array where the first item will represent the prefix.
@bpasero - can you also validate that this is a valid implementation, or should I create a new class QuickOpenArguments which should contain prefix and showOptions?

I'm a little bit confused by how args in commands (and keybindings) works.
And as I know next to nothing of VSCode code, I couldn't help.
From this example of "type" command, the argument is named, not an array. If you change the name of the argument of "type" command, it doesn't works anymore.
But example from @bpasero is an array of arguments (couldn't find the implementation of "type" command to compare).
So is arguments of commands and keybindings different ?

This is now possible via:
vscode.commands.executeCommand('workbench.action.quickOpen', '>editor');

Thanks @cristianhosu and @bpasero.
May I ask a question ?
Why the type command have named argument and not this (and others) command ?
Doesn't change anything but just wonder why.

@bizoo good point, I think it would be nice if you can assign a keybinding with a type that is filled into quick open command. If you want to have a look how that works, feel free.

@bizoo this actually works:
{ "key": "cmd+o", "command": "workbench.action.quickOpen", "args": "foo" }

@bpasero I expected it to works that way but didn't try it myself (I use the standard release).
But my question is why this command get an array of params (actually only one), but some other command use an object:
  { "key": "enter", "command": "type",
                    "args": { "text": "Hello World" }}

I think the syntax of type command is better.

That is up to the command to decide and the picker command accepts just a string (what else?).

Verify: you can write an extension that programmatically triggers the workbench.action.quickOpen command and you can pass over a string to show as prefix in the quick open picker.