from pptx import Presentation
# PowerPoint презентацийг үүсгэх
prs = Presentation()
# Слайд нэмэх (жишээ нь, title slide)
slide_layout = prs.slide_layouts[0] # Title slide
slide = prs.slides.add_slide(slide_layout)
# Слайдын нэр, текст нэмэх
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Миний Анхны Презентаци"
subtitle.text = "PowerPoint-ийн ашиглалт"
# Файл хадгалах
prs.save('my_presentation.pptx')
You can try a tool that I made to bundle in development o production mode an electron app. The npm package's name is @eduardoleolim/electron-esbuild. The tool use esbuild or vite just for renderer process.
When use my tool with vite, the bundle file of renderer process is not generated. I think that is a default behavior of vite.
प्रति,
महाव्यवस्थापक (क. व. औ. सं.)
महाराष्ट्र राज्य मार्ग परिवहन महामंडळ
मध्यवर्ती कार्यालय, महाराष्ट्र वाहतूक भवन
डॉ. मा. ना. मार्ग, मुंबई – ४०० ००८
विषय: वडील सतत आजारी असल्यामुळे अंतरविभागीय बदली करण्याबाबत विनंती
महोदय,
मी, उत्तम प्रल्हाद कोकाटे (वहाक – १४००१९), सध्या बीड विभागामधील माजलगाव आगार येथे २०१४ पासून कार्यरत आहे. माझ्या कार्यकाळात मी माझी सेवा समाधानकारकपणे बजावली आहे.
सदरहू विनंती करण्याचे कारण असे की, माझे वडील यांना कर्करोग व इतर गंभीर आजार असून त्यांच्यावर वैद्यकीय उपचार सुरू आहेत. ते वयोवृद्ध असल्यामुळे त्यांची नियमित देखभाल आवश्यक आहे, जी मीच करू शकतो.
त्यामुळे, माझी अंतरविभागीय बदली बीड विभागातून अकोला विभागातील रिसोड आगार येथे करण्यात यावी, अशी मी नम्र विनंती करतो. वडिलांच्या आजारासंबंधी वैद्यकीय कागदपत्रे संलग्न केलेली आहेत.
आपल्या सहकार्याची अपेक्षा आहे.
आपला विश्वासू,
उत्तम प्रल्हाद कोकाटे
वहाक (१४००१९)
रा.
प. म. माजलगाव आगार
let's look at the problem areas
if (isset($artist['banned']) && $artist['banned'] === 'true') {
echo '<div class="alert alert-danger text-center">🚫 This artist has been banned. Their profile is restricted.</div>';
exit;
}
In the above, you are comparing to 'true'
, which is a string and will not be identical to the boolean true
that is contained in the JSON.
In the second case:
<?php if (!empty($artist['status']) && $artist['suspended'] === 'true'): ?>
<div class="alert alert-warning mt-2">⚠️ This artist is currently suspended. Their activity may be limited.</div>
<?php endif; ?>
You not only have the same problem as with banned
, but in addition you are checking if something called status
is not empty, and not checking if suspended
is set. That behavior may or may not be the logic you want.
I realize that this is a somewhat old question so there's a decent chance you had a different problem, but the problem I had was that I missed where Datadog's documentation said that I needed to create a "plaintext secret".
Not knowing better I created my AWS secret as a key/value secret with an arbitrary key. It turns out that AWS stuffs a JSON blob into the environment variable if you do that. Instead when creating the AWS secret (if you're using the AWS web UI) make sure to select the "Plaintext" tab, delete the boilerplate JSON object, and paste in just your API key by itself.
In my case, I use an old version of Nodejs 18, and when I updated it to the Node 20, prisma generate start working
There might be some workaround, but as far as I can tell, this appears to be an open issue
You declared 3 different labels, but you added the same one to the layout 3 times, instead of adding "label","label1","label2", you added "label","label","label"
Change the code to:
layout.addWidget(label, 0, 0)
layout.addWidget(label1, 0, 1)
layout.addWidget(label2, 0, 2)
Try adding
.buttonStyle(.plain)
to your bookmark button.
Its definitely very obscure and unintuitive but it somehow does the trick.
Really appreciate how this breaks down Azure WebJobs and Deployment Slots super helpful! It actually reminded me of how Pisogame and jili.pisogame.com handle things so smoothly behind the scenes. When systems work seamlessly, it just makes the whole experience feel effortless.
Apologies for the inconveniences but after exploring the loaded website I found that the loading text belonged to it.
could they add a simple soloution for this mess? id rather use another browser then waste any time having to sort a code for a stupid icon i
d think the majority of users don`t want anyway.
Keep in mind that the MaintainScrollPositionOnPostback is to be placed/used in the @Page directive, not in the GridView.
Also, a hyperlink technicalliy not really a post-back. You can of course use a "regular" button in a GV such as say this example GV in which I have a row edit:
<asp:GridView ID="GHotels" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" Width="50%"
CssClass="table table-hover table-striped"
>
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" />
<asp:BoundField DataField="HotelName" HeaderText="HotelName" />
<asp:TemplateField HeaderText="Active" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkActive" runat="server"
Checked='<%# Eval("Active") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Description" HeaderText="Description" />
<asp:TemplateField HeaderText="Hotel Information" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Button ID="cmdView" runat="server" Text="Edit"
OnClick="cmdView_Click" CssClass="btn" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
So, in place of a hyper-link button, I just used a standard asp.net button.
The code behind that picks up the current row click is thus this:
Protected Sub cmdView_Click(sender As Object, e As EventArgs)
' Row click - get hotel informaton, fill out the pop div
Dim btn As Button = sender
Dim gRow As GridViewRow = btn.NamingContainer
Dim intPK As Integer = GHotels.DataKeys(gRow.RowIndex).Item("ID")
Dim rstData As DataTable
rstData = MyRst($"SELECT * FROM tblHotelsA WHERE ID = {intPK}")
Call fLoader(HotelInfo, rstData.Rows(0)) ' Load up conrols in div
' call our js pop function.
Dim strHotelName = $"Edit Information for {rstData.Rows(0).Item("HotelName")}"
Dim strJavaScript As String =
$"popinfo('{btn.ClientID}','{strHotelName}');"
ScriptManager.RegisterStartupScript(Page, Page.GetType, "mypop", strJavaScript, True)
End Sub
Note the use of NamingContainer - that allows you to pick up the current row. Combined with the page direction, say like this:
<%@ Page Language="vb" AutoEventWireup="false"
CodeBehind="HotelInfoPop.aspx.vb"
Inherits="MyCalendar.HotelInfoPop"
MaintainScrollPositionOnPostback="true"
%>
So, above does return scroll position on post-back.
So, we might need more markup, since the above does maintain the current screen scroll position. Perhaps a update panel is involved here?
I see that your second alternation (?:<span[^>]*?color: black.*?>[\S\s\n]*?<code)
is open ended. This pattern will cause the regex engine to keep looking for the next <code
until 'the end of time', with [\S\s\n]*?
. It may be a factor in getting the error:
"Invalid Regular expression": "The complexity of matching the regular expression exceeded predefined bounds. Try refactoring the regular expression to make each choice made by the state machine unambiguous. This exception is thrown to prevent eternal matches that take an indefinite period time to locate."
I noticed that, not only is the <code>
element we want to skip preceded by <p>
or <span>
elements with style="color: black
, but they are inside these elements.
So, this pattern below looks to skip the entire <p>
or <span>
elements were the style="color: black"
is true for the element. It works with the test string you provided.
I am curious to see if this pattern/approach solves the issue. Please let me know.
REGEX PATTERN (PCRE2 Flavor; Flags:gms)
(?s)(?:<(p|span)[^>]*?color: black[^>]*>.*?<\/\1)(*SKIP)(*F)|<code\s*style="background-color:\s*transparent;">
Regex Demo: https://regex101.com/r/ebwZLJ/8
REGEX NOTES:
(?s)
Single line flag means that dot (.
) will match all characters including newline.(?:
Begin Non-capturing group (?:...)
to make the alternation before the (*SKIP)(*FAIL)
explicit.
<
Match literal <
.(p|span)
Capture Group 1, referred to with \1
later in the pattern. Alternation match literalp
or (\
) span
.[^>]*?
*Negated class [^...]
. Match any character that is not >
0 or more times (*
).color: black
Match literal "color: black"[^>]*
*Negated class [^...]
. Match any character that is not >
0 or more times (*
).>
Match literal >
.*?
Match any character (including newline, due to (?s)
) 0 or more times, be lazy (*?
) about it, only match as few characters as needed to make a match.<\/
Match literal </
\1
Match character(s) captured in group 1, i.e. we are matching to close the element <p>
or <span>
.)
Close non-capturing group.(*SKIP)(*F)
Consider the characters for the match consumed, but do not return or acknowledge the match. Continue matching from here.|
Or<code
Match literal <code
.\s*
Match any whitespace character 0 or more (*
) times.style="background-color:
Match literal style="background-color:
.\s*
Match any whitespace character 0 or more (*
) times.transparent;">
Match literal " transparent;">
.For reference, here is the regex pattern from the Question (https://regex101.com/r/kIm0bl/1)
Just wrote an small article on C++17 inline variable. Do check it out. Hope it helps.
Are You Trapped in the Global Variable Maze? It’s Time to Evolve with C++ Inline Variables!
The webpage at sfbus://m.facebook.com/branded_page/exp/?wtsid=wt_1gjxbd80hEPDqbqG8&bplo=%2F&bn=Y29tLmFuZHJvaWQuY2hyb21l&bpege=9 could not be loaded because:
net::ERR_UNKNOWN_URL_SCHEME
On Chrome: 🔹 GoFullPage
This one’s stupid simple.
Install it, click the little camera icon, boom — it scrolls down the whole page and takes a screenshot.
You can save it as a PNG or PDF.
No sign-in, no ads, just works.
🔹 Fireshot
Another solid one. You get options to save as PNG, PDF, whatever.
It even has an option to screenshot just part of the page if you want.
There’s a “Pro” version, but you probably don’t need it.
On Firefox: ✅ Built-in Screenshot Tool
Right-click anywhere on the page → “Take Screenshot” → “Save full page”
That’s it. No extension needed. Super clean.
Or use Fireshot again if you like having the same tools across browsers.
If you’re a dev: Just use DevTools like a pro:
Open DevTools (F12)
Hit Ctrl + Shift + P (or Cmd + Shift + P on Mac)
Type “screenshot” → Select “Capture full size screenshot”
Chrome/Edge will grab it all.
Done. No fluff. Just good tools.
Nah ... no need to remove the form - just block the form submission in the form element with onsubmit="return false;"
<form onsubmit="return false;">
<input type="text" name="zipcode" onkeyup="showZone(this.value)"/>
</form>
You might be running into a recent issue with Azure.Identity (it is not really an issue with Azure.Identity, rather one of it's dependencies, but still). The short-term fix is pinching the cryptography module in your requirements.txt to version 43.0.3.
https://github.com/Azure/azure-sdk-for-python/issues/38725
To confirm that you are having this issue, you can check in Azure Functions - Diagnose and Solve Problems - search for "triggering" - there should be a page for "Functions that are not triggering", there should be an error there pointing you in this direction.
I use Aggregate. There are number choices, 1 is Average I believe. It'll only calculate on the visible rows.
It'd look like this. =Aggregate (1,5,your array)
Hope that helps.
The issue is definetely in a layout of a view, that I'm trying to put inside modal-body cause when layout is set to null, it's working as expected.
But in this case there is another issue. When client validation is kicked in, layout turns into real null. It's just a white screen.
Here is a quick video https://drive.google.com/file/d/1U1uXD0BAugTMked-5jqZ4L4I-90dmfy8/view?usp=sharing
I need to solve either the first or the second problem.
@model SetViewModel
@{
Layout = null;
}
<form asp-area="Sets" asp-controller="Home" asp-action="AddOrEditSet" method="post">
<input asp-for="UserId" hidden />
<input asp-for="Id" hidden />
<div class="border p-3 mt-4">
<div class="input-group mb-3 row">
<label asp-for="Name" class="input-group-text text-light bg-dark"></label>
<input asp-for="Name" class="form-control text-light bg-dark">
<span asp-validation-for="Name" class="text-danger mt-2"></span>
</div>
<div class="row">
<div class="col-5 m-auto">
@if (Model.Id == 0)
{
<button type="submit" class="m-auto btn btn-primary form-control border-black border-1 text-white">Create set</button>
}
else
{
<button type="submit" class="m-auto btn btn-primary form-control border-black border-1 text-white">Update set</button>
}
</div>
</div>
</div>
</form>
Try something like this:
from matplotlib import pyplot as plt
import numpy as np
Xs = np.linspace(-2.0, 2.0)
Ys = 10.0**Xs
plt.plot(Xs, Ys)
plt.yscale("functionlog", functions=(
lambda x: np.log10(x + 1.0),
lambda x: 10.0**x - 1.0))
plt.show()
To change the date from UTC to dd-mm-yyyy, Please use a Compose and Select action. In Select, provide column name in Key. In Value, provide formatdatetime function to change the date format.
Si el archivo tiene el mismo nombre que Selenium, no va a funcionar. debes nombrar el archivo de manera diferente.
In Intellij Idea, add jdk24
Select Language Level SDK Default
Test code: you need to compile the class file before running with Java 24 if it's a diff. version.
public static void main(String[] args) {
List<String> countrie = List.of("US", "India","China", "Japan","Australia", "Swiss");
List<List<String>> windows = gatherIntoWindows(countrie);
System.out.println("windows : " + windows);
}
public static List<List<String>> gatherIntoWindows(List<String> countries) {
List<List<String>> windows = countries
.stream()
.gather(Gatherers.windowSliding(3))
.toList();
return windows;
}
output:
windows : [[US, India, china], [India, china, Japan], [china, Japan, Australia], [Japan, Australia, Swiss]]
.NET MAUI 9.0 on Windows:
<Button
Text=" Filter"
FontFamily="Segoe Fluent Icons"
FontAttributes="Bold"/>
The Solution with O(n) time complexity to get first unique element from an array.
const nums = [4,2,2,1,3,3]
const result = new Map()
for (const num of nums) {
result.set(num, (result.get(num) || 0) + 1)
}
const uniqueNum = nums.find((num) => result.get(num) === 1)
console.log(uniqueNum)
This error occurs when trying to process an image in OpenCV where either the source or destination image dimensions exceed the maximum short integer value (SHRT_MAX, which is typically 32,767).
The problem is likely happening because:
1. The PDF being loaded contains an extremely large image
2. The image is being resized to dimensions that exceed 32,767 pixels in width or height
To fix this issue, you could:
1. Resize the image before processing it with cv::remap
2. Split the large image into smaller chunks for processing
3. Check if there are any settings in DocliningPDFLoader that can limit the maximum image size
4. Update your OpenCV code to handle the large image dimensions properly
If you're using a library like DocliningPDFLoader, you might need to check if there are configuration options to handle large images or set maximum dimensions for loaded images.
Using TransactionTestCase instead of TestCase helped me
Solved: EAS Build Fails with "spawn pod ENOENT" and "No such file or directory" Errors I found the solution to the EAS build errors mentioned in the post. There were two key issues causing the build to fail: Solution Steps:
First, I modified the eas.json file by setting commitRequired to true. This ensures all changes are committed before building. More importantly, I renamed several folders in my project structure that had problematic names. Folders named like app or auth can cause issues during the build process on iOS.
After making these changes, the build completed successfully without the "spawn pod ENOENT" or "No such file or directory" errors. Hope this helps anyone facing similar issues!
If you want to set the min
value explicitly, you have to set the options
:
chart.options.scales.y.min = -100;
chart.update('none');
The call to chart.update
is reading the data and options and sets
the dynamic values like chart.scales.y.min
according to these. Thus,
values like chart.scales.y.min
are only useful for reading the state
of the chart objects (in this case 'y'
axis), but can't be used to
change that state.
If you want to leave it to the standard chart.js algorithm to find the nice
limits to the axis, you may try disabling y
panning (by setting
mode: 'x'
, as it's already set for zoom
). A slight vertical change
while panning will interfere with the way the limits are computed, and
might then be amplified by a subsequent zoom operation.
My testing with x-mode panning seemed to always produce good limits, but if
there are still cases when it's not working, please let me know. Here's
the snippet (I also set options.scales.y.ticks.includeBounds = true
):
const PI = Math.PI;
function daysIntoYear(date) {
return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - Date.UTC(date.getFullYear(), 0, 0)) / 24 / 60 / 60 / 1000;
}
function secondsToDhms(seconds) {
seconds = Number(seconds);
var d = Math.floor(seconds / (3600 * 24));
var h = Math.floor(seconds % (3600 * 24) / 3600);
var m = Math.floor(seconds % 3600 / 60);
var s = Math.floor(seconds % 60);
var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : "";
var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "";
var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "";
return dDisplay + hDisplay + mDisplay + sDisplay;
}
function dataSimulation(from, to, grouping) {
const timeDiff = (new Date(to) - new Date(from)) / 1000;
//console.log("fromDate=" + from + " toDate=" + to + " diff=" + secondsToDhms(timeDiff) + " group=" + secondsToDhms(grouping));
datamapped = [];
dataEvery = 60 * 20; // Data get every 20mn
min = 999;
max = -999;
i = 0;
sum = 0;
for (x = new Date(from).getTime(); x <= new Date(to).getTime(); x = x + 1000 * dataEvery) {
date = new Date(x);
H = date.getHours();
M = date.getMinutes();
month = date.getMonth();
day = date.getDate();
nday = daysIntoYear(date);
value = day + (H / 100) + (M / 10000); // simple simulation
value = 20 + (10 * Math.sin(nday * (PI / 180))) + 3 * Math.sin(H * (360 / 24) * (PI / 180)); // more complex
sum = sum + value;
if (value > max)
max = value;
if (value < min)
min = value;
if ((i * dataEvery) > grouping) {
datamapped.push({
x: new Date(x).toISOString(),
min: min,
max: max,
avg: sum / i
});
i = 0;
sum = 0;
min = 999;
max = -999;
}
i = i + 1;
}
return datamapped;
}
async function fetchData(from, to, group) {
/**
const response = await fetch(`data.php?from=${from}&to=${to}&sensor=OWM&grouptime=86400`);
const data = await response.json();
datamapped = data.map(item => ({
x: item[0],
min: item[1],
max: item[2],
avg: item[3]
}));
**/
datamapped = dataSimulation(from, to, group);
return datamapped;
}
var LASTUPDATETIME;
LASTUPDATETIME = new Date();
var LOCK;
LOCK = false;
async function updateData(chart) {
difftime = (new Date().getTime() - LASTUPDATETIME.getTime());
//console.log("LOCK=" + LOCK + " difftime=" + difftime);
if (LOCK == true) {
if (difftime < 1000)
return;
}
LOCK = true;
//if ( difftime < 500)
//{ // debounce
// console.log("too soon");
// return;
//}
const xmin = chart.scales.x.min;
const xmax = chart.scales.x.max;
const fromDate = new Date(xmin).toISOString();
const toDate = new Date(xmax).toISOString();
const timeDiff = (xmax - xmin) / 1000;
group = 31 * 24 * 3600;
if (timeDiff < 1 * 24 * 3600) { // <1 days, display per every minute
group = 60;
} else if (timeDiff < 4 * 24 * 3600) { // <4 days, display per every hours
group = 3600;
} else if (timeDiff < 33 * 24 * 3600) { // <1.1month, display per 4xday
group = 4 * 3600;
} else if (timeDiff < 4 * 31 * 24 * 3600) { // <4month, display per day
group = 24 * 3600;
}
/**
response = await fetch(`data.php?fmt=json&from=${fromDate}&to=${toDate}&sensor=OWM&grouptime=${group}`);
data = await response.json();
datamapped = data.map(item => ({
x: item[0],
min: item[1],
max: item[2],
avg: item[3]
}));
**/
datamapped = dataSimulation(fromDate, toDate, group);
chart.data.datasets[0].data = datamapped;
chart.data.datasets[1].data = datamapped;
chart.data.datasets[2].data = datamapped;
const yDataMax = Math.max(...datamapped.map(({max}) => max)),
yDataMin = Math.min(...datamapped.map(({min}) => min));
//chart.scales.options.y.min = -100; // as a test, the Y axis should be at -100, but not working
chart.update('none'); // with 'none' it's synchronous, so we can get the results immediately after:
console.clear(); // to preserve snippet space
console.log(`after .update, data:, [${yDataMin}, ${yDataMax}], scale: [${chart.scales.y.min}, ${chart.scales.y.max}]`);
LASTUPDATETIME = new Date();
LOCK = false;
}
async function createChart(from, to, group) {
const data = await fetchData(from, to, group);
const ctx = document.getElementById('temperatureChart').getContext('2d');
const temperatureChart = new Chart(ctx, {
type: 'line',
data: {
datasets: [{
data: data, // The three values are on the same data ? strange
parsing: {
yAxisKey: 'min'
},
fill: '+1',
borderWidth: 0
},
{
data: data, // this is strange to have the same data than the previous
parsing: {
yAxisKey: 'max'
},
borderWidth: 0
},
{
data: data,
parsing: {
yAxisKey: 'avg'
},
borderColor: 'green',
fill: false,
borderWidth: 1
}
]
},
options: {
responsive: true,
animation: false,
elements: {
point: {
radius: 1
}
},
scales: {
x: {
type: 'time',
time: {
tooltipFormat: 'yyyy-MM-dd HH:mm'
},
title: {
display: true,
text: 'Date/Time'
},
},
y: {
beginAtZero: false,
ticks: {
includeBounds: false
},
title: {
display: true,
text: 'Temperature (°C)'
},
}
},
plugins: {
legend: {
display: true,
position: 'top'
},
zoom: {
pan: {
// pan options and/or events
enabled: true,
mode: "x",
onPanComplete: function({
chart
}) {
updateData(chart);
}
},
zoom: {
wheel: {
enabled: true,
},
pinch: {
enabled: true
},
mode: 'x',
onZoomComplete: function({
chart
}) {
updateData(chart);
}
}
}
}
}
});
}
// Example usage
createChart('2024-01-01', '2024-12-31', 31 * 24 * 3600);
<div style="width: 100%; margin: auto;">
<canvas id="temperatureChart"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom"></script>
Requires Slick 1.8.1 Update
$('.slider').on('beforeChange', function (event, slick, currentSlide, nextSlide) {
video.pause();
});
$('.slider').swipe('beforeChange', function (event, slick, currentSlide, nextSlide) {
video.pause();
});
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
# Crear presentación
prs = Presentation()
slide_layout = prs.slide_layouts[5]
# Colores ecológicos
BACKGROUND_COLOR = RGBColor(232, 245, 233) # verde claro
TITLE_COLOR = RGBColor(27, 94, 32) # verde oscuro
TEXT_COLOR = RGBColor(56, 56, 56) # gris oscuro
# Contenido revisado para cada diapositiva
content = [
("Título del Emprendimiento",
"EcoAmigos: Bolsas Reutilizables con Estilo\n\nNombre del estudiante: [Tu Nombre Aquí]"),
("Descripción del problema o necesidad",
"En mi comunidad, es común que las personas utilicen bolsas plásticas para hacer sus compras. "
"Este hábito se repite diariamente y tiene un impacto ambiental significativo. Las bolsas plásticas suelen terminar en la basura, "
"en cuerpos de agua o contaminando áreas verdes. A pesar de que existen alternativas, muchas personas no las usan porque no las consideran prácticas, "
"estéticas o simplemente no recuerdan llevarlas.\n\nExiste una necesidad urgente de promover el uso de bolsas reutilizables que sean funcionales, "
"atractivas y accesibles para toda la comunidad."),
("Descripción de cómo encontró la solución o idea",
"Para encontrar una solución a este problema, utilicé la estrategia de tormenta de ideas y también realicé observación directa "
"en supermercados y ferias locales. Conversé con amigos, familiares y comerciantes para entender por qué las personas no usan bolsas reutilizables.\n\n"
"Además, usé la herramienta de espina de pescado para identificar las causas del problema: falta de hábitos sostenibles, poco conocimiento del daño ambiental, "
"diseño poco práctico o poco atractivo de las bolsas reutilizables existentes, y falta de opciones locales accesibles."),
("Descripción de la Idea de Emprendimiento",
"Mi idea emprendedora consiste en EcoAmigos, una marca de bolsas reutilizables hechas con materiales reciclados, resistentes y con diseños personalizados. "
"Las bolsas estarán disponibles en distintos tamaños y estilos (para compras grandes, para el pan, para uso diario, etc.) y se venderán en tiendas locales y en línea.\n\n"
"Cada bolsa incluirá un código QR que enlaza a consejos ecológicos, noticias ambientales y formas de reciclar. También ofreceremos talleres en escuelas y comunidades "
"sobre sostenibilidad y consumo responsable."),
("Identificación del tipo de emprendimiento",
"Este es un emprendimiento social porque el propósito principal es generar un impacto positivo en el medio ambiente y en la conciencia ecológica de las personas. "
"Aunque habrá ventas para sostener la iniciativa, el enfoque está en reducir el uso de plástico, fomentar hábitos sostenibles y educar a la comunidad.\n\n"
"No se trata solamente de ofrecer un producto, sino de crear una red de personas comprometidas con el cambio ambiental.")
]
# Función para crear cada diapositiva con estilo
def add_slide(title, text):
slide = prs.slides.add_slide(slide_layout)
background = slide.background
fill = background.fill
fill.solid()
fill.fore_color.rgb = BACKGROUND_COLOR
# Título
title_shape = slide.shapes.title
title_shape.text = title
title_shape.text_frame.paragraphs[0].font.size = Pt(36)
title_shape.text_frame.paragraphs[0].font.bold = True
title_shape.text_frame.paragraphs[0].font.color.rgb = TITLE_COLOR
# Cuerpo
left = Inches(0.5)
top = Inches(1.5)
width = Inches(9)
height = Inches(5.5)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.text = text
p.font.size = Pt(20)
p.font.color.rgb = TEXT_COLOR
# Agregar todas las diapositivas
for title, text in content:
add_slide(title, text)
# Guardar presentación
final_pptx_path = "/mnt/data/Emprendimiento_EcoAmigos_Final.pptx"
prs.save(final_pptx_path)
final_pptx_path
I just discovered a silly, but slick way to validate if the web.config file itself is having parse issues....
Open IIS for the site and open the Logging module/screen. If the web.config cannot be parsed, you'll get an error of this flavor:
This lead me to realize that I had a silly definition issue with my SlowCheetah transformation that has adding the url rewrite rules node twice.
Hopefully that will help someone not spend the ridiculous amount of time I did (once again) staring at my web.config and not seeing what was going on.
Late response but hopefully it helps someone facing latency issues with GHD(GitHub desktop) One of the way you can increase the speed of GHD (everything in general) is by running it in Administrator mode. Right click on GHD icon & choose run as admin. It will improve the speed greatly
Look, I didn't have a great experience with Flet my project didn't even get out of paper, but I think you can't position only one left because you put this command "alignment = ft.mainaxisalignment.start" no main_row ie "master" alignment is the main_row and the others will be ignored
The main problem as far as I see it is that you have a misunderstanding of what the A*-algorithm actually does. As far as I see it, you have some kind of rectangular field with discrete points on it and you want to have the shortest path between two points. Why do you use A* at all? You can just draw a horizontal and a vertical line and that's it.
The main point of route planning algorithms is to find the shortest path in an environment where NOT all paths from source to target are actually valid. For example, you could insert obstacles onto your raster (=points that are inside your rectangle, but are invalid).
Now to your code: You are computing the g-values incorrectly. g is actually the length of the path you have already taken. You cannot just use your heuristic-function here. You really have to build the correct sum. Also, you are using closedList.contains(n) and n2.equals(n), but your Node-class doesn't override hashCode() and equals(). These are the two major flaws I've found immediately. (There may be more...)
Side note: Your code is very verbose. You could for example collapse all cases in your nextNodes()-method into one loop that has four iterations. I'm just suggesting that, because you may get more helpful answers in the future if your code is cleaner. Also please improve your formatting for better readability.
I optimized XOR maximization algorithm reduces complexity from O(log r) to O(log l) by iterating only over the smaller number L. It uses bitwise comparison to maximize the XOR value, flipping bits of l or r as needed while respecting the range [L,R] . The final XOR result is calculated using a fast power function, ensuring minimal operations and efficiency. This method ensures the maximum XOR value is computed while preserving the range constraints.
code with more detalied explain: https://github.com/MohamedHussienMansour/Maximum-XOR-problem-with-O-log-L-
I run in the same error message, and it was due the absence of the javac executable. Apparently, in my Linux distro (OpenSUSE), they have separated the JRE from the JDK in two different packages. I had java-21-openjdk
installed, but not so java-21-openjdk-devel
. Installing this last package solved the issue.
You're very close to getting Tailwind working. The issue you're seeing (Unknown at rule @tailwind) is just a warning from your editor, not an actual error. To fix everything, make sure you create a tailwind.config.js file by running
npx tailwindcss init
and update the content field to include your index.html (e.g. content: ["./index.html"]). Also, ensure you're linking the compiled output.css in your HTML file like this: . Lastly, install the Tailwind CSS IntelliSense extension in VS Code to get rid of those warnings and enjoy autocomplete support. Everything else you’ve done looks fine!
what how and can you tell me ow to do it
change
PERSIAN_EPOCH = 1948320.5;
to
PERSIAN_EPOCH = 1948321.5;
until the end of 1404
an then return it to 1948320.5
Move your _buildItem(context) from the bottom navigation to the body of the scaffold. Your tappable widgets are under the top stack widget, which is why your onTap of InkWell isn't working properly here. When you move the _buildItem to the body, it will be fixed.
This is because the message library was designed for Python2.
If you create a python=2.7 env, you can successfully install the package.
After trying many of the things mentioned above, what worked for me was updating the WSL extension in VScode.
If you want to switch the startup object in a more practical way consider using the Change Startup Object Visual Studio extension.
It gives you a command to change the project startup object directly in the context menu:
thank you, this save me, same problem solved...
I managed to fix the errors by deleting the following files in %localappdata%\vcpkg
:
vcpkg.user.props
vcpkg.user.targets
It seems MSVS was allowing vcpkg to import custom properties with the following
<Import Condition="Exists('C:\Scripts\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets') and '$(VCPkgLocalAppDataDisabled)' == ''" Project="C:\Scripts\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets" />
Use Cloudflare WARP, its work for me when I install pytorch.
Only after set options:
builder.setCharset(StandardCharsets.UTF_8);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
"name" sent correctly, and does not turn into "????? ?????".
*org.apache.httpcomponents httpclient version 4.5.14
Full code of using MultipartEntityBuilder with UTF-8:
var filePath = Path.of("<CyryllicFileName>");
var contentType = ContentType.TEXT_PLAIN.withCharset("UTF-8");
var builder = MultipartEntityBuilder.create();
builder.setCharset(StandardCharsets.UTF_8);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
var entity = builder
.addTextBody("name", name, contentType)
.addBinaryBody("file",
filePath.toFile(),
ContentType.APPLICATION_OCTET_STREAM,
filePath.toFile().getName())
.addTextBody("collectionId", collectionId)
.addTextBody("parentDocumentId", parentDocumentId)
.addTextBody("publish", "true")
.build();
You forget to add border style also will be good to use border shorthand to never forget it again:
--> border: width style color;*
example:
border:1px solid red;
I ran into this same issue a while back, and yeah, it’s a bit of a pain that macOS doesn’t have the `allowsPictureInPictureMediaPlayback` property like iOS does for `WKWebView`. The [Apple docs](https://developer.apple.com/documentation/webkit/wkwebviewconfiguration) make it pretty clear it’s iOS-only, so we’ve got to get creative.
From what I’ve dug up, there’s no direct built-in way to enable Picture-in-Picture (PiP) in `WKWebView` on macOS, but you can lean on the HTML5 Picture-in-Picture API. If your web content supports it (think `videoElement.requestPictureInPicture()` in JavaScript), it should work in `WKWebView`—kinda like how it does in Safari. I’ve tested this with some basic video pages, and it’s solid when the stars align. Check out [MDN’s docs](https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API) for the nitty-gritty on that.
Now, here’s the catch: if you’re building for the Mac App Store, sandboxing can throw a wrench in things. Some folks have tried using the `com.apple.PIPAgent` entitlement to force PiP—there’s chatter about it on [Apple’s forums](https://developer.apple.com/forums/thread/756472)—but Apple’s rejected apps for it unless it’s super justified. So, if you’re not going App Store, you might experiment with that, but it’s dicey.
Another workaround I’ve seen is pulling the video URL out of the `WKWebView` and playing it with `AVPlayer`, which does support PiP on macOS. It’s a hassle, though, and not always practical if the video’s buried in tricky web code. [Kodeco’s got a guide](https://www.kodeco.com/24247382-picture-in-picture-across-all-platforms) that touches on this if you’re curious.
Honestly, macOS just doesn’t seem as PiP-friendly for web stuff as iOS. If you control the webpage, the HTML5 API is your best shot. Otherwise, you might be stuck tweaking things case-by-case or waiting for Apple to throw us a bone in a future update. Anyone else found a slicker way around this?
### Key Citations
1. [Apple WKWebViewConfiguration Docs](https://developer.apple.com/documentation/webkit/wkwebviewconfiguration)
2. [MDN Picture-in-Picture API](https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API)
3. [Apple Developer Forums](https://developer.apple.com/forums/thread/756472)
4. [Kodeco PiP Guide](https://www.kodeco.com/24247382-picture-in-picture-across-all-platforms)
Ive found this Stripe API request builder tool that helps with understand the attributes related to Checkout Sessions, which of course includes `expires_at` with the description of:
The Epoch time in seconds at which the Checkout Session will expire. It can be anywhere from 30 minutes to 24 hours after Checkout Session creation. By default, this value is 24 hours from creation.
Reasoning and explanation:if the question requires explanation or justification, be sure to provide reasons along with your answar.
In PyCharm, the automatic import suggestions are usually based on shared libraries. Unfortunately, like you said, PyCharm doesn’t automatically recognize custom aliases like tf for tensorflow. I did find a workaround method that can allow you to configure PyCharm to recognize your input. You must use "Live Templates" for custom text.
Steps to re-create for tensorflow:
Go to File > Settings in PyCharm.
Navigate to Editor > Live Templates.
Click the + button to add a new live template.
Set the abbreviation to trigger the import. This will be used as the shortcut you want to type every time. For this example, set it to 'tf'
In the Template text area, write the statement you want. This will be what your shortcut will be replaced with. For this example, set it to 'import tensorflow as tf'
At the bottom, click 'Define' to set the language you want this to be usable in. Select Python.
Apply the changes and press 'OK'
This should allow you to type 'tf' and press tab, setting in the text 'import tensorflow as tf'.
After many trials and going through online documentation on Google, Flutter sides, I concluded that MobileNetV3 is not supported in Flutter.
Finally decided to pursue the process using ResNet50
Found the problem! When trying to reproduce the problem in a minimal code snippet, I noticed that when using only the first part of the module everything is OK. But when I add the rest of the code it fails again.
It turns out that I have, at some point, by mistake pasted an extra import numpy as np
deep down in the module. So, my mistake. But hard to find.
Thank you for your comments - those actually led to the finding of the issue.
Try out https://dartpm.com/
Someone is trying to create a dart package manager taking inspiration from node package manager.
It is in beta currently, but best part is it is free right now, for private packages as well. Also it doesn't look pricy.
To publish the package (docs)
1. Create account
2. Create org, click organization in user icon dropdown
3. Install dartpm cli tool
dart pub global activate --source hosted --hosted-url "https://dartpm.com" dartpm
4. Login dartpm cli
dartpm login
5. Update pubspec.yaml
of a package you want to publish
publish_to: https://dartpm.com/registry/org-name
6. dart pub publish
Also sharing the package is very easy as well.
1. Create a granular
token from organization settings.
2. Add package and access.
3. Give the token to anyone to use the packages. Even client don't need to use dartpm account to get access.
This does not seem to work in 2025 with version 1.85 of n8n. Maybe it is because I am running a docker version of n8n. sigh...
Heimdall Data has a Database Proxy solution that supports caching.
your "userRepository.save(user)" returns the actual User object and not the "Optional<User>". Wrap it with Optional to match your return type.
return Optional.ofNullable(userRepository.save(user));
Test your add-on with external accounts by using a test deployment. See the details at https://developers.google.com/workspace/add-ons/how-tos/testing-editor-addons#create_a_test_deployment.
One of the possible findings is that your domain might be blocking something your add-on requires. You should solve this before continuing.
If everything is working fine, submit your add-on for OAuth verification.
Related
This works for me. I was populating a readonly textbox but the text would always be selected even if the textbox was readonly. TextBox.Select(0, 0) deselected the text.
u may have a file named pandas.py
in your current working directory
try running this in a new cell:
import os
os.listdir()
if u see anything named pandas.py or pandas.pyc, delete or rename:
if u renamed or deleted, also remove the .pyc
cache
!find . -name "*.pyc" -delete
restart the kernel and try again
In my clangd, I also get the same error with that code, I solved it by using:
#include <iostream>
#include <functional>
using namespace std;
int main() {
function<bool()> fn;
}
Here is link to your solution in reddit: https://www.reddit.com/r/excel/comments/13wzhod/pythons_fstring_in_excel/
=LAMBDA(f_string, values, LET(
is_labeled, NOT(ISNUMBER(FIND("{}", f_string))),
is_numbered, IFERROR(ISNUMBER(VALUE(
TEXTAFTER(TEXTBEFORE(f_string, "}"), "{"))), FALSE),
values, IF(AND(ROWS(values) = 1, OR(is_numbered, NOT(is_labeled))),
TRANSPOSE(values),
values),
value_pairs, IFS(
is_numbered, HSTACK(SEQUENCE(ROWS(values)),
IF(ROWS(values) = 1, TRANSPOSE(values), values)),
COLUMNS(values) = 1, WRAPROWS(values, 2),
TRUE, values),
pair_rows, SEQUENCE(ROWS(value_pairs)),
unlabeled, REDUCE(f_string, values,
LAMBDA(string, value,
IFERROR(SUBSTITUTE(string, "{}", value, 1),
string))),
labeled, REDUCE(f_string, pair_rows,
LAMBDA(string, pair_row, LET(
label, INDEX(value_pairs, pair_row, 1),
value, INDEX(value_pairs, pair_row, 2),
IFERROR(SUBSTITUTE(string, "{" & label & "}", value),
string) ))),
IF(is_labeled, labeled, unlabeled) ))
Found the solution with one of the issues that was raised:https://github.com/vercel/next.js/issues/10285
To add on this thread, to anyone struggling with this in 2025 and with the lack of information from google and thanks to some info spared on internet I found that you can just set your headers as follow (Here I'm using express)
it is important that status is 200. Now this is streaming for me on a prompt ui for IA using vercel ui sdk.
Not need of SSE or GRCP
res.status(200);
res.setHeader('transfer-encoding', 'chunked');
res.setHeader('Content-Type', 'plain/text');
res.setHeader('cache-control', 'no-cache');
res.setHeader('x-accel-buffering', 'no');
Clear and Precise response: your answar should be clear and specific,directly addresing the question
why are trees important for the environment?"
Dave is correct. If you have only a theory question, please just Google it. Use StackOverflow only for a practical question that you faced and could not get an answer of from google. AI tools also made it easier to search for such theory answers.
Also, please remove the spring-boot tag here.
For your Question,
Records in Java were introduced in the Java 14 version, which simply saves efforts on making your class Immutable. Records eliminate boilerplate code like constructors, getters
, setters
, hashCode()
, equals()
, and toString()
methods that you typically write for simple data-carrier classes.
Great deep dive! You're absolutely right—static final
values are locked in at class loading, so anything relying on runtime args won't cut it unless passed as system properties. Loved your note on immutability too—people often overlook the mutability of collection contents. Solid insight!
class Param {
constructor(...args) {
this.firstName = args[0]
this.lastName = args[1]
}
static parse(_, ...values) {
return new Param(...values)
}
}
let [name1, last1] = ["Ankit", "Anand"]
console.log(Param.parse`firstName:${name1}, lastName:${last1}`)
The advice helped to solve the problem, but the xfun package had to be reinstalled manually. After that, everything worked.
Depending on your needs, consider switching to a more feature-rich CNI:
CNI PluginHighlightsCalicoNetwork Policies, BGP, IPIP, eBPF, IPv6, great performanceCiliumeBPF-based, observability, security, DNS-aware policiesFlannelSimple, works well for smaller clustersWeave NetEasy to set up, encrypted networkingAmazon VPC CNINative AWS networking, great for EKS
More Infomation here : https://gacor.rtpug8live.xyz/
It depends on the gradient.
For example: If a horizontal lineGradient is assigned for filling and the line has x1 equal to x2 then the line is not shown, because there is no width for gradient.
The plotter should use fill="#colorHex" instead of fill="url(#gradient)" in SVG line element.
I'm facing similar issue like @terraform-ftw
I even added Artifact Registry Reader to ALL of my service accounts - Still, no positive result
I even tried the solution proposed by @xab , but there's no such a a thing like "Nodes" tab in single cluster's page image
The response some sort of cloud worker is getting is 403 Forbidden as logs suggest (kubectl describe [podName])
(I've altered some details in the logs but I hope everyone gets what are they about):
Warning Failed 7m8s (x4 over 8m33s) kubelet Failed to pull image "us-docker.pkg.dev/{MyProjectId}/docker-images/{MyImageName}:latest": failed to pull and unpack image "us-docker.pkg.dev/{MyProjectId}/docker-images/{MyImageName}:latest": failed to resolve reference "us-docker.pkg.dev/{MyProjectId}/docker-images/{MyImageName}:latest": failed to authorize: failed to fetch oauth token: unexpected status from GET request to https://(******)%3Apull&service=us-docker.pkg.dev: 403 Forbidden
Muito obrigado funcionou assim ;)
[global]
protocol = NT1
min protocol = NT1
max protocol = NT1
client min protocol = NT1
client max protocol = NT1
i was able to fix it by setting
editor.semanticHighlighting.enabled
from "configuredbytheme" to "true" in the vscode settings
You could print out the path where the executable is looking for the assets. For example.
use std::os;
fn main() {
let p = os::getcwd();
println!("{}", p.display());
}
Then, either change the path in the program to be the one you want, or move the assets to the path where it's looking.
Have the same issue on all environments...
Can only completely reinstall them, unfortunately.
Use --capabilities
and explicitly set all parameters
aws cloudformation deploy \
--template-file template.yaml \
--stack-name my-stack \
--capabilities CAPABILITY_IAM \
--parameter-overrides MyKey=ABC123
As @Nate Eldredge pointed out, putting assembly code into "as" and then "objdump" doesn't lead to the same code. "objdump" unfortunately messes with jump offsets. But my assumption that 0xebfe is an endless loop is correct.
What exactly are you asking? Because I'm not sure this is really a question, you literally just described how GitHub Pages works.
The "Rate Limit Exceeded" error typically indicates that your requests have surpassed the allowed quota for your OpenAI API plan. Even if it’s your first manual query, background processes like file ingestion or agent setup might have consumed the limit. Check your rate limits and usage in the OpenAI dashboard.
The Shadcn Command uses the pacocoursey/cmdk
library, and according to their docs it should be:
https://github.com/pacocoursey/cmdk?tab=readme-ov-file#input-cmdk-input
const [search, setSearch] = React.useState('')
return <Command.Input value={search} onValueChange={setSearch} />
Remove 's' from the following config name spring.batch.job.name
If godaddy is is your domain provider, here's what others have said: in godaddy put send grid name and value in quotes. Remove any and all reference to your own domain name which godaddy automatically attaches. But will cause sendgrid to return an error.
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\Huge
9 + 8 = \left( \frac{\left( 16 + 5i \right)^{(4+7i)}}{\sqrt{\left( 11 + 3i \right)^{2}}} \right) + \frac{\log_{\left( 3 + 6i \right)}\left( e^{\pi i} \right)}{5} + \left( 7 + 4i \right)
\end{equation*}
\end{
document}
if a background BASH shell script has a "#!/bin/bash -i" shebang (the "-i" option tells that the script is an interactive script), then it will be stopped even if it is started via nohup
1)install react using viteintsall npm create vite@latest my-app --template react
2)downgrade react to version 18 npm install react@18 react-dom@18
3)intall chakra version 2.0 npm i @chakra-ui/react@2 @emotion/react @emotion/styled framer-motion
4)use provider to get chakra ui(check the synax in the chakra website)
import { ChakraProvider } from '@chakra-ui/react'
function App() {
// 2. Wrap ChakraProvider at the root of your app
return (
<ChakraProvider>
<TheRestOfYourApplication />
</ChakraProvider>
)
The previously suggested solution did not work for me anymore.
Instead, setting the environment variable
PMA_ABSOLUTE_URI=https://your.domain.tld/phpmyadmin/
fixed the issue behind a reverse proxy.
Tested with phpMyAdmin 5.2.2.
With Raku/Sparrow this is just:
begin:
machine api.mydomain.com
:any:
end:
code: <<RAKU
!raku
for streams().value -> $s {
say $s<>[0]<data>;
say $s<>[1]<data>;
}
RAKU
There is no way we can remove cookies from chromium, other way to prevent attacker stealing it, you can set webview incognito=true
and use proguard rule to obfuscate your code, this will make your code very hard to read or reverse engineer.
In redshift you unnest the super array into rows in order to search them
https://docs.aws.amazon.com/redshift/latest/dg/query-super.html
permitir colagem ( se estiver em português )
How can d162c240 or c240d162 be 6.07456254959106 if the most significant bit is active, meaning it has a negative number?
My formula (change ‘x’ to the required cell): =(-1)^(BITAND(HEX2DEC(x);HEX2DEC("80000000"))/2^31) * (1 + BITAND(HEX2DEC(x);HEX2DEC("007FFFFF"))/2^23) * 2^(BITAND(HEX2DEC(x);HEX2DEC("7F800000"))/2^23-127)
import speech_recognition as sr
import pyttsx3
import os
# आवाज़ बोलने वाला इंजन सेट करें
engine = pyttsx3.init()
def speak(text):
engine.say(text)
engine.runAndWait()
# वेलकम मैसेज
speak("नमस्ते! मैं आपका वॉइस असिस्टेंट हूं।")
# कमांड सुनना और चलाना
while True:
r = sr.Recognizer()
with sr.Microphone() as source:
print("मैं सुन रहा हूँ...")
audio = r.listen(source)
try:
command = r.recognize_google(audio, language="hi-IN") # हिंदी में समझेगा
print(f"आपने कहा: {command}")
if 'नोटपैड खोलो' in command:
speak("नोटपैड खोल रहा हूँ")
os.system("notepad")
elif 'बंद करो' in command:
speak("ठीक है, अलविदा!")
break
else:
speak("माफ कीजिए, मैं वह नहीं समझ पाया।")
except:
speak("माफ कीजिए, कुछ गड़बड़ हुई।")
Assuming you have the RGP in the numpy array and the shape of of your array with thousands of pictures with 32*32 Pixels is (50000,32,32,3)
, then you can create gray scale by average of RGB
X_gray = np.sum(X_color/3, axis=3, keepdims=True)
Thanks to Mayukh Bhattacharya that solved the problem by suggesting to wrap the idx inside a MAX(idx, 1) function when using it inside MAKEARRAY!
Final function looks like that:
=LET(
dataAll; PromoTbl[[SO_inizio]:[SO_ fine]];
daySel; D$6;
cliente; DASHBOARD!$B$2;
filtroCliente; (PromoTbl[[L6]:[L6]]=cliente);
filterWk; ((BYROW(PromoTbl[[SO_ fine]:[SO_ fine]];LAMBDA(row;MIN(daySel+7;row)))-BYROW(PromoTbl[[SO_inizio]:[SO_inizio]];LAMBDA(row;MAX(daySel;row)))+1)>=1);
filterWkBef; ((BYROW(PromoTbl[[SO_ fine]:[SO_ fine]];LAMBDA(row;MIN(daySel-1;row)))-BYROW(PromoTbl[[SO_inizio]:[SO_inizio]];LAMBDA(row;MAX(daySel-7;row)))+1)>=1);
dataWk; SORT(FILTER(dataAll;filtroCliente*filterWk;"NA"));
dataWkBef; SORT(FILTER(dataAll;filtroCliente*filterWkBef;"NA"));
listWk; BYROW(dataWk;LAMBDA(row;IFERROR(TEXT(CHOOSECOLS(row;1);"gg-mmm-aa") & "|" & TEXT(CHOOSECOLS(row;2);"gg-mmm-aa");"")));
listWkBef; BYROW(dataWkBef;LAMBDA(row;IFERROR(TEXT(CHOOSECOLS(row;1);"gg-mmm-aa") & "|" & TEXT(CHOOSECOLS(row;2);"gg-mmm-aa");"")));
firstRow; TAKE(listWk;1);
idx; MAX(IFERROR(MATCH(firstRow;listWkBef;0);1);1);
spaces; MAKEARRAY(idx;1;LAMBDA(r;c;""));
newArr; DROP(VSTACK(spaces;listWk);1);
newArr
)
Hola tambien tuve el mismo problema, use tu solucion, pero al guardar los cambios, me cambia el mes de la fecha actual