I think the problem where that the <ProjectReference Include="..\..\an\other.csproj" />
where a x86
project and the failing project the <PlatformTarget>x86</PlatformTarget>
in <PropertyGroup>
where missing.
I assume that the reason that I only goth a MSB4236: The SDK "Microsoft.NET.Sdk" specified could not be found.
is that the other project where still in the old format.
So basically I writhe this post just in case some on else (or I) get the same problem.
You can adjust the environment variables cmake runs with by editing the CMakePresets.json file.
Merge in this json snippet to print test output on test failures.
{
"configurePresets": [
{
"environment": {
"CTEST_OUTPUT_ON_FAILURE": "ON"
}
}
]
}
No, you don't need a hosting package to use a custom domain with Blogger. Blogger provides free hosting for your blog, so you only need to purchase a domain name from a registrar like Namecheap, GoDaddy, or Hostinger. After buying the domain, you can connect it to your Blogger blog by updating the DNS settings with the required CNAME and A records, as outlined in Blogger's custom domain setup guide: Blogger Help - Set up a custom domain.
Steps include:
Sign in to Blogger, go to Settings > Publishing > Custom domain, and enter your domain (e.g., www.yourdomain.com).
Blogger will provide two CNAME records (in addition to providing you the instructions). Add these to your domain's DNS settings via your registrar's control panel.
Save the changes and wait for DNS propagation (usually 1-24 hours).
This is likely happening because the -u is omitted, typically -p is needed but can be excluded, interactive prompts are key! I've had this, and -u is how it can be fixed!
I also encounter this situation, when acl is enabled, sentinel can not connect redis node and fail to failover.
my acl in redis.conf is below:
user default on >MYPASSWORD allcommands allkeys
and the settings in sentinel.conf is:
sentinel auth-pass mymaster MYPASSWORD
sentinel auth-user mymaster default
I know this question is about PyPDF2, but as the maintainer himself informs it is deprecated, and this post still shows up when searching for cloning files with pypdf...
Here's how you do it in pypdf:
from pypdf import PdfReader, PdfWriter
writer = PdfWriter()
writer.clone_document_from_reader(PdfReader("input.pdf"))
with open("output.pdf", "wb") as f:
writer.write(f)
Much easier nowadays, isn't it?
NumPy assigns different string dytpes when mixing types in np.array() because:
It promotes all elements to a common type (string, in this case).The resulting d type is determined by the length of the longest string representation of any element.The order of elements affects how NumPy infers the common type and can lead to differing results <u4,<u5,<u32 etc.
In my case, just close Windows Services -> open it again and start the services, and they will work normally.
wow , it works for me as i ave several cell that only have single data and i need it to sum with line break data cell. thanks btw
Its completely fine if u do not know anything about app development and also did not know anything about programming u can start it today.
if u want to build an editing app u must first decide wether this app is going to be available for which platform android or ios(just think about it and decide).
if u thought of android only then u have options like java or kotlin programming language.I suggest kotlin it is best for android app development.
if u thought of ios app development then u should go with learning swift programming language.
And if u have decide to make your app so that it can support both the platform android and ios then u still have many options from which u can decide but here all depends on you wether u want native experience or web like view then go for these :-
(Note)- In Native Experience u need some native coding knowledge but still it is far more better than learning two different native applications
Native Experience
Nativescript + Angular (free)
Xamarin (price depends on what you are doing)
React Native (free)
Webview
After years of search, I start to find a way to solve the export of datas in UTF8 in CSV files under Excel Mac with your script. Thanks.
I have a question : i have 100 lines of datas that I want to export using your script, but STRING is to short to to this. How your script could be changed to be able to PRINTF under MacScript for 100 lignes of datas ? Thanks a lot
For it was all about getting the scope value set properly to send to the downstream API then setting the authority (issuer) and audience set properly on the API itself.
The .default scope is only for making requests using the Downstream API as the App. If you're requesting on behalf of the user you need to define a scope in your Azure AD B2C app registration then include the scope Uri in your "SecureApi" configuration. This allows the TokenAcquision object used by the Downstream API to request a token from Azure AD B2C.
Usually the scope takes for the form of https://azb2cdomain.onmicrosoft.com.onmicrosoft.com/clientid/scopename but can be copied when the scope is defined in the Azure AD B2C portal (App Registration => Expose an API => Add a Scope. It doesn't appear to matter much what you name the scope. All that seems to matter is setting the Uri correctly.
On the API side, Authority is https://adb2cdomain.b2clogin.com/6b31fe92-c55e-4b85-b48e-980f96f1ce58/v2.0/ and the audience is the client id Guid by itself of the app registration you're using.
Apologies for not having links to relevant sites but most of what I've tried has been trial and error.
In the newer versions of laravel, the syntax has changed, and it should be array: first the class and the second element the function, ex:
Route::middleware('auth:sanctum')->post(
'/logout',
[LoginController::class, 'logoutApi']
);
Just to add to the matlines comment, if you use matlines you don't need to use abline at all, as the first column gives the model fit.
matlines(newx, conf_interval, col = c("black", "blue", "blue"), lty=c(1,2,2))
I apologize for this question.
After some troubleshooting I ended finding that POST URL I was using had a typo issue. I fixed the URL and now al verbs are working fine.
Thanks @thatjeffsmith for your tip!
Kindly check you webpack.config.json configuration as in this answer
https://stackoverflow.com/a/34563571/30790900
I'd recommend using sliding_window_view. Change:
nStencil = 3
x_neighbours = (
x[indexStart:indexStop]
for indexStart, indexStop in zip(
(None, *range(1,nStencil)),
(*range(1-nStencil,0), None),
)
)
To:
nStencil = 3
sliding_view = sliding_window_view(x, nStencil)
x_neighbours = tuple(sliding_view[:, i] for i in range(nStencil))
@jhnc hit the point, this is the basic problem
Direct solution to the problem:
username=$1
curl -k "https://test01.foo.com:4487/profile/admin/test?requester=https://saml.example.org&principal=$username&saml2"
By referencing the mako doc, there is no way to do someting like escaping for that.
But, using ${'##'} to replace ## is helpful.
Nowadays no need to memorise the projects or code itself. Simply search online for solutions on quality websites e.g: stackoverflow.com
however avoid automatically generated AI blog posts as usually untested in the real world so can waste a lot of your time.
The good news is that learning to code from scratch like in the old days is no longer required as you can get much of it automated for you as a starting point e.g
GitHub Co Pilot
ChatGPT Coding in canvas
I notice you’re specifying a Payment Method while creating a Setup Intent. This is perfectly valid if you want to re-authenticate or re-verify a pre-existing Payment Method for future off-session usage. However, the goal when redisplaying previously saved Payment Methods is usually to make a Payment with said Payment Methods. If that is the case here I would suggest using a Payment Intent instead.
In either case, you’ll need to create a Customer Session[0] in addition to the Payment/Setup Intent and pass both the Intent’s client secret and the Customer Session client secret to the Payment Element. [1] This is alluded to in the documentation you cited where it talks about configuring the Customer Session for allow_redisplay="unspecified"
. [2] A Customer Session is needed regardless, even if you only want to show Payment Methods with allow_redisplay=”always”
. This admittedly could have been stated more clearly but is outlined in further detail elsewhere in the documentation. I’d recommend following the code example in my first citation for more clarity. [1]
If the Payment Element still isn’t populating with saved card information after providing a Customer Session client secret, I’d advise double checking what value has been set for allow_redisplay
on the Payment Method. You mentioned that it was set to true
but the available options are always
, unspecified
, and limited
.[3] You’ll want to make sure this value aligns with what is set in the Customer Sessions payment_method_allow_redisplay_filters
array. [4]
To review:
Consider your use of Setup Intents and determine if a Payment Intent would make more sense for your current use case.
Make sure you are passing a Customer Session client secret to the Payment Element.
Ensure the Payment Methods allow_redisplay
value is among the values listed in the Customer Sessions payment_method_allow_redisplay_filters
array.
Please let me know if there are any points I can help clarify.
[0]https://docs.stripe.com/api/customer_sessions
[1]https://docs.stripe.com/payments/save-during-payment#enable-saving-the-payment-method-in-the-payment-element
[2]https://docs.stripe.com/payments/save-customer-payment-methods#display-existing-saved-payment-methods
[3]https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay
DISCLAIMER: Please note that this code was written by an AI and is not running on Office 365 since I can't test on that. (You can tell by the comments)
I recall that we aren't supposed to post AI written code. But this is the answer that worked. This puts me in a situation where I'm not sure what to do. I'm not going to spend an hour or two rewriting it beyond what I've already done.
Option Explicit
Sub ScrollBothWindowsAfterNextTotal()
Dim win1 As Window, win2 As Window
Dim ws1 As Worksheet, ws2 As Worksheet
Dim nextTotal1 As Range, nextTotal2 As Range
Dim startRow1 As Long, startRow2 As Long
Dim currentWindow As Window
' Check if at least two windows are open
If Application.Windows.Count < 2 Then
MsgBox "You need at least two workbook windows open.", vbExclamation
MsgBox "Current open windows: " & Application.Windows.Count, vbInformation
Exit Sub
End If
' Save current active window to restore afterward
Set currentWindow = Application.ActiveWindow
' Define foreground and background windows
Set win1 = Application.Windows(1) ' Active window
Set win2 = Application.Windows(2) ' Background window
' --- Scroll Active Window (win1) ---
Set ws1 = win1.ActiveSheet
startRow1 = win1.ActiveCell.Row + 1
' Find the next "Total" in column C of active window's worksheet
Set nextTotal1 = ws1.Columns("C").Find(What:="Total", After:=ws1.Cells(startRow1, 3), _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not nextTotal1 Is Nothing Then
' Scroll active window to the row after "Total"
win1.Activate ' Ensure active window is selected
ws1.Cells(nextTotal1.Row + 1, 1).Select
win1.ScrollRow = nextTotal1.Row + 1
Else
MsgBox "No 'Total' found in active window after row " & (startRow1 - 1), vbInformation
End If
' --- Scroll Background Window (win2) ---
Set ws2 = win2.ActiveSheet
startRow2 = win2.ActiveCell.Row + 1
' Find the next "Total" in column C of background window's worksheet
Set nextTotal2 = ws2.Columns("C").Find(What:="Total", After:=ws2.Cells(startRow2, 3), _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not nextTotal2 Is Nothing Then
' Activate background window temporarily to scroll it
win2.Activate
ws2.Cells(nextTotal2.Row + 1, 1).Select
win2.ScrollRow = nextTotal2.Row + 1
Else
MsgBox "No 'Total' found in background window after row " & (startRow2 - 1), vbInformation
End If
' Restore original active window
currentWindow.Activate
End Sub
This code takes two open workbooks and scrolls to the next ' Total' in both windows... note that I didn't bother checking to make sure its the same name, that is intentional, since i might be missing data i want to see if the new version is missing it.
API changes,The path
, request_headers
and response_headers
properties are replaced by request
and response
.
websocket.request.path
I have this alias in my .gitconfig file for creating something similar in the terminal
[alias]
tree = log --format='%C(auto)%h %d %C(green dim)%ad %C(white dim)%an<%ae> %C(auto)%s' --decorate --all --graph --date=iso-strict --color=always
Problem was I was using a \ instead of / in access the external server's folder.
Elementary problem. :)
I ended up making a tool for this. It's located on GitHub at ckinateder/google-photos-exif-merger. My tool does handle the strange filename changes mentioned in previous answers, as well as situations with missing JSON files (for live photos, the takeout only creates one JSON file for multiple media files). My tool also detects where file types are mismatched and automatically attempts to rename.
There's a CLI version and an optional GUI interface (in web browser). It's written in Python with minimal packages, so it's not too hard to setup.
I see what's wrong, I had to do a
git reset <latest hash>
To point it to the latest commit. Then it is synced up with the Git repository.
Here's how to define an io.Reader wrapper with the desired behavior:
// NewSleepyReader returns a reader that sleeps for duration
// after reading each block of num bytes from an underlying reader.
func NewSleepyReader(underlying io.Reader, num int, duration time.Duration) io.Reader {
return &sleepyReader{r: underlying, num: num, duration: duration}
}
type sleepyReader struct {
r io.Reader
duration time.Duration
num int
i int
}
func (sr *sleepyReader) Read(p []byte) (int, error) {
n, err := sr.r.Read(p[:min(len(p), sr.num-sr.i)])
sr.i += n
if sr.i >= sr.num {
time.Sleep(sr.duration)
sr.i = 0
}
return n, err
}
Use it like this in your application:
_, err := io.Copy(io.Discard, NewSleepyReader(r.Body, 10, time.Second))
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
Well the error suggests that your default export function doesnt return a valid React component. Would you mind sharing some code to look at?
edit
I believe this was already answered. Have you tried?
Date: 23/01/2021
I've also faced this issue on my Next.js
app.
If you're using a functional component instead of a class component you'll get this error as well in some casses. Exactly I don't know why this is happening but I just resolved this issue by exporting
my component at the bottom of the page.
Like this,
Case Error scenario:
export default function Home(){
return (<>some stuffs</>)
}
Home.getInitialProps = async (ctx) => {
return {}
}
Error: The default export is not a React Component in page: "/"
How to resolved it?
I just put my export at the bottom my page and then it'll be gone.
Like this,
function Home(){
return (<>some stuffs</>)
}
Home.getInitialProps = async (ctx) => {
return {}
}
export default Home;
Hopefully, it'll be helpful for you!
I was having trouble with a YouTube Data API request and kept receiving this error in the response:
{
"error": {
"code": 403,
"message": "Requests from referer <empty> are blocked.",
"errors": [
{
"message": "Requests from referer <empty> are blocked.",
"domain": "global",
"reason": "forbidden"
}
]
}
}
After logging the raw API response and debugging further, I realized the issue was related to the missing Referer
header in my cURL
request.
Since I was using an API key restricted by domain in the Google Cloud Console, I needed to explicitly set the Referer
header to match one of the allowed domains.
Here’s how I fixed it:
$ch = curl_init();
$options = [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_USERAGENT => 'YouTube Module/1.0',
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 3,
CURLOPT_REFERER => 'http://my-allowed-domain-in-google.com', // Must match one of your allowed domains
CURLOPT_HEADER => true, // Include headers for debugging
];
curl_setopt_array($ch, $options);
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
With this change, I started receiving a 200 OK
response, and the API began returning the expected data — including the items
array.
If you're facing a similar issue and using a domain-restricted API key, make sure to include the correct Referer
header in your request.
Thanks to everyone who helped me along the way — happy coding! 😊
Looks like your Neo4jImportResource.importGraph()
is not actually calling executeCypherStatements()
at runtime.
check if statement list is empty
It could also be the function called but failed in between.
try wrapping it in side try catch.
lsof -i :5432
gave no output for me. going to MacOS's Activity Monitor, searching for postgres, selecting all of the results, then clicking on the ⓧ to kill them fixed it for me.
What you could do if copying the data is a performance concern is to use reinterpret_cast to cast c1 to a reference to a vector of the required type:
std::vector<int*> c1;
std::vector<void*>& c2 = reinterpret_cast<std::vector<void*>&>(c1);
I have to stress, though, that you are relying on the fact that pointers to one type usually are much like pointers to another type. In particular, they are the same size so they are stored in the vector the same way. So this will work as long as the memory layout of the type you're casting to is the same as type you're casting from. There is no guarantee that doing this is OK in your specific case because we don't know the circumstances and why you're trying to do this. For example the two pointer types might have different alignment requirements. So you should normally stick to well defined behavior and copy the vector. You should not be avoiding the copy just because it is not needed.
Please use below command at powershell
PS:az devops login --organization "https://dev.azure.com/<COMPANY NEME>-VSTS/"
it will ask for Token:
provide the PAT token.
Thanks to https://codepen.io/gc-nomade/pen/YPXLQRN I just modify some classes
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<div class="p-10" style="filter:drop-shadow(0 0 1px) drop-shadow(0 0 1px) drop-shadow(0 0 1px)">
<div class="grid grid-cols-6 grid-rows-4 gap-4">
<div class="col-span-1 row-span-1 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4">
<span class="text-gray-600">Card 1</span>
</div>
<div class="col-span-3 row-span-1 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4">
<span class="text-gray-600">Card 2</span>
</div>
<div class="col-span-2 row-span-1 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4">
<span class="text-gray-600">Card 3</span>
</div>
<div class="col-span-1 row-span-2 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4">
<span class="text-gray-600">Card 4</span>
</div>
<div class="col-span-3 row-span-1 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4">
<span class="text-gray-600">Card 5</span>
</div>
<div class="col-span-2 row-span-2 flex items-center justify-end rounded-lg border-blue-500 bg-white p-4" style="clip-path: polygon(0 0, 100% 0, 100% 100%, 46% 100%, 46% calc(50% - .7em), 0 calc(50% - .7em) );">
<span class="text-gray-600">Card 6</span>
</div>
<div class="col-span-2 row-span-1 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4">
<span class="text-gray-600">Card 7</span>
</div>
<div class="col-span-1 row-span-1 flex items-center justify-center rounded-lg border-blue-500 bg-white p-4 w-[200%]">
<span class="text-gray-600">Card 8</span>
</div>
</div>
</div>
let fruits = [{
name: "apple",
description: "An apple is a sweet, edible fruit produced by an apple tree (Malus pumila). Apple trees are cultivated worldwide and are the most widely grown species in the genus Malus. The tree originated in Central Asia, where its wild ancestor, Malus sieversii, is still found today. Apples have been grown for thousands of years in Asia and Europe and were brought to North America by European colonists.",
color: "green"
},
{
name: "banana",
description: "A banana is an edible fruit – botanically a berry – produced by several kinds of large herbaceous flowering plants in the genus Musa. In some countries, bananas used for cooking may be called 'plantains.' Musa species are native to tropical Indomalaya and Australia, and are likely to have been first domesticated in Papua New Guinea. They are grown in 135 countries and the world's largest producers of bananas are India and China",
color: "gold"
},
{
name: "strawberry",
description: "The garden strawberry is a widely grown hybrid species of the genus Fragaria, collectively known as the strawberries. It is cultivated worldwide for its fruit. The fruit is widely appreciated for its characteristic aroma, bright red color, juicy texture, and sweetness.",
color: "red"
},
{
name: "orange",
description: "The orange is the fruit of the citrus species Citrus × sinensis in the family Rutaceae. It is known as the 'Sweet Orange.' It originated in ancient China and the earliest mention of the sweet orange was in Chinese literature in 314 BC. As of 1987, orange trees were found to be the most cultivated fruit tree in the world. In 2014, 70.9 million tonnes of oranges were grown worldwide, with Brazil producing 24% of the world total followed by China and India. Oranges are infertile and reproduce asexually.",
color: "peru"
},
{
name: "pineapple",
description: "The word 'pineapple' in English was first recorded to describe the reproductive organs of conifer trees (now termed pine cones). When European explorers encountered this tropical fruit in the Americas, they called them 'pineapples' (first referenced in 1664, for resemblance to pine cones). The plant is indigenous to South America and is said to originate from the area between southern Brazil and Paraguay. Columbus encountered the pineapple in 1493 on the leeward island of Guadeloupe. He called it piña de Indes, meaning 'pine of the Indians', and brought it back with him to Spain.",
color: "yellow"
},
{
name: "blueberry",
description: "Blueberries are perennial flowering plants with blue– or purple–colored berries. They are classified in the section Cyanococcus within the genus Vaccinium. Commercial 'blueberries' are all native to North America. They are covered in a protective coating of powdery epicuticular wax, colloquially known as the 'bloom'. They have a sweet taste when mature, with variable acidity.",
color: "blue"
},
{
name: "grape",
description: "A grape is a fruit, botanically a berry, of the deciduous woody vines of the flowering plant genus Vitis. Grapes are a non-climacteric type of fruit, generally occurring in clusters. The cultivation of the domesticated grape began 6,000–8,000 years ago in the Near East.[1] Yeast, one of the earliest domesticated microorganisms, occurs naturally on the skins of grapes, leading to the discovery of alcoholic drinks such as wine. The earliest archeological evidence for a dominant position of wine-making in human culture dates from 8,000 years ago in Georgia.",
color: "purple"
},
{
name: "lemon",
description: "The lemon, Citrus limon Osbeck, is a species of small evergreen tree in the flowering plant family Rutaceae, native to South Asia, primarily North eastern India. The juice of the lemon is about 5% to 6% citric acid, with a pH of around 2.2, giving it a sour taste. The distinctive sour taste of lemon juice makes it a key ingredient in drinks and foods such as lemonade and lemon meringue pie.",
color: "yellow"
},
{
name: "kiwi",
description: "Kiwi is the edible berry of several species of woody vines in the genus Actinidia. It has a fibrous, dull greenish-brown skin and bright green or golden flesh with rows of tiny, black, edible seeds. Kiwifruit is native to north-central and eastern China. The first recorded description of the kiwifruit dates to 12th century China during the Song dynasty. China produced 56% of the world total of kiwifruit in 2016.",
color: "green"
},
{
name: "watermelon",
description: "Citrullus lanatus is a plant species in the family Cucurbitaceae, a vine-like flowering plant originating in West Africa. It is cultivated for its fruit. There is evidence from seeds in Pharaoh tombs of watermelon cultivation in Ancient Egypt. Watermelon is grown in tropical and subtropical areas worldwide for its large edible fruit, also known as a watermelon, which is a special kind of berry with a hard rind and no internal division, botanically called a pepo.",
color: "crimson"
},
{
name: "peach",
description: "The peach (Prunus persica) is a deciduous tree native to the region of Northwest China between the Tarim Basin and the north slopes of the Kunlun Mountains, where it was first domesticated and cultivated. The specific name persica refers to its widespread cultivation in Persia (modern-day Iran), from where it was transplanted to Europe. China alone produced 58% of the world's total for peaches and nectarines in 2016.",
color: "peru"
}
];
function resetStyle() {
document.querySelectorAll('li').forEach(x => x.style.color = 'hotpink');
}
function setFruit(fruit) {
console.log(`loading ${fruit.name}`);
let elem = document.getElementById(fruit.name);
elem.style.color = fruit.color;
fruitName = document.getElementById('fruitName');
fruitName.innerText = fruit.name;
fruitDesc = document.getElementById('fruitDesc');
fruitDesc.innerText = fruit.description;
//activate 3d view window
var x = document.getElementById('x');
x.innerHTML = 1;
}
document.addEventListener('click', (e) => {
if (e.target.matches('li')) {
resetStyle();
setFruit(fruits.find(f => f.name === e.target.id));
}
});
* {
margin: 0px;
padding: 0px;
border: 0px;
}
.container {
background-color: beige;
width: 600px;
min-height: 550px;
border-radius: 30px;
margin: 40px auto;
}
.title {
font-family: sans-serif;
margin: 20px 20px 20px 20px;
color: indianred;
display: inline-block;
float: left;
}
.box3d {
float: right;
height: 225px;
width: 280px;
background-color: slategray;
display: inline-block;
margin: 25px 50px 0px 0px;
}
.desc {
float: right;
height: 225px;
width: 350px;
background-color: white;
display: inline-block;
margin: 25px 50px 0px 0px;
overflow: auto;
}
.fruitlist {
padding-left: 20px;
margin: 20px 0px 0px 30px;
list-style: none;
display: inline-block;
float: left;
}
li {
margin-bottom: 12px;
font-family: sans-serif;
color: purple;
font-size: 18px;
}
li:hover {
font-size: 20px;
color: hotpink;
}
#fruitName {
color: blue;
margin: 10px 10px 10px 10px;
border-bottom: solid 3px blue;
font-family: sans-serif;
}
#fruitDesc {
margin: 10px 10px 0px 10px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>FruityView</title>
<link rel="stylesheet" href="fruitstyle.css">
</head>
<body>
<div class="container">
<h1 class="title">FruityView</h1>
<!--3D MODEL VIEW WINDOW-->
<div class="box3d" id="box3d">
<p id='x'>0</p>
<script>
//this doesn't work - maybe I could do some sort of for loop that could retest it?
var x = document.getElementById('x');
console.log(x);
function view3d() {
console.log("view function activated");
}
if (x == 1) {
view3d();
}
//this doesn't work - I know it would if it came after the list but I don't want to do that
/*var peach = document.getElementById('peach').onclick = peach;
peach() {
console.log("successful activation");
}
*/
</script>
</div>
<br>
<!--SELECTION LIST-->
<ul class="fruitlist">
<li id="apple">Apple</li>
<li id="banana">Banana</li>
<li id="strawberry">Strawberry</li>
<li id="orange">Orange</li>
<li id="pineapple">Pineapple</li>
<li id="blueberry">Blueberry</li>
<li id="grape">Grape</li>
<li id="lemon">Lemon</li>
<li id="kiwi">Kiwi</li>
<li id="watermelon">Watermelon</li>
<li id="peach">Peach</li>
</ul>
<!--NAME AND DESCRIPTION-->
<div class="desc">
<h3 id="fruitName">Welcome to FruityView</h3>
<p id="fruitDesc">Please pick a fruit</p>
</div>
</div>
</body>
</html>
Its an old post but i had similar situation do posting the approach i took here
https://medium.com/@rchawla501/scaffold-identity-in-existing-aspnetcore-mvc-project-2c53159499b6
I had a similar bug (The virtual environment found in seems to be broken
) using poetry when running scripts with poetry run
or poetry shell
. In my case the issue was that the env variable VIRTUAL_ENV
was set to an old environment I was previously using and was already deleted. Running unset VIRTUAL_ENV
fixed the issue.
"go to your Repository SETTINGS, open Pages
section on the left, and configure it to point to the GH-PAGES branch instead of the MAIN branch."
BAMM, that was my exact issue! Thank you for sharing
Convert <left>, <data>, <right>
tags → <div class="left">
, etc.
Update CSS grid-template-areas to use .left
, .right
, .data
.
Confirm hidden form has plain display: none;
with no competing styles.
There isn't a single parameter in the API call you could pass to an invitation BCC in Outlook. What you can do though is make multiple invites for the same event by making API calls iteratively with the same meeting information that updates the attendee email each time. This will let you create calendar events for each invitee that prevent them from viewing the emails of other recipients. Any updates to the event will also need to made iteratively to ensure all invites are updated. If you are not a developer this can be done using Salepager which lets you create BCC Outlook calendar invitations.
You can now publish posts using the Snapchat API. Here is some info: https://www.ayrshare.com/complete-guide-to-snapchat-api-integration/
IAddressRepository is in the namespace Clients.IRepositories but AddressRepository is in Clients.Repositories(without the i) so it would be AddressRepository : IRepositories.IAddressRepository
I'm joining this thread because it's not working for me either. Does anyone have any ideas in the meantime? I've gone through the entire API regarding this accessibility, I've added it in various ways and clicking the "accessibility button" does nothing, it doesn't trigger anything.
im having exact same issue on laravel on my server i get the logs, but i also get this error trying to automate a response.
"response":{"error":{"message":"(#3) Application does not have the capability to make this API call.","type":"OAuthException","code":3,"fbtrace_id":"AV3dre69bePSZQP8odKyvhl"}}}
[2025-06-12 21:50:59] local.ERROR: Failed to send Instagram message {"error":"{\"error\":{\"message\":\"(#3) Application does not have the capability to make this API call.\",\"type\":\"OAuthException\",\"code\":3,\"fbtrace_>
public function verifyWebhook(Request $request)
{
$verifyToken = env('IG_VERIFY_TOKEN');
Log::info('incoming instagram webhook', ['payload' => $request->all()]);
$mode = $request->get('hub_mode');
$token = $request->get('hub_verify_token');
$challenge = $request->get('hub_challenge');
if ($mode === 'subscribe' && $token === $verifyToken) {
return response($challenge, 200);
}
}
public function handleWebhook(Request $request)
{
$data = $request->all();
Log::info('handling ig webhook', ['data' => $data]);
if (isset($data['object']) && $data['object'] === 'instagram') {
foreach ($data['entry'] as $entry) {
$instagramId = $entry['id'];
$integration = Integration::where('integration_name', 'instagram')
->where('integration_details->instagram_user_id', $instagramId)
->latest()
->first();
if (!$integration) {
Log::error('No integration found for Instagram ID', [
'instagram_id' => $instagramId,
'integration_details' => $integration->integration_details ?? null
]);
continue;
}
$slug = $integration->integration_details['slug'] ?? null;
$accessToken = $integration->integration_details['page_access_token'] ?? null; //page access token
$igUserId = $integration->integration_details['instagram_user_id'] ?? null;
// Check if the chatbot is allowed to respond on this integration
$chatbotSetting = ChatbotSetting::where('slug', $slug)->first();
if (!$chatbotSetting) {
Log::warning("No chatbot setting found for slug: $slug");
continue;
}
$userDataSettings = $chatbotSetting->chatbotUserDataSetting;
if (!$userDataSettings || !isset($userDataSettings['social_media_integration_ids'])) {
Log::warning("No userDataSettings or social_media_integration_ids for chatbot slug: {$slug}");
continue;
}
// Ensure the IDs are strings for consistent comparison
$allowedIntegrationIdsRaw = $userDataSettings['social_media_integration_ids'];
Log::info("Allowed integration IDs for chatbot slug {$slug}: ", $allowedIntegrationIdsRaw);
$allowedIntegrationIds = is_array($allowedIntegrationIdsRaw)
? array_map('strval', $allowedIntegrationIdsRaw)
: [];
$currentIntegrationId = (string) $integration->id;
if (!in_array($currentIntegrationId, $allowedIntegrationIds)) {
Log::info("Integration ID {$currentIntegrationId} not authorized to respond for chatbot: {$slug}");
continue;
}
Log::info('ing webhook', ['slug' => $slug]);
foreach ($entry['messaging'] as $event) {
if (isset($event['message']) && isset($event['sender']['id'])) {
$senderId = $event['sender']['id'];
$message = $event['message']['text'] ?? '';
$responseText = $this->generateAIResponse($message, $slug);
$this->sendInstagramMessage($senderId, $responseText, $accessToken, $igUserId);
}
}
}
}
return response('EVENT_RECEIVED', 200);
}
private function sendInstagramMessage($recipientId, $messageText, $accessToken, $igUserId)
{
$url = "https://graph.facebook.com/v22.0/{$igUserId}/messages?access_token=" . urlencode($accessToken);
$response = Http::post($url, [
'messaging_type' => 'RESPONSE',
'recipient' => ['id' => $recipientId],
'message' => ['text' => $messageText],
]);
Log::info('Instagram message sent', [
'recipient_id' => $recipientId,
'message_text' => $messageText,
'response' => $response->json()
]);
if (!$response->ok()) {
Log::error('Failed to send Instagram message', [
'error' => $response->body(),
'access_token' => substr($accessToken, 0, 6) . '...',
'ig_user_id' => $igUserId
]);
}
}
You can follow what @yoduh suggested, and here is how you can send it to backend
const deliveryTime = ref(new Date());
const payload = reactive({
DeliveryTime: deliveryTime.value,
});
watch(deliveryTime, (time) => {
if (!time) return;
const now = new Date();
now.setUTCHours(time.hours);
now.setUTCMinutes(time.minutes);
now.setUTCSeconds(time.seconds || 0);
payload.DeliveryTime = now.toISOString(); // "2025-06-12T00:49:00.485Z"
// Optionally, format for MySQL datetime without timezone:
payload.DeliveryTime = now.toISOString().slice(0, 19).replace('T', ' '); // "2025-06-12 00:46:00"
});
I discovered from a Linux Mint Forum topic that what I was missing is making sure the current user had sufficient permissions (the error messages gave me no indication that it was a permission issue, but turns out, it was).
I moved the command into a Bash script named setVolume.sh
(making sure it has the correct permissions with chmod
), with the user myuser
being part of the group for /usr/bin/amixer
:
sudo su - myuser
amixer -c 3 set PCM 50%
Then, I changed Go code to:
package main
import (
"fmt"
"log"
"os"
"os/exec"
)
func main() {
setVolumeCommand := exec.Command("/bin/sh", "./setVolume.sh")
setVolumeCommand.Stdout = os.Stdout
setVolumeCommand.Stderr = os.Stderr
setVolumeError := setVolumeCommand.Run()
if setVolumeError != nil {
log.Fatal(setVolumeError)
}
}
Thanks for helping me figure this out!
For the benefit of those searching later, please see:
The HttpClientHandler.AutomaticDecompression Property should allow you to decompress received data.
is there any way to perform the miceadds::mi.anova function with a more complicated regression? I am performing with() for a cox proportional hazards survival regression and it keeps throwing errors when i try to use the above code to calculate the global p for one of my variables.
As per @ChayimFriedman's comment, here is how to fix either attempt. Note that for attempt 1, in addition to removing the asterisk, it appears that you must add braces too.
let mut map : BTreeMap<i32, HashSet<i32>> = BTreeMap::new();
let mut value = HashSet::new();
map.insert(1, value);
// working attempt 1:
map.entry(1).and_modify(|s| { s.insert(7);});
// working attempt 2:
let mut set = map.get_mut(&1);
match set {
Some(ref mut hashset) => {hashset.insert(77);},
None => {},
};
Voice Search Optimization: The Next Big Thing in SEO
The way people search online is changing—and fast. As smart speakers, virtual assistants, and mobile voice technology become part of daily life, voice search is emerging as one of the most influential trends in digital marketing and SEO. For businesses that want to stay ahead of the curve, Voice Search Optimization is no longer optional—it’s the next big thing in SEO.
In this blog, we’ll explore what voice search is, why it matters, and how you can optimize your website to stay visible in this rapidly evolving search landscape.
Voice search is the act of using speech, rather than typing, to search the internet. Users speak into devices like smartphones, smart speakers (Amazon Echo, Google Nest), or voice assistants (Siri, Alexa, Google Assistant) to ask questions or make requests.
For example:
Typed: “best pizza near me”
Voice: “Where can I get the best pizza nearby?”
Notice the difference? Voice searches tend to be longer, more conversational, and often framed as questions.
According to multiple studies, over 50% of all searches are now voice-based. As smart home devices and mobile voice assistants become more common, this number is only expected to rise.
Voice search is heavily used on mobile devices and often has local intent. People use it to find nearby services, stores, restaurants, and more. Optimizing for voice means you’re tapping into high-intent users who are ready to take action.
Voice queries are more natural and conversational. This shift is forcing marketers to rethink keyword strategies, focusing less on robotic phrases and more on how real people talk.
Voice search SEO isn’t just traditional SEO with a twist—it requires a fresh approach. Here are the most effective strategies to get started:
Voice search is all about natural language. Users speak in full sentences, often asking direct questions like:
“What’s the best Italian restaurant in Brooklyn?”
“How late is Target open tonight?”
What to do:
Use tools like AnswerThePublic, Google’s People Also Ask, or Quora to find question-based keywords.
Incorporate these phrases into your content, headers (H2/H3), and FAQs.
Structure content to answer specific questions clearly and concisely.
FAQ pages are perfect for voice search because they mirror how people ask questions out loud. Each question-and-answer pair can serve as a potential voice search result.
Tips:
Write in a conversational tone.
Use clear, concise answers (aim for 30–50 words per answer).
Organize questions by categories or topics for a better user experience.
Voice assistants often pull answers directly from Google’s Featured Snippets (aka position zero). These are short, highlighted answers that appear at the top of the search results.
How to improve your chances:
Format your content with bullet points, lists, and tables.
Use structured data (schema markup) to help Google understand your content.
Make sure answers are brief, accurate, and directly related to the question.
Since many voice searches are local (“Where’s the nearest gas station?”), local SEO is crucial.
Best practices:
Claim and optimize your Google Business Profile.
Ensure your name, address, and phone number (NAP) are consistent across all platforms.
Use local keywords (e.g., “best dentist in Denver”).
Get reviews and respond to them regularly.
The more accurate and complete your local listings are, the more likely your business will appear in voice search results.
Voice search is most commonly used on mobile devices, so your website must be mobile-friendly and fast.
Checklist:
Use responsive design.
Optimize image sizes.
Minimize scripts and unnecessary plugins.
Use Google’s Mobile-Friendly Test and PageSpeed Insights to assess performance.
A slow or clunky site won’t just hurt your SEO—it can lead to user drop-offs, especially on mobile.
Voice search is no longer a novelty—it’s a major part of how people interact with the internet. With the rise of smart speakers and AI-powered assistants, optimizing for voice is becoming essential to any comprehensive SEO strategy.
Brands that embrace this shift will:
Reach more mobile and local searchers
Improve user engagement
Stay ahead of competitors in search rankings
Voice search optimization isn't about reinventing the SEO wheel—it’s about adapting to how people naturally communicate. By focusing on conversational keywords, structured content, mobile usability, and local presence, you’ll position your business to thrive in this voice-first future.
The question is no longer if voice search will impact your strategy—it’s how soon you’ll optimize for it with vizionsolution.
One thing that you probably need to do is to space out and stagger your pathfinding. Your agents likely do not need to recalculate the path every frame. If you're not ready to make a jump to DOTS and/or threading, you can still use coroutines on your agents to have them only recalculate the path every X milliseconds. And once you do that, I highly recommend to add a random factor so that they're not all recalculating on the same frame. If you forget to add that staggering, you will instead see periodic spikes in your profiler, possibly paired with stutters in the game, as every agent hits the recalculate together.
Try to change the termination from <CR> to <CR+LF> to resolve this error. I saw that this solved a different error, but worked for me to solved the (-1073807339).
I see you are using weather
variable from component.ts file which is a global variable, and it's not defined separately for each item.
I have prepared a stackblitz demo - Click here to answer your query. Please check and let me know if you need anything else!
The problem was the depth in converting to JSON. The default is too shallow, so "self" was coming out as an object reference, not the string. Just need to add the -Depth flag with enough to get down to it.
| ConvertTo-Json -Depth 20
GREEK CAPITAL LETTER YOT really exists. Google it as proof. U037f
If the issue is in a (system supplied) pathlib module provided by Azure, just make sure you use your own Python and libs installation. This should be fairly straightforward when building and deploying a docker container.
Try
npm cache clean --force
It is used to clear the npm cache, which is an area where npm stores previously downloaded packages to reuse them later and speed up installations. Sometimes this cache can become corrupted or contain incomplete packages, which can cause crashes, infinite loops, or installation failures.
did you find the solution. I am also looking for this.
As you said, the structures are different. Rather than map elements, why not just do the right thing and re-code to the new API?
You should be able to upload the PNG file directly from the browser. Follow below steps:
1. Go to 'Add file'
2. 'Upload files
3. Drag or Browse files to upload
4. Commit
iiMi ia liitt;le dDRUNk righ now sppbu jehe'r mUY COD::-;
bar <- list(list(11, 21, 31), list(12, 22, 32))
bar_new <- matrix(unlist(bar), nrow = length(bar[[1]]), byrow = TRUE)
row_means <- rowMeans(bar_new)
print(row_means)
For real-time tracking you have two options.
Setup QuantumView notifications for shipper to send to a mailbox that you monitor programmatically. Parse the emails to update your order status. I believe this is how Shopify and other e-commerce providers send out "order delivered" emails.
UPS now has Webhooks as a paid option on their developer portal https://developer.ups.com
I just had the same problem. This was my site: peterplevko.eu/sitemap.xml - but it said 'Could not fetch.' I had to add a slash / at the end of the URL, so it became peterplevko.eu/sitemap.xml/ , and suddenly it started working. The solution to this problem was mentioned in this thread: github.com/vercel/next.js/issues/75836.
As seen here:
Another (and, IMHO, the best) option is to lean on the excellent direnv tool. direnv
supports Python virtualenvs trivially, all you need to do is put this in the directory's .envrc
:
. bin/activate
On the Emacs side, I've been using the envrc package for several years now and it's excellent. Works with Tramp too!
The term you are looking for is a Canonical Path. In fact, it would be good to read up on the term Canonical, as that will provide useful context.
So, if you want to know if 2 instances of Path
are pointing to the same object, then find the Canonical Path to the file.
The way to find the Canonical Path to a file in Java is to use the method Path.toRealPath().
System.out.println(a.toRealPath().equals(b.toRealPath())); //true, as it should be!
If you want to use FlatList
components inside of ScrollView
just add scrollEnabled={false}
so it won't harm the parent scrolling.
<FlatList
scrollEnabled={false}
...
/>
There is no official way to do this. But if you want to do this and still keep migration history intact. You can run your revert logic directly on database and remove row for that particular migration file from "migrations" table. If you don't want to run migration from that file again, you can delete it (else it will again run in next migration).
As others mentioned, this should be done only if subsequent migration steps were independent of the one you are removing. And yes, this does not answer the question, because this is not "typeorm" way but a hack, but could help somebody.
I got this in a response with gspread/sheets just now. What's happening today?
// pubspec.yaml dependencies:
// video_player: ^2.7.0
// file_picker: ^6.1.1
// path_provider: ^2.1.2
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import 'package:file_picker/file_picker.dart';
void main() {
runApp(MySecureVideos());
}
class MySecureVideos extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: VideoHomePage(),
debugShowCheckedModeBanner: false,
);
}
}
class VideoHomePage extends StatefulWidget {
@override
_VideoHomePageState createState() => _VideoHomePageState();
}
class _VideoHomePageState extends State<VideoHomePage> {
VideoPlayerController? _controller;
Future<void> pickVideo() async {
final result = await FilePicker.platform.pickFiles(type: FileType.video);
if (result != null && result.files.single.path != null) {
\_controller = VideoPlayerController.file(
File(result.files.single.path!),
)..initialize().then((\_) {
setState(() {});
\_controller!.play();
});
}
}
@override
void dispose() {
\_controller?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('MySecureVideos')),
body: Center(
child: \_controller == null
? Text('कोई वीडियो प्ले नहीं किया गया')
: AspectRatio(
aspectRatio: \_controller!.value.aspectRatio,
child: VideoPlayer(\_controller!),
),
),
floatingActionButton: FloatingActionButton(
onPressed: pickVideo,
child: Icon(Icons.video_library),
),
);
}
}
I have the same issue. I found somewhere that it can be SPM-related. I would appreciate the update if you were able to resolve it.
You can try installing it via conda-forge channel. This solved the issue for me.
Wow, these answers are more complex than I wanted... It's a bit of a hack and the numbers I used were arrived at through an iterative process... I'm using a monospaced font so all of my characters should be the same width - surprise, a space has 0 base width + the added amount before and after.
So... Measure the width of a single character and then adjust based on the length of the string.
using (Graphics g = Graphics.FromImage(MyImage))
var stringsize = g.MeasureString("M", MyFont);
stringsize.Width = stringsize.Width * ((float)0.92 + (txt.Length - 1) * (float)0.65);
//0.92 for the first character, 0.65 for everything after
It looks like you would need to contact github support directly to have it deleted.
New kid on the block....
https://github.com/coolsamson7/aspyx
In my mind simpler api and more functionality than a couple of other solutions
Check it out and tell me what you think about it :-)
"Visibility check was unavailable" seems to be connected to general GCP outages, if today is anything to go on.
=ROWS(UNIQUE(FILTER(A2:A5,(B2:B5="activity1")*(C2:C5=1))))
If you specifically want use xlookup you may refer to my article on Medium.
Looks like your device resets the address on a STOP. This is on page 19 of the datasheet. "A STOP condition resets the register address pointer to 0x00." The read() is always going to read from address 0 which happens to have a reset value of 0.
my name is Kagiso and I have a lot of questions regarding the frontend development concepts. Can you please help me?
I came up to this old question, but just in case someone else arrives here in the future, adding a period to the start of the job name will comment the job out.
This can be seen on the official documentation.
with micrometer you can set required properties through application.yaml
file and they will be added into every single span.
Example:
management:
observations:
key-values:
environment: dev
please refer to the following manual for more details
https://docs.spring.io/spring-boot/reference/actuator/observability.html
Can you kindly share the .pkl file of the Detectron2 model? I can't find it anywhere in the internet. I need it for my university project.
DynamicRowKeys = DATATABLE(
"RowKey", INTEGER,
{
{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}
}
)
I have similar problem with spring boot 3.4.6, I tried the sm@ syntax but now I'm getting an "No converter found capable of converting from type [com.google.protobuf.ByteString$LiteralByteString] to type [java.lang.String]"
I think this is protobuf 4.x (we used 3.x) to blame... someone with similar symptoms?
Found a reference for running multiple bash processes without providing a privileged access :https://docs.docker.com/engine/containers/multi-service_container/
Python package : https://supervisord.org/
If you are not against the usage of AOP you can achieve it as per this article:
This seems to be related the Astro VSCode extension. Possibly a bug. I was able to get rid of it by disabling the extension, reloading the window and re-enabling.
enter image description here
this will solve your problem
There are a lot of Invoke-RestMethod commands in these steps, could you break and narrow down to which invoke command is failing? That would make it easier to figure out and fix.
Thanks!
Google Search has a webpage where you can check the sitemap you produced with Django. It's not directly accessible if you don't know the steps to reach it. Please save the file sitemap.xml and submit it. This should enable you to debug your error.
The Explanation can be found here:
The webpage for the test of sitemaps can be found here:
When I faced issues running a calculator using a YACC compiler, the problem usually came down to syntax errors, missing tokens, or linking issues between YACC and the accompanying lexical analyzer (typically written using Lex or Flex).
First, I made sure my .y file had a proper grammar definition for expressions, numbers, and operators. Then, I confirmed that the tokens used in the YACC file were correctly defined in the Lex file. One common mistake I made early on was mismatching token names—for example, using NUMBER in YACC but defining it as num in Lex.
Another issue I ran into was forgetting to compile and link both files properly. The correct order matters:
lex calc.l
yacc -d calc.y
cc lex.yy.c y.tab.c -o calc -ll
If you skip the -d flag with YACC, the y.tab.h file (which defines tokens) won’t be generated, leading to missing token definition errors during compilation.
Also, make sure you’ve handled precedence and associativity rules for operators. If you get shift/reduce or reduce/reduce warnings, it's often because operator precedence isn't clearly defined.
Debugging with yydebug or inserting print statements helped me trace how tokens were parsed and identify where things were going wrong.
If you’re stuck, feel free to share your .y and .l files—happy to help you debug.
You need to explicitly launch the 64-bit version of mmc.exe
with the path to dsa.msc
, bypassing redirection.
objShell.Run "C:\Windows\SysNative\mmc.exe dsa.msc", 1, False
SysNative
is a virtual alias that allows 32-bit processes to access the real 64-bit System32
folder.
If the CPython 3.8.5 installation doesn’t show up in “Programs and Features,” then yes, manually removing it is the way to go. Here’s what you should do to completely remove it:
1. Delete the installation folder: This is usually something like C:\Python38 or wherever it was installed.
2. Clean up the PATH: Remove any references to that Python version in the System Environment Variables (like PATH and PYTHONPATH).
3. Registry cleanup: Open regedit and check for any leftover entries: HKEY_LOCAL_MACHINE\SOFTWARE\Python HKEY_CURRENT_USER\Software\Python. You can also search the registry for PythonCore\3.8 and carefully remove it if it points to this specific install.
4. File associations (optional): If .py or .pyw files are still opening with the old Python version, you might want to reconfigure file associations.
Once you’ve done all that, your system should be clean and ready for a fresh Python install without conflicts. Just make sure to restart your PC afterward to ensure all environment variables and registry changes take effect.
Nvm figured it out, the problem was that I was importing org.jetbrains.compose.ui.tooling.preview.Preview
, but instead I should've been importing androidx.compose.desktop.ui.tooling.preview.Preview
. After changing the third import line in my example code, it worked.
I found out that `stack` has its separate `msys2` which is not visible by `cabal`.
I installed `openblas` in msys2 here `C:\ghcup\msys64` as described and it is working now.
Another important point is that `openblas` flage should be used: `cabal run -f openblas`.
I can't properly know how it works? I'm looking at Canva APK.
Upgrading mintty fixes this bug.
I was experiencing this when using a very old Cygwin install (pre-2015) on Windows and was using the undo hack. We just realized recently that upgrading Cygwin (which upgrades mintty) fixes this issue. The old Cygwin was using mintty 1.1.1 and the latest uses mintty 3.7.8. mintty 3.7.8 does not have this issue and both the old and the new were both using VIM 8.2. So the mintty side upgrade fixes the bug.
I have the same problem... where do you inclut the code string address ? I'm not a programmer...
What do you mean by arrow between two lines and not two events? To get the arrow in general you will need to create a flow entity if that is the question.