Month: June 2024
Purview Scan – Oracle Public Synonym Issues
Oracle Public Synonym lineage is incomplete. The synonym is not linked to it’s actual source.Viewing an instance of a synonym in Purview does not show any source lineage. Viewing a table that should be the source for synonyms does not show any lineage for the synonyms. There are oracle_synonym_source relationships but the oracle_synonym relationships are only created if the source and synonym are in the same schema and are still not reflected in the lineage view.Public synonyms are replicated for every schema that is scanned and have no lineage or relationships attached.This results in a large number of synonym objects getting created whenever we scan due to our systems using public synonyms.
I’ve found that oracle_synonyms can’t be part of any direct lineage. The oracle_synonym entity type only inherits from supertypes Asset and oracle_synonym_source. Oracle_synonym_source has no supertypes. To be part of a lineage chain an entity type must be one of the objects like a Dataset, etc that has sources/sinks/inputs/outputs. So, global synonyms are never stitched to their source tables and the synonyms that do get recognized for a relationship because they are assigned to a specific schema don’t get lineage.
We are starting to work around this by coding our loader applications that get the synonym info from the source DB and set of lineage directly to the source table when we parse queries, but this can be hit or miss.
Is this a know issue and will it be addressed in the future?
Oracle Public Synonym lineage is incomplete. The synonym is not linked to it’s actual source.Viewing an instance of a synonym in Purview does not show any source lineage. Viewing a table that should be the source for synonyms does not show any lineage for the synonyms. There are oracle_synonym_source relationships but the oracle_synonym relationships are only created if the source and synonym are in the same schema and are still not reflected in the lineage view.Public synonyms are replicated for every schema that is scanned and have no lineage or relationships attached.This results in a large number of synonym objects getting created whenever we scan due to our systems using public synonyms.I’ve found that oracle_synonyms can’t be part of any direct lineage. The oracle_synonym entity type only inherits from supertypes Asset and oracle_synonym_source. Oracle_synonym_source has no supertypes. To be part of a lineage chain an entity type must be one of the objects like a Dataset, etc that has sources/sinks/inputs/outputs. So, global synonyms are never stitched to their source tables and the synonyms that do get recognized for a relationship because they are assigned to a specific schema don’t get lineage. We are starting to work around this by coding our loader applications that get the synonym info from the source DB and set of lineage directly to the source table when we parse queries, but this can be hit or miss. Is this a know issue and will it be addressed in the future? Read More
WebNN: Bringing AI Inference to the Browser
WebNN: Bringing AI Inference to the Browser
Imagine having the power of AI-driven facial recognition or real-time image classification directly in your browser. This is the promise of WebNN, a groundbreaking JavaScript API designed to bring neural network inference to web applications.
What is WebNN?
Web Neural Network API (WebNN) is a JavaScript API that empowers web developers to perform machine learning computations on neural networks directly within web applications. WebNN simplifies the integration of machine learning models into web apps, opening up new possibilities for interactive and intelligent applications right in the browser
WebNN is primarily designed for inference tasks rather than training. It provides an abstraction layer for efficient neural network inference acceleration in web applications. The Web Neural Network API (WebNN) is a web-friendly, hardware-agnostic abstraction layer for neural network inference acceleration. It allows web applications to efficiently run machine learning computations on various devices, including CPUs, GPUs, and dedicated AI accelerators1. Developers can leverage WebNN to perform inference tasks in web applications, benefiting from reduced latency, enhanced privacy, and GPU acceleration. If you’re interested in constructing and executing computational graphs of neural networks in the browser, WebNN provides a high-level interface for these tasks. As of now, WebNN is available in Edge and Chrome browsers.
With emerging ML innovations in both software and hardware ecosystem, one of the main challenges for the web is to bridge this software and hardware development and bring together a solution that scales across hardware platforms and works with any framework for web-based machine learning experiences. We propose the WebNN API as an abstraction for neural networks in the web browsers.
The architecture diagram shows how WebNN integrates with various machine learning frameworks and hardware platforms, enabling efficient neural network inference in web applications.
Understanding the WebNN Architecture Diagram:
The WebNN architecture diagram illustrates how the Web Neural Network API integrates with various components in a web-based machine learning workflow. Let’s walk through each layer and component:
Web App Layer
ONNX Models, TensorFlow Models, Other Models: These are pre-trained machine learning models that can be used for various tasks like image recognition, object detection, etc.
JS ML Frameworks (TensorFlow.js, ONNX.js, etc.): JavaScript-based machine learning frameworks that provide tools and libraries to work with these models directly in web applications.
Web Browser Layer
WebGPU: A web standard that provides high-performance graphics and computation on the web by leveraging the GPU.
WebNN: The Web Neural Network API, which provides a high-level interface for running neural network inference directly in the browser.
WebAssembly: A binary instruction format for a stack-based virtual machine, which enables high-performance applications to run on the web.
Native ML API Layer
ML Compute (MacOS/iOS): Apple’s machine learning framework for performing high-performance ML tasks on macOS and iOS devices.
DirectML (Windows): Microsoft’s Direct Machine Learning API, which provides GPU-accelerated machine learning on Windows.
NN API (Android): Android’s Neural Networks API, which provides hardware-accelerated inference operations on Android devices.
OpenVINO (Linux): Intel’s Open Visual Inference and Neural Network Optimization toolkit for deploying high-performance ML inference on Linux.
Hardware Layer
CPU: Central Processing Unit, the general-purpose processor in a computer.
GPU: Graphics Processing Unit, specialized for parallel processing and often used for accelerating machine learning tasks.
ML Accelerators: Dedicated hardware designed specifically for accelerating machine learning computations (e.g., NPUs, TPUs).
How It All Fits Together:
Web App Layer:
Developers use pre-trained models (like ONNX or TensorFlow) and JavaScript ML frameworks (like TensorFlow.js or ONNX.js) to build web applications with machine learning capabilities.
Web Browser Layer:
The web application runs in a web browser that supports the WebNN API. The browser can leverage WebGPU for high-performance computations, WebNN for neural network inference, and WebAssembly for executing performance-critical code.
Native ML API Layer:
The WebNN API in the browser translates the high-level neural network operations into calls to native machine learning APIs provided by the operating system. This ensures that the web application can take advantage of the best available hardware acceleration on the device, whether it’s running on macOS, Windows, Android, or Linux.
Hardware Layer:
The native machine learning APIs utilize the underlying hardware capabilities, such as CPU parallelism, GPU acceleration, or dedicated ML accelerators, to perform the neural network computations efficiently.
Benefits of This Architecture:
Hardware Agnostic: WebNN provides a hardware-agnostic layer, meaning developers don’t need to write platform-specific code. The same web application can run efficiently on different devices and operating systems.
Performance Optimization: By leveraging native ML APIs and hardware acceleration, web applications can achieve high performance for machine learning tasks.
Privacy: Data stays on the device, reducing the need to send sensitive information to remote servers.
Reduced Latency: In-browser inference reduces the delay associated with sending data to and from a server, enabling real-time applications like video analysis or face detection.
This architecture enables web developers to build powerful, efficient, and privacy-preserving machine learning applications that run directly in the browser. By abstracting
The following code sample illustrates a simple usage of this API:
Use Cases
WebNN offers several use cases for web applications. Here are some common scenarios where WebNN can be beneficial:
Face Recognition: Face Landmark (SimpleCNN) with WebNN.
Facial Landmark Detection: Use WebNN to detect facial landmarks, which can be useful for applications like augmented reality filters or emotion analysis.
Image Classification: Leverage WebNN for image classification tasks. You can demonstrate this using pre-trained models and the WebNN API.
Object Detection: Perform object detection in web applications by utilizing WebNN with pre-trained models.
Noise Suppression: Implement noise suppression models (e.g., RNNoise) using WebNN for audio processing,
Selfie Segmentation: Explore MediaPipe Selfie Segmentation using TFLite Web XNNPACK delegate and WebNN delegate for real-time background removal in selfies.
Semantic Segmentation: Use WebNN to implement semantic segmentation tasks, such as identifying object boundaries in images.
Style Transfer: Apply artistic style-transfer techniques to images using WebNN.
Remember that WebNN simplifies neural network inference in the browser, making it more accessible for web developers
Target hardware
Web applications and frameworks can target typical computing devices on popular operating systems that people use in their daily lives. Initial prototypes demonstrate respectable performance on:
Smartphones e.g. Google Pixel 3 or similar
Laptops e.g. 13″ MacBook Pro 2015 or similar
The WebNN API is not tied to specific platforms and is implementable by existing major platform APIs, such as:
Android Neural Networks API
Windows DirectML API
macOS/iOS ML Compute API
Depending on the underlying hardware capabilities, these platform APIs may make use of CPU parallelism, general-purpose GPU, or dedicated hardware accelerators for machine learning. The WebNN API provides performance adaptation options but remains hardware agnostic.
When running on GPUs, WebNN currently supports the following models:
Stable Diffusion Turbo
Stable Diffusion 1.5
Whisper-base
MobileNetv2
Segment Anything
ResNet
EfficientNet
SqueezeNet
WebNN also works with custom models as long as operator support is sufficient. Check status of operators here.
Installation Guide:
To get started with WebNN, follow these steps:
Browser Compatibility:
WebNN requires a compatible browser. Download the Microsoft Edge Dev channel version or later.
To enable WebNN, in your browser address bar, enter about://flags, and then press Enter. An Experiments page opens
In the Search flags box, enter webnn. Enables WebNN API appears
In the drop-down menu, select Enabled
Relaunch your browser
GitHub Repository:
Clone the WebNN Developer Preview repository to your local machine.
Navigate to the repository and explore the provided samples and examples.
Conclusion:
The WebNN API represents a significant advancement in bringing machine learning capabilities directly into web browsers, creating a powerful intersection between AI and web technologies. Here’s an expanded look at why this is transformative:
Empowering Web Developers – WebNN democratizes access to advanced machine learning by providing web developers with the tools to integrate AI models seamlessly into their web applications. This eliminates the need for extensive expertise in AI or hardware-specific optimizations, lowering the barrier to entry for AI development.
Performance and Efficiency – By leveraging native machine learning APIs and the underlying hardware capabilities, WebNN ensures that neural network inference tasks are performed efficiently. Whether it’s utilizing CPU parallelism, GPU acceleration, or dedicated ML accelerators, WebNN optimizes performance across various devices and operating systems. This results in faster inference times and a smoother user experience, even for computationally intensive tasks like real-time video analysis or object detection.
Privacy Preservation – One of the standout benefits of WebNN is its ability to perform inference directly on the device. This approach keeps user data local, eliminating the need to send sensitive information to remote servers. This is crucial for applications dealing with personal data, such as health monitoring apps, facial recognition systems, or any application where user privacy is a concern.
Reduced Latency – Performing inference in the browser dramatically reduces the latency associated with sending data to and from a server. This is particularly beneficial for real-time applications such as augmented reality (AR) filters, live video analysis, or interactive AI-driven experiences. Users can enjoy instantaneous responses and a more engaging interaction without the lag caused by network delays.
High Availability – With WebNN, web applications can operate offline once the necessary assets are cached. This ensures that AI functionalities remain accessible even in environments with poor or no internet connectivity. For example, an educational app using WebNN for interactive learning can function seamlessly during a flight or in remote areas without reliable internet access.
Cost Efficiency – By offloading computation to client devices, WebNN reduces the need for powerful server infrastructure. This leads to lower operational and maintenance costs for running AI/ML services in the cloud. Developers can deploy sophisticated AI features without incurring the high costs associated with cloud-based inference, making it a cost-effective solution for startups and large enterprises alike.
Future Opportunities:
WebNN opens up a world of possibilities for the future of web applications:
Edge AI: Enabling AI-powered functionalities at the edge, without relying on cloud services.
Interactive Experiences: Creating more dynamic and responsive web applications that can react in real-time to user interactions.
Privacy-First AI: As the demand for privacy-first AI solutions grows, WebNN positions itself as a pivotal technology that can bring powerful AI capabilities to the masses, right within their browsers.
Standardization: As WebNN matures and gains wider adoption, it has the potential to become a standard for web-based AI, encouraging more consistent and interoperable AI implementations across different browsers and platforms.
Final Thoughts:
The WebNN API is poised to play a pivotal role in the next generation of web development. Its promise of seamless AI integration, exceptional performance, and broad industry support makes it an exciting development to watch. As WebNN evolves, we can expect even more innovative applications and advancements at the intersection of AI and web technologies. The future of AI is not just in the cloud or on powerful servers—it’s right in your browser!
Stay tuned as we continue to follow the evolution of WebNN and its impact on the digital world. For more details, explore the WebNN Developer Preview website and start experimenting with this cutting-edge technology today!
Additional Links & References:
WebNN Developer Preview (microsoft.github.io)
WebNN tutorial | Microsoft Learn
WebNN | Web Machine Learning
Microsoft Tech Community – Latest Blogs –Read More
The farthest yticklabels do not appear when using ax.YAxisLocation = ‘origin’
The two farthest ytickslabels (in this case both -1 and +1), do not show up if I use ax.YAxisLocation = ‘origin’
x=-1:0.1:1;
plot(x,x,’o-‘)
ax=gca;
ax.YAxisLocation = ‘origin’;
set(ax,’fontsize’,20)
yticks([-1 -0.5 0 0.5 1])
Is there a way to show them without playing with ylim([-2 2]) as here below?
x=-1:0.1:1;
plot(x,x,’o-‘)
ax=gca;
ax.YAxisLocation = ‘origin’;
set(ax,’fontsize’,20)
yticks([-1 -0.5 0 0.5 1])
ylim([-2 2])The two farthest ytickslabels (in this case both -1 and +1), do not show up if I use ax.YAxisLocation = ‘origin’
x=-1:0.1:1;
plot(x,x,’o-‘)
ax=gca;
ax.YAxisLocation = ‘origin’;
set(ax,’fontsize’,20)
yticks([-1 -0.5 0 0.5 1])
Is there a way to show them without playing with ylim([-2 2]) as here below?
x=-1:0.1:1;
plot(x,x,’o-‘)
ax=gca;
ax.YAxisLocation = ‘origin’;
set(ax,’fontsize’,20)
yticks([-1 -0.5 0 0.5 1])
ylim([-2 2]) The two farthest ytickslabels (in this case both -1 and +1), do not show up if I use ax.YAxisLocation = ‘origin’
x=-1:0.1:1;
plot(x,x,’o-‘)
ax=gca;
ax.YAxisLocation = ‘origin’;
set(ax,’fontsize’,20)
yticks([-1 -0.5 0 0.5 1])
Is there a way to show them without playing with ylim([-2 2]) as here below?
x=-1:0.1:1;
plot(x,x,’o-‘)
ax=gca;
ax.YAxisLocation = ‘origin’;
set(ax,’fontsize’,20)
yticks([-1 -0.5 0 0.5 1])
ylim([-2 2]) yaxislocation, origin, yticks, yticklabels MATLAB Answers — New Questions
MATLAB for Windows 7 32-bit
Please can you help me out on how to download matlab trial version for Windows 7 32-bit for Engineering student.Please can you help me out on how to download matlab trial version for Windows 7 32-bit for Engineering student. Please can you help me out on how to download matlab trial version for Windows 7 32-bit for Engineering student. #matlabfor32bit #windows7 MATLAB Answers — New Questions
Tech Talks Presents: Announcing Power Pages Security Workspace | June 27th
Join us on Thursday, June 27th at 8am PT as Ankita Vishwakarma, Power Pages Product Manager presents Power Pages Security Workspace.
During this session we’ll…
Provide a feature walkthrough of the newly introduced ‘Security Workspace’ in design studio, covering new features like scan, advance settings, permissions etc and get feedback
Open the session for an interactive, casual discussion for our partners/security experts to speak on “what you all do today to secure your sites?” “what comes to mind when we talk about security?”
We hope you’ll join us!
Call to Action:
Click on the link to save the calendar invite: https://aka.ms/TechTalksInvite
View past recordings (sign in required): https://aka.ms/TechTalksRecording
Get started with the adoption tools here
Join us on Thursday, June 27th at 8am PT as Ankita Vishwakarma, Power Pages Product Manager presents Power Pages Security Workspace.
During this session we’ll…
Provide a feature walkthrough of the newly introduced ‘Security Workspace’ in design studio, covering new features like scan, advance settings, permissions etc and get feedback
Open the session for an interactive, casual discussion for our partners/security experts to speak on “what you all do today to secure your sites?” “what comes to mind when we talk about security?”
We hope you’ll join us!
Call to Action:
Click on the link to save the calendar invite: https://aka.ms/TechTalksInvite
View past recordings (sign in required): https://aka.ms/TechTalksRecording
Get started with the adoption tools here
Generated TOC, when using RD field code, yields every page as page 1
I have 37 separate Word documents. Word version is Microsoft Word for Microsoft 365 MSO (Version 2405 Build 16.0.17628.20006) 64-bit.
I have a separate document to generate a table of contents (TOC) using the Reference Document (RD) field code to reference my 37 other documents.
This worked great until recently when I generate the TOC, all headings came in correctly and every one of them showed page 1 in the TOC.
I can create a single document with all my files and generate the TOC with correct page numbers with no issue. It is using the RD to create a separate TOC file where the page numbering bug rears its ugly head.
Any help is greatly appreciated.
I have 37 separate Word documents. Word version is Microsoft Word for Microsoft 365 MSO (Version 2405 Build 16.0.17628.20006) 64-bit.I have a separate document to generate a table of contents (TOC) using the Reference Document (RD) field code to reference my 37 other documents.This worked great until recently when I generate the TOC, all headings came in correctly and every one of them showed page 1 in the TOC.I can create a single document with all my files and generate the TOC with correct page numbers with no issue. It is using the RD to create a separate TOC file where the page numbering bug rears its ugly head.Any help is greatly appreciated. Read More
“The sensor failed to register due to connectivity issues”
Trying to install an ATP sensor on our Azure DC VM and get the “The sensor failed to register due to connectivity issues” error upon starting the installation. We currently have a hybrid set up. Not sure what is causing the issue as we don’t use firewall allow lists at this time nor a proxy.
Trying to install an ATP sensor on our Azure DC VM and get the “The sensor failed to register due to connectivity issues” error upon starting the installation. We currently have a hybrid set up. Not sure what is causing the issue as we don’t use firewall allow lists at this time nor a proxy. Read More
c# How to loop and count back in another loop?
Hi,
var Quodown = new List<int>() {9,7,6,9,7,6,4,3,0};
double sumi = 0;
double avg = 0;
for (int i = 8; i < Quodown.Count; i–)
{
sumi += Quodown[i];
Print(“sumi: “+ sumi);
//Print(i);
for (int y = i; y < 8; y++)
{
for (int z = Quodown.Count; z > 0; z–)
{
avg = sumi / z;
//Print(“avg: “+ avg);
Print(z);
}
}
}
I want to create a movering average of numbers calculated backward.
For exemple, in the first part of the code i calculate the sum of numbers backward 0+3 = 0, 0+3+4= 7 etc.
I am trying to get the moving average of the sum of those numbers like average of 0 = 0 than 3+0 = 3/2 = 1.5
4 +3 +0 = 7/3 = 2.333
etc
but using this loop it is dividing by its last position 8, 7 , 6 when it should be 3,2,1
Any help?
Thank you
Hi, var Quodown = new List<int>() {9,7,6,9,7,6,4,3,0};
double sumi = 0;
double avg = 0;
for (int i = 8; i < Quodown.Count; i–)
{
sumi += Quodown[i];
Print(“sumi: “+ sumi);
//Print(i);
for (int y = i; y < 8; y++)
{
for (int z = Quodown.Count; z > 0; z–)
{
avg = sumi / z;
//Print(“avg: “+ avg);
Print(z);
}
}
}
I want to create a movering average of numbers calculated backward.For exemple, in the first part of the code i calculate the sum of numbers backward 0+3 = 0, 0+3+4= 7 etc.I am trying to get the moving average of the sum of those numbers like average of 0 = 0 than 3+0 = 3/2 = 1.5 4 +3 +0 = 7/3 = 2.333etcbut using this loop it is dividing by its last position 8, 7 , 6 when it should be 3,2,1 Any help?Thank you Read More
Index changes style
When I add an index to my document, it changes the style and font in the body of the document. Any ideas on how I can add an index and format its font without altering anything else in the document?
When I add an index to my document, it changes the style and font in the body of the document. Any ideas on how I can add an index and format its font without altering anything else in the document? Read More
Private gmail account
Hi.
I just added my gmail as a separate account on this work laptop (new Outlook as primary account for work). I read somewhere that this account would be private for my eyes only.
Is this true? If not, how can I make it so?
Thanks.
Hi.I just added my gmail as a separate account on this work laptop (new Outlook as primary account for work). I read somewhere that this account would be private for my eyes only. Is this true? If not, how can I make it so?Thanks. Read More
How to create Hyperlink within an if{}
Hello,
i have the following problem:
a Word-document contains some REF values like “isNewCustomer”. The text should show a textblock with an hyperlink only for new customers. I tried IF {} in two ways:
enclose the whole text-block including hyperlink, so the HYPERLINK {} is inside the IF{}use a hyperlink that has the IF {} inside the HYPERLINK{}
I hope i transfered my code fully to this answer because fieldfunctions can noct be copied into text.
The text should apper for new customer as
Hello customer,
you can user our services. As new customer you have to register first via “https://email address removed for privacy reasons”. After registration…
For an existing customer it should be
Hello customer,
you can user our services. After registration…
I tried as follows:
Hello customer,
you can user our services. { IF { REF isNewCustomer } = “true” “As new customer you have to register first via { HYPERLINK “https://email address removed for privacy reasons” } } After registration…
With this way of code the hyperlink included in the IF {} appears as pure text, not as a link.
Then I tried to build different text-blocks:
at first a text – block for all customer without any if{}after that the text for new customers with an if {} and without any linkafter that the hyperlink for new customers that contains an if{} in the HYPERLINK field function to show the hyperlink if it is an new customer and an empty string if it is not a new customerafter that the text that should appear after the link
Hello customer,
you can user our services. { IF { REF isNewCustomer } = “true” “As new customer you have to register first via ” } HYPERLINK { IF { REF isNewCustomer } = “true” “https://email address removed for privacy reasons” “”} } After registration…
In this way of code the link cannot been empty in the case that “isNewCustomer = “false”. When false I get “wrong hyperlink” because HYPERLINK { IF {…} is parsed as HYPLERLINK { “” }. It is the same when leaving the third paramter of the IF empty (HYPERLINK { IF { true “Link” } }.
If the newCustomer REF is true the hyperlink is shown as link but I can’t edit an other text. The short hyperlink here is only an example. The real link is about 200 characters long and should by displayed as “klick here” and open the real link by klick.
Ist there any way in Office 365 to fill in a hyperlink only if a REF variable has the suitable content, show an other text for the link and leave all blank if the REF doesn’t fit?
Many thanks
Siegbert
Hello,i have the following problem:a Word-document contains some REF values like “isNewCustomer”. The text should show a textblock with an hyperlink only for new customers. I tried IF {} in two ways:enclose the whole text-block including hyperlink, so the HYPERLINK {} is inside the IF{}use a hyperlink that has the IF {} inside the HYPERLINK{} I hope i transfered my code fully to this answer because fieldfunctions can noct be copied into text. The text should apper for new customer as Hello customer,
you can user our services. As new customer you have to register first via “https://email address removed for privacy reasons”. After registration… For an existing customer it should be Hello customer,
you can user our services. After registration… I tried as follows: Hello customer,
you can user our services. { IF { REF isNewCustomer } = “true” “As new customer you have to register first via { HYPERLINK “https://email address removed for privacy reasons” } } After registration… With this way of code the hyperlink included in the IF {} appears as pure text, not as a link. Then I tried to build different text-blocks:at first a text – block for all customer without any if{}after that the text for new customers with an if {} and without any linkafter that the hyperlink for new customers that contains an if{} in the HYPERLINK field function to show the hyperlink if it is an new customer and an empty string if it is not a new customerafter that the text that should appear after the link Hello customer,
you can user our services. { IF { REF isNewCustomer } = “true” “As new customer you have to register first via ” } HYPERLINK { IF { REF isNewCustomer } = “true” “https://email address removed for privacy reasons” “”} } After registration… In this way of code the link cannot been empty in the case that “isNewCustomer = “false”. When false I get “wrong hyperlink” because HYPERLINK { IF {…} is parsed as HYPLERLINK { “” }. It is the same when leaving the third paramter of the IF empty (HYPERLINK { IF { true “Link” } }.If the newCustomer REF is true the hyperlink is shown as link but I can’t edit an other text. The short hyperlink here is only an example. The real link is about 200 characters long and should by displayed as “klick here” and open the real link by klick. Ist there any way in Office 365 to fill in a hyperlink only if a REF variable has the suitable content, show an other text for the link and leave all blank if the REF doesn’t fit? Many thanksSiegbert Read More
MGDC for SharePoint FAQ: How can I track the lifecycle of a SharePoint site?
In this post, we’ll cover some details on how to track the lifecycle of a SharePoint Site in the Microsoft Graph Data Connect (MGDC), using the date columns in the SharePoint Site dataset. If you’re not familiar with MGDC for SharePoint, start with https://aka.ms/SharePointData.
All Dates in the Sites Dataset
One of the most common scenarios in MGDC for SharePoint is tracking the lifecycle of a site, which includes understanding when the site was created, how it grows over time, when it stops growing and when it becomes inactive or abandoned.
The SharePoint Sites dataset includes several columns that can be used to understand the site lifecycle in general. For instance, here are the datetime columns available:
Site Created
Creation date is straightforward. There is a column (CreatedTime) with the date when the site was created. As with all other dates, it uses the UTC time zone.
Last Modified
In the Sites dataset, you also have the date and time when any items under the root web were last modified (RootWeb.LastItemModifiedDate). This includes the last time when files were created, updated or deleted. This is a great indication that the Site is still in active use.
You also have the date the site security was last modified (LastSecurityModifiedDate). This shows when permissions were granted, updated or revoked. That includes permissions granted through the manage access interface and permissions granted through sharing links.
Last Accessed
Last access is available at the site level (LastUserAccessDate). This shows when an item in the site was last accessed (this includes simply reading the file). This is an important indicator to help understand when the site is becoming inactive or abandoned.
Note that, while there is an effort to identify here only access performed directly by users, this date might also include automated actions by applications, including internal SharePoint applications.
Snapshot Date
Please note that there is one more date (SnapshotDate), but that one is not relevant to the site lifecycle. The snapshot date simple tracks when the data was retrieved by MGDC.
File Actions
Besides what’s captured in these datetime columns in the Sites dataset, you also have the option to capture detailed file activity in the site using the SharePoint File Actions and accumulate those over time.
Keep in mind that MGDC for SharePoint only keeps actions for the last 21 days due to compliance issues. More specifically, you can get file actions between today minus 2 days and today minus 23 days. For instance, if today is June 30th, you can get file actions between June 8th and June 28th.
If you query this information daily, you could build a longer history of file actions over time. For instance, you could keep the last 90 days of data from the File Actions dataset. With that you could find recent access or otherwise say “no access in the last 90 days”.
This would also let you know more details about recent file activities, like who last accessed the site, which file or extension was last accessed, what was the last action, etc. You need to decide if you can rely solely on the date columns provided in the Sites dataset or if it is useful to keep these additional details.
Please do check with the compliance team in your company to make sure there are no restrictions on keeping this information for longer periods of time in your country. There might be regulatory restrictions on how long you can keep this type of personally identifiable information.
Calculated Columns
Keep in mind that these dates use a datetime data type, so grouping by one of them can sometimes be a challenge. If you’re using Power BI, you can show them as a date hierarchy and get a summary by year, quarter, month or day.
It might also be useful to create calculated columns to help with grouping and visualization. For instance, you can create a new date column (without the time portion) for daily summaries. Here’s how to calculate that in Power BI:
CreatedDay = DATE(YEAR(Sites[CreatedTime]),MONTH(Sites[CreatedTime]), DAY(Sites[CreatedTime]))
You could also create a column for monthly summaries like this:
CreatedMonth = FORMAT(Sites[CreatedTime], “yyyy-MM”)
You can read more about calculated columns in Power BI at MGDC for SharePoint FAQ: How to create custom columns in Power BI.
Conclusion
I hope this clarifies what is available in MGDC for SharePoint to track the lifecycle of a SharePoint site.
Let us know in the comments if you think we should consider additional lifecycle information.
For further details about the schema of all SharePoint datasets in MGDC, including SharePoint Sites and SharePoint File Actions, see https://aka.ms/SharePointDatasets.
Microsoft Tech Community – Latest Blogs –Read More
Five Key Updates on WS2012 ESUs enabled by Azure Arc
We have a myriad of key updates for customers enrolled in WS2012/R2 ESUs enabled by Azure Arc! As we continue to refine and expand the offer, investments have focused on reducing friction and improve the usability of WS2012/R2 ESUs enabled by Azure Arc. We’re excited to announce our brand-new usage view, preview of the transition scenario, and improvements to pre-requisites, billing, and included capabilities.
The ESU Usage View is now Public Preview for customers in Azure Portal. With the ESU Usage View, customers get visibility into their coverage of Azure Arc-enabled WS2012/R2 servers with Extended security Updates. Moreover, the view surfaces licenses that may be over-provisioned or under-provisioned comparing the licensed cores with linked servers helping ensuring licensing compliance. The ESU Usage View offers a bird’s eye summary for the ESU Deployment and Licensing for customers.
The ESU Transition Scenario from Volume Licensing to Azure Arc is now in Public Preview. Customers can using Azure CLI to programmatically generate new licenses, specifying the new Volume License Details parameter in az connectedmachine license | Microsoft Learn their Year 1 Volume Licensing entitlements by entering their respective Invoice Numbers. By specifying Year 1 Volume Licensing entitlements, the provisioned WS2012/R2 ESU Azure Arc licenses will not be backbilled for Year 1 with billing starting from Year 2 of WS2012/R2 ESUs in October 2024. Customers must specify this entitlement in their license provisioning to be exempt from Year 1 back billing, with the Portal Experience for this to be available by July end.
Customers no longer need Intermediate Certificates to receive WS2012/R2 ESUs through Azure Arc. Customers must update to Connected Machine Agent Version 1.40 or higher and install the Windows Server Servicing Stack Update (SSU) for April 2024 to eliminate the need for intermediate certificate installation and updates. For customers that are not running the sufficient version or have not downloaded the SSU, the intermediate certificates continue to be documented at: How to troubleshoot delivery of Extended Security Updates for Windows Server 2012 through Azure Arc – Azure Arc | Microsoft Learn.
Azure Management services are included with WS2012/R2 ESUs enabled by Azure Arc. These capabilities have and continue to be available free of charge for servers enrolled in WS2012/R2 ESUs through Azure Arc. Capabilities include Azure Update Manager affording Patch Assessment and Delivery seamlessly from Azure, Azure Change Tracking and Inventory providing visibility into software on Arc-enabled servers, and Azure Machine Configuration (Azure Policy Guest Configuration) allowing for Desired State Configuration and Governance scenarios.
Azure Arc ESU billing is independent of the linkage and server status of activated licenses. Activated licenses are charged based on their edition (Standard, Datacenter) and number of cores, irrespective of whether they are linked to any servers and the status of the servers. This provides more consistent and standardized billing to customers
To learn more about the latest with Azure Arc-enabled servers and join our monthly community calls, visit https://aka.ms/ArcServerForumSignup.
Microsoft Tech Community – Latest Blogs –Read More
Time-varying parameters in Simulink model
I am implementing a Simulink model in which I would like to use time-varying parameters for certain blocks. I have tried using a timeseries object to specify parameter values as a function of time, but this is not one of the supported parameter formats. Are there any ways in which this can be accomplished?I am implementing a Simulink model in which I would like to use time-varying parameters for certain blocks. I have tried using a timeseries object to specify parameter values as a function of time, but this is not one of the supported parameter formats. Are there any ways in which this can be accomplished? I am implementing a Simulink model in which I would like to use time-varying parameters for certain blocks. I have tried using a timeseries object to specify parameter values as a function of time, but this is not one of the supported parameter formats. Are there any ways in which this can be accomplished? time-varying MATLAB Answers — New Questions
Can I obtain MATLAB Onramp Certificate with Trial License?
Hello,
I have completed the MATLAB Onramp course using a trial license. I would like to know if I am eligible to receive a certificate of completion even though I used a trial license. Can you please confirm whether completing the course with a trial license qualifies me for the certificate, and if so, how I can access and download it?
Thank you for your assistance.Hello,
I have completed the MATLAB Onramp course using a trial license. I would like to know if I am eligible to receive a certificate of completion even though I used a trial license. Can you please confirm whether completing the course with a trial license qualifies me for the certificate, and if so, how I can access and download it?
Thank you for your assistance. Hello,
I have completed the MATLAB Onramp course using a trial license. I would like to know if I am eligible to receive a certificate of completion even though I used a trial license. Can you please confirm whether completing the course with a trial license qualifies me for the certificate, and if so, how I can access and download it?
Thank you for your assistance. matlab onramp, certificate, trial licence MATLAB Answers — New Questions
Will I get a free certificate for the completion of each: the self-paced courses MATLAB Onramp (free self-paced 2 hr) and MATLAB Fundamentals (free self-paced 16.5hr)?
I am almost completing the MATLAB Onramp and am considering completing the Fundamentals self-paced course after. I was wondering if there would possibly be certificates of completion for each course after I complete them? I would like to include this in my resume. Thank you in advance!I am almost completing the MATLAB Onramp and am considering completing the Fundamentals self-paced course after. I was wondering if there would possibly be certificates of completion for each course after I complete them? I would like to include this in my resume. Thank you in advance! I am almost completing the MATLAB Onramp and am considering completing the Fundamentals self-paced course after. I was wondering if there would possibly be certificates of completion for each course after I complete them? I would like to include this in my resume. Thank you in advance! certificate, self-paced, onramp, fundamentals MATLAB Answers — New Questions
ylabel changes position with ax.YAxisLocation = ‘origin’
If I use
ax.YAxisLocation = ‘origin’;
the text of the ylabel changes position, going to the top of the plot and appearing horizontally, instead of being in a vertical posiyion, alongside the y-axis, as in a usual plot:
hold on
scatter(-rand(1,10),rand(1,10),120,’or’,’filled’)
scatter(rand(1,10),rand(1,10),120,’ob’,’filled’)
ax = gca;
ax.YAxisLocation = ‘origin’;
ylabel(‘my y-label’)
How to have the ylabel in a vertical posiyion, alongside the y-axis, as in a usual plot, when using ax.YAxisLocation = ‘origin’ ?If I use
ax.YAxisLocation = ‘origin’;
the text of the ylabel changes position, going to the top of the plot and appearing horizontally, instead of being in a vertical posiyion, alongside the y-axis, as in a usual plot:
hold on
scatter(-rand(1,10),rand(1,10),120,’or’,’filled’)
scatter(rand(1,10),rand(1,10),120,’ob’,’filled’)
ax = gca;
ax.YAxisLocation = ‘origin’;
ylabel(‘my y-label’)
How to have the ylabel in a vertical posiyion, alongside the y-axis, as in a usual plot, when using ax.YAxisLocation = ‘origin’ ? If I use
ax.YAxisLocation = ‘origin’;
the text of the ylabel changes position, going to the top of the plot and appearing horizontally, instead of being in a vertical posiyion, alongside the y-axis, as in a usual plot:
hold on
scatter(-rand(1,10),rand(1,10),120,’or’,’filled’)
scatter(rand(1,10),rand(1,10),120,’ob’,’filled’)
ax = gca;
ax.YAxisLocation = ‘origin’;
ylabel(‘my y-label’)
How to have the ylabel in a vertical posiyion, alongside the y-axis, as in a usual plot, when using ax.YAxisLocation = ‘origin’ ? yaxislocation, origin, ylabel, axes MATLAB Answers — New Questions
Why Monitor turns itself on
Win 11 and for some reason the monitor will not turn off. Even if I use a 3rd part app when I run the app the monitor turns off and right away comes back on. Any ideas?
Win 11 and for some reason the monitor will not turn off. Even if I use a 3rd part app when I run the app the monitor turns off and right away comes back on. Any ideas? Read More
No sound from simple speakers
I do not understand Win11 audio output settings. I’m stuck without sound.
I have a simple setup: A pair of Amazon Basics USB-powered speakers connected to the audio jack on my NUC.
I do not understand how to connect from sources on my hard drive (recordings, YouTube, live video) to these small speakers. Under Settings-System-Sound, I can choose:
Realtek Digital Output, Asus Audio (Monitor) or Speakers (Realtek Audio)
I have tried selecting each of these three outputs. None of them sends sound from the NUC to the small speakers. I have checked the simple volume control on the speaker cables to make sure it is not muted.
Thanks for any advice.
I do not understand Win11 audio output settings. I’m stuck without sound.I have a simple setup: A pair of Amazon Basics USB-powered speakers connected to the audio jack on my NUC.I do not understand how to connect from sources on my hard drive (recordings, YouTube, live video) to these small speakers. Under Settings-System-Sound, I can choose:Realtek Digital Output, Asus Audio (Monitor) or Speakers (Realtek Audio)I have tried selecting each of these three outputs. None of them sends sound from the NUC to the small speakers. I have checked the simple volume control on the speaker cables to make sure it is not muted.Thanks for any advice. Read More
Can’t burn windows 11 ISO to a CD/DVD
I had problem and I can’t burn windows 11 ISO to a CD/DVD and I get the error: 0x8007048F. No advice on the Internet worked. Could someone help me ?
I had problem and I can’t burn windows 11 ISO to a CD/DVD and I get the error: 0x8007048F. No advice on the Internet worked. Could someone help me ? Read More