Month: June 2024
Unable to access partner account due to lost 2FA phone
I lost my phone used for 2FA for my Microsoft Partner account. I’ve tried repeatedly to recover my account, providing multiple supporting documentation, but have not been able to do so. I’ve not yet been able to find a phone number to talk with a real person, and all the ‘Contact Us’ links I can find require you log onto your account in order to access the content, but I cannot log on due to 2FA method lost. Is this what’s considered Catch 22? Is anybody here able to provide a method of contacting a Microsoft Partner representative without 2FA?
I lost my phone used for 2FA for my Microsoft Partner account. I’ve tried repeatedly to recover my account, providing multiple supporting documentation, but have not been able to do so. I’ve not yet been able to find a phone number to talk with a real person, and all the ‘Contact Us’ links I can find require you log onto your account in order to access the content, but I cannot log on due to 2FA method lost. Is this what’s considered Catch 22? Is anybody here able to provide a method of contacting a Microsoft Partner representative without 2FA? Read More
Normalizing by means of zero-mean
Hello friends,
I am working on retinal images and need to make them standard before processing, because some images are dark others are very light. So before processing I am doing the following:
gemiddeld=mean2(DOG)
standaard_afwyking=std2(DOG)
NormalizedArray = (DOG-gemiddeld) ./ standaard_afwyking;
NormalizedArray =((NormalizedArray + 3)./ 6).*255
figure,imshow(NormalizedArray);
This is not working, because the output is just a blank white image.How can I fix this?Hello friends,
I am working on retinal images and need to make them standard before processing, because some images are dark others are very light. So before processing I am doing the following:
gemiddeld=mean2(DOG)
standaard_afwyking=std2(DOG)
NormalizedArray = (DOG-gemiddeld) ./ standaard_afwyking;
NormalizedArray =((NormalizedArray + 3)./ 6).*255
figure,imshow(NormalizedArray);
This is not working, because the output is just a blank white image.How can I fix this? Hello friends,
I am working on retinal images and need to make them standard before processing, because some images are dark others are very light. So before processing I am doing the following:
gemiddeld=mean2(DOG)
standaard_afwyking=std2(DOG)
NormalizedArray = (DOG-gemiddeld) ./ standaard_afwyking;
NormalizedArray =((NormalizedArray + 3)./ 6).*255
figure,imshow(NormalizedArray);
This is not working, because the output is just a blank white image.How can I fix this? zero-mean on images MATLAB Answers — New Questions
Best Text/number location on the plot
Hello,
I want to generate the values of x on each subplot and i was wondering if there is a way to get the text or numbers placed in ‘best’ location than specifying (x,y) coordinates for the text location.
x(1) on plot 1
x(2) on plot 2 etc inside a forloop
thank you
danHello,
I want to generate the values of x on each subplot and i was wondering if there is a way to get the text or numbers placed in ‘best’ location than specifying (x,y) coordinates for the text location.
x(1) on plot 1
x(2) on plot 2 etc inside a forloop
thank you
dan Hello,
I want to generate the values of x on each subplot and i was wondering if there is a way to get the text or numbers placed in ‘best’ location than specifying (x,y) coordinates for the text location.
x(1) on plot 1
x(2) on plot 2 etc inside a forloop
thank you
dan add text, forloop MATLAB Answers — New Questions
fill area between two polar curves
Hello , i have these two formulas, i would like to fill the area between these two curves
is there a way to do it with patch command?
Thanks
<</matlabcentral/answers/uploaded_files/70181/Capture.JPG>>
phi=0.87*sin((log(r)*pi)/(log(tau)));
phi_shifted_45=0.87*sin((log(r)*pi)/(log(tau)))+0.78;Hello , i have these two formulas, i would like to fill the area between these two curves
is there a way to do it with patch command?
Thanks
<</matlabcentral/answers/uploaded_files/70181/Capture.JPG>>
phi=0.87*sin((log(r)*pi)/(log(tau)));
phi_shifted_45=0.87*sin((log(r)*pi)/(log(tau)))+0.78; Hello , i have these two formulas, i would like to fill the area between these two curves
is there a way to do it with patch command?
Thanks
<</matlabcentral/answers/uploaded_files/70181/Capture.JPG>>
phi=0.87*sin((log(r)*pi)/(log(tau)));
phi_shifted_45=0.87*sin((log(r)*pi)/(log(tau)))+0.78; patch between polar curves MATLAB Answers — New Questions
Why did all my online course progress disappear?
Why did all my online course progress disappear?Why did all my online course progress disappear? Why did all my online course progress disappear? onramp, self, paced, online, courses, lost, progress MATLAB Answers — New Questions
Quer fazer um curso sobre IA generativa?
Você quer aprender a criar conteúdos incríveis com a ajuda da inteligência artificial?
Então você precisa conhecer o curso fluêncIA, o primeiro curso online gratuito de IA generativa da Microsoft Brasil.
Neste curso, você vai aprender como usar ferramentas de IA para gerar textos, relatório, planilhas imagens, apresentações e muito mais. Você vai descobrir como a IA pode potencializar a sua criatividade e inovação em diversos campos e projetos.
O curso fluencIA é ideal para quem quer se atualizar sobre as tendências e as possibilidades da IA generativa, sem precisar de conhecimentos prévios de programação ou matemática.
O curso é totalmente online, e conta com os seguintes módulos:
A Historia da IA
O que é IA generativa
Evolução das buscas online
Como ser mais produtivo usando o BingChat
Etica e Responsabilidade em IA
Como usar o Copilot
Acesse aqui o curso
<
div
style=”
position
: relative;
padding-bottom
: 56.25%;
padding-top
: 30px;
height
: 0;
overflow
: hidden;
min-width
: 320px;”><
iframe
class=”embeddedVideoFrame” src=”
https://youtu.be/CPM869ywmcw” title=”
teaser FluencIA
” frameborder=”0″ allowfullscreen=”allowfullscreen” ></
iframe
></
div
>
Você quer aprender a criar conteúdos incríveis com a ajuda da inteligência artificial?
Então você precisa conhecer o curso fluêncIA, o primeiro curso online gratuito de IA generativa da Microsoft Brasil.
Neste curso, você vai aprender como usar ferramentas de IA para gerar textos, relatório, planilhas imagens, apresentações e muito mais. Você vai descobrir como a IA pode potencializar a sua criatividade e inovação em diversos campos e projetos.
O curso fluencIA é ideal para quem quer se atualizar sobre as tendências e as possibilidades da IA generativa, sem precisar de conhecimentos prévios de programação ou matemática.
O curso é totalmente online, e conta com os seguintes módulos:
A Historia da IA
O que é IA generativa
Evolução das buscas online
Como ser mais produtivo usando o BingChat
Etica e Responsabilidade em IA
Como usar o Copilot
Acesse aqui o curso
<div style=”position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; min-width: 320px;”><iframe class=”embeddedVideoFrame” src=”https://youtu.be/CPM869ywmcw” title=”teaser FluencIA” frameborder=”0″ allowfullscreen=”allowfullscreen” ></iframe></div> Read More
Struggle to format JSON formatting
Good Morning
I’m using this beautiful Gantt formatting from GitHub but I’m struggling to modify it. – To be clear, I’m trying to create a view similar to an Excel sheet because people can’t cope with too much change at a time!
This is what it looks like.
I want to change two things and neither works. That’s a reflection of my JSON knowledge more than anything else.
I want to remove the inline edit function.And I don’t want to show this at all when another field has a value in it.
This is the code:
{
“$schema”: “https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json”,
“elmType”: “div”,
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row”,
“width”: “100%”,
“align-items”: “center”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “column”,
“width”: “100%”,
“margin-bottom”: “3px”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“justify-content”: “space-between”,
“width”: “100%”,
“white-space”: “nowrap”
},
“attributes”: {
“class”: “ms-fontSize-xs”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row-reverse”
},
“children”: [
{
“elmType”: “div”,
“txtContent”: “=if(loopIndex(‘_startdate’)>1,”,’/’)+[$_startdate]”,
“forEach”: “_startdate in split(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’)),’-‘)”
}
]
},
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row-reverse”
},
“children”: [
{
“elmType”: “div”,
“txtContent”: “=if(loopIndex(‘_enddate’)>1,”,’/’)+[$_enddate]”,
“forEach”: “_enddate in split(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’)),’-‘)”
}
]
}
]
},
{
“elmType”: “div”,
“style”: {
“width”: “100%”,
“border”: “1px solid”,
“height”: “13px”,
“position”: “relative”,
“overflow”: “hidden”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“position”: “absolute”,
“height”: “100%”,
“width”: “=((Number(Date(substring(@currentField,indexOf(@currentField,’^’)+1,indexOf(@currentField,'(‘))))-Number(Date(substring(@currentField,0,indexOf(@currentField,’^’))))+86400000)/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”,
“left”: “=((Number(Date(substring(@currentField,0,indexOf(@currentField,’^’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’)))))/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”
},
“attributes”: {
“class”: “ms-bgColor-themePrimary”,
“title”: “=[$Start.displayValue]+’ ~ ‘+[$End.displayValue]”
}
},
{
“elmType”: “div”,
“style”: {
“position”: “absolute”,
“height”: “100%”,
“width”: “=(86400000/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”,
“left”: “=((Number(@now)-(60*60*1000*12)-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’)))))/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”,
“display”: “flex”,
“justify-content”: “center”,
“align-items”: “center”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“width”: “100%”,
“min-width”: “5px”,
“height”: “100%”
},
“attributes”: {
“class”: “ms-bgColor-sharedRed10”,
“title”: “Now”
}
}
]
}
]
}
]
},
{
“elmType”: “div”,
“style”: {
“padding”: “10px”,
“margin-left”: “5px”,
“cursor”: “pointer”,
“border-radius”: “50%”
},
“attributes”: {
“iconName”: “Edit”,
“class”: “ms-bgColor-themeLighter–hover”
},
“customCardProps”: {
“openOnEvent”: “click”,
“directionalHint”: “topCenter”,
“isBeakVisible”: true,
“formatter”: {
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “column”,
“padding”: “10px 15px”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row”,
“align-items”: “center”
},
“children”: [
{
“elmType”: “div”,
“inlineEditField”: “[$Start]”,
“style”: {
“border”: “1px solid”,
“padding”: “5px 10px”,
“border-radius”: “3px”,
“display”: “flex”,
“align-items”: “center”,
“margin”: “5px”
},
“children”: [
{
“elmType”: “span”,
“txtContent”: “[$Start.displayValue]”
},
{
“elmType”: “span”,
“style”: {
“margin-left”: “8px”
},
“attributes”: {
“iconName”: “Edit”
}
}
]
},
{
“elmType”: “div”,
“txtContent”: “~”,
“style”: {
“margin”: “5px”
}
},
{
“elmType”: “div”,
“inlineEditField”: “[$End]”,
“style”: {
“border”: “1px solid”,
“padding”: “5px 10px”,
“border-radius”: “3px”,
“display”: “flex”,
“align-items”: “center”,
“margin”: “5px”
},
“children”: [
{
“elmType”: “span”,
“txtContent”: “[$End.displayValue]”
},
{
“elmType”: “span”,
“style”: {
“margin-left”: “8px”
},
“attributes”: {
“iconName”: “Edit”
}
}
]
}
]
},
{
“elmType”: “div”,
“txtContent”: “If you changed the date manually instead of using the calendar, press [Enter] after changing the date.”,
“style”: {
“max-width”: “300px”,
“text-align”: “center”
},
“attributes”: {
“class”: “ms-fontSize-s”
}
}
]
}
}
}
]
}
]
}
I would appreciate any suggestions. Whatever I have taken out so far hasn’t changed a thing.
Thanks,
Christine
Good Morning I’m using this beautiful Gantt formatting from GitHub but I’m struggling to modify it. – To be clear, I’m trying to create a view similar to an Excel sheet because people can’t cope with too much change at a time! This is what it looks like. I want to change two things and neither works. That’s a reflection of my JSON knowledge more than anything else.I want to remove the inline edit function.And I don’t want to show this at all when another field has a value in it.This is the code: {
“$schema”: “https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json”,
“elmType”: “div”,
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row”,
“width”: “100%”,
“align-items”: “center”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “column”,
“width”: “100%”,
“margin-bottom”: “3px”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“justify-content”: “space-between”,
“width”: “100%”,
“white-space”: “nowrap”
},
“attributes”: {
“class”: “ms-fontSize-xs”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row-reverse”
},
“children”: [
{
“elmType”: “div”,
“txtContent”: “=if(loopIndex(‘_startdate’)>1,”,’/’)+[$_startdate]”,
“forEach”: “_startdate in split(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’)),’-‘)”
}
]
},
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row-reverse”
},
“children”: [
{
“elmType”: “div”,
“txtContent”: “=if(loopIndex(‘_enddate’)>1,”,’/’)+[$_enddate]”,
“forEach”: “_enddate in split(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’)),’-‘)”
}
]
}
]
},
{
“elmType”: “div”,
“style”: {
“width”: “100%”,
“border”: “1px solid”,
“height”: “13px”,
“position”: “relative”,
“overflow”: “hidden”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“position”: “absolute”,
“height”: “100%”,
“width”: “=((Number(Date(substring(@currentField,indexOf(@currentField,’^’)+1,indexOf(@currentField,'(‘))))-Number(Date(substring(@currentField,0,indexOf(@currentField,’^’))))+86400000)/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”,
“left”: “=((Number(Date(substring(@currentField,0,indexOf(@currentField,’^’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’)))))/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”
},
“attributes”: {
“class”: “ms-bgColor-themePrimary”,
“title”: “=[$Start.displayValue]+’ ~ ‘+[$End.displayValue]”
}
},
{
“elmType”: “div”,
“style”: {
“position”: “absolute”,
“height”: “100%”,
“width”: “=(86400000/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”,
“left”: “=((Number(@now)-(60*60*1000*12)-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’)))))/(Number(Date(substring(@currentField,indexOf(@currentField,’_’)+1,indexOf(@currentField,’)’))))-Number(Date(substring(@currentField,indexOf(@currentField,'(‘)+1,indexOf(@currentField,’_’))))+86400000))*100+’%'”,
“display”: “flex”,
“justify-content”: “center”,
“align-items”: “center”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“width”: “100%”,
“min-width”: “5px”,
“height”: “100%”
},
“attributes”: {
“class”: “ms-bgColor-sharedRed10”,
“title”: “Now”
}
}
]
}
]
}
]
},
{
“elmType”: “div”,
“style”: {
“padding”: “10px”,
“margin-left”: “5px”,
“cursor”: “pointer”,
“border-radius”: “50%”
},
“attributes”: {
“iconName”: “Edit”,
“class”: “ms-bgColor-themeLighter–hover”
},
“customCardProps”: {
“openOnEvent”: “click”,
“directionalHint”: “topCenter”,
“isBeakVisible”: true,
“formatter”: {
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “column”,
“padding”: “10px 15px”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“display”: “flex”,
“flex-direction”: “row”,
“align-items”: “center”
},
“children”: [
{
“elmType”: “div”,
“inlineEditField”: “[$Start]”,
“style”: {
“border”: “1px solid”,
“padding”: “5px 10px”,
“border-radius”: “3px”,
“display”: “flex”,
“align-items”: “center”,
“margin”: “5px”
},
“children”: [
{
“elmType”: “span”,
“txtContent”: “[$Start.displayValue]”
},
{
“elmType”: “span”,
“style”: {
“margin-left”: “8px”
},
“attributes”: {
“iconName”: “Edit”
}
}
]
},
{
“elmType”: “div”,
“txtContent”: “~”,
“style”: {
“margin”: “5px”
}
},
{
“elmType”: “div”,
“inlineEditField”: “[$End]”,
“style”: {
“border”: “1px solid”,
“padding”: “5px 10px”,
“border-radius”: “3px”,
“display”: “flex”,
“align-items”: “center”,
“margin”: “5px”
},
“children”: [
{
“elmType”: “span”,
“txtContent”: “[$End.displayValue]”
},
{
“elmType”: “span”,
“style”: {
“margin-left”: “8px”
},
“attributes”: {
“iconName”: “Edit”
}
}
]
}
]
},
{
“elmType”: “div”,
“txtContent”: “If you changed the date manually instead of using the calendar, press [Enter] after changing the date.”,
“style”: {
“max-width”: “300px”,
“text-align”: “center”
},
“attributes”: {
“class”: “ms-fontSize-s”
}
}
]
}
}
}
]
}
]
} I would appreciate any suggestions. Whatever I have taken out so far hasn’t changed a thing. Thanks, Christine Read More
Manual Sleep option not working
This Win11 option used to work fine. Now it just returns you directly to the login screen. Any ideas on how to get this working again? Many thanks.
This Win11 option used to work fine. Now it just returns you directly to the login screen. Any ideas on how to get this working again? Many thanks. Read More
Troubleshooting – Survey does send out
Hi All,
This is likely in the wrong spot and I’m suggesting making a troubleshooting community specifically for Glint. I’m so curious as to how there would not be more resources when Viva Glint requires either a manual import or sftp. Did everyone else have a much easier go? At any rate, I think I have the Viva Glint system sorted, however, my Survey’s are simply not sending out. When I go through all the steps and run an export of who is was sent to, the downloaded file has no user
Hi All, This is likely in the wrong spot and I’m suggesting making a troubleshooting community specifically for Glint. I’m so curious as to how there would not be more resources when Viva Glint requires either a manual import or sftp. Did everyone else have a much easier go? At any rate, I think I have the Viva Glint system sorted, however, my Survey’s are simply not sending out. When I go through all the steps and run an export of who is was sent to, the downloaded file has no user Read More
Announcing: General Availability of Azure API Center extension for Visual Studio Code
About Azure API Center extension for Visual Studio Code
The Azure API Center extension for Visual Studio Code enables developers to build, discover, try, and consume APIs in your API center:
Build APIs – Make APIs you’re building discoverable to others by registering them in your API center. Shift-left API design conformance checks into Visual Studio Code with integrated linting support. Ensure that new API versions don’t break API consumers with breaking change detection.
Discover APIs – Browse the APIs in your API center, and view their details and documentation.
Try APIs – Use Swagger UI or REST client to explore API requests and responses.
Consume APIs – Generate API SDK clients for your favorite language including JavaScript, TypeScript, .NET, Python, and Java, using the Microsoft Kiota engine that generates SDKs for Microsoft Graph, GitHub, and more.
Register APIs
Register an API in your API center directly from Visual Studio Code, either by registering it as a one-time operation or with a CI/CD pipeline.
API design conformance
To ensure design conformance with organizational standards as you build APIs, the Azure API Center extension for Visual Studio Code provides integrated support for API specification linting with Spectral.
Breaking change detection
When introducing new versions of your API, it’s important to ensure that changes introduced do not break API consumers on previous versions of your API. The Azure API Center extension for Visual Studio Code makes this easy with breaking change detection for OpenAPI specification documents powered by Optic.
Discover APIs
Your API center resources appear in the tree view on the left-hand side. Expand an API center resource to see APIs, versions, definitions, environments, and deployments.
View API documentation
You can view the documentation for an API definition in your API center and try API operations. This feature is only available for OpenAPI-based APIs in your API center.
Generate HTTP file
You can view a .http file based on the API definition in your API center. If the REST Client extension is installed, you can make requests directory from the Visual Studio Code editor. This feature is only available for OpenAPI-based APIs in your API center.
Generate API client
Use the Microsoft Kiota extension to generate an API client for your favorite language. This feature is only available for OpenAPI-based APIs in your API center.
Export API specification
You can export an API specification from a definition and then download it as a file.
Get started with Azure API Center extension for Visual Studio Code now!
Microsoft Tech Community – Latest Blogs –Read More
rotate3d off not working
I have an application that uses _pcshow()_ to plot a point cloud. It seems to activate _rotate3d_ which I have to turn off by all means because I need the mouse cursor to trigger click events of graphical objects. When using _rotate3d off_ after _pcshow()_ Matlab prints the following error messages:
Property assignment is not allowed when the object is empty. Use subscripted assignment to create an array element.
Error in vision.internal.pc.initializePCSceneControl>localRotateStopMode (line 79)
btn.State = ‘off’;
Error in hgfeval (line 62)
feval(fcn{1},varargin{:},fcn{2:end});
Error in matlab.uitools.internal.uimode/modeControl (line 22)
hgfeval(hThis.ModeStopFcn);
Error in matlab.uitools.internal.uimode/set.Enable (line 173)
obj.Enable = modeControl(obj,value);
Error in matlab.uitools.internal.uimodemanager>localSetMode (line 173)
set(currMode,’Enable’,’off’);
Error in matlab.uitools.internal.uimodemanager/set.CurrentMode (line 111)
obj.CurrentMode = localSetMode(obj,value);
Error in activateuimode (line 20)
set(hManager,’CurrentMode’,hMode);
Error in rotate3d>setState (line 319)
activateuimode(fig,”);
Error in rotate3d (line 202)
setState(hTarget,arg,getStyle(hFig));
Error in TransformApp/onAddImgClick (line 214)
rotate3d off
Error in TransformApp>@(varargin)obj.onAddImgClick(varargin{:}) (line 52)
‘Callback’, @obj.onAddImgClick);
Error using uiwait (line 81)
Error while evaluating UIControl Callback.
>>
Note that the application uses _uiwait()_ and _uiresume()_ to block the execution of the script that launches my application. I also tried _h = rotate3d(); h.Enable = ‘off’;_ but it produces the same error.I have an application that uses _pcshow()_ to plot a point cloud. It seems to activate _rotate3d_ which I have to turn off by all means because I need the mouse cursor to trigger click events of graphical objects. When using _rotate3d off_ after _pcshow()_ Matlab prints the following error messages:
Property assignment is not allowed when the object is empty. Use subscripted assignment to create an array element.
Error in vision.internal.pc.initializePCSceneControl>localRotateStopMode (line 79)
btn.State = ‘off’;
Error in hgfeval (line 62)
feval(fcn{1},varargin{:},fcn{2:end});
Error in matlab.uitools.internal.uimode/modeControl (line 22)
hgfeval(hThis.ModeStopFcn);
Error in matlab.uitools.internal.uimode/set.Enable (line 173)
obj.Enable = modeControl(obj,value);
Error in matlab.uitools.internal.uimodemanager>localSetMode (line 173)
set(currMode,’Enable’,’off’);
Error in matlab.uitools.internal.uimodemanager/set.CurrentMode (line 111)
obj.CurrentMode = localSetMode(obj,value);
Error in activateuimode (line 20)
set(hManager,’CurrentMode’,hMode);
Error in rotate3d>setState (line 319)
activateuimode(fig,”);
Error in rotate3d (line 202)
setState(hTarget,arg,getStyle(hFig));
Error in TransformApp/onAddImgClick (line 214)
rotate3d off
Error in TransformApp>@(varargin)obj.onAddImgClick(varargin{:}) (line 52)
‘Callback’, @obj.onAddImgClick);
Error using uiwait (line 81)
Error while evaluating UIControl Callback.
>>
Note that the application uses _uiwait()_ and _uiresume()_ to block the execution of the script that launches my application. I also tried _h = rotate3d(); h.Enable = ‘off’;_ but it produces the same error. I have an application that uses _pcshow()_ to plot a point cloud. It seems to activate _rotate3d_ which I have to turn off by all means because I need the mouse cursor to trigger click events of graphical objects. When using _rotate3d off_ after _pcshow()_ Matlab prints the following error messages:
Property assignment is not allowed when the object is empty. Use subscripted assignment to create an array element.
Error in vision.internal.pc.initializePCSceneControl>localRotateStopMode (line 79)
btn.State = ‘off’;
Error in hgfeval (line 62)
feval(fcn{1},varargin{:},fcn{2:end});
Error in matlab.uitools.internal.uimode/modeControl (line 22)
hgfeval(hThis.ModeStopFcn);
Error in matlab.uitools.internal.uimode/set.Enable (line 173)
obj.Enable = modeControl(obj,value);
Error in matlab.uitools.internal.uimodemanager>localSetMode (line 173)
set(currMode,’Enable’,’off’);
Error in matlab.uitools.internal.uimodemanager/set.CurrentMode (line 111)
obj.CurrentMode = localSetMode(obj,value);
Error in activateuimode (line 20)
set(hManager,’CurrentMode’,hMode);
Error in rotate3d>setState (line 319)
activateuimode(fig,”);
Error in rotate3d (line 202)
setState(hTarget,arg,getStyle(hFig));
Error in TransformApp/onAddImgClick (line 214)
rotate3d off
Error in TransformApp>@(varargin)obj.onAddImgClick(varargin{:}) (line 52)
‘Callback’, @obj.onAddImgClick);
Error using uiwait (line 81)
Error while evaluating UIControl Callback.
>>
Note that the application uses _uiwait()_ and _uiresume()_ to block the execution of the script that launches my application. I also tried _h = rotate3d(); h.Enable = ‘off’;_ but it produces the same error. rotate3d MATLAB Answers — New Questions
rotate3d not working properly with matlab GUI and pcshow function
Hey!
I’m trying to create a GUI to visualize and postprocess some data (ASCII pointcloud). Unfortunately the rotate3d function does not work the intended way when dealing with GUI elements and pcshow. There seems to be an issue with the button up callback. On one hand, the rotation of the axis is somehow buggy (everytime I klick again, it jumps to another view) and on the other hand, the cursor does not change when leaving the axis.
I tried this on several machines. It occours on r2017b and r2016b. On r2015b, the rotation works perfect, but the cursor still does not change.
plot3 and scatter3 are working fine but are not suitable for my application.
I added two files with an mwe to help spotting the issue.
Thank you for your help.Hey!
I’m trying to create a GUI to visualize and postprocess some data (ASCII pointcloud). Unfortunately the rotate3d function does not work the intended way when dealing with GUI elements and pcshow. There seems to be an issue with the button up callback. On one hand, the rotation of the axis is somehow buggy (everytime I klick again, it jumps to another view) and on the other hand, the cursor does not change when leaving the axis.
I tried this on several machines. It occours on r2017b and r2016b. On r2015b, the rotation works perfect, but the cursor still does not change.
plot3 and scatter3 are working fine but are not suitable for my application.
I added two files with an mwe to help spotting the issue.
Thank you for your help. Hey!
I’m trying to create a GUI to visualize and postprocess some data (ASCII pointcloud). Unfortunately the rotate3d function does not work the intended way when dealing with GUI elements and pcshow. There seems to be an issue with the button up callback. On one hand, the rotation of the axis is somehow buggy (everytime I klick again, it jumps to another view) and on the other hand, the cursor does not change when leaving the axis.
I tried this on several machines. It occours on r2017b and r2016b. On r2015b, the rotation works perfect, but the cursor still does not change.
plot3 and scatter3 are working fine but are not suitable for my application.
I added two files with an mwe to help spotting the issue.
Thank you for your help. rotate3d, pcshow, gui, problem MATLAB Answers — New Questions
Document default font not working
I noticed setting the control to set a default font is now vaporware – it does not work. Any idea when MS will restore this function?
I noticed setting the control to set a default font is now vaporware – it does not work. Any idea when MS will restore this function? Read More
ZylonkOS:For all
Dear Microsoft,I am Matthew, the owner of Zylonkcompany
, creator of ZylonkOS, a new operating system featuring a robust kernel and advanced AI functionalities. We are enthusiastic about the current technological revolution, particularly in AI, and its potential for shaping the future of PCs. We are keen to introduce ZylonkOS and explore potential opportunities for collaboration or feedback from your specialized team. We believe our innovations can complement the current technological ecosystem, enhancing user experiences and advancing AI capabilities in operating systems.Thank you for your attention. We are available to provide further information or arrange a discussion at your convenience.Best regards,Matthew
Owner, Zylonkcompany
Email: email address removed for privacy reasons
Commercial and Support Contact
Dear Microsoft,I am Matthew, the owner of Zylonkcompany , creator of ZylonkOS, a new operating system featuring a robust kernel and advanced AI functionalities. We are enthusiastic about the current technological revolution, particularly in AI, and its potential for shaping the future of PCs. We are keen to introduce ZylonkOS and explore potential opportunities for collaboration or feedback from your specialized team. We believe our innovations can complement the current technological ecosystem, enhancing user experiences and advancing AI capabilities in operating systems.Thank you for your attention. We are available to provide further information or arrange a discussion at your convenience.Best regards,MatthewOwner, Zylonkcompany Email: email address removed for privacy reasonsCommercial and Support Contact Read More
Validate CSV files before ingestion in Microsoft Data Factory Pipelines
A very common task for Microsoft Fabric, Azure Data Factory and Synapse Analytics Pipelines is to receive unstructured files, land them in an Azure Data Lake (ADLS Gen2) and load them into structured tables. This often leads to a very common issue with unstructured files when “SOMETHING HAS CHANGED” and the unstructured file does not meet the defined table format. If issues are not handled properly within the pipeline, the data workloads will fail and users will be asking “WHERE’S MY DATA???” You then need to communicate with the owner of the file, have them fix the issues, then rerun the pipeline after the issues have been fixed. Along with unhappy users, rerunning failed pipelines adds cost. Validating these files before they are processed allows your pipelines to continue ingesting files that do have the correct format. For pipelines that do fail, your code or process can pinpoint what caused the error, leading to faster resolution of the issue. In this blog, we’ll walk through a Microsoft Fabric Data Factory Pipeline that validates incoming CSV files for common errors before loading to a Microsoft Fabric Lakehouse delta table.
Overview
This source files in this process are in an Azure Data Lake storage account, which has a shortcut in the Fabric Lakehouse. A data pipeline calls a Spark notebook to check the file for any new or missing columns, any invalid data for the expected data type, or any duplicate key values. If the file has no errors, the pipeline loads the CSV data into a parquet file and then calls another Spark notebook to load the parquet file into a delta table in the Lakehouse. Otherwise if there are errors in the file, the pipeline sends a notification email.
Source files and metadata files
In this solution, files are landing in an ADLS Gen 2 container folder called scenario1-validatecsv which has a shortcut to it in the Fabric Lakehouse. The files folder contains the files to process; the metadata folder contains a file describing the format each CSV file type should conform to.
This solution is to load to a table called customer, which has columns number, name, city and state. In the format definition file, customer_meta, there’s a row for each customer table column, providing the column name, the column data type, and whether or not it is a key value. This metadata file is later used in a Spark notebook to validate that the incoming file conforms to this format.
Orchestrator Pipeline
The orchestrator pipeline is very simple – since I am running my pipeline as a scheduled batch, it loops through the files folder and invokes another pipeline for each file. Note the parametrization of the lakehouse path, the source folders, the destination folder and the file format. This allows the same process to be run for any lakehouse and for any file format/table to load.
For Each activity
When invoking the child pipeline from the For Each activity, it passes in the parameter values from the orchestrator pipeline plus the name of the current file being processed and the metadata file name, which is the file format name with ‘_meta’ appended to it.
Child pipeline – Validate and load pipeline
The Validate and load pipeline validates the current CSV file, and if the file conforms to the format, loads it into a parquet table then merges the parquet data into a delta table.
1 – Parameters
Parameters passed in from the orchestrator pipeline for the current CSV file to process
2 – Set variable activity – Set parquet file name
Removes .csv to define the parquet file name
3- Notebook activity – Validate CSV and load file to parquet
Calls the notebook, passing in parameter and variable values
Below is the pyspark code for the notebook. It gets the column names and inferred data types from the CSV file as well as the column names, data types and key field names from the metadata file. It checks if the column names match, if the data types match, if there are keys defined for the file, and finally if there are any duplicate key values in the incoming file. If there were duplicate key fields, it writes the duplicate key values to a file. If the names and data types match and there are no duplicate key values, it writes the file to parquet and passes back the key field names from the metadata file; otherwise, it returns the appropriate error message.
# Files/landingzone/files parameters
lakehousepath = ‘abfss://xxxxx@msit-onelake.dfs.fabric.microsoft.com/xxxxx’
filename = ‘customer_good.csv’
outputfilename = ‘customer_good’
metadatafilename = ‘customer_meta.csv’
filefolder = ‘scenario1-validatecsv/landingzone/files’
metadatafolder = ‘scenario1-validatecsv/landingzone/metadata’
outputfolder = ‘scenario1-validatecsv/bronze’
fileformat = ‘customer’
# Import pandas and pyarrow
import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq
# Set path variables
inputfilepath = f'{lakehousepath}/Files/{filefolder}/’
metadatapath = f'{lakehousepath}/Files/{metadatafolder}/’
outputpath = f'{lakehousepath}/Files/{outputfolder}/’
# Read the text file and the metadata file
print(f'{inputfilepath}{filename}’)
data = pd.read_csv(f'{inputfilepath}{filename}’)
meta = pd.read_csv(f'{metadatapath}{metadatafilename}’)
# only get the column names for the file formattype that was input
meta = meta.loc[meta[‘formatname’] == fileformat]
print(data.dtypes)
print(list(meta[‘columname’]))
# get any key fields specified
keyfields = meta.loc[meta[‘iskeyfield’] == 1, ‘columname’].tolist()
print(keyfields)
# Check for errors in CSV
haserror = 0
# Check if the column names match
if list(data.columns) != list(meta[“columname”]):
# Issue an error
result = “Error: Column names do not match.”
haserror = 1
else:
# Check if the datatypes match
if list(data.dtypes) != list(meta[“datatype”]):
# Issue an error
result = “Error: Datatypes do not match.”
haserror = 1
else:
# If the file has key fields, check if there are any duplicate keys
# if there are duplicate keys, also write the duplicate key values to a file
if keyfields != ”:
checkdups = data.groupby(keyfields).size().reset_index(name=’count’)
print(checkdups)
if checkdups[‘count’].max() > 1:
dups = checkdups[checkdups[‘count’] > 1]
print(dups)
haserror = 1
(dups.to_csv(f'{lakehousepath}/Files/processed/error_duplicate_key_values/duplicaterecords_{filename}’,
mode=’w’,index=False))
result = ‘Error: Duplicate key values’
if haserror == 0:
# Write the data to parquet if no errors
df = spark.read.csv(f”{inputfilepath}{filename}”, header=True, inferSchema=True)
print(f’File is: {inputfilepath}{filename}’)
display(df)
df.write.mode(“overwrite”).format(“parquet”).save(f”{outputpath}{outputfilename}”)
result = f”Data written to parquet successfully. Key fields are:{keyfields} “
mssparkutils.notebook.exit(str(result))
4 – Copy data activity – Move File to processed folder
This Copy Data activity essentially moves the csv file from the ADLS Gen 2 files folder to a processed folder in the Fabric Lakehouse
Destination folder name is derived from the Notebook exit value, which returns success or the error message
5 – If condition activity: If File Validated
Check if the CSV file was successfully validated and loaded to parquet
5a – File validated successfully
If there were no errors in the file, call the spark notebook to merge the parquet file written from the previous pyspark notebook to the delta table.
Parameters for the lakehousepath, the parquet file path and name, the table name, and the key fields passed in. As shown above, the key fields were derived from the previous pyspark notebook and are passed into the Create or Merge to Table notebook.
Below is the spark notebook code. If the delta table already exists and there are key fields, it builds a string expression to be used on the pyspark merge statement and then performs the merge on the delta table. If there are no key fields or the table does not exist, it writes or overwrites the delta table.
# create or merge to delta
# input parameters below
lakehousepath = ‘abfss://xxxe@yyyy.dfs.fabric.microsoft.com/xxx’
inputfolder = ‘scenario1-validatecsv/bronze’
filename = ‘customergood’
tablename = ‘customer’
keyfields = “[‘number’]”
# define paths
outputpath = f'{lakehousepath}/Tables/{tablename}’
inputpath = f'{lakehousepath}/Files/{inputfolder}/{filename}’
# import delta table and sql functions
from delta.tables import *
from pyspark.sql.functions import *
# get list of key values
keylist = eval(keyfields)
print(keylist)
# read input parquet file
df2 = spark.read.parquet(inputpath)
# display(df2)
# if there are keyfields define in the table, build the merge key expression
if keyfields != None:
mergekey = ”
keycount = 0
for key in keylist:
mergekey = mergekey + f’t.{key} = s.{key} AND ‘
mergeKeyExpr = mergekey.rstrip(‘ AND’)
print(mergeKeyExpr)
# if table exists and if table should be upserted as indicated by the merge key, do an upsert and return how many rows were inserted and updated;
# if it does not exist or is a full load, overwrite existing table return how many rows were inserted
if DeltaTable.isDeltaTable(spark,outputpath) and mergeKeyExpr is not None:
deltaTable = DeltaTable.forPath(spark,outputpath)
deltaTable.alias(“t”).merge(
df2.alias(“s”),
mergeKeyExpr
).whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()
history = deltaTable.history(1).select(“operationMetrics”)
operationMetrics = history.collect()[0][“operationMetrics”]
numInserted = operationMetrics[“numTargetRowsInserted”]
numUpdated = operationMetrics[“numTargetRowsUpdated”]
else:
df2.write.format(“delta”).mode(“overwrite”).save(outputpath)
numInserted = df2.count()
numUpdated = 0
print(numInserted)
result = “numInserted=”+str(numInserted)+ “|numUpdated=”+str(numUpdated)
mssparkutils.notebook.exit(str(result))
5b – File validation failed
If there was an error in the CSV file, send an email notification
Summary
Building resilient and efficient data pipelines is critical no matter your ETL tool or data sources. Thinking ahead to what types of problems can, and inevitably will, occur and incorporating data validation into your pipelines will save you a lot of headaches when those pipelines are moved into production. The examples in this blog are just a few of the most common errors with CSV files. Get ahead of those data issues and resolve them without last minute fixes and disrupting other processes! You can easily enhance the methods in this blog by including other validations or validating other unstructured file types like Json. You can change the pipeline to run as soon as the unstructured file is loaded into ADLS rather than in batch. Using techniques like this to reduce hard errors gives your pipelines (and yourself!) more credibility!
Microsoft Tech Community – Latest Blogs –Read More
Azure Linux Partner Showcase: Isovalent
This month’s partner showcase is with our partner Isovalent which is now a part of Cisco. We are highlighting how Cilium, Azure Linux and Azure Kubernetes Service bring value to our mutual customers. The Azure Linux team is excited to have Isovalent as a partner!
From Isovalent:
“Azure Kubernetes Service (AKS) uses Cilium natively, wherein AKS combines the robust control plane of Azure CNI with Cilium’s data plane to provide high-performance networking and security. Isovalent Cilium Enterprise is an enterprise-grade, hardened distribution of open-source projects Cilium, Hubble, and Tetragon, built and supported by the Cilium creators.”
The already expansive tutorial from Isovalent in the blog link below has now been updated to highlight how users can perform OS SKU migration (preview).
Please see the Isovalent blog for more information – Cilium, Azure Linux, and Azure Kubernetes Service come together. – Isovalent
Find Isovalent Container Offer for Kubernetes on the Azure Marketplace – https://azuremarketplace.microsoft.com/marketplace/apps/isovalentinc1662143158090.isovalent-cilium-enterprise?tab=Overview
Find Isovalent on the AKS Partner Solutions page – https://learn.microsoft.com/en-us/azure/aks/azure-linux-aks-partner-solutions#isovalent
Microsoft Tech Community – Latest Blogs –Read More
CWT on each frequency one at a time
I have a very large matrix (512×1500000) and I want to run CWT on each row. However, since CWT creates a new dimension with its frequency bands, I am running into memory issues. I do not need to store all frequency bands; I just need to run the analysis on each frequency band individually. So, I am wondering if there is a way to run CWT on each frequency band one at a time in a for loop.I have a very large matrix (512×1500000) and I want to run CWT on each row. However, since CWT creates a new dimension with its frequency bands, I am running into memory issues. I do not need to store all frequency bands; I just need to run the analysis on each frequency band individually. So, I am wondering if there is a way to run CWT on each frequency band one at a time in a for loop. I have a very large matrix (512×1500000) and I want to run CWT on each row. However, since CWT creates a new dimension with its frequency bands, I am running into memory issues. I do not need to store all frequency bands; I just need to run the analysis on each frequency band individually. So, I am wondering if there is a way to run CWT on each frequency band one at a time in a for loop. signal processing, cwt MATLAB Answers — New Questions
Is there a way I can refer to current open tabs on my computer?
I want to make a GUI that makes the user select a tab on their computer to then look at that tab to analyse it as an input for an image analysis process. Is there a way to refer to open computer tabs in Matlab?I want to make a GUI that makes the user select a tab on their computer to then look at that tab to analyse it as an input for an image analysis process. Is there a way to refer to open computer tabs in Matlab? I want to make a GUI that makes the user select a tab on their computer to then look at that tab to analyse it as an input for an image analysis process. Is there a way to refer to open computer tabs in Matlab? gui, guide, image acquisition MATLAB Answers — New Questions
I am trying to solve a Matlab Simulink problem
Hello, I am having rrouble with this problem, i tried the constant block, ramp block but didnt work out, can ayone please help me with itHello, I am having rrouble with this problem, i tried the constant block, ramp block but didnt work out, can ayone please help me with it Hello, I am having rrouble with this problem, i tried the constant block, ramp block but didnt work out, can ayone please help me with it simulink block MATLAB Answers — New Questions
Email Distribution List in Outlook for External Users
Hi,
Is there a way to create a distribution list in Outlook 365 for a group of external users e.g. my clients?
The important requirement is that they should not be able to see each others’ email addresses, nor should they be able to email each other by clicking reply or reply all. So, it’s kind of an old fashioned distribution list but only I can send emails to members and if anyone replies to the email, it should come back to me.
I checked the “Contact Group” in Outlook but that displays each member’s name/email so that wouldn’t work.
Hi, Is there a way to create a distribution list in Outlook 365 for a group of external users e.g. my clients? The important requirement is that they should not be able to see each others’ email addresses, nor should they be able to email each other by clicking reply or reply all. So, it’s kind of an old fashioned distribution list but only I can send emails to members and if anyone replies to the email, it should come back to me. I checked the “Contact Group” in Outlook but that displays each member’s name/email so that wouldn’t work. Read More