Month: June 2024
Word keeps adding a grey ‘comment’ area
I am running MS Word 16.85.2 on a Mac Air with OS Sonoma.
Word keeps adding a vertical grey area on the righthand side for tracking comments. It covers about one-third of the page area. I never use it. It is very annoying. I delete it every time I use the program, but it reappears whenever I open a file again.
How can I stop Word from adding this?
I have never had this problem before.
Thanks
John
I am running MS Word 16.85.2 on a Mac Air with OS Sonoma.Word keeps adding a vertical grey area on the righthand side for tracking comments. It covers about one-third of the page area. I never use it. It is very annoying. I delete it every time I use the program, but it reappears whenever I open a file again. How can I stop Word from adding this?I have never had this problem before. ThanksJohn Read More
Azure HCI Migration – Cannot Replicate to Azure Stack HCI
Can anyone explain how I can overcome this. I have re-installed and re-registered the appliance running on my target HCI-Stack cluster. Is the error talking about the appliance running on my local source Hyper-V cluster?
The on-premises appliance you have selected is incompatible with migrations to Azure Stack HCI. You must reinstall and re-register your appliance and try again.
Can anyone explain how I can overcome this. I have re-installed and re-registered the appliance running on my target HCI-Stack cluster. Is the error talking about the appliance running on my local source Hyper-V cluster? The on-premises appliance you have selected is incompatible with migrations to Azure Stack HCI. You must reinstall and re-register your appliance and try again. Read More
DDPG does not converge
Hello
I am using a DDPG agent that generates 4 continuous actions (2 positive values- 2negative values). The summation of 2 positive action values must be equal to the positive part of a reference value, and the summation of 2 negative action values must be equal to the negative part of the reference value. However, the agent can’t learn to track the reference. I have tried different reward functions and hyperparameters, but after a while it always chooses the maximum values of defined action ranges ([-1 -1 1 1]).
Any suggestion I appreciate
open_system(mdl)
obsInfo = rlNumericSpec([2 1]);
obsInfo.Name = ‘observations’;
numObservations = obsInfo.Dimension(1);
actInfo = rlNumericSpec([4 1],…
LowerLimit=[-1 -1 0 0]’,…
UpperLimit=[0 0 1 1]’);
numActions = actInfo.Dimension(1);
%Build the environment interface object
agentblk = ‘MEMG_RL/RL Agent’;
env = rlSimulinkEnv(mdl,agentblk,obsInfo,actInfo);
Ts = 2e-2;
Tf = 60;
statepath = [featureInputLayer(numObservations , Name = ‘stateinp’)
fullyConnectedLayer(96,Name = ‘stateFC1’)
reluLayer
fullyConnectedLayer(74,Name = ‘stateFC2’)
reluLayer
fullyConnectedLayer(36,Name = ‘stateFC3’)];
actionpath = [featureInputLayer(numActions, Name = ‘actinp’)
fullyConnectedLayer(72,Name = ‘actFC1’)
reluLayer
fullyConnectedLayer(36,Name = ‘actFC2’)];
commonpath = [additionLayer(2,Name = ‘add’)
fullyConnectedLayer(96,Name = ‘FC1’)
reluLayer
fullyConnectedLayer(72,Name = ‘FC2’)
reluLayer
fullyConnectedLayer(24,Name = ‘FC3’)
reluLayer
fullyConnectedLayer(1,Name = ‘output’)];
critic_network = layerGraph();
critic_network = addLayers(critic_network,actionpath);
critic_network = addLayers(critic_network,statepath);
critic_network = addLayers(critic_network,commonpath);
critic_network = connectLayers(critic_network,’actFC2′,’add/in1′);
critic_network = connectLayers(critic_network,’stateFC3′,’add/in2′);
plot(critic_network)
critic = dlnetwork(critic_network);
criticOptions = rlOptimizerOptions(‘LearnRate’,3e-04,’GradientThreshold’,1);
critic = rlQValueFunction(critic,obsInfo,actInfo,…
‘ObservationInputNames’,’stateinp’,’ActionInputNames’,’actinp’);
%% actor
actorNetwork = [featureInputLayer(numObservations,Name = ‘observation’)
fullyConnectedLayer(72,Name = ‘actorFC1’)
reluLayer
fullyConnectedLayer(48,Name=’actorFc2′)
reluLayer
fullyConnectedLayer(36,Name=’actorFc3′)
reluLayer
fullyConnectedLayer(numActions,Name=’output’)
tanhLayer
scalingLayer(Name = ‘actorscaling’,scale = max(actInfo.UpperLimit))];
actorNetwork = dlnetwork(actorNetwork);
actorOptions = rlOptimizerOptions(‘LearnRate’,3e-04,’GradientThreshold’,1);
actor = rlContinuousDeterministicActor(actorNetwork,obsInfo,actInfo);
%% agent
agentOptions = rlDDPGAgentOptions(…
‘SampleTime’,Ts,…
‘ActorOptimizerOptions’,actorOptions,…
‘CriticOptimizerOptions’,criticOptions,…
‘ExperienceBufferLength’,1e6,…
‘MiniBatchSize’,128);
agentOptions.NoiseOptions.StandardDeviation = 0.1; %.07/sqrt(Ts) ;
agentOptions.NoiseOptions.StandardDeviationDecayRate = 1e-6;
maxepisodes = 5000;
maxsteps = ceil(Tf/Ts);
trainOpts = rlTrainingOptions(…
‘MaxEpisodes’,maxepisodes, …
‘MaxStepsPerEpisode’,maxsteps, …
‘ScoreAveragingWindowLength’,20, …
‘Verbose’,false, …
‘Plots’,’training-progress’,…
‘StopTrainingCriteria’,’EpisodeCount’,…
‘StopTrainingValue’,5000);
agent = rlDDPGAgent(actor,critic,agentOptions);Hello
I am using a DDPG agent that generates 4 continuous actions (2 positive values- 2negative values). The summation of 2 positive action values must be equal to the positive part of a reference value, and the summation of 2 negative action values must be equal to the negative part of the reference value. However, the agent can’t learn to track the reference. I have tried different reward functions and hyperparameters, but after a while it always chooses the maximum values of defined action ranges ([-1 -1 1 1]).
Any suggestion I appreciate
open_system(mdl)
obsInfo = rlNumericSpec([2 1]);
obsInfo.Name = ‘observations’;
numObservations = obsInfo.Dimension(1);
actInfo = rlNumericSpec([4 1],…
LowerLimit=[-1 -1 0 0]’,…
UpperLimit=[0 0 1 1]’);
numActions = actInfo.Dimension(1);
%Build the environment interface object
agentblk = ‘MEMG_RL/RL Agent’;
env = rlSimulinkEnv(mdl,agentblk,obsInfo,actInfo);
Ts = 2e-2;
Tf = 60;
statepath = [featureInputLayer(numObservations , Name = ‘stateinp’)
fullyConnectedLayer(96,Name = ‘stateFC1’)
reluLayer
fullyConnectedLayer(74,Name = ‘stateFC2’)
reluLayer
fullyConnectedLayer(36,Name = ‘stateFC3’)];
actionpath = [featureInputLayer(numActions, Name = ‘actinp’)
fullyConnectedLayer(72,Name = ‘actFC1’)
reluLayer
fullyConnectedLayer(36,Name = ‘actFC2’)];
commonpath = [additionLayer(2,Name = ‘add’)
fullyConnectedLayer(96,Name = ‘FC1’)
reluLayer
fullyConnectedLayer(72,Name = ‘FC2’)
reluLayer
fullyConnectedLayer(24,Name = ‘FC3’)
reluLayer
fullyConnectedLayer(1,Name = ‘output’)];
critic_network = layerGraph();
critic_network = addLayers(critic_network,actionpath);
critic_network = addLayers(critic_network,statepath);
critic_network = addLayers(critic_network,commonpath);
critic_network = connectLayers(critic_network,’actFC2′,’add/in1′);
critic_network = connectLayers(critic_network,’stateFC3′,’add/in2′);
plot(critic_network)
critic = dlnetwork(critic_network);
criticOptions = rlOptimizerOptions(‘LearnRate’,3e-04,’GradientThreshold’,1);
critic = rlQValueFunction(critic,obsInfo,actInfo,…
‘ObservationInputNames’,’stateinp’,’ActionInputNames’,’actinp’);
%% actor
actorNetwork = [featureInputLayer(numObservations,Name = ‘observation’)
fullyConnectedLayer(72,Name = ‘actorFC1’)
reluLayer
fullyConnectedLayer(48,Name=’actorFc2′)
reluLayer
fullyConnectedLayer(36,Name=’actorFc3′)
reluLayer
fullyConnectedLayer(numActions,Name=’output’)
tanhLayer
scalingLayer(Name = ‘actorscaling’,scale = max(actInfo.UpperLimit))];
actorNetwork = dlnetwork(actorNetwork);
actorOptions = rlOptimizerOptions(‘LearnRate’,3e-04,’GradientThreshold’,1);
actor = rlContinuousDeterministicActor(actorNetwork,obsInfo,actInfo);
%% agent
agentOptions = rlDDPGAgentOptions(…
‘SampleTime’,Ts,…
‘ActorOptimizerOptions’,actorOptions,…
‘CriticOptimizerOptions’,criticOptions,…
‘ExperienceBufferLength’,1e6,…
‘MiniBatchSize’,128);
agentOptions.NoiseOptions.StandardDeviation = 0.1; %.07/sqrt(Ts) ;
agentOptions.NoiseOptions.StandardDeviationDecayRate = 1e-6;
maxepisodes = 5000;
maxsteps = ceil(Tf/Ts);
trainOpts = rlTrainingOptions(…
‘MaxEpisodes’,maxepisodes, …
‘MaxStepsPerEpisode’,maxsteps, …
‘ScoreAveragingWindowLength’,20, …
‘Verbose’,false, …
‘Plots’,’training-progress’,…
‘StopTrainingCriteria’,’EpisodeCount’,…
‘StopTrainingValue’,5000);
agent = rlDDPGAgent(actor,critic,agentOptions); Hello
I am using a DDPG agent that generates 4 continuous actions (2 positive values- 2negative values). The summation of 2 positive action values must be equal to the positive part of a reference value, and the summation of 2 negative action values must be equal to the negative part of the reference value. However, the agent can’t learn to track the reference. I have tried different reward functions and hyperparameters, but after a while it always chooses the maximum values of defined action ranges ([-1 -1 1 1]).
Any suggestion I appreciate
open_system(mdl)
obsInfo = rlNumericSpec([2 1]);
obsInfo.Name = ‘observations’;
numObservations = obsInfo.Dimension(1);
actInfo = rlNumericSpec([4 1],…
LowerLimit=[-1 -1 0 0]’,…
UpperLimit=[0 0 1 1]’);
numActions = actInfo.Dimension(1);
%Build the environment interface object
agentblk = ‘MEMG_RL/RL Agent’;
env = rlSimulinkEnv(mdl,agentblk,obsInfo,actInfo);
Ts = 2e-2;
Tf = 60;
statepath = [featureInputLayer(numObservations , Name = ‘stateinp’)
fullyConnectedLayer(96,Name = ‘stateFC1’)
reluLayer
fullyConnectedLayer(74,Name = ‘stateFC2’)
reluLayer
fullyConnectedLayer(36,Name = ‘stateFC3’)];
actionpath = [featureInputLayer(numActions, Name = ‘actinp’)
fullyConnectedLayer(72,Name = ‘actFC1’)
reluLayer
fullyConnectedLayer(36,Name = ‘actFC2’)];
commonpath = [additionLayer(2,Name = ‘add’)
fullyConnectedLayer(96,Name = ‘FC1’)
reluLayer
fullyConnectedLayer(72,Name = ‘FC2’)
reluLayer
fullyConnectedLayer(24,Name = ‘FC3’)
reluLayer
fullyConnectedLayer(1,Name = ‘output’)];
critic_network = layerGraph();
critic_network = addLayers(critic_network,actionpath);
critic_network = addLayers(critic_network,statepath);
critic_network = addLayers(critic_network,commonpath);
critic_network = connectLayers(critic_network,’actFC2′,’add/in1′);
critic_network = connectLayers(critic_network,’stateFC3′,’add/in2′);
plot(critic_network)
critic = dlnetwork(critic_network);
criticOptions = rlOptimizerOptions(‘LearnRate’,3e-04,’GradientThreshold’,1);
critic = rlQValueFunction(critic,obsInfo,actInfo,…
‘ObservationInputNames’,’stateinp’,’ActionInputNames’,’actinp’);
%% actor
actorNetwork = [featureInputLayer(numObservations,Name = ‘observation’)
fullyConnectedLayer(72,Name = ‘actorFC1’)
reluLayer
fullyConnectedLayer(48,Name=’actorFc2′)
reluLayer
fullyConnectedLayer(36,Name=’actorFc3′)
reluLayer
fullyConnectedLayer(numActions,Name=’output’)
tanhLayer
scalingLayer(Name = ‘actorscaling’,scale = max(actInfo.UpperLimit))];
actorNetwork = dlnetwork(actorNetwork);
actorOptions = rlOptimizerOptions(‘LearnRate’,3e-04,’GradientThreshold’,1);
actor = rlContinuousDeterministicActor(actorNetwork,obsInfo,actInfo);
%% agent
agentOptions = rlDDPGAgentOptions(…
‘SampleTime’,Ts,…
‘ActorOptimizerOptions’,actorOptions,…
‘CriticOptimizerOptions’,criticOptions,…
‘ExperienceBufferLength’,1e6,…
‘MiniBatchSize’,128);
agentOptions.NoiseOptions.StandardDeviation = 0.1; %.07/sqrt(Ts) ;
agentOptions.NoiseOptions.StandardDeviationDecayRate = 1e-6;
maxepisodes = 5000;
maxsteps = ceil(Tf/Ts);
trainOpts = rlTrainingOptions(…
‘MaxEpisodes’,maxepisodes, …
‘MaxStepsPerEpisode’,maxsteps, …
‘ScoreAveragingWindowLength’,20, …
‘Verbose’,false, …
‘Plots’,’training-progress’,…
‘StopTrainingCriteria’,’EpisodeCount’,…
‘StopTrainingValue’,5000);
agent = rlDDPGAgent(actor,critic,agentOptions); ddpg, converg MATLAB Answers — New Questions
Add “Block Parametrization Manager” to custom ssc block for Simscape
For Simscape, I build a custom block "Vacuum pump" for the gas network. I have data from different suppliers and would like to select the data using the "Block Parametrization Manager" (see e.g. block "Centrifugal Pump (IL)").
Is it possible to add the "Block Parametrization Manager" to my custom block. If yes, what is the command-line to add in my ssc file.For Simscape, I build a custom block "Vacuum pump" for the gas network. I have data from different suppliers and would like to select the data using the "Block Parametrization Manager" (see e.g. block "Centrifugal Pump (IL)").
Is it possible to add the "Block Parametrization Manager" to my custom block. If yes, what is the command-line to add in my ssc file. For Simscape, I build a custom block "Vacuum pump" for the gas network. I have data from different suppliers and would like to select the data using the "Block Parametrization Manager" (see e.g. block "Centrifugal Pump (IL)").
Is it possible to add the "Block Parametrization Manager" to my custom block. If yes, what is the command-line to add in my ssc file. simscape MATLAB Answers — New Questions
Efficiency of “quadprog” in MATLAB
I need to use a QP solver for an NMPC (with SQP) scheme I am writing in MATLAB.
I am mostly writing everything from scratch, both to learn more about NMPC, and to have more control over the implementation when doing research. However, I don’t really feel the need to write my own QP solver, which would probably me way less effecient than modern solvers.
Initially i figured I’d just use quadprog for simplicity, but my supervisor says that this used to be a notoriously slow solver back in the day. I was wondering if this is still the case, or if it has been improved and can compare with other solvers today?
Also, what solvers are fairly efficient and are easy to obtain and use from MATLAB? (as alternatives to quadprog, if it does don’t perform well enough)I need to use a QP solver for an NMPC (with SQP) scheme I am writing in MATLAB.
I am mostly writing everything from scratch, both to learn more about NMPC, and to have more control over the implementation when doing research. However, I don’t really feel the need to write my own QP solver, which would probably me way less effecient than modern solvers.
Initially i figured I’d just use quadprog for simplicity, but my supervisor says that this used to be a notoriously slow solver back in the day. I was wondering if this is still the case, or if it has been improved and can compare with other solvers today?
Also, what solvers are fairly efficient and are easy to obtain and use from MATLAB? (as alternatives to quadprog, if it does don’t perform well enough) I need to use a QP solver for an NMPC (with SQP) scheme I am writing in MATLAB.
I am mostly writing everything from scratch, both to learn more about NMPC, and to have more control over the implementation when doing research. However, I don’t really feel the need to write my own QP solver, which would probably me way less effecient than modern solvers.
Initially i figured I’d just use quadprog for simplicity, but my supervisor says that this used to be a notoriously slow solver back in the day. I was wondering if this is still the case, or if it has been improved and can compare with other solvers today?
Also, what solvers are fairly efficient and are easy to obtain and use from MATLAB? (as alternatives to quadprog, if it does don’t perform well enough) quadprog, qp, efficiency, mpc, sqp MATLAB Answers — New Questions
How to calculate PSD estimate of acoustic data in 1Hz bins? pwelch?
Hi everyone,
I have several files of 118.5 second duration that I would like to calculate the PSD of. I want to do this in 1Hz frequency bins, with Hanning window and 50% overlap, and have considered using pwelch.
First I calibrate the data and then have tried to work out how to use pwelch to no avail so far:
path=(‘C:Usersdatafolder’);
d=dir(fullfile(path, ‘*.wav’)); %list all .wav files in path folder
files=length(d); %number of files in folder
for i=1:files %for each file
disp(d(i).name);
filename=fullfile(path, d(i).name); %get full filename
[xbit, fs]=audioread(filename); %and then sampled data and sampling
%freq (fs) from audioread function
cal=-176.2;
cal=power(10, cal/20); %calibration correction factor
calxbit=xbit*cal; %apply calibration
end
[pxx,f]=pwelch(calxbit, window, 0.5, [], 144e3);
How do I specify that I want to use 1Hz bins? My data is sampled at 144kHz.
Thanks!!Hi everyone,
I have several files of 118.5 second duration that I would like to calculate the PSD of. I want to do this in 1Hz frequency bins, with Hanning window and 50% overlap, and have considered using pwelch.
First I calibrate the data and then have tried to work out how to use pwelch to no avail so far:
path=(‘C:Usersdatafolder’);
d=dir(fullfile(path, ‘*.wav’)); %list all .wav files in path folder
files=length(d); %number of files in folder
for i=1:files %for each file
disp(d(i).name);
filename=fullfile(path, d(i).name); %get full filename
[xbit, fs]=audioread(filename); %and then sampled data and sampling
%freq (fs) from audioread function
cal=-176.2;
cal=power(10, cal/20); %calibration correction factor
calxbit=xbit*cal; %apply calibration
end
[pxx,f]=pwelch(calxbit, window, 0.5, [], 144e3);
How do I specify that I want to use 1Hz bins? My data is sampled at 144kHz.
Thanks!! Hi everyone,
I have several files of 118.5 second duration that I would like to calculate the PSD of. I want to do this in 1Hz frequency bins, with Hanning window and 50% overlap, and have considered using pwelch.
First I calibrate the data and then have tried to work out how to use pwelch to no avail so far:
path=(‘C:Usersdatafolder’);
d=dir(fullfile(path, ‘*.wav’)); %list all .wav files in path folder
files=length(d); %number of files in folder
for i=1:files %for each file
disp(d(i).name);
filename=fullfile(path, d(i).name); %get full filename
[xbit, fs]=audioread(filename); %and then sampled data and sampling
%freq (fs) from audioread function
cal=-176.2;
cal=power(10, cal/20); %calibration correction factor
calxbit=xbit*cal; %apply calibration
end
[pxx,f]=pwelch(calxbit, window, 0.5, [], 144e3);
How do I specify that I want to use 1Hz bins? My data is sampled at 144kHz.
Thanks!! power spectral density, acoustics, soundscape MATLAB Answers — New Questions
Fonctionnalité “glisser/déposer” d’une application .net Maui vers Word
Bonjour,
Pour le développement d’un projet en .Net C#, avec le framework Maui, j’aurais besoin d’implémenter une fonctionnalité de “glisser/déposer”, de mon application directement vers un fichier Word.
Cependant je n’arrive pas à avoir les autorisations nécessaires, et Word bloque cette action.
Est-ce que quelqu’un à déjà réussi à gérer cette fonctionnalité dans une application pour windows ?
Merci de votre retour
Bonjour,Pour le développement d’un projet en .Net C#, avec le framework Maui, j’aurais besoin d’implémenter une fonctionnalité de “glisser/déposer”, de mon application directement vers un fichier Word.Cependant je n’arrive pas à avoir les autorisations nécessaires, et Word bloque cette action.Est-ce que quelqu’un à déjà réussi à gérer cette fonctionnalité dans une application pour windows ?Merci de votre retour Read More
AZURE LAB USER SQL DB DELETE EACH TIME I REPUBLISH
@community
Good morning Community members,
I am having an issue, each time I republish the VM from the labs.azure.com portal the following happens:
the entire document and wipe offthe numerous installed app memory restarts ( e.g the extensions in VS code need to be reinstall)the databases created by the users also clear off
Please, can you help me with a step-by-step guide to prevent this from happening?
I appreciate your help, dear community members.
@communityGood morning Community members,I am having an issue, each time I republish the VM from the labs.azure.com portal the following happens:the entire document and wipe offthe numerous installed app memory restarts ( e.g the extensions in VS code need to be reinstall)the databases created by the users also clear offPlease, can you help me with a step-by-step guide to prevent this from happening? I appreciate your help, dear community members. Read More
Kernel Memory – Retrieval Augmented Generation (RAG) using Azure Open AI
Hello Community,
I am seeking for guidance here, Looking for Kernel Memory – Retrieval Augmented Generation (RAG) using Azure Open AI which can read file in kernel memory. I can ask question and based on memory it can answer my questions. I want to use .NetCore here for implementation.
I have referred below article but i did not found configuration related to Azure Open AI.
https://github.com/microsoft/kernel-memory/tree/main
Hello Community,I am seeking for guidance here, Looking for Kernel Memory – Retrieval Augmented Generation (RAG) using Azure Open AI which can read file in kernel memory. I can ask question and based on memory it can answer my questions. I want to use .NetCore here for implementation.I have referred below article but i did not found configuration related to Azure Open AI.https://github.com/microsoft/kernel-memory/tree/main Read More
Automatically accept an event when created in attendees’ outlook calendar
Hi,
I am currently using the API to create appointments on the internal technicians’ calendars. The account used to create the event has permission to modify the technicians’ calendars. I would like that when I create an event and invite Tech A, they do not have to accept or decline the event. This should work in the same way as if I were creating the appointment directly on their calendar, but in this case, I need to use a shared calendar that invites the technicians.
The topics I found on this subject are a few months old or more, and they mentioned that it was impossible. Are there any updates on this?
Thank you in advance.
Best regards,
Hi, I am currently using the API to create appointments on the internal technicians’ calendars. The account used to create the event has permission to modify the technicians’ calendars. I would like that when I create an event and invite Tech A, they do not have to accept or decline the event. This should work in the same way as if I were creating the appointment directly on their calendar, but in this case, I need to use a shared calendar that invites the technicians. The topics I found on this subject are a few months old or more, and they mentioned that it was impossible. Are there any updates on this? Thank you in advance.Best regards, Read More
Click Event of Command Bar in spfx webpart
Hi,
I have created a command bar buttons on sharepoint list via spfx webpart through the below link
At last I should be able to redirect to a page on click of command bar button.
But I am not able to find the click event of command bar button.
Please share your ideas on thoughts to achieve.
Regards,
Sudheer
Hi,I have created a command bar buttons on sharepoint list via spfx webpart through the below linkhttps://learn.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/building-simple-cmdset-with-dialog-apiAt last I should be able to redirect to a page on click of command bar button.But I am not able to find the click event of command bar button.Please share your ideas on thoughts to achieve.Regards,Sudheer Read More
Introducing SOC Optimization API
SOC optimization is a new feature designed to combine the power of out of the box content with the flexibility of the SIEM to help you optimize your SOC processes and coverage to your organization’s specific needs, priorities, threats and environment. The first phase of this new feature helps you gain deep insights into your data usage patterns and coverage gaps against specific threats. It provides actionable recommendations to tighten your ingestion rates for data that doesn’t provide security value, leverage correctly the data the does and improve your current coverage based on the threat landscape. You can learn more about the feature with the following resources.
Documentation: SOC optimization overview ; Recommendation’s logic
Short overview and demo: SOC optimization Ninja show
In dept webinar: Manage your data, costs and protections with SOC optimization
In this blog, we will focus on the API usage for SOC optimization. That’s right, if you didn’t know, there is an API available for you to interact with programmatically.
The API
Having an API for the SOC optimization feature is crucial for several reasons. We aim to unlock the power of precision-driven security and empower security teams through API with flexibility in automation, integration, customization, scalability and real-time access to SOC optimization data.
Refer to the Swagger specification and examples to learn more about the API.
Use cases
There are numerous scenarios where the SOC optimization API can be utilized. Here are some key use cases:
You can build custom reports and dashboards, for example, with Workbooks, Power BI, and other reporting tools. The Sentinel Optimization workbook has been updated with recommendation data via the API.
Integrate with third-party tools such as SOAR, ITSM, or any other applications that need to integrate with recommendations programmatically.
The API allows real-time access to SOC Optimization data. Security teams can retrieve up-to-date recommendations, trigger evaluations if needed, and respond promptly to the suggestions. Recommendations are calculated every 24 hours, and with the API you’re always up to date.
For customers or MSSPs managing multiple environments, the API provides a scalable way to handle recommendations across multiple workspaces.
You can export the data from the API and store it externally for audit, archiving, or tracking trends.
“We consider this feature as a valuable source of data for us and the customers we protect, it speeds up many tasks for us and provides meaningful insights we can act upon. The API and the reporting that it enables improves our efficiency and accuracy and reduces manual effort for custom reporting, thus reducing our costs and providing a better fidelity of service. “
Clive Watson – Solution Director, Quorum Cyber
Available actions
Below is a summary of the API actions and sample their sample responses.
1. Get recommendations
Use this action to list all the recommendations in your workspace.
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations
2. Get recommendation
This allows you to get a specific recommendation by id. The id can be obtained from the previous action.
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId}
3. Patch recommendation
This allows you to update the status of a recommendation. For example, mark a recommendation as in progress, completed, dismissed or reactivate a recommendation.
Supported values when configuring the state property are ‘Active’, ‘InProgress’, ‘Dismissed’, ‘CompletedByUser’ and ‘CompletedBySystem’
PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId}
4. Reevaluate recommendation
Use this action to manually trigger the evaluation for a recommendation.
POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId} /triggerEvaluation
Sample workbook
If you need a sample for reference or to get started, you can refer to the Microsoft Sentinel Optimization Workbook as mentioned earlier. Install the workbook from the content hub, save the template, and launch the workbook. You will find the ‘SOC Optimization’ tab that visualizes the data based on the SOC optimization API.
Expand the items under ‘Details’ to drill down into each optimization type. Below are sample screenshots for ‘data value optimization’ and ‘threat-based optimization’ from the workbook.
Edit the workbook to check the parameters defined for SOC optimization (at the top of the workbook) and see how each visualization is built.
Customer story
Below is the case study shared by Quorum Cyber:
“When we first saw the preview of SOC Optimization the idea resonated with work we already do for customers as their MSSP. We knew that customers would be excited by this level of detail and insight provided and they would ask us questions about this. We were impressed with the API provided from day one, it worked immediately with Sentinel Workbooks, and we were able to almost immediately incorporate new reports on a customer-by-customer basis.
However, we were really interested in how we could scale this knowledge and be proactive. This is where the API really helped us; we were able to use it to detect all customers with data and bring those insights centrally to report on them. This gave us a few advantages; one was that we could see where a customer had an issue and where we might need to assist. For example, a customer has a warning about zero usage of a table (which you can’t detect otherwise), this helps our on-boarding team and improves our ongoing management, as it’s good to know that a table may have been asked for but isn’t used, or that over time the usage or importance of this may have changed and maybe we can adjust accordingly.
Detection coverage is a key part of us being an MSSP, we look to provide threat-led analytic rules to our customers, so having insights from the API on what might be missing and areas to investigate is crucial and looking at that data across customers at scale has given us many invaluable insights. For example, one customer being recommended coverage is important but having many customers with the same recommendation might mean this is a crucial task and we need to adopt the recommendation faster.
What we also appreciated was the link back to the Microsoft Sentinel GitHub for each analytic and the counts of active vs. available, so not only did we know that there were, for example, eight of 10 active detections deployed, but we had the GUID of that detection to look it up. With that data were able to correlate that GUID to our own GitHub repository to match to any customization we have done to that use case.”
Summary
Get started with the SOC optimization API today. We hope that this detailed walkthrough will help you unlock your use cases via the API.
Here is a list of useful resources mentioned in the blog:
API: Swagger specification and examples
Documentation: SOC optimization overview ; Recommendation’s logic
Short overview and demo: SOC optimization Ninja show
In dept webinar: Manage your data, costs and protections with SOC optimization
Workbook: Sentinel Optimization workbook
Microsoft Tech Community – Latest Blogs –Read More
fzero of MATLAB and FindRoot of Mathematica give different results
Dear all, I am writing a small script to solve the temperature dependence of magnetization using a toy model. Mathematically, the problem is to determine the relation between reduced magnetization and reduced temperature . The equation is given by , where is the Brillouin function.
To solve this problem, I transform it into a root-finding problem, specifically . I used MATLAB’s fzero and Mathematica’s FindRoot to solve this equation. However, I noticed that the results from the two methods are not consistent. The result from Mathematica matches the reference, while the MATLAB result also appears reasonable. In both cases, as a function of tends to zero from two different directions as increases.
Is this correct? Could you please comment or share your opinions on this matter?
Here is the MATLAB code:
clearvars; clc; close all; fclose all; format compact; format short;
B = @(J, x) ((2*J+1)/(2*J))*coth(((2*J+1)/(2*J))*x)-(1/(2*J)).*coth((1/(2*J))*x);
J = 1/2;
n = 101;
tau_array = linspace(0, 1.2, n);
m_array = zeros(1, n);
for i = 1:n
tau = tau_array(i);
fun = @(m) B(J, ((3*J)/(J+1))*m*(1/tau)) – m;
x = fzero(fun,[-1, 1]);
m_array(i) = x;
end
fig = figure();
ax = axes(fig);
plot(ax, tau_array, m_array,"LineWidth",2,"Color","red");
xlabel(‘Reudced temperature, tau’);
ylabel(‘Redueced magnetization, m’)
title(‘m as a function of tau’)
ax.TickDir = ‘out’;
Here is the Mathematica code:
Here is the reference result, which is taken from this paper [DOI: 10.1109/ISSE.2008.5276604; https://ieeexplore.ieee.org/document/5276604](See Equation 20 and Figure 3)
Thank you.Dear all, I am writing a small script to solve the temperature dependence of magnetization using a toy model. Mathematically, the problem is to determine the relation between reduced magnetization and reduced temperature . The equation is given by , where is the Brillouin function.
To solve this problem, I transform it into a root-finding problem, specifically . I used MATLAB’s fzero and Mathematica’s FindRoot to solve this equation. However, I noticed that the results from the two methods are not consistent. The result from Mathematica matches the reference, while the MATLAB result also appears reasonable. In both cases, as a function of tends to zero from two different directions as increases.
Is this correct? Could you please comment or share your opinions on this matter?
Here is the MATLAB code:
clearvars; clc; close all; fclose all; format compact; format short;
B = @(J, x) ((2*J+1)/(2*J))*coth(((2*J+1)/(2*J))*x)-(1/(2*J)).*coth((1/(2*J))*x);
J = 1/2;
n = 101;
tau_array = linspace(0, 1.2, n);
m_array = zeros(1, n);
for i = 1:n
tau = tau_array(i);
fun = @(m) B(J, ((3*J)/(J+1))*m*(1/tau)) – m;
x = fzero(fun,[-1, 1]);
m_array(i) = x;
end
fig = figure();
ax = axes(fig);
plot(ax, tau_array, m_array,"LineWidth",2,"Color","red");
xlabel(‘Reudced temperature, tau’);
ylabel(‘Redueced magnetization, m’)
title(‘m as a function of tau’)
ax.TickDir = ‘out’;
Here is the Mathematica code:
Here is the reference result, which is taken from this paper [DOI: 10.1109/ISSE.2008.5276604; https://ieeexplore.ieee.org/document/5276604](See Equation 20 and Figure 3)
Thank you. Dear all, I am writing a small script to solve the temperature dependence of magnetization using a toy model. Mathematically, the problem is to determine the relation between reduced magnetization and reduced temperature . The equation is given by , where is the Brillouin function.
To solve this problem, I transform it into a root-finding problem, specifically . I used MATLAB’s fzero and Mathematica’s FindRoot to solve this equation. However, I noticed that the results from the two methods are not consistent. The result from Mathematica matches the reference, while the MATLAB result also appears reasonable. In both cases, as a function of tends to zero from two different directions as increases.
Is this correct? Could you please comment or share your opinions on this matter?
Here is the MATLAB code:
clearvars; clc; close all; fclose all; format compact; format short;
B = @(J, x) ((2*J+1)/(2*J))*coth(((2*J+1)/(2*J))*x)-(1/(2*J)).*coth((1/(2*J))*x);
J = 1/2;
n = 101;
tau_array = linspace(0, 1.2, n);
m_array = zeros(1, n);
for i = 1:n
tau = tau_array(i);
fun = @(m) B(J, ((3*J)/(J+1))*m*(1/tau)) – m;
x = fzero(fun,[-1, 1]);
m_array(i) = x;
end
fig = figure();
ax = axes(fig);
plot(ax, tau_array, m_array,"LineWidth",2,"Color","red");
xlabel(‘Reudced temperature, tau’);
ylabel(‘Redueced magnetization, m’)
title(‘m as a function of tau’)
ax.TickDir = ‘out’;
Here is the Mathematica code:
Here is the reference result, which is taken from this paper [DOI: 10.1109/ISSE.2008.5276604; https://ieeexplore.ieee.org/document/5276604](See Equation 20 and Figure 3)
Thank you. fzero, findroot MATLAB Answers — New Questions
Using iFFt to convert acceleration PSD ((m/s²)²/Hz) to random acceleration time series (m/s²)
Hello everybody,
I am trying to create a random acceleration time series from a given acceleration PSD ((m/s²)²/Hz). I have browsed some of the answers to similar questions in MATLAB community and put together few lines of code.. I do get a random acceleration time series but the acceleration amplitudes are really really small ( I would expect amplitudes at around max 130-140 m/s² and I get amplitudes around max 0.01-0.015 m/s² ). I have used randome phases for the time series. The time series is expected to have a sample rate of 2000Hz.
Please help me to understand where am I going wrong.
I have uploaded 2 MATLAB Files: psd_freq.mat contains the array of frequencies in the PSD (10-1000Hz), psd_values.mat contains the corresponding values of acceleration PSD with the units ((m/s²)²/Hz).
Thank you so much!
% This script generates a time series from a given PSD.
% Random phase angles are used to generate the time signal.
% The given PSD has freq from 10-1000Hz and the time series should also contain
% freq from 10-1000Hz.
% Desired time series duration is 12.8s.
%% Step 1
t_fin = 12.8; % duration of time signal (s)
Fr = 1/t_fin; % freq. resolution of PSD
%% Step 2
F0 = 10; % start freq. of time signal (Hz)
Fmax = 1000; % end freq. of time signal (Hz)
Fs = 2*Fmax; % sampling freq. of time signal
time = [0:1/Fs:t_fin]’; % time array
%% Step 3
% interpolating the given PSD
f = 0:Fr:Fmax;
PSD = [interp1(psd_freq, psd_disp_3150repeats, f)];
PSD(isnan(PSD))=0; % replace the non-existing frequencies in PSD with 0
%% Step 4
% calculating amplitudes from PSD
P1ampl = zeros(size(PSD));
for j=1:length(P1ampl)
if PSD(j)==0
P1ampl(j) = sqrt(Fr*PSD(j));
else
P1ampl(j) = sqrt(2*Fr*PSD(j));
end
end
P1ampl=P1ampl’;
%% Step 5
% generating random phases for the time series
P1phase = [rand(1, numel(P1ampl))*(2*pi)]’;
%% Step 6
P2 = [P1ampl.*exp(P1phase*1i)]’; % combining amplitudes and phases
P2=[P2,fliplr(conj(P2(2:end)))]; % flipping the array to make a fullsided array
%% Step 7
s=[ifft(P2)]’; % inverse FFT
plot(time,s)Hello everybody,
I am trying to create a random acceleration time series from a given acceleration PSD ((m/s²)²/Hz). I have browsed some of the answers to similar questions in MATLAB community and put together few lines of code.. I do get a random acceleration time series but the acceleration amplitudes are really really small ( I would expect amplitudes at around max 130-140 m/s² and I get amplitudes around max 0.01-0.015 m/s² ). I have used randome phases for the time series. The time series is expected to have a sample rate of 2000Hz.
Please help me to understand where am I going wrong.
I have uploaded 2 MATLAB Files: psd_freq.mat contains the array of frequencies in the PSD (10-1000Hz), psd_values.mat contains the corresponding values of acceleration PSD with the units ((m/s²)²/Hz).
Thank you so much!
% This script generates a time series from a given PSD.
% Random phase angles are used to generate the time signal.
% The given PSD has freq from 10-1000Hz and the time series should also contain
% freq from 10-1000Hz.
% Desired time series duration is 12.8s.
%% Step 1
t_fin = 12.8; % duration of time signal (s)
Fr = 1/t_fin; % freq. resolution of PSD
%% Step 2
F0 = 10; % start freq. of time signal (Hz)
Fmax = 1000; % end freq. of time signal (Hz)
Fs = 2*Fmax; % sampling freq. of time signal
time = [0:1/Fs:t_fin]’; % time array
%% Step 3
% interpolating the given PSD
f = 0:Fr:Fmax;
PSD = [interp1(psd_freq, psd_disp_3150repeats, f)];
PSD(isnan(PSD))=0; % replace the non-existing frequencies in PSD with 0
%% Step 4
% calculating amplitudes from PSD
P1ampl = zeros(size(PSD));
for j=1:length(P1ampl)
if PSD(j)==0
P1ampl(j) = sqrt(Fr*PSD(j));
else
P1ampl(j) = sqrt(2*Fr*PSD(j));
end
end
P1ampl=P1ampl’;
%% Step 5
% generating random phases for the time series
P1phase = [rand(1, numel(P1ampl))*(2*pi)]’;
%% Step 6
P2 = [P1ampl.*exp(P1phase*1i)]’; % combining amplitudes and phases
P2=[P2,fliplr(conj(P2(2:end)))]; % flipping the array to make a fullsided array
%% Step 7
s=[ifft(P2)]’; % inverse FFT
plot(time,s) Hello everybody,
I am trying to create a random acceleration time series from a given acceleration PSD ((m/s²)²/Hz). I have browsed some of the answers to similar questions in MATLAB community and put together few lines of code.. I do get a random acceleration time series but the acceleration amplitudes are really really small ( I would expect amplitudes at around max 130-140 m/s² and I get amplitudes around max 0.01-0.015 m/s² ). I have used randome phases for the time series. The time series is expected to have a sample rate of 2000Hz.
Please help me to understand where am I going wrong.
I have uploaded 2 MATLAB Files: psd_freq.mat contains the array of frequencies in the PSD (10-1000Hz), psd_values.mat contains the corresponding values of acceleration PSD with the units ((m/s²)²/Hz).
Thank you so much!
% This script generates a time series from a given PSD.
% Random phase angles are used to generate the time signal.
% The given PSD has freq from 10-1000Hz and the time series should also contain
% freq from 10-1000Hz.
% Desired time series duration is 12.8s.
%% Step 1
t_fin = 12.8; % duration of time signal (s)
Fr = 1/t_fin; % freq. resolution of PSD
%% Step 2
F0 = 10; % start freq. of time signal (Hz)
Fmax = 1000; % end freq. of time signal (Hz)
Fs = 2*Fmax; % sampling freq. of time signal
time = [0:1/Fs:t_fin]’; % time array
%% Step 3
% interpolating the given PSD
f = 0:Fr:Fmax;
PSD = [interp1(psd_freq, psd_disp_3150repeats, f)];
PSD(isnan(PSD))=0; % replace the non-existing frequencies in PSD with 0
%% Step 4
% calculating amplitudes from PSD
P1ampl = zeros(size(PSD));
for j=1:length(P1ampl)
if PSD(j)==0
P1ampl(j) = sqrt(Fr*PSD(j));
else
P1ampl(j) = sqrt(2*Fr*PSD(j));
end
end
P1ampl=P1ampl’;
%% Step 5
% generating random phases for the time series
P1phase = [rand(1, numel(P1ampl))*(2*pi)]’;
%% Step 6
P2 = [P1ampl.*exp(P1phase*1i)]’; % combining amplitudes and phases
P2=[P2,fliplr(conj(P2(2:end)))]; % flipping the array to make a fullsided array
%% Step 7
s=[ifft(P2)]’; % inverse FFT
plot(time,s) ifft, psd, time series, acceleration psd, psd to time series, fft MATLAB Answers — New Questions
gather() in tall array inverse is incorrect
Hi,
I am testing simple code with tall array inverse and gather(). The following results are different, anyone knows how to fix gather? As I am using tall array for AA and bb.
AA = ones(13,9);
bb = ones(13,1);
AA_t = tall(ones(13,9));
bb_t = tall(ones(13,1));
gather(AA_tbb_t);
AA bb;Hi,
I am testing simple code with tall array inverse and gather(). The following results are different, anyone knows how to fix gather? As I am using tall array for AA and bb.
AA = ones(13,9);
bb = ones(13,1);
AA_t = tall(ones(13,9));
bb_t = tall(ones(13,1));
gather(AA_tbb_t);
AA bb; Hi,
I am testing simple code with tall array inverse and gather(). The following results are different, anyone knows how to fix gather? As I am using tall array for AA and bb.
AA = ones(13,9);
bb = ones(13,1);
AA_t = tall(ones(13,9));
bb_t = tall(ones(13,1));
gather(AA_tbb_t);
AA bb; tall array, gather, inverse MATLAB Answers — New Questions
Message Stuck in the Outbox Folder in Outlook New
Dear All:
I am using Outlook new under Windows 10 Enterprise and Microsoft Office 365. As of last Monday, I have a message stuck in my outbox folder in Outlook New. The message should not be there as it was actually sent, and the recipient had actually replied to it. If I switch to the old Outlook, then I do not see this message in the outbox folder. If I try to delete the message in the outbox folder in Outlook New, it gets deleted, but it re-appears as soon as I move out and then back in the outbox folder, or if I restart Outlook. Also, when I delete the message, next to the outbox folder name, I still see the number 1, indicating that there still is a message in the folder. I have tried synchronising, and also emptying the outbox folder, but to no avail. This is a very simple message, with no attachments and with just a few lines of text. Any ideas what might be going on?
Thank you in advance.
Dear All: I am using Outlook new under Windows 10 Enterprise and Microsoft Office 365. As of last Monday, I have a message stuck in my outbox folder in Outlook New. The message should not be there as it was actually sent, and the recipient had actually replied to it. If I switch to the old Outlook, then I do not see this message in the outbox folder. If I try to delete the message in the outbox folder in Outlook New, it gets deleted, but it re-appears as soon as I move out and then back in the outbox folder, or if I restart Outlook. Also, when I delete the message, next to the outbox folder name, I still see the number 1, indicating that there still is a message in the folder. I have tried synchronising, and also emptying the outbox folder, but to no avail. This is a very simple message, with no attachments and with just a few lines of text. Any ideas what might be going on? Thank you in advance. Read More
Teams to Block Federated Communications with Trial Tenants
Microsoft is moving to block federated communications with trial Microsoft 365 tenants to cut off a potential exploitation route for attackers. The new block goes into force on July 29, 2024, and is controlled by the ExternalAccessWithTrialTenants setting in the tenant federation configuration policy. We’ve been saying for years that tenants should clamp down on federated chat. It seems that Microsoft now agrees.
https://office365itpros.com/2024/06/27/federated-communications-block/
Microsoft is moving to block federated communications with trial Microsoft 365 tenants to cut off a potential exploitation route for attackers. The new block goes into force on July 29, 2024, and is controlled by the ExternalAccessWithTrialTenants setting in the tenant federation configuration policy. We’ve been saying for years that tenants should clamp down on federated chat. It seems that Microsoft now agrees.
https://office365itpros.com/2024/06/27/federated-communications-block/ Read More
I can not pass Employment verification
Hello,
I can not pass Employment verification.
I updated whois information for the primary domain with the company’s legal data.I set visible to whois information.I renewed my primary domain with the company’s legal data and provided the order receipt in the support ticket.I already updated primary and secondary contact information (email address and phone number) with the personal’s email address and phone number.I already provided the Article of Incorporation document.
But, still can’t get approve for my domain name.
How can I pass it?
Hello,I can not pass Employment verification. I updated whois information for the primary domain with the company’s legal data.I set visible to whois information.I renewed my primary domain with the company’s legal data and provided the order receipt in the support ticket.I already updated primary and secondary contact information (email address and phone number) with the personal’s email address and phone number.I already provided the Article of Incorporation document.But, still can’t get approve for my domain name.How can I pass it? Read More
Office 365 Authenticator App Installation Prompt for AuthenticationPurpose
Dear Community,
We have few Office365 Accounts which are generic & we can’t enable MFA for those Users.
But Microsoft has enforced it & even through MFA is Disabled for those accounts it’s still prompting on them to install the App.
Note: Isn’t there a way to have a work around for this?
Thanks.
Dear Community, We have few Office365 Accounts which are generic & we can’t enable MFA for those Users.But Microsoft has enforced it & even through MFA is Disabled for those accounts it’s still prompting on them to install the App. Note: Isn’t there a way to have a work around for this? Thanks. Read More
Easy way to remove background music from a song?
Hi tech experts,
I’m currently working on a project where I need to isolate the vocals from a song by removing the background music. I’ve heard there are various methods and tools that can achieve this, but I’m not sure which ones are the most effective and user-friendly.
Can anyone recommend the best software or online tools for removing background music from a song? Additionally, if there are any step-by-step guides or tutorials that you could point me to, that would be incredibly helpful.
Hi tech experts, I’m currently working on a project where I need to isolate the vocals from a song by removing the background music. I’ve heard there are various methods and tools that can achieve this, but I’m not sure which ones are the most effective and user-friendly. Can anyone recommend the best software or online tools for removing background music from a song? Additionally, if there are any step-by-step guides or tutorials that you could point me to, that would be incredibly helpful. Read More