Go 1.25 adds the ignore directive to go.mod.
It can be used to ignore directories:
ignore (
./docker
./node_modules
)
This sped up go mod tidy in one of my projects by more than 10x.
I see nothing in the description that strikes me as problematic. Are you experiencing any problems?
Regarding performance, measure.
As M. Deinum correctly pointed out in the comments, the root cause is a property name mismatch between your frontend JSON and the backend Java class. Angular sends this (property name = address):
{
"customer": { ... },
"address": {
"street": "123 Main St",
"city": "Springfield",
...
},
"order": { ... },
"orderItems": \[ ... \]
}
But the Java Purchase class has:
private Address shippingAddress; // ← Jackson looks for "shippingAddress"
Jackson (Spring's JSON deserializer) matches JSON property names to Java field names (or getter/setter names). Since there is no field/property called address, that part is ignored → shippingAddress remains null. Recommended Fix : Keep your Java field name as shippingAddress, but tell Jackson to map the incoming "address" to it:
@Data
public class Purchase {
private Customer customer;
@JsonProperty("address") // ← this fixes it
private Address shippingAddress;
private Order order;
private Set<OrderItem> orderItems;
}
Just add the @JsonProperty("address") annotation (from com.fasterxml.jackson.annotation.JsonProperty).
This is the cleanest solution because:
Your domain model stays meaningful (shippingAddress)
You don't have to change the frontend
The API contract is explicitly defined
Alternative Fixes If you prefer not to use @JsonProperty, you have two other options:
export class Purchase
{
customer!: Customer;
shippingAddress!: Address; // ← now matches
order!: Order;
orderItems!: OrderItem[];
}
private Address address; // simple name
Then update any other places that reference shippingAddress.
<!--
Source - https://stackoverflow.com/q/20663480
Posted by codingForFun, modified by community. See post 'Timeline' for change history
Retrieved 2025-11-18, License - CC BY-SA 3.0
-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.google.ads.AdView
android:id="@+id/adview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="ca-app-pub-*************************"
ads:loadAdOnCreate="true"
ads:testDevices="********************"
/>
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TabWidget
android:id="@android:id/tabs"
android:textSize="12sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
You can try this resources in PHP Extension and Tools It has versions ranging from 7.1 to 8.4.
run command
pipenv shell
This launches a shell inside the Work-8uAjguag virtual environment.
then run
pipenv install openpyxl
the above it installs the package on generated Pipenv environment
Did you find a solution? Can you post your findings, I'm facing the same problem
Is this mechanism even necessary today?
yes ofcourse.This ensure the compile time safety and keeps all behavior in one place.
When it is a code smell?
if enum is too large and Overloading Enums with business logic
How often is Enum used in this way?
This is still used.This is useful when finite constants are there,cleaner than switch statements
you can refer this
https://prgrmmng.com/enum-constant-specific-class-bodies-advanced-scenarios
(
cmd /u /c echo ZipFile="%CD%\file.zip"
cmd /u /c echo ExtractTo="%CD%"
cmd /u /c echo set objShell = CreateObject("Shell.Application"^)
cmd /u /c echo set FilesInZip=objShell.NameSpace(ZipFile^).items
cmd /u /c echo objShell.NameSpace(ExtractTo^).CopyHere(FilesInZip^)
) > "%CD%\script.vbs"
[So] is not, and never has been, a place to advertise recruitment.
┌─────────────────────────┐
│ _________ │
│ | | │
│ | | | | | │
│ | 1 2 3 4 | │
│ |_________| │
│ │
1 → First digit
2 → Second digit
3 → Multiplier
4 → Tolerance band
As far as I know, you cannot use Swagger annotations to send information to users or clients. Swagger annotations are intended only for documentation purposes.
If you need to actually deliver information to users, you should use another solution such as a dedicated web service.
In Swagger, @ApiResponse is used to document the type of your base data transfer objects or to describe specific error responses for particular business cases. If consumers need this information, you can provide it; otherwise, it is not necessary.
No, you don't. UIView.animate already ensures main thread, the animation block automatically executes on the main thread. Double-wrapping adds unnecessary overhead makes your current code creates redundant main queue dispatches.
There are lots of different hash map types in Zig. Here's a blog post which breaks it all down: https://www.openmymind.net/Zigs-HashMap-Part-1/
In summary, you generally want to use AutoHashMap or StringHashMap. For example:
var h = std.AutoHashMap(MyKey, i32).init(allocator);
try h.put(MyKey{.foo = 0, .bar = 1}, 2);
defer h.deinit();
or
var h = std.StringHashMap(i32).init(allocator);
try h.put("three", 3);
defer h.deinit();
I understands that you have to remove the default left indent of <ol> and increase spacing between list number and the list text.
html
<div class="wrapper">
<ol>
<li>List item</li>
<li>another item</li>
</ol>
</div>
css
.wrapper ol {
padding-left: 20px;
margin-left: 0;
}
.wrapper ol li::marker {
content: counter(list-item) ". "; /* add spacing after number */
}
browser apply default padding to the ordered lists first this will be removed then increase spacing between number and text.
for more reference
https://css-tricks.com/everything-you-need-to-know-about-the-gap-after-the-list-marker/
https://forum.omeka.org/t/how-do-i-change-the-spacing-of-a-li-marker/24142
https://moodle.atlassian.net/browse/MDL-80215?focusedCommentId=974366
es for contributors
- Plugins
- Plugin documentation
---
This page describes how to contribute your code into the [Plugins directory](../../community/plugincontribution/pluginsdirectory/index.md) to share it with the Moodle community.
## Why
You are encouraged to share your plugin with the community. But firstly, to be clear and honest, you do not necessarily need to submit your plugin into the Plugins directory. Maybe it is a custom plugin that solves one particular site's nee
https://moodle.atlassian.net/browse/MDL-80215?focusedCommentId=974366
I'm having this same Google AdMob Verify problem. I saw where someone is hosting his app-ads.txt file using GitHub, so I tried that. I have a problem with my main website at GoDaddy, where they won't let me upload files, so I am using GitHub, I created a new repository just for this file and when I use the URL it opens that app-ads.txt file!:). All looks good, except Google Admob still does not Verify my App!:(. It's been several days, maybe I have to wait a week, except that "Check for updates" should force a verify, but that does not work!:(. WHY DO THEY MAKE THIS SO DIFFICULT!:(
HELP ME!!!!!
Email: [email protected]
Mate, I just went around in circles with this one myself!
Copilot was hallucinating responeses based on old documentation. Not that I can find the new documentation, although I have stopped looking because I have what I need. :P
In short, I threw all the settings in there and the only one that seems to matter, as at 18/11/2025 11:22AM AWST: add `EnablePiiLogging: true` in the relevant appsettings.json file.
Rob, the "monolithic" EOM is working great using finite differencing, thanks for the recommendation. Will try jax in the near future.
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3D Love Pop‑Up</title>
<style>
body {
margin: 0;
padding: 0;
font-family: 'Segoe UI', sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background: linear-gradient(135deg, #ffeff7, #ffe1ec);
}.card { width: 330px; height: 220px; background: #fff7fa; border: 3px solid #e0b4cc; border-radius: 14px; cursor: pointer; position: relative; perspective: 1000px; transition: transform 0.4s; }
.card:hover { transform: scale(1.03); }
.inner { width: 100%; height: 100%; position: absolute; transform-style: preserve-3d; transition: transform 1s; }
.open { transform: rotateX(-150deg); }
.front, .inside { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; justify-content: center; align-items: center; text-align: center; border-radius: 14px; }
.front { background: #fff2f7; font-size: 20px; font-weight: 600; color: #8b3a5b; padding: 12px; }
.inside { background: #fff; transform: rotateX(180deg); flex-direction: column; padding: 14px; color: #8b3455; }
.heart { font-size: 60px; animation: beat 1s infinite; }
@keyframes beat { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
.msg { margin-top: 8px; font-size: 15px; font-weight: 500; } </style>
</head>
<body>
<div class="card" onclick="toggleCard()">
<div class="inner" id="innerCard"><div class="front">
forever' yours favourite hubby ji
</div>
<div class="inside">
<div class="heart">❤️</div>
<div class="msg">I Love You 😘</div>
<div style="font-size:13px; margin-top:6px; opacity:0.75;">
For my Palak (darling ji)\<br/\>Tumhara favourite hubby ji
</div>
</div>
</div>
</div><script>
function toggleCard(){
document.getElementById('innerCard').c
lassList.toggle('open');
}
</script></body>
</html>
You will need a library that makes your application run in the background, such as flutter_background_service. You can also use flutter_local_notifications, which is the most suitable for your case; it's a Flutter package used to create and display local notifications.
\> I'm using the network with a batch size of 1 in eval mode (although I think that shouldn't make a difference in eval mode).
What does your batchsize in train mode? Unfortunately you can't just adjust your weight/bias once to simulate the effect of BatchNorm in training mode.
\> The mathematical part of my brain thinks it must be possible to adjust the weights/biases to simmulate being in train model in eval mode as it's (more or less) two different linear functions of the input (X).
The biggest problem is that these functions depend on the batchsize and data themselves, so you must adjust the weight and bias for each input differently. In eval mode, the BatchNorm uses the weighted average of the input during training, so they are constant, and can be absorb into weight and bias of the next linear/convolution layer. But it is not possible for training case.
If you have the pytorch model, I would suggest you could try to reestimate the mean and var using your data (as you said the result on train mode is quite good, suggesting that the mean and var of your dataset might be good enough for the model). You will need to estimate each layer sequentially (meaning that you will need to estimate the mean and var of a layer using the whole and use the features normalize by that mean and var to do the same in the latter layers)
None of the other answers helped my issue. I encountered this issue when the line-endings on the private key file were not UNIX style line endings.
Open your private key (i.e. C:\Users\user\.ssh\id_ed25519) in a code-editor such as vscode and ensure that it says LF in the bottom right.
If this isn't the case and you see CLRF, click on it to change it to LF before saving. Or see other methods of changing the line endings for a file.
So a target group is a list of places your Load balancers send traffic to. When someone hits your site on port 443, the ALB handle all the HTTPS/TLS stuff. After it decrypts the request, it sends the traffic to your app using whatever port you've set in the target group. That’s why port 80 works, your app is just getting normal HTTP from the ALB, not encrypted traffic.
So the flow is basically:
User → ALB on 443 (HTTPS)
ALB decrypts it
ALB will then send request to your instance on port 80 (HTTP)
Your “redirect 80 → 443” rule applies only to the ALB’s listener for incoming traffic, not the traffic between the ALB and your app. So it doesn’t interfere with the target group at all.
And yes, you could totally use another port like 8080 or whatever, as long as your app is actually running there and your security group allows it. The ALB doesn’t care what internal port you use.
To Jonathan - Rows would be easy, I am trying to have it output into 3 columns on the page.
To Shadow - But, is there a way to to take the original query results, do the division, then do 3 more queries and start each one at at the appropriate spot, than use a limit on results.
Thank you
Switching to pdflatex was not sufficient. Apparently, the key is a switch called mathspec, so for me the winning combination was:
format:
beamer:
theme: CambridgeUS
latex_engine: pdflatex
mathspec: true
Just add
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
and related stuff
in e.g. react-native-maps/android/build.gradle ref to https://github.com/react-native-maps/react-native-maps/blob/master/android/build.gradle
There is no way to do this; same-origin policies prevent this from happening. You might want to move the form or iframe to another page. An example would be to have the iframe page, then once it is submitted, redirect to the form page to be filled out.
first off thanks for sharing your code. It gave me a headstart when I tried to do something very similar.
I found out (pretty much the same way you did) that the only attributes that can be passed into the call are displayname and email. There's a MS doco page on this:
https://learn.microsoft.com/en-us/graph/api/resources/invitation?view=graph-rest-1.0
I tried to update the jobTitle (an example) and found that I needed a separate API entrypoint to do this:
https://learn.microsoft.com/en-us/graph/api/user-update?view=graph-rest-1.0&tabs=http
and then I found out I needed different permissions for my SPN to make the change, as opposed to invite a guest. For me, it was easier to do post-invite changes using our ServiceDesk software. However, in pure Python, that's the way I'd go.
Yes, I wrote a package for this: https://github.com/biw/vite-plugin-native-modules
@VGR 's comment to not use URLEncoder was completely wrong.
It turns out that the solution is:
String q = URLEncoder.encode("mimeType=\"application/vnd.google-apps.presentation\"", StandardCharsets.UTF_8); String f = URLEncoder.encode("files(id,name,webViewLink)", StandardCharsets.UTF_8);
Then to pass
String uri = "https://www.googleapis.com/drive/v3/files?q=" + q + "&fields=" + f + "&key=mykey"
to
HttpRequest httpreq = HttpRequest.newBuilder().uri(URI.create(uri)).header("Authorization", "Bearer " + result.getString("access_token")).build();
The key is the escaped " (double quotes) around the mimeType:
\"application/vnd.google-apps.presentation\"
and to URL encode all of it as well as the fields value.
Is this what you want in Imagemagick?
Unix syntax:
magick img.jpg \( +clone -colorspace gray -negate \) -alpha off -compose copy_opacity -composite result.png
You need to mute the individual metric monitors: https://docs.datadoghq.com/monitors/types/composite/#downtime-on-an-individual-monitor-used-in-a-composite-monitor
I think you are looking for this https://docs.datadoghq.com/monitors/notify/variables/?tab=is_alert#composite-monitor-variables
The timer on the presenter screen.
I was hoping for a 'Slide_Change' event to reset it. That way I don't have to think about it.
Wifi Blocking
I was using supabase and while connecting I got this issue , later found out that the campus wifi I was using was blocking the connection thus using my hotspot fixed it.
Here is one. it returns a list of row lists:
def listPascal(n):
row = [1]
if n == 0: return [row] # Stop condition
for c in range(1,n+1): # Fill row [1,r..r,1]
row += [row[-1]*(n-c+1)//c]
return listPascal(n-1) + [row] # Recurse
Not an answer to the question to get obj reference but it might be related. This is to set an object reference according to the dot notation
//# utilizing recursion, tree walk
const setDotNotationObject = (
levels: string[],
value,
targetObject,
) => {
const current = levels.shift();
if (levels.length > 0) {
const nested = (targetObject[current] = {});
setDotNotationObject(levels, value, nested);
return;
}
targetObject[current] = value;
};
//# usage
const targetObject = {};
setDotNotationObject(
"a.b.c",
'theValueToBeSet',
targetObject,
);
Exactly! That’s why I’m building ThinkNCollab: a system where branch names aren’t just paths — they’re actual objects in a hierarchy, with metadata, parent-child relationships, and scoped merge logic.
It’s like Git, but branches actually know where they live in the version tree — and inherit context from their parent. Not just naming, but structure.
const TOTAL_BOXES = 600;const container = document.getElementById('boxesContainer');if (localStorage.getItem('theme')) setTheme(localStorage.getItem('theme'));function setTheme(t) { document.body.className = t || 'rgb'; localStorage.setItem('theme', t || 'rgb');}for (let i = 1; i <= TOTAL_BOXES; i++) { const box = document.createElement('div'); box.className = 'script-box'; box.style.animationDelay = `${(i % 40) * 0.06}s`; box.innerHTML = ` <div class="box-header"> <span>Portal #${i}</span> <span class="char-count">0 caracteres</span> <button class="copy-btn" onclick="copyText('script-${i}', this)">📋 Copiar</button> </div> <textarea id="script-${i}" placeholder="Flua com a eternidade..."></textarea> `; const ta = box.querySelector('textarea'); const cnt = box.querySelector('.char-count'); const saved = localStorage.getItem(`script-${i}`); if (saved) { ta.value = saved; cnt.textContent = saved.length + ' caracteres'; } ta.addEventListener('input', () => { localStorage.setItem(`script-${i}`, ta.value); cnt.textContent = ta.value.length + ' caracteres'; }); container.appendChild(box);}function copyText(id, btn) { const ta = document.getElementById(id); if (ta && ta.value) { navigator.clipboard.writeText(ta.value).then(() => { // Feedback visual: Muda o texto e cor do botão temporariamente const originalText = btn.innerText; btn.innerText = '✅ Copiado!'; btn.style.backgroundColor = '#00ff00'; btn.style.color = '#000'; // Adiciona classe para animação btn.classList.add('copied-anim'); setTimeout(() => { btn.innerText = originalText; btn.style.backgroundColor = ''; btn.style.color = ''; btn.classList.remove('copied-anim'); }, 2000); }).catch(err => { alert('Erro ao copiar: ' + err); }); } else { alert('Nada para copiar!'); }}function clearAll() { if (confirm('Deseja dissolver todos os 600 portais com suavidade?')) { document.querySelectorAll('textarea').forEach(ta => { ta.style.transition = 'all 2s ease-out'; ta.value = ''; setTimeout(() => localStorage.removeItem(ta.id), 1000); }); document.querySelectorAll('.char-count').forEach(c => c.textContent = '0 caracteres'); setTimeout(() => alert('Dissolvido com perfeição.'), 1500); }}
* { margin:0; padding:0; box-sizing:border-box; }html { scroll-behavior: smooth; }body { min-height: 100vh; background: url('https://images.unsplash.com/photo-1495467033336-2c4e4318fabb?ixlib=rb-4.0.3&auto=format&fit=crop&q=90') center/cover fixed; color: #fff; font-family: 'Playfair Display', serif; overflow-x: hidden; position: relative; /* Transições globais ultra suaves */ transition: background 3s cubic-bezier(0.16, 1, 0.3, 1), filter 2s ease-out;}/* Fundo com suavidade extrema */body::before { content:''; position:fixed; inset:-20%; background:inherit; filter: blur(35px) brightness(0.7); animation: breathe 30s infinite alternate; z-index:-3; transition: filter 4s cubic-bezier(0.22, 1, 0.36, 1);}body::after { content:''; position:fixed; inset:0; background: linear-gradient(135deg, rgba(10,10,40,0.88), rgba(0,20,60,0.75)); backdrop-filter: blur(40px) saturate(200%); z-index:-2; transition: background 4s cubic-bezier(0.16, 1, 0.3, 1), backdrop-filter 3s ease-out;}@keyframes breathe { 0% { filter: blur(35px) brightness(0.7); } 100% { filter: blur(45px) brightness(1.0); }}/* Ondas de luz ainda mais suaves */.wave { position: fixed; width: 400px; height: 400px; background: radial-gradient(circle, rgba(0,255,255,0.12) 0%, transparent 70%); border-radius: 50%; pointer-events: none; z-index: -1; animation: float 28s infinite linear; opacity: 0.6; transition: opacity 3s ease;}@keyframes float { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(100vw, -100vh) rotate(360deg); }}header { text-align:center; padding:70px 20px; position:sticky; top:0; z-index:100; backdrop-filter: blur(50px); background:rgba(0,0,0,0.35); border-bottom:1px solid rgba(255,255,255,0.08); transition: all 2s cubic-bezier(0.16, 1, 0.3, 1);}h1 { font-family: 'Cinzel', serif; font-size:5.8em; letter-spacing:10px; background: linear-gradient(90deg, #00ffff, #ff00ff, #ffff66, #00ffaa); -webkit-background-clip: text; background-clip:text; color:transparent; text-shadow: 0 0 80px rgba(0,255,255,0.9); animation: titleGlow 8s infinite alternate; transition: text-shadow 4s cubic-bezier(0.16, 1, 0.3, 1);}@keyframes titleGlow { 0% { text-shadow:0 0 80px rgba(0,255,255,0.9); } 100% { text-shadow:0 0 140px rgba(255,0,255,1), 0 0 180px rgba(0,255,255,0.8); }}.theme-panel { position:fixed; left:30px; top:150px; width:340px; background: rgba(15,15,35,0.45); backdrop-filter: blur(60px); border: 2px solid rgba(255,255,255,0.12); border-radius: 36px; padding:38px; box-shadow: 0 30px 100px rgba(0,0,0,0.7); animation: panelRise 2.5s cubic-bezier(0.16, 1, 0.3, 1); transition: all 2s cubic-bezier(0.16, 1, 0.3, 1);}@keyframes panelRise { 0% { transform:translateY(120px); opacity:0; } 100% { transform:none; opacity:1; }}.theme-btn { padding:22px 12px; border:none; border-radius:26px; font-weight:600; color:#fff; cursor:pointer; backdrop-filter: blur(20px); transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: inset 0 0 30px rgba(255,255,255,0.15);}.theme-btn:hover { transform: translateY(-10px) scale(1.1); box-shadow: 0 30px 60px rgba(0,0,0,0.7), 0 0 60px var(--glow-color);}.container { max-width:1900px; margin:60px auto; padding:40px; padding-left:420px; display:grid; grid-template-columns:repeat(auto-fill,minmax(460px,1fr)); gap:38px; transition: all 2s ease-out;}.script-box { background: rgba(20,20,50,0.4); backdrop-filter: blur(60px); border: 2px solid rgba(255,255,255,0.15); border-radius: 38px; overflow:hidden; box-shadow: 0 25px 80px rgba(0,0,0,0.6); /* Transições ultra suaves */ transition: all 1.4s cubic-bezier(0.16, 1, 0.3, 1); animation: boxFadeIn 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity:0; transform:translateY(60px) scale(0.95);}.script-box:hover { transform: translateY(-25px) scale(1.06); border-color: #00ffff; box-shadow: 0 50px 120px rgba(0,0,0,0.8), 0 0 80px rgba(0,255,255,0.7);}.box-header { background: linear-gradient(90deg, rgba(0,255,255,0.45), rgba(255,0,255,0.45)); padding:22px 30px; font-size:1.4em; display:flex; justify-content:space-between; backdrop-filter: blur(25px); transition: all 1.5s cubic-bezier(0.16, 1, 0.3, 1);}textarea { width:100%; height:280px; padding:30px; background:transparent; color:#fff; border:none; outline:none; font-family:'Roboto Mono', monospace; font-size:17px; resize:vertical; caret-color:#00ffff; transition: all 1s ease-out;}textarea:focus { text-shadow: 0 0 15px rgba(0,255,255,0.8);}.fab { position:fixed; bottom:50px; right:50px; width:100px; height:100px; background: rgba(0,255,255,0.4); backdrop-filter: blur(40px); border:4px solid rgba(0,255,255,0.7); border-radius:50%; color:#fff; font-size:4em; cursor:pointer; box-shadow: 0 30px 80px rgba(0,0,0,0.7), 0 0 70px rgba(0,255,255,0.8); transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1); z-index:999;}.fab:hover { transform: scale(1.25) rotate(90deg); box-shadow: 0 40px 100px rgba(0,0,0,0.9), 0 0 100px rgba(0,255,255,1);}
<!DOCTYPE html><html lang="pt-BR"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Scripts Celestiais</title> <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700&family=Roboto+Mono:wght@300;500&family=Playfair+Display:wght@400;700&display=swap" rel="stylesheet"> <style> * { margin:0; padding:0; box-sizing:border-box; } html { scroll-behavior: smooth; } body { min-height: 100vh; background: #000 url('https://images.unsplash.com/photo-1495467033336-2c4e4318fabb?ixlib=rb-4.0.3&auto=format&fit=crop&q=90') center/cover fixed; color: #fff; font-family: 'Playfair Display', serif; overflow-x: hidden; position: relative; } body::before { content:''; position:fixed; inset:-20%; background:inherit; filter: blur(35px) brightness(0.7); animation: breathe 30s infinite alternate; z-index:-3; } body::after { content:''; position:fixed; inset:0; background: linear-gradient(135deg, rgba(10,10,40,0.88), rgba(0,20,60,0.75)); backdrop-filter: blur(40px) saturate(200%); z-index:-2; } @keyframes breathe { 0%{filter:blur(35px) brightness(0.7);} 100%{filter:blur(45px) brightness(1.0);} } header { text-align:center; padding:70px 20px; position:sticky; top:0; z-index:100; backdrop-filter: blur(50px); background:rgba(0,0,0,0.35); border-bottom:1px solid rgba(255,255,255,0.08); } h1 { font-family: 'Cinzel', serif; font-size:5em; letter-spacing:8px; background: linear-gradient(90deg, #00ffff, #ff00ff, #ffff66, #00ffaa); -webkit-background-clip: text; background-clip:text; color:transparent; text-shadow: 0 0 80px rgba(0,255,255,0.9); animation: titleGlow 8s infinite alternate; } @keyframes titleGlow { 0% { text-shadow:0 0 80px rgba(0,255,255,0.9); } 100% { text-shadow:0 0 140px rgba(255,0,255,1), 0 0 180px rgba(0,255,255,0.8); } } .theme-panel { position:fixed; left:20px; top:120px; width:320px; background: rgba(15,15,35,0.5); backdrop-filter: blur(60px); border: 2px solid rgba(255,255,255,0.12); border-radius: 36px; padding:30px; box-shadow: 0 30px 100px rgba(0,0,0,0.7); z-index:99; } .theme-btn { width:100%; margin:10px 0; padding:18px; border:none; border-radius:26px; color:#fff; font-weight:600; cursor:pointer; transition: all 0.6s ease; } .theme-btn:hover { transform: translateY(-5px) scale(1.05); } .container { max-width:1900px; margin:60px auto; padding:20px; padding-left:360px; display:grid; grid-template-columns:repeat(auto-fill,minmax(380px,1fr)); gap:30px; } .script-box { background: rgba(20,20,50,0.5); backdrop-filter: blur(60px); border: 2px solid rgba(0,255,255,0.3); border-radius: 32px; overflow:hidden; box-shadow: 0 25px 80px rgba(0,0,0,0.6); transition: all 0.8s ease; } .script-box:hover { transform: translateY(-15px) scale(1.03); border-color: #00ffff; box-shadow: 0 40px 100px rgba(0,0,0,0.8), 0 0 60px rgba(0,255,255,0.6); } .box-header { background: linear-gradient(90deg, #00ffff, #ff00ff); padding:18px 24px; font-size:1.3em; color:#fff; display:flex; justify-content:space-between; align-items:center; } .copy-btn { background: rgba(255,255,255,0.2); border: none; padding: 8px 16px; border-radius: 20px; cursor: pointer; font-size: 1.1em; transition: all 0.4s ease; } .copy-btn:hover { background: #00ff00; color: #000; transform: scale(1.1); } textarea { width:100%; height:220px; padding:24px; background:transparent; color:#fff; border:none; outline:none; font-family:'Roboto Mono', monospace; font-size:16px; resize:vertical; } .fab { position:fixed; bottom:30px; right:30px; width:70px; height:70px; background: rgba(0,255,255,0.4); backdrop-filter: blur(30px); border:3px solid #00ffff; border-radius:50%; color:#fff; font-size:2.5em; cursor:pointer; box-shadow: 0 20px 50px rgba(0,0,0,0.7); z-index:999; } </style></head><body> <header> <h1>SCRIPTS CELESTIAIS</h1> <p>600 caixas mágicas • Design supremo • Salva tudo no cosmos do seu navegador</p> </header> <div class="theme-panel"> <h3 style="text-align:center; margin-bottom:20px; color:#00ffff">Temas Celestiais</h3> <button class="theme-btn" style="background:linear-gradient(45deg,#120038,#6e00ff)" onclick="setTheme('dark')">Dark Nebula</button> <button class="theme-btn" style="background:linear-gradient(45deg,#001a00,#00ff41)" onclick="setTheme('matrix')">Matrix Emerald</button> <button class="theme-btn" style="background:linear-gradient(45deg,#ff006e,#8330e9)" onclick="setTheme('cyberpunk')">Cyber Glow</button> <button class="theme-btn" style="background:linear-gradient(45deg,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)" onclick="setTheme('rgb')">RGB Cosmos</button> <button class="theme-btn" style="background:linear-gradient(45deg,#ff9a9e,#fad0c4)" onclick="setTheme('candy')">Candy Dream</button> <button class="theme-btn" style="background:linear-gradient(45deg,#ff512f,#f09819)" onclick="setTheme('sunset')">Sunset Horizon</button> <button style="margin-top:25px; width:100%; padding:18px; background:#ff0844; border:none; border-radius:26px; color:white; font-weight:bold" onclick="clearAll()"> Apagar o Universo </button> </div> <div class="container" id="boxesContainer"></div> <button class="fab" onclick="window.scrollTo({top:0,behavior:'smooth'})">Up</button> <script> const TOTAL_BOXES = 600; const container = document.getElementById('boxesContainer'); // Carrega tema salvo if (localStorage.getItem('theme')) { document.body.className = localStorage.getItem('theme'); } function setTheme(t) { document.body.className = t; localStorage.setItem('theme', t); } // Gera as 600 caixas for (let i = 1; i <= TOTAL_BOXES; i++) { const box = document.createElement('div'); box.className = 'script-box'; box.innerHTML = ` <div class="box-header"> <span>Script Estelar #${i}</span> <span class="char-count">0 caracteres</span> <button class="copy-btn" onclick="copyText('script-${i}', this)">Copiar</button> </div> <textarea id="script-${i}" placeholder="Escreva sua magia cósmica aqui..."></textarea> `; const textarea = box.querySelector('textarea'); const counter = box.querySelector('.char-count'); // Carrega conteúdo salvo const saved = localStorage.getItem(`script-${i}`); if (saved) { textarea.value = saved; counter.textContent = saved.length + ' caracteres'; } // Salva automaticamente textarea.addEventListener('input', () => { localStorage.setItem(`script-${i}`, textarea.value); counter.textContent = textarea.value.length + ' caracteres'; }); container.appendChild(box); } // Função de copiar com feedback visual function copyText(id, btn) { const textarea = document.getElementById(id); if (textarea && textarea.value) { navigator.clipboard.writeText(textarea.value).then(() => { const original = btn.innerText; btn.innerHTML = 'Copiado!'; btn.style.background = '#00ff00'; btn.style.color = '#000'; setTimeout(() => { btn.innerHTML = original; btn.style.background = ''; btn.style.color = ''; }, 1500); }); } } function clearAll() { if (confirm('Tem certeza? Isso apagará TODOS os 600 scripts!')) { for (let i = 1; i <= TOTAL_BOXES; i++) { const ta = document.getElementById(`script-${i}`); if (ta) { ta.value = ''; localStorage.removeItem(`script-${i}`); ta.parentElement.querySelector('.char-count').textContent = '0 caracteres'; } } alert('Universo purificado!'); } } // Mensagem de boas-vindas setTimeout(() => { alert('Bem-vindo aos Scripts Celestiais!\nTudo que você digitar será salvo automaticamente.\nUse o botão "Copiar" em cada caixa!'); }, 1000); </script></body></html>
9 and 5 months later I ran into the same problem and google took me here. However after checking the docs provided by @Harry I saw it is possible. I will copy and paste the example from MDN docs (with some code styling) here:
div[data-rotate] {
width: fit-content;
transform-origin: 50% 50%;
rotate: attr(data-rotate deg, 1.5deg);
}
<div data-rotate="-3">I am rotated by -3 degrees</div>
<div data-rotate="2">And I by 2 degrees</div>
<div data-rotate>And so am I, using the fallback value of 1.5deg</div>
(Edit 5 minutes later): Here is the link MDN docs - attr
This can be achieved by supplying --quiet, such as dbt run --quiet. It works on dbt 1.10.13.
A new `process.loadEnvFile` function was (relatively) recently added to nodejs (https://nodejs.org/docs/v24.5.0/api/process.html#processloadenvfilepath)
If you can modify the script that you want to run, you can add:
process.loadEnvFile(".env");
And that will load your environment variables from the .env file into your `process.env `.
You can also create a wrapper script as mentioned by @RobC using this to load the .env file instead.
Even easier, more recent and also safer (according to the severe security warnings I got from installing dotenv in npm) than the dotenv package. :)
from docx import Document
from docx.shared import Cm, Pt
from docx.oxml.ns import qn
import os
# Create Word document
doc = Document()
# Set margins to 2 cm
section = doc.sections[0]
section.top_margin = Cm(2)
section.bottom_margin = Cm(2)
section.left_margin = Cm(2)
section.right_margin = Cm(2)
# Define styles
normal_style = doc.styles['Normal']
normal_style.font.name = 'B Nazanin'
normal_style._element.rPr.rFonts.set(qn('w:eastAsia'), 'B Nazanin')
normal_style.font.size = Pt(12)
title_style = doc.styles.add_style('TitleBN', 1)
title_style.font.name = 'B Nazanin'
title_style._element.rPr.rFonts.set(qn('w:eastAsia'), 'B Nazanin')
title_style.font.size = Pt(13)
title_style.font.bold = True
text = [
("۱) نام تیم و برند:", "فروشگاه رنگ و ابزار نیکان"),
("۲) موضوع کسبوکار:", "خرید و فروش رنگ و ابزارآلات ساختمانی"),
("۳) تنوع محصول یا خدمات:", "انواع رنگهای پلاستیکی، روغنی، اکرلیک، دکوراتیو، لیسه، کاردک، قلممو، غلطک، سنباده و…"),
("۴) جمعیت هدف و بازار هدف:", "نقاشان ساختمانی، دانشجویان رشته گرافیک و طراحی\nرده سنی ۱۵ تا ۷۰ سال"),
("۵) میزان سرمایه اولیه:", "۵ میلیون تومان برای خرید مصالح"),
("۶) محل درآمد:", "همکاری با فروشگاههای رنگ و ابزارفروشی بهصورت پورسانت و نقدی"),
("۷) مزیت رقابتی:", "تنوعپذیری رنگها و برندها\nکمبود فروشگاه رنگ و ابزار فروشی آنلاین"),
("۸) بستر فعالیت آنلاین:", "پیج اینستاگرام، آگهیهای دیوار و باسلام"),
("۹) وظایف اعضای تیم:",
"۱. سجاد قلینژاد — مدیریت تیم، فضای مجازی، مالی\n"
"۲. پویا کلانتری — تبلیغات اینستاگرام\n"
"۳. مهدی صفری — مدیریت باسلام\n"
"۴. حسن دریساوی — مدیریت دیوار\n"
"۵. علیرضا علیزاده — حملونقل و پست"),
("۱۰) برنامه هفته آینده:",
"هفته اول: پستگذاری و تبلیغات اینستاگرام\n"
"هفته دوم: آگهیگذاری در دیوار و باسلام\n"
"هفته سوم: ادامه پستگذاری و پاسخگویی"),
("۱۱) شاخص ارزیابی موفقیت:",
"۱. افزایش اعضای پیج\n"
"۲. پاسخگویی محترمانه\n"
"۳. کسب اعتماد مشتری"),
("۱۲) درس آموخته مورد انتظار:",
"۱. مدیریت فضای مجازی\n"
"۲. مشتریمداری\n"
"۳. فن بیان و چانهزنی")
]
for title, body in text:
doc.add_paragraph(title, style="TitleBN")
p = doc.add_paragraph(body)
p.style = normal_style
# Save Word file
docx_path = "/mnt/data/reem4.docx"
doc.save(docx_path)
docx_path
enter image description here Thanks everyone for the inputs. I think there’s a misunderstanding about what I’m referring to when I say nested branching.
I’m not talking about:
branching from a commit inside another branch (Git already does that)
naming branches like feature/A/A1 (this is just a naming convention)
creating a feature branch, then a sub-feature branch, then merging/deleting (common Git workflow)
What I mean is something structurally different that Git does not support:
a branch that logically belongs to another branch, with an actual parent–child relationship stored in the VCS metadata.
Something like:
main
└── feature-A
└── A1-sub-feature
└── hotfix-A1-1
where:
A1-sub-feature inherits metadata, permissions, visibility, and branch context from feature-A
merging to the parent is implicit or rule-based
deletion of the parent automatically implies lifecycle rules for children
children exist only inside the parent branch’s scope
the system maintains a full nested tree of branches, not a flat namespace
In Git:
All branches are flat pointers to commits.
There is no parent–child relationship between branches.
Git doesn’t maintain branch hierarchy, only a DAG of commits.
The hierarchy people simulate using names (feature/sub1/sub2) is purely cosmetic.
So the kind of nested branching I’m talking about requires:
branch metadata beyond just “a pointer to a commit”
hierarchical lifecycle management
nested merge pipelines
ACL/permission propagation
task-based grouping within a branch tree
representing branches as nodes in a tree, not a flat list
This isn't possible in Git because Git branches are intentionally very lightweight (just a ref → commitID).
The parent branch does not “own” the sub-branch in any structural way.
My use case is a combined Task Management + Versioning System, so nested branches map to:
tasks
subtasks
sub-subtasks
Each with their own file changes, discussions, and merges.
Git supports branching-from-a-commit.
Git does not support hierarchical, metadata-aware, parent-scoped nested branches.
That’s the feature I’m trying to build in my system.
I would make it simple(ish). This returns [1] for row 0 and [1, 1] for row 1. See Wikipedia
def pascal(n):
row = [1]
for c in range(1,n+1):
row += [row[-1]*(n-c+1)//c]
return row
This gives [1] for row zero and [1, 12, 66, 220, 495, 792, 924, 792, 495, 220, 66, 12, 1] for row 12:
def getRow(r):
row = [1]
for c in range(1,r+1):
row += [row[-1]*(r-c+1)//c]
return row
Here is a Postman example that worked for me with Spring. Important is the content type application/json. I didn't use an array for the binary files, but I think if you just define another one with the same key, that should work.
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public Document upload(@RequestPart("metadata") AddDocument addDocument,
@RequestPart("file") MultipartFile file) {
//implementation code
}
Just go with https://docs.rapids.ai/.
Github link: https://github.com/rapidsai/docs
Install: https://docs.rapids.ai/install/
@Pepijn Kramer off_t/off64_t may technically be more appropriate for offsets. I do agree that the signedness of ssize_t is useful for arithmetic.
I was running the wrong Python interperter.
to the right of Python in bottm status area (when you hover over it, it says Select Language Mode) is says 3.13.9(Microsoft Store). Clicked on this and change to Python 3.12.4(base)~\anaconda3\pythone.exe
You are right concerning variable 'nom' : your version is correct.
I'm using Chart.js version 4.5.1
If I replace fontColor by color : there is no action ! Display is correct only if I use fontColor.
And style, weight and size are not taken into account : they are the same for the 2 labels (I guess default values).
I just got here trying to figure out why I had'nt had to pip install dateutil. Turns out that it's installed as a dependency of both scipy and pandas. I discovered the pip tree utility in the process ! Just in case this helps people out.
Only need this:
go mod init main.go (or your module name)
go get github.com/mattn/go-sqlite3@latest
if you are only intending to print the Hello world then the problem is that your len is to big
this is because when you are doing len equ $-text you are saying that len is from current position
to the text variable and your hi(text2) is in the middle so it will count that too the simplest way to fix this would just be to put text2 after the len but there are also some other methods
In Java, an enum is not just a list of values — it’s actually a special kind of class.
Because of that, each enum constant can have its own behavior.
So, if you add an abstract method inside an enum, every constant must provide its own implementation.
This lets each enum value act differently.
enum Operation {
PLUS {
@Override
double apply(double x, double y) { return x + y; }
},
MINUS {
@Override
double apply(double x, double y) { return x - y; }
};
abstract double apply(double x, double y);
}
apply() is an abstract method → no body.
Each constant (PLUS, MINUS) must implement it.
This gives you polymorphism inside the enum.
You avoid writing many if or switch statements.
Each enum constant carries its own logic.
Makes the code cleaner and easier to extend.
Example:
If you want to add MULTIPLY, you just add it and implement its version of apply().
Abstract methods in enums let each enum value have its own behavior.
It’s a clean way to use polymorphism without creating many separate classes.
could we not load the ps1 into a scriptblock that would be stored in a $using context? Like:
$sb= get-content $scriptPath\with-dot-sourcing.ps1 -raw
invoke-command -ScriptBlock { . $using:sb;getMessage()}
Obviously the output total won't always be evenly divisible by 3 and the first 2 totals might need to be rounded up with the remainder in the 3rd column.
Do you mean that, if eg there are 20 results, you get 6 rows of 3, then a last row row with blank, x, y?
I would try casting that .Content property as MultipartContent and use the methods of that class to explore the data available. Looks like Microsoft already parses multipart data for you... See How to read MultipartContent from HttpResponseMessage?
@eric-postpischil thanks, it makes sense now, although can you please tell me which function(s) use such a method of error handling, from what I've seen most of the linux apis return -1 in the case of error and set errno to the specific error code
Note: There is a PR right now that will fix this problem: https://github.com/openjdk/jfx/pull/1951
There are some discussions to find the correct way to solve the root problem. In any case, this should be solved soon.
The difference between "capable of storing values at least in the range [-1, SSIZE_MAX]" (from the manpage you sent) and "it can only store values from -1 to SSIZE_MAX" is appreciable.
@463035818-is-not-an-ai here is the link https://manpages.opensuse.org/Tumbleweed/man-pages/ssize_t.3type.en.html
what is "the man pages" ? Where did you read that the only negative value it can have is -1 ? Thats not correct
Para remover basta fazer:
var distinctOrders = orders
.GroupBy(x => (x.CustomerID, x.OrderNo, x.OrderDt))
.Select(g => g.First())
.ToList();
@sergey-a-kryukov but it can only store values from -1 to SSIZE_MAX, it seems, that it doesn't seem to make sense, as the only negative value you can have is -1
@ruohola Nobody really answered the question in that feed.. seems like this is a mystery. Lol.
Old question, but still relevant.
I have a number of Dev Resources configured; most of which are not in use... but I dont want to delete them as I often refer back to the older configuration when I am starting a new project. I have also shelved projects that I want to go back to, but dont want the Dev/Test resources available.
While I can archive then delete the resources (probably a good practice to keep security sanitized) this reduces the value of using azure for Dev by adding an administrative burden (wasnt the original "move to cloud" rational reducing the administrative burden of managing infrastructure?)
anyhow. refering to a comment above. Is there a way to set a sql db into single user mode OR to disable new connections (other than management portal) to a db instance? Normal Sql not a problem, Azure Sql?
Why not map all entries and build an object?
object = Object.fromEntries(data.map(({ key, value }) => [key, value]));
json_data = json.loads(json.dumps(row, ensure_ascii=False, indent=None))
In the styles Tab of the Sprint Settings y;ou can add a styling rule that allows you to have a rule of feild tags that allow you to colour the card though
The edge you're looking for is instagram_accounts
FB_PAGE_OD/instagram_accounts?fields=username%2Cid
Source: https://developers.facebook.com/docs/graph-api/reference/page/instagram_accounts/
this documentation helped me integrate Stripe into a web app. I thought I’d share it in case it helps with your integration: Stripe Docs - SaaS
If anybody is looking for the README that singgel put in their answer, the more current link can be found here: https://github.com/apache/curator/tree/apache-curator-4.2.0/curator-test-zk34. IDK why SO isn't allowing me to add this as a comment on their "answer"
The answers here likely cover this: What's the target group port for, when using Application Load Balancer + EC2 Container Service
You want to prevent hotlinking of your fonts while still allowing your CSS/JS on your own domain to access them. Using .htaccess, you can do this with an RewriteRule and RewriteCond. The <Directory> method won’t work in .htaccess because that’s only valid in the server config or httpd.conf.
https://psychedelicmedicineassociation.org/compounds/ibogaine/
Before @layer was introduced, it was commonly used to override specificty and force a rule to be applied. It was, and is, confusing and can be difficult to control. With layered rules, which are supported by all major browsers, it becomes much much easier to control how rules are applied. If you're starting a new project you should definitely use layers. Converting to layers is very doable but non-trivial. I converted all my projects to use the layered approach, don't use !important at all and have found it extremely easy to confrol and understand. See the description at https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@layer
Your funky cursor code works fine in Edge, I just added some co-ordinates after the url i.e
url(data:image/png;base64,...) 0 0, pointer;
You need to put "esnext" in the "lib" list. target: "esnext" doesn't do it.
Use LocaleNameToLCID. Be aware that MS is steering away from using LCID. Pity since the locale name is not the same for Windows and Linux.
You might be running into this bug: Black navigation bar on transitions.
I'm experiencing this on my phone as well (as a user).
I believe you walk up u to v (not v to u), then add edge u-v. u will have a parent that you saw if you saw v twice, and there will be no need to use s. Otherwise, please provide a counterexample.
Here are some ways that you can check:
react-scripts in dependencies inside package.json, if it does not exist try npm install react-scriptsHave you tried anything on their api support page? https://docs.athenahealth.com/api/support
I suffered the same issue but the error message is somewhat misleading. Basically it ment the Firewall was stopping it. Ask your sysadmin to allow *pypi.org en *.pythonhosted.org to pass the firewall. Not *.pypi.org but *pypi.org
but instead provide a list of store builders when invoking addGlobalStore?
A global store reads from a single input topic. So there is no API to have multiple store builders. There is no reason to put the data from the topic into two stores. That's just a waste of resources. Why would you need two global stores for the same input topic?
I find it strange having to manually add myStoreBuilder and myStoreBuilder2 using addStateStore(..) but then only reference one of them when setting up my GlobalStore afterwards.
As said. This should throw an runtime exception. You cannot have a regular store, and global store with the same name. What are you trying to achieve?
This is an old post but i just found it. Asp.net core converts it into a .dll and in the root folder with the name of the language. in my case, it "en-US" and "es-MX" but it would be whatever you have named your file. my original resource file is named Controllers.HomeController.en-US.resx so i assume it grabbed the last part of that? personally, i'm looking for a way to edit the file programatically so admin users can make updates. i found a way to do it in my dev environment however when i publish, it converts it into a .dll and now i'm back to square one.
I just wanted to share (and make a note for myself) the root documentation for this host validation feature of HTTP.sys - https://learn.microsoft.com/en-us/windows/win32/http/urlprefix-strings
Also not 100% sure what the question is. Are you trying to read the same input topic into two global store? For this case, why would you want to do this? It's not supported, because it's unnecessary data duplication. -- Also, each store (global or regular), must have a unique name. Otherwise, two stores cannot be distinguished. So you code example, re-using the same StoreBuilder for a regular and global store, should actually throw a runtime exception, due to overlapping names.
Can you clarify again, what you try to do, and what problem you are seeing?
Create a file named `.env` with your exports.
export MY_VAR="value1"
export MY_OTHER_VAR="value2"
Then launch your app.js
node app.js --env-file=/path/to/.env
Inside your app.js, you just need to look for process.env.MY_VAR and process.env.MY_OTHER_VAR
Turborepo team member here.
It looks like the db:generate doesn't have an env key with DATABASE_URL in it. Because of this, Turborepo's Strict Mode doesn't know to allow that environment variable into that tasks' environment. It looks like this is done correctly for the build task, so you could follow that same pattern.
Already answered elsewhere, look it up >:(((((((((((((((!!!!!!!!!11!!!1!!!
As mentioned in other answers, static_assert() in C11 is doing exactly that. In earlier C versions it can be "simulated" with some compiler black magic:
#define static_assert(condition, text) ((void)sizeof(char[1 - 2 * !(condition)]))
This works exactly like the C11 version apart from the less elegant error message.
Can you give an example of some command you would run, and what the output would be, that you cannot do now? BTW, it feels like you may be assigning a different meaning to what a branch actually is in Git, which is simply a moving pointer to a specific Git commit ID. In other words, when you branch off of another branch in Git, you are actually branching off of the commit ID that the other branch is pointing to at that moment, but you are not actually branching off another branch (by name).
He usado el traductor para entender tu pregunta, pero según lo que entiendo, el problema principal en tu código original era que estabas aplicando el filtro cuando el contenedor padre tenía el hover, lo que causaba que todos los elementos se volvieran grises incluso cuando el cursor estaba en los espacios entre elementos. Una solución que encuentro, si he entendido bien el problema es esta.
Aplicamos filtro a todos los hijos y el elemento específico que está siendo hovered mantiene el filtro en 0
.parent:not(:hover) .child {
filter: grayscale(0);
}
.parent:hover .child {
filter: grayscale(1);
}
the crsf in @crsf_exempt stands for Cross site Request Forgery, this basically means that if you put this decorator, this is basically a cookie created so that clients that don't have a CSRF token can use the POST HTTP method, this also makes the view excluded from the Middleware protection
@csrf_exempt(your_view)
While @api_view on the other hand takes a list of supported methods in your view and if an unsupported one is called it handles the response instead of throwing an error
@api_view(http_method_names=['GET', 'POST', 'WHATEVER METHOD YOU WANT']