Author: PuTI
Filtering a list and chart multiple series
Hello and thanks for any advice. I’ve simplified my scenario as below. A teacher and student have a walking contest over 7 days. Column A is date, Column B is role (i.e. teacher or student), Column C is miles walked. I would like to create a line chart with 2 data series comparing the teacher’s walking to the student’s walking.
Ideally, when selecting the data for each series, I could input a formula filtering Column B for either “teacher” or “student” and then plotting the associated ‘miles walked’, I’ve included a sample data set.
RoleMiles walked1/1/2001Teacher11/1/2001Student21/2/2001Teacher51/2/2001Student41/3/2001Teacher21/3/2001Student11/4/2001Teacher31/4/2001Student41/5/2001Teacher51/5/2001Student11/6/2001Teacher21/6/2001Student31/7/2001Teacher51/7/2001Student1
Hello and thanks for any advice. I’ve simplified my scenario as below. A teacher and student have a walking contest over 7 days. Column A is date, Column B is role (i.e. teacher or student), Column C is miles walked. I would like to create a line chart with 2 data series comparing the teacher’s walking to the student’s walking. Ideally, when selecting the data for each series, I could input a formula filtering Column B for either “teacher” or “student” and then plotting the associated ‘miles walked’, I’ve included a sample data set. RoleMiles walked1/1/2001Teacher11/1/2001Student21/2/2001Teacher51/2/2001Student41/3/2001Teacher21/3/2001Student11/4/2001Teacher31/4/2001Student41/5/2001Teacher51/5/2001Student11/6/2001Teacher21/6/2001Student31/7/2001Teacher51/7/2001Student1 Read More
Email Content Missing in Sent Emails
After sending an email, when I look at it in sent, some of the content is missing and if I forward the email to the same person, all the content is visible. This does not happen to all emails I send, no idea why this is happening, please help…BOB
After sending an email, when I look at it in sent, some of the content is missing and if I forward the email to the same person, all the content is visible. This does not happen to all emails I send, no idea why this is happening, please help…BOB Read More
Je n’ai plus accès à la formule IMAGE
Je suis sur la version 2408 (17928.20114). Depuis la dernière mise à jour je n’ai plus accès a la fonction “IMAGE” et donc plus la possibilité d’incruster une image via un lien URL dans les cellules concernées. Est-ce qu’une mise à jour visant à régler ce problème arrive ? ou est-ce qu’une autre formule de ce type peux venir remplacer temporairement ou définitivement la formule “IMAGE” ?
Je suis sur la version 2408 (17928.20114). Depuis la dernière mise à jour je n’ai plus accès a la fonction “IMAGE” et donc plus la possibilité d’incruster une image via un lien URL dans les cellules concernées. Est-ce qu’une mise à jour visant à régler ce problème arrive ? ou est-ce qu’une autre formule de ce type peux venir remplacer temporairement ou définitivement la formule “IMAGE” ? Read More
Compare string values and automate look-up (multi-step)
Hi,
I have a specific multi-step task I would like to automate in excel, ideally with the use of a formula.
I have four columns (A. application year, B. patent ID, C. backward citations and D. forward citations). Columns C and D contain strings (comma separated values).
First step:
1) For each row, I want to identify if there is a matching string value present in both column C and D. In column E (new column), I want to output the matching citation. E.g. in image file attached, cell E2 contains US1111, the string value that is present in both C2 and D2.
Second step (column F)
2) I want to then search for patent US1111 (value in E2) in column B (list of all patents) and identify it’s application year (column A).
Third step (column G)
3) If the output in F2 (matching citation year) is less than the value in A2, then the formula searches column B for value in E2 (US1111) and in the corresponding row, the output is “DELETE”.
An example in the data attached is
Row 2: In C2 and D2, the matching string/citation is US1111. Ideal Output in E2 is “US1111”.
Then formula in F2, searches for US1111 in column B and output’s it’s application year from column A (A16: 1994). Output in F2 = 1994.
Then in G2, new formula compares F2 (1994) to A2 (2024) and if F2<A2 (1994<2024), the formula searches for US1111 (E2) in column B and outputs “DELETE” in the corresponding row column G (G16 in our example spreadsheet as US1111 is located in B16.
any help would be greatly appreciated!
Many many thanks
Hi, I have a specific multi-step task I would like to automate in excel, ideally with the use of a formula. I have four columns (A. application year, B. patent ID, C. backward citations and D. forward citations). Columns C and D contain strings (comma separated values). First step:1) For each row, I want to identify if there is a matching string value present in both column C and D. In column E (new column), I want to output the matching citation. E.g. in image file attached, cell E2 contains US1111, the string value that is present in both C2 and D2. Second step (column F)2) I want to then search for patent US1111 (value in E2) in column B (list of all patents) and identify it’s application year (column A). Third step (column G)3) If the output in F2 (matching citation year) is less than the value in A2, then the formula searches column B for value in E2 (US1111) and in the corresponding row, the output is “DELETE”. An example in the data attached isRow 2: In C2 and D2, the matching string/citation is US1111. Ideal Output in E2 is “US1111”.Then formula in F2, searches for US1111 in column B and output’s it’s application year from column A (A16: 1994). Output in F2 = 1994.Then in G2, new formula compares F2 (1994) to A2 (2024) and if F2<A2 (1994<2024), the formula searches for US1111 (E2) in column B and outputs “DELETE” in the corresponding row column G (G16 in our example spreadsheet as US1111 is located in B16. any help would be greatly appreciated! Many many thanks Read More
Formating a cell in Excel based on multiple conditions
Social Media Posts Analysis:
I have a tabular columns on excel with days (1-31) in columns and the months (1-12) in rows, which looks like this:
The data to this feeds from another sheet in the same excel file. This data is basically saying the date on which a post was made on a social media:
I have made the tabular column (Image 1) using countifs function, where it automatically takes the day and month from the Date column and places it in appropriate cell in the 1st sheet.
For example:
Sheet1!B2=COUNTIFS(Sheet2!$D:$D,Sheet1!B$1,Sheet2!$E:$E,Sheet1!$A2)
Now my question is:
I want to format the tabular column (Image 1) as follows:
No Background color to cell -> If no posts have been made on this day and month at all or the day (DD) and month (MM) appears only in one year (there can be more than one post in the same date (DD/MM/YYYY), that is not a problem)Yellow -> If there are atleast two posts in the same day (DD) and month (MM) but in two separate years (YYYY)Green -> If there are atleast three posts in the same day (DD) and month (MM) but in three separate years (YYYY)
I hope that was clear. Please help me out if there are any methods to acheive this formating in Excel.
Let me know if you need any further clarfications.
Thanks in advance,
Eashwar
Social Media Posts Analysis:I have a tabular columns on excel with days (1-31) in columns and the months (1-12) in rows, which looks like this:The data to this feeds from another sheet in the same excel file. This data is basically saying the date on which a post was made on a social media: I have made the tabular column (Image 1) using countifs function, where it automatically takes the day and month from the Date column and places it in appropriate cell in the 1st sheet.For example:Sheet1!B2=COUNTIFS(Sheet2!$D:$D,Sheet1!B$1,Sheet2!$E:$E,Sheet1!$A2)Now my question is:I want to format the tabular column (Image 1) as follows:No Background color to cell -> If no posts have been made on this day and month at all or the day (DD) and month (MM) appears only in one year (there can be more than one post in the same date (DD/MM/YYYY), that is not a problem)Yellow -> If there are atleast two posts in the same day (DD) and month (MM) but in two separate years (YYYY)Green -> If there are atleast three posts in the same day (DD) and month (MM) but in three separate years (YYYY) I hope that was clear. Please help me out if there are any methods to acheive this formating in Excel.Let me know if you need any further clarfications. Thanks in advance,Eashwar Read More
Windows – unable to create a ‘Windows Hello’ PIN
Hi,
a new user is able to log-in using ’email address’ and set a PIN for ‘Windows Hello’, works fine.
But a local user migrated profile (using Profwiz) cannot add a PIN since the ‘login page’ shows as the imagem below and then close quickly.
I already tried:
1) WSRESET command to refresh connection to his cloud account, but no success;
2) Instruction from that article below regarding to reset folder ‘NGC’ permissions, but no success:
* this environment is ‘Windows 10 Pro’ or ‘Windows 11 Pro’ and the users has ‘M365 E3’ license.
Hi, a new user is able to log-in using ’email address’ and set a PIN for ‘Windows Hello’, works fine.But a local user migrated profile (using Profwiz) cannot add a PIN since the ‘login page’ shows as the imagem below and then close quickly. I already tried:1) WSRESET command to refresh connection to his cloud account, but no success;2) Instruction from that article below regarding to reset folder ‘NGC’ permissions, but no success:https://answers.microsoft.com/en-us/windows/forum/all/help-i-forgot-my-pin-for-windows-hello-and-i/537620d4-da87-4794-99f4-684931b036a0 * this environment is ‘Windows 10 Pro’ or ‘Windows 11 Pro’ and the users has ‘M365 E3’ license. Read More
Editor lacking in New Outlook
Unless I am missing something, I find the New Outlook (which I’ve been using for about a year) very lacking when it comes to formatting an email. In the classic Outlook I believe I had the full Microsoft Word functionality whereas that is not the case with the New Outlook. Is there a way to get full Microsoft Word functionality when creating an email in the New Outlook?
Unless I am missing something, I find the New Outlook (which I’ve been using for about a year) very lacking when it comes to formatting an email. In the classic Outlook I believe I had the full Microsoft Word functionality whereas that is not the case with the New Outlook. Is there a way to get full Microsoft Word functionality when creating an email in the New Outlook? Read More
What’s the quality of the matlab orbit propagation?
Do orbvital toolkits include earth, sun moon, planets?
Do they include earth gravity perturbations?
Do they include atmospheric drag? As function of lat-lon sun angle and solar F10.7?
Do they include variable drag as function of satellite shape and aspect?Do orbvital toolkits include earth, sun moon, planets?
Do they include earth gravity perturbations?
Do they include atmospheric drag? As function of lat-lon sun angle and solar F10.7?
Do they include variable drag as function of satellite shape and aspect? Do orbvital toolkits include earth, sun moon, planets?
Do they include earth gravity perturbations?
Do they include atmospheric drag? As function of lat-lon sun angle and solar F10.7?
Do they include variable drag as function of satellite shape and aspect? orbit precision MATLAB Answers — New Questions
Help with Uploading MLTBX File to File Exchange
Hello,
I attempted to upload an MLTBX file, but I received the following error message: "This submission seems to have been previously rejected or deleted. Please contact the File Exchange admin if you wish to upload it again."
Could you please advise on how to resolve this issue or provide the contact information for the File Exchange admin?
Thank you for your assistance.
Best regards,
DanielHello,
I attempted to upload an MLTBX file, but I received the following error message: "This submission seems to have been previously rejected or deleted. Please contact the File Exchange admin if you wish to upload it again."
Could you please advise on how to resolve this issue or provide the contact information for the File Exchange admin?
Thank you for your assistance.
Best regards,
Daniel Hello,
I attempted to upload an MLTBX file, but I received the following error message: "This submission seems to have been previously rejected or deleted. Please contact the File Exchange admin if you wish to upload it again."
Could you please advise on how to resolve this issue or provide the contact information for the File Exchange admin?
Thank you for your assistance.
Best regards,
Daniel mltbx, file-exchange MATLAB Answers — New Questions
can I conduce this command?
hello, I’m tring to save this string, but the format is the same and it seems weird to write the command like that…
x_1 = sprintf(‘%.*fcos(%.*ft+%.*f)+%.*fcos(%.*ft+%.*f)’,presi,X(1),presi,w_n(1),presi,phi(1),presi,X(2),presi,w_n(2),presi,phi(2));
x_2 = sprintf(‘%.*fcos(%.*ft+%.*f)+%.*fcos(%.*ft+%.*f)’,presi,X(1)*r(1),presi,w_n(1),presi,phi(1),presi,X(2)*r(2),presi,w_n(2),presi,phi(2));
there is a batter way to get this output?
The image below is markout of the output strings, beside the ‘cos’,’t’,'(/)’ the all is numbers thet I whold like that the user of the overall function will be able to determine with the variable pressi.
thank you
and sorry for my English 😚hello, I’m tring to save this string, but the format is the same and it seems weird to write the command like that…
x_1 = sprintf(‘%.*fcos(%.*ft+%.*f)+%.*fcos(%.*ft+%.*f)’,presi,X(1),presi,w_n(1),presi,phi(1),presi,X(2),presi,w_n(2),presi,phi(2));
x_2 = sprintf(‘%.*fcos(%.*ft+%.*f)+%.*fcos(%.*ft+%.*f)’,presi,X(1)*r(1),presi,w_n(1),presi,phi(1),presi,X(2)*r(2),presi,w_n(2),presi,phi(2));
there is a batter way to get this output?
The image below is markout of the output strings, beside the ‘cos’,’t’,'(/)’ the all is numbers thet I whold like that the user of the overall function will be able to determine with the variable pressi.
thank you
and sorry for my English 😚 hello, I’m tring to save this string, but the format is the same and it seems weird to write the command like that…
x_1 = sprintf(‘%.*fcos(%.*ft+%.*f)+%.*fcos(%.*ft+%.*f)’,presi,X(1),presi,w_n(1),presi,phi(1),presi,X(2),presi,w_n(2),presi,phi(2));
x_2 = sprintf(‘%.*fcos(%.*ft+%.*f)+%.*fcos(%.*ft+%.*f)’,presi,X(1)*r(1),presi,w_n(1),presi,phi(1),presi,X(2)*r(2),presi,w_n(2),presi,phi(2));
there is a batter way to get this output?
The image below is markout of the output strings, beside the ‘cos’,’t’,'(/)’ the all is numbers thet I whold like that the user of the overall function will be able to determine with the variable pressi.
thank you
and sorry for my English 😚 sprintf, string, shortening MATLAB Answers — New Questions
Use VBA to Auto create a hyperlink in multiple cells for a column
what I have:
I have a workbook that has to 2 sheets. (Sheet1 and Sheet2).
Sheet1(ColumnA) has the column i need to hyperlink to cells(ColumnB) on sheet2.
What i need :
create a routine that will insert a hyperlink on Sheet1 relating to Sheet2.
example:
on Sheet1 have Cell A2 HYPERLINK TO B5 on Sheet2.
A3 will hyperlink to B6
A4 will hyperlink to B7 etc….
but hard code the range…so i can change the range if needed.
This formula sub seems to only do a single insert ?
Sub HyperlinkAnotherSheet()
Worksheets(“Sheet1”).Select Range(“B5”).Select ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=“”, SubAddress:=“‘Sheet2’!A1”
End Sub
Thanks
fordraiders
what I have:I have a workbook that has to 2 sheets. (Sheet1 and Sheet2).Sheet1(ColumnA) has the column i need to hyperlink to cells(ColumnB) on sheet2. What i need :create a routine that will insert a hyperlink on Sheet1 relating to Sheet2. example:on Sheet1 have Cell A2 HYPERLINK TO B5 on Sheet2.A3 will hyperlink to B6A4 will hyperlink to B7 etc…. but hard code the range…so i can change the range if needed. This formula sub seems to only do a single insert ?Sub HyperlinkAnotherSheet()Worksheets(“Sheet1”).Select Range(“B5″).Select ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=””, SubAddress:=”‘Sheet2’!A1″End Sub Thanksfordraiders Read More
OneDrive API and the standard Attribute enum
I need to iterate over many user’s OneDrives and set the PINNED attribute (“Always keep on this device”): FILE_ATTRIBUTE_PINNED 0x00080000.
In looking at drive/driveitem via the Graph API I can get a reference to a user’s OneDrive and a file, but I don’t see the “real” attributes.
Are these not exposed by the Graph API? If not, is there another way to automate this?
I need to iterate over many user’s OneDrives and set the PINNED attribute (“Always keep on this device”): FILE_ATTRIBUTE_PINNED 0x00080000.In looking at drive/driveitem via the Graph API I can get a reference to a user’s OneDrive and a file, but I don’t see the “real” attributes. Are these not exposed by the Graph API? If not, is there another way to automate this? Read More
Calendar option visible in Project for the web App
Hi,
I have a managed solution in a production Power Apps environment that runs the Project for the web app. I noticed a “Calendar” option on the Project main form that was not there until last week. I then opened the unmanaged solution in the dev environment from where I export it as a managed solution, the Project table’s form does not have this Calendar option. No other changes were made to the main form so where is this Calendar option appearing in my solution?
I can confirm both solution versions are the same & no other user updated the solution.
Unmanaged solution Project main form:
The production app where the Calendar option is visible:
Hi,I have a managed solution in a production Power Apps environment that runs the Project for the web app. I noticed a “Calendar” option on the Project main form that was not there until last week. I then opened the unmanaged solution in the dev environment from where I export it as a managed solution, the Project table’s form does not have this Calendar option. No other changes were made to the main form so where is this Calendar option appearing in my solution? I can confirm both solution versions are the same & no other user updated the solution. Unmanaged solution Project main form: The production app where the Calendar option is visible: Read More
ADF Copy activity failed with Databricks as Sink
I got the error message below when sinking data from SQL Server to Databricks.
“ErrorCode=AzureDatabricksComplexTypesNotSupported,We don’t support complex types (struct, map, array) in copy activity.”
Apparently I don’t have these data types in the source table, except varchar(max) which I guess it caused the issue.
I believe I’m not the only one running into this issue,any suggestions?
Thanks!
I got the error message below when sinking data from SQL Server to Databricks.”ErrorCode=AzureDatabricksComplexTypesNotSupported,We don’t support complex types (struct, map, array) in copy activity.”Apparently I don’t have these data types in the source table, except varchar(max) which I guess it caused the issue.I believe I’m not the only one running into this issue,any suggestions?Thanks! Read More
Hotfix: JDBC Driver 12.8.1 for SQL Server Released
We recently released an update to Microsoft JDBC Driver for SQL Server, version 12.8.1. The update addresses a few issues on top of the 12.8.0 release.
Fixed issues
Adjusted DESTINATION_COL_METADATA_LOCK, in SQLServerBulkCopy, so that is properly released in all cases #2492
Reverted “Execute Stored Procedures Directly” feature, as well as subsequent changes related to the feature. #2493
Changed driver behavior to allow prepared statement objects to be reused, preventing a “multiple queries are not allowed” error #2494
Changes
Changed MSAL logging from FINER to FINEST #2491
Getting the latest release
The latest bits are available to download from Microsoft, from the GitHub repository, and via Maven Central.
Add the JDBC 12.8.1 RTW driver to your Maven project by adding the following code to your POM file to include it as a dependency in your project (choose .jre8 for Java 8/1.8 or .jre11 for Java 11 and up).
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>12.8.1.jre11</version>
</dependency>
Help us improve the JDBC Driver by filing issues on GitHub or contributing to the project.
Microsoft Tech Community – Latest Blogs –Read More
Uso de Resource CPU Limit no Kubernetes
Um pouco sobre como o processo funciona
Vou começar com um pouco de contexto em como a alocação de CPU funciona no Kernel do Linux. Vamos olhar para o núcleo de um processador, ele é capaz de processar uma única operação por vez, não tem mágica, você manda a operação ele processa e retorna. Se você tem dois cores, duas operações por vez e assim por diante.
Mesmo os processadores com Hyper Threading o núcleo do processador continua processando task a task, uma por vez, a tecnologia Hyper Threading (presente em processadores intel) mantém o core mais tempo processando do que ocioso, ou seja, usa melhor o tempo, mas nada mudou no núcleo, continuamos não podendo paralelizar as tarefas, apenas melhorar a concorrência entre elas.
Kernel do Linux gerenciando tarefas
Falamos um pouco da camada de hardware, agora vamos para a camada de software. Para simplificar, vamos imaginar um processador com apenas 1 core (um Intel 4004). Se você simplificar as coisas e pensar que 1 core pode processar 1 task por vez, e você tiver uma task que vai levar 10min para terminar, significa que seu processador vai ficar processando apenas esta task por 10min, o que obviamente travaria todo seu Sistema Operacional. Imagina, enquanto você está baixando um arquivo você não iria conseguir mexer o mouse, digitar no teclado, ou escutar uma música.
É para isso que existem o que chamamos de CPU Schedulers. São programas que rodam no S.O que fazem o gerenciamento das tasks que irão rodar no núcleo do processador, e obviamente eles não vão permitir que sua task de 10min cause um starvation nos outros processos. E como isso funciona ? Bom, existem diversos tipos de Schedulers, dependendo do seu S.O, vamos focar aqui no Linux. A partir da versão 2.6.23 do Kernel do Linux é utilizado um Scheduler chamado Completely Fair Scheduler (a.k.a CFS).
O CFS, como o nome já diz, tenta garantir a distribuição justa (fair) da CPU entre os processos do S.O. Em termos simples, isso significa que se você tem 1 core e 2 processos (P1 e P2), P1 vai usar 50% da CPU e P2 vai usar 50% da CPU, em termos simples ok ? É bem mais complexo que isso, envolve prioridade e agrupamento de processos, mas em termos gerais o CFS tenta distribuir igualmente.
Limits no Kubernetes
Agora que você entende como as tasks são distribuídas no núcleo do processador, vamos falar de Kubernetes. Mas primeiro, tenha em mente uma importante lição tirada da explicação acima, o ideal é que o processador fique ocupado 100% do tempo, usando 100% do seu núcleo para processar o máximo de tarefas, sem ociosidade.
Para o Kubernetes existem 2 tipos de recursos: compressible resources e not compressible resources , traduzindo para o Português, recursos compreensíveis e não compreensíveis. A memória, por exemplo, é um recurso não compreensível porque ao atingir o máximo permitido o K8s vai enviar um sinal de SIGKILL para o seu POD, por outro lado a CPU é um recurso compreensível, ou seja, mesmo que você esteja com 100% de uso, o K8s não vai mandar um SIGKILL. Porque isso ? A memória tem um tamanho finito, e quando você a enche não tem mais para onde ir, o que fazer ? Matar qualquer processo que tente usar mais memória do que o disponível. Já a CPU, tenta alocar todos os processos, porque ela trabalha com tempo, que não é um recurso finito, você pode alocar milhares de processos dentro de milli/micro/nano segundos. É óbvio se você tiver milhares de processos e apenas 1 core, cada processo vai usar 0,001% da cpu, deixando o seu S.O muito lento, devido a grande quantidade de troca entre os processos no núcleo do processador.
Agora podemos responder porque não usar Limit CPU no K8s. Quando você configura um limite de CPU, vamos supor 200m (200 millicores), você está dizendo para o K8s: “não deixe meu processo usar mais de 200 milissegundos da CPU a cada ciclo de 1 segundo“. Então vamos supor que por alguns instantes a CPU esteja livre de outros processos, você poderia estar usando 100% dela, mas estará limitado a 20% (200m), com 80% da cpu ociosa. Agora imagina que você tire esse limite, o Linux CFS vai tentar distribuir igualmente a carga da CPU entre seus PODs, e cá entre nós, provavelmente ele fará um trabalho melhor que eu e você tentando configurar um limite de CPU.
Agora um aviso muito !!IMPORTANTE!!, eu não estou dizendo que você deve sair tirando o limit CPU de todos os seus projetos. Se você tem PODs que não precisam de alto throughput , você deve sim limitar o uso de CPU, para que não haja uma concorrência pelo uso da CPU com outros PODs que realmente precisam de alto throughput. Lembra que o Linux CFS vai tentar distribuir igualmente o uso da CPU, e PODs que precisam de alta vazão podem ser impactados por aqueles que não precisam, simplesmente porque o CFS vai tentar ser fair .
Para quem chegou até aqui meu muito obrigado. Críticas e sugestões ? Deixa seu comentário.
Microsoft Tech Community – Latest Blogs –Read More
Released: Microsoft.Data.SqlClient 6.0 Preview 1
Microsoft.Data.SqlClient 6.0 Preview 1 has been released. This release contains improvements and updates to the Microsoft.Data.SqlClient data provider for SQL Server.
Our plan is to provide regular GA releases with several preview releases in between. This cadence should provide time for feedback and allow us to deliver features and fixes in a timely manner. This 6.0 preview includes fixes and changes over the 5.2 GA release.
Breaking Changes
Removed support for .NET Standard. #2386
Removed UWP (UAP) references. #2483
Added
Added TokenCredential object to take advantage of token caching in ActiveDirectoryAuthenticationProvider. #2380
Added DateOnly and TimeOnly support to DataTable as a structured parameter. #2258
Added Microsoft.Data.SqlClient.Diagnostics.SqlClientDiagnostic type in .NET. #2226
Added scope trace for GenerateSspiClientContext. #2497, #2725
Fixed
Fixed Socket.Connect timeout issue caused by thread starvation. #2777
Fixed pending data with SqlDataReader against an encrypted column. #2618
Fixed Entra authentication when using infinite connection timeout in ActiveDirectoryAuthenticationProvider. #2651
Fixed GetSchema by excluding unsupported engines due to lack of support for ASSEMBLYPROPERTY function. #2593
Fixed SSPI retry negotiation with default port in .NET. #2559
Fixed assembly path in .NET 8.0 and .AssemblyAttributes. #2550
Fixed certificate chain validation. #2487
Fixed clone of SqlConnection to include AccessTokenCallback. #2525
Fixed issue with DateTimeOffset in table-valued parameters, which was introduced in 5.2. #2453
Fixed ArgumentNullException on SqlDataRecord.GetValue when using user-defined data type on .NET. #2448
Fixed SqlBuffer and SqlGuild when it’s null. #2310
Fixed SqlBulkCopy.WriteToServer state in a consecutive calls. #2375
Fixed null reference exception with SqlConnection.FireInfoMessageEventOnUserErrors after introducing the batch command. #2399
Changed
Replaced System.Runtime.Caching with Microsoft.Extensions.Caching.Memory. #2493
Improved memory allocation when reader opened by CommandBehavior.SequentialAccess over big string columns. #2356
For the full list of changes in Microsoft.Data.SqlClient 6.0 Preview 1, please see the Release Notes.
To try out the new package, add a NuGet reference to Microsoft.Data.SqlClient in your application and pick the 6.0 preview 1 version.
We appreciate the time and effort you spend checking out our previews. It makes the final product that much better. If you encounter any issues or have any feedback, head over to the SqlClient GitHub repository and submit an issue.
David Engel
Microsoft Tech Community – Latest Blogs –Read More
Identifying the SDK Version in an Azure Bot Project: V3 or V4?
How to identify if a bot project is using Azure bot SDKV3 or SDKV4
As you may already know, SDK V3 has been deprecated. With the introduction of new functionalities in SDK V4 for creating Azure bots, it is crucial to migrate to the latest version. However, some projects are still running on SDK V3. I am frequently asked to verify whether a bot is using SDK V3 or V4. Therefore, I am writing this blog post to guide you on how to identify the current version your bot is running on and to emphasize the importance of migrating to SDK V4 to take advantage of enhanced performance, security, and new features.
To identify whether your Azure bot project is using SDK V3 or SDK V4, you can look for a few key indicators:
Project Structure and Files:
SDK V3: Typically, SDK V3 projects will have files like Microsoft.Bot.Builder.dll and Microsoft.Bot.Connector.dll.
SDK V4: SDK V4 projects often include files like Microsoft.Bot.Builder.Dialogs.dll and Microsoft.Bot.Builder.Integration.AspNet.Core.dll.
Code Patterns:
SDK V3: The bot’s main logic is often found in a class that inherits from IDialog or LuisDialog<T>. The message handling is done using MessageController.
SDK V4: The bot’s main logic is usually in a class that inherits from ActivityHandler or DialogBot<T>. The message handling is done using OnMessageActivityAsync.
Configuration Files:
SDK V3: You might see configuration settings in web.config or app.config.
SDK V4: Configuration settings are typically found in appsettings.json.
Dependencies:
SDK V3: Look for dependencies on Microsoft.Bot.Builder version 3.x.x.
SDK V4: Look for dependencies on Microsoft.Bot.Builder version 4.x.x.
By checking these aspects, you should be able to determine which SDK version your bot project is using.
How we can migrate the Azure bot from SDKV3 to SDKV4
Set Up a New SDK V4 Project
Create a new bot project using the Bot Framework SDK V4. You can use the Bot Framework templates for Visual Studio or the Bot Framework CLI to get started.
Migrate Bot Logic
Dialogs: In SDK V3, dialogs are often implemented using IDialog or LuisDialog<T>. In SDK V4, you will use ComponentDialog and WaterfallDialog. You’ll need to rewrite your dialog logic to fit the new structure.
Message Handling: In SDK V3, message handling is done in MessageController. In SDK V4, you handle messages in the OnMessageActivityAsync method of a class that inherits from ActivityHandler.
Update Dependencies
Ensure that your new project references the appropriate SDK V4 packages. You can find these packages on NuGet, such as Microsoft.Bot.Builder, Microsoft.Bot.Builder.Dialogs, and Microsoft.Bot.Builder.Integration.AspNet.Core.
Update Configuration
Move your configuration settings from web.config or app.config (SDK V3) to appsettings.json (SDK V4). Update any necessary settings to match the new SDK requirements.
Test Your Bot
Thoroughly test your bot to ensure that all functionalities are working as expected. Use the Bot Framework Emulator to test locally and make sure to cover all scenarios.
Deploy the Bot
Once testing is complete, deploy your bot to Azure.
You can follow the Azure Bot Service documentation for detailed steps on deployment.
Update Channels
Reconfigure your bot channels in the Azure portal to ensure they are correctly set up for the new SDK V4 bot.
Additional Resources
Bot Framework SDK V4 Documentation
Migration Guide from SDK V3 to V4
Migrating can be a bit complex, but these steps should help you get started.
Hope this helps!
Microsoft Tech Community – Latest Blogs –Read More
Announcing TRIMRANGE and accompanying trim references
I’m excited to announce a new function, TRIMRANGE, and a set of new reference operators.
NOTE: This is a preview function. Its signature and results may change substantially before being broadly released, based on your feedback. So, we do not recommend using it in important workbooks until it is generally available.
New TRIMRANGE function and trim refs: easily remove blanks from the edges of a range
We’re introducing a new function and a set of supporting references:
TRIMRANGE function – a function that removes empty rows from the edges of a range.
Trim references – offer a more succinct way to call common variances of the TRIMRANGE function.
TRIMRANGE function
The TRIMRANGE function removes empty rows from the edges of a range. This can be particularly useful when writing dynamic array formulas or optimizing lambda functions for performance.
In the example below, we use TRIMRANGE to calculate the length of any text entered into column A.
Without the use of TRIMRANGE, =LEN(A:A) would run on every cell, returning over a million unnecessary results. Besides being inefficient, trailing undesirable 0’s are returned to the grid. This can be especially problematic if you then try and operate on the spill using =C1# notation.
TRIMRANGE is also a great new tool for optimizing the performance of lambda functions that operate on ranges. It allows lambda authors to more tightly scope ranges, which can reduce the number of necessary computations.
More information on the TRIMRANGE function can be found on the help page.
Trim References
Trim References (‘Trim Refs’) offer a more succinct way to call common variances of TRIMRANGE. They are a modifier of the iconic colon range operator A1:E5. By prefixing or suffixing the colon with a period, you can request to trim blanks from the start, end or both.
Type
Example
Equivalent TRIMRANGE
Description
Trailing trim ref (:.)
A1:.E10
TRIMRANGE(A1:E10,2,2)
Trim trailing blanks
Leading trim ref (.:)
A1.:E10
TRIMRANGE(A1:E10,1,1)
Trim leading blanks
Full trim ref (.:.)
A1.:.E10
TRIMRANGE(A1:E10,3,3)
Trim leading and trailing blanks
Full-column references are often avoided because they can have poor performance with some functions. However, with trim refs, they are much more performant as the full-column reference can be constrained to just the portion with values.
In the example below, we use the trailing trim ref to trim a full column reference. We expect trailing trim refs to be the most commonly used of the 3 trim ref variants.
Learn More
You can learn more about the TRIMRANGE function on our help page.
Availability
This new function and new references are currently available to Beta Channel users running Version 2409 (Build 18020.2000) or later.
Don’t have it yet? It’s probably us, not you.
Features are released over some time to ensure things are working smoothly. We highlight features that you may not have because they’re slowly releasing to larger numbers of Insiders. Sometimes we remove elements to further improve them based on your feedback. Though this is rare, we also reserve the option to pull a feature entirely out of the product, even if you, as an Insider, have had the opportunity to try it.
Feedback
We want to hear from you! Please click Help > Feedback in Excel on Windows to submit your thoughts about these new functions.
Learn about the Microsoft 365 Insider program and sign up for the Microsoft 365 Insider newsletter to get the latest information about Insider features in your inbox once a month!
Microsoft Tech Community – Latest Blogs –Read More
Released: Microsoft.Data.SqlClient 4.0.6, 5.1.6, 5.2.2
We have released updates to multiple supported versions of Microsoft.Data.SqlClient. The updates address several issues.
Microsoft.Data.SqlClient 4.0 and 5.1 are LTS releases. 5.2 is a non-LTS release. All will continue to get fixes and updates until their respective End of Support dates.
To see which versions are LTS versus non-LTS, what that means, and their support timelines, see the Support Lifecycle for Microsoft.Data.SqlClient.
Updates in Microsoft.Data.SqlClient 4.0.6 include:
Fixed
Fixed connection to unsubscribe from transaction completion events before returning it to the connection pool #2301 #2435
Fixed AcquireTokenAsync timeout handling for edge cases in ActiveDirectoryAuthenticationProvider #2707
Changed
Code health improvements: #2147, #2513, #2519
For more details about the changes in Microsoft.Data.SqlClient 4.0.6, you can also see the Release Notes.
Updates in Microsoft.Data.SqlClient 5.1.6 include:
Fixed
Fixed Transient fault handling issue with OpenAsync. #1983 #2508
Fixed AcquireTokenAsync timeout handling for edge cases in ActiveDirectoryAuthenticationProvider. #2706
Fixed pending data with SqlDataReader against an encrypted column. #2618 #2818
Changed
Upgraded Azure.Identity version from 1.11.3 to 1.11.4 [#2649] (#2649) [#2529] (#2529) to address CVE-2024-35255.
Upgraded Microsoft.Identity.Client version from 4.60.0 to 4.61.3 [#2649] (#2649) [#2529] (#2529) to address CVE-2024-35255.
Added caching to TokenCredential objects to take advantage of token caching. #2776
Code health improvements: [#2490] (#2490)
For more details about the changes in Microsoft.Data.SqlClient 5.1.6, you can also see the Release Notes.
Updates in Microsoft.Data.SqlClient 5.2.2 include:
Fixed
Fixed AcquireTokenAsync timeout handling for edge cases in ActiveDirectoryAuthenticationProvider. #2650
Fixed issue with Socket.Connect in managed SNI. #2779
Fixed path for AssemblyAttributes in obj folder causing NET 8.0 assembly to appear in NET 6.0 dll. #2789
Fixed SSPI retry negotiation with default port in .NET. #2815
Fixed ArgumentNullException on SqlDataRecord.GetValue when using user-defined data type on .NET. #2816
Fixed pending data with SqlDataReader against an encrypted column. #2817
Changed
Upgraded Azure.Identity version from 1.11.3 to 1.11.4 #2648 to address CVE-2024-35255.
Upgraded Microsoft.Identity.Client version from 4.60.0 to 4.61.3 #2648 to address CVE-2024-35255.
Added caching to TokenCredential objects to take advantage of token caching. #2775
For more details about the changes in Microsoft.Data.SqlClient 5.2.2, you can also see the Release Notes.
To get the new packages, add a NuGet reference to Microsoft.Data.SqlClient in your application.
If you encounter any issues or have any feedback, head over to the SqlClient GitHub repository and submit an issue.
David Engel
Microsoft Tech Community – Latest Blogs –Read More