I've only one question: why? What benefit do you get from that? Or a more specific question, wjy a calling party should know the details of the service implementation, being forced to call a specific method for different type?
I found the solution.....My colleague suggested I run VS Code as “Run as administrator", and it worked. Just right click VsCode and choose Run as administrator......It's so weird.
Time =
IF(
NOT(ISBLANK(Sheet1[Start Date])) &&
NOT(ISBLANK(Sheet1[End Date])),
NETWORKDAYS(
Sheet1[Start Date],
Sheet1[End Date],
IF(
OR(
Sheet1[Country Name] = "Saudi Arabia",
Sheet1[Country Name] = "Egypt"
),
7,
1
)
) - 1,
BLANK()
)
(Reposting my comment as a "reply" since the comment is likely invisible/links not clickable even from the inbox)
You can check this link and see whether it contains a way to convert it to Community Wiki. Also note my answer here on Meta SO.
I have same issue and fixed it with code below:
struct LiquidGlassTabView: ViewModifier {
@ObservedObject var viewModel: ViewModel
func body(content: Content) -> some View {
if #available(iOS 26.0, *) {
if viewModel.showAudioMiniPlayer {
content
.tabViewBottomAccessory {
MiniPlayerView()
}
} else {
content
}
} else {
content
}
}
}
I had this issue on a Linux host and it turns out that the Linux fips=1 kernel entry will cause this error! So turn off fips in your Grub configuration!
I've fixed it by downgrading Node version from v24 to v22
do you got a script that grabs the information from a website using python or js? I would like to get that code if you do thank you
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:YourDB %>" SelectCommand="SELECT * FROM Claims" CancelSelectOnNullParameter="false"> </asp:SqlDataSource>
I think javascript minify is obsolete technic for reduce bandwidth since modern web server has feature HTTP compression.
For reduce JavaScript or text-like file (html, css, json) size. Setup HTTP compression at webserver and let browser decompress is better.
This way with have no overhead for un-minify Javascript.
This issue also happened to me a few days ago.
Adding referrerpolicy="strict-origin-when-cross-origin" fixed it for me
i had similar issue. the script Array was to large and when i open other apps it would eventually kill the PowerShell script. Removed the array and just wrote to a text file with in the loop\iteration. also had a recovery point by doing that.
I was just asking how I get a AI Security TECH that love the USA system that can recommend who u let in your home and I'm just starting out with my own company / Bisuness to transform people lifestyles and make them so much safer and the love the help Because of the love I have for my Family I m.very personally
flags_str = packet.sprintf("%TCP.flags%")
Thank you for this! Finally working for me too. i have been trying to connect to IdentityInfo table. I tried to use token, credentials etc and still nothing works.
Uses UTC. Try
function daysSince2000() {
return (Date.now() - Date.UTC(2000, 0, 1)) / 86400000;
}
console.log(daysSince2000());
use Luxon or Day.js lightweight and handle UTC offsets and time zones much better compare to Date object.
Easiest way is to just download the SWF from the page (yes you can do that) and upload it into any SWF player. You can download one or just online services for that.
I would like to know if the service provider will provide us with the SDK containing the Proximity Reader API for integration into the project ... why are you not asking the service provider?
1: Customer records are deleted but related entries in the product_alert_stock table remain.
2: GDPR or privacy modules (like PIP) may remove customers but leave orphaned product alert records.
So cleat the related entries from table product_alert_stock and To catch these issues early (before they cause errors), configure error notifications for admin users: Store -> Configuration -> Catalog -> Catalog -> Product Alerts Run Settings -> Error Email Recipient
Unfortunately, in Tomcat, this value is set as a constant to support 8192 bytes. While you can override this value by setting it as a system property, it would have been preferable if it were configurable as a property, similar to how many other settings are supported in Spring or Tomcat.
You can simply add waitForExpression('5s') to your request.
$request = \Gotenberg\Gotenberg::chromium('http://gotenberg:3000')
->pdf()
->waitForExpression('5s')
->url('https://my.url');
It's not in the documentation, but if you have PHP Intelephense, then it will hint you the available methods.
I'm using phpstorm's idea plugin.
The one way I can seen here is using Secure Service Account API (SSA). It's allow you able to generate 3legged access token without refresh token.
Rename the col first:
df = df.withColumnRenamed("Tilt(0.1degree)", "Tiltdegree")
A lot of sources don't explain that there is more than one algorithm to partition the elements. Three common implementations are shown here: https://www.geeksforgeeks.org/dsa/quick-sort-algorithm/. CTCI uses Hoare's. You've likely seen the Naive and Lomuto implementations which keep track of the pivot location.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>All Galaxy — 3D Real Galaxy Showcase</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;800&display=swap" rel="stylesheet">
<style>
:root{
--bg-1:#05030a; --bg-2:#0f1226; --glass: rgba(255,255,255,0.04);
--accent:#9b8cff; --muted: rgba(255,255,255,0.65);
}
\*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial}
body{background:linear-gradient(180deg,var(--bg-1),var(--bg-2));color:#fff;overflow:hidden}
#app{position:relative;height:100vh;width:100vw;display:flex}canvas{display:block}
/* Top-left control panel */
.panel{
position:absolute;left:24px;top:24px;backdrop-filter: blur(8px);background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02));
border-radius:14px;padding:14px;box-shadow:0 6px 30px rgba(0,0,0,0.6);min-width:280px;border:1px solid rgba(255,255,255,0.04)
}
.brand{display:flex;gap:12px;align-items:center}
.logo{height:44px;width:44px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#44e1f8);display:flex;align-items:center;justify-content:center;font-weight:800}
.brand h1{font-size:16px;margin:0}
.brand p{margin:0;font-size:12px;color:var(--muted)}
.row{display:flex;gap:8px;align-items:center;margin-top:12px}
label{font-size:12px;color:var(--muted);width:110px}
input[type=range]{flex:1}
.small{font-size:12px;color:var(--muted);margin-top:8px}
/* Bottom-right info */
.footer{
position:absolute;right:24px;bottom:24px;background:var(--glass);padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,0.03);
box-shadow:0 6px 20px rgba(0,0,0,0.5);
}
.btn{background:linear-gradient(90deg,var(--accent),#44e1f8);padding:8px 12px;border-radius:8px;border:none;color:#051036;font-weight:700;cursor:pointer}
/* Responsive tweaks */
@media (max-width:520px){.panel{left:12px;top:12px;min-width:210px;padding:10px}.brand h1{font-size:14px}}
</style>
</head>
<body>
<div id="app">
\<div id="bg"\>\</div\>
\<div class="panel"\>
\<div class="brand"\>
\<div class="logo"\>G\</div\>
\<div\>
\<h1\>All Galaxy — 3D\</h1\>
\<p\>Real-time 3D galaxy demo · Premium look\</p\>
\</div\>
\</div\>\<div class="row"\>
\<label\>Star count\</label\>
\<input id="stars" type="range" min="1000" max="200000" step="1000" value="50000"\>
</div>
<div class="row">
\<label\>Arms\</label\>
\<input id="arms" type="range" min="1" max="6" step="1" value="3"\>
</div>
<div class="row">
\<label\>Spin\</label\>
\<input id="spin" type="range" min="0" max="3" step="0.01" value="0.8"\>
</div>
<div class="row">
\<label\>Radius\</label\>
\<input id="radius" type="range" min="2" max="20" step="0.5" value="8"\>
</div>
<div class="row">
\<label\>Brightness\</label\>
\<input id="brightness" type="range" min="0.1" max="4" step="0.1" value="1.2"\>
</div>
<div class="small">Drag to tweak the galaxy. Use mouse/touch to orbit. Double-click to toggle fullscreen.</div>
</div>
<div class="footer">
<button id="regen" class="btn">Regenerate</button>
<span style="margin-left:10px;color:var(--muted);font-size:13px">FPS: <span id="fps">0</span></span>
</div>
</div> <script type="module">
import \* as THREE from 'https://unpkg.com/[email protected]/build/three.module.js';
import { OrbitControls } from 'https://unpkg.com/[email protected]/examples/jsm/controls/OrbitControls.js';
// Basic scene + renderer
const container = document.getElementById('app');
const scene = new THREE.Scene();
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.toneMapping = THREE.ACESFilmicToneMapping;
renderer.outputEncoding = THREE.sRGBEncoding;
container.appendChild(renderer.domElement);
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.set(0, 6, 18);
const controls = new OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;
controls.dampingFactor = 0.06;
// subtle environment
const hemi = new THREE.HemisphereLight(0xffffff, 0x080820, 0.2);
scene.add(hemi);
// galaxy group
let galaxy, points;
// helpers
const params = {
count: 50000,
size: 0.04,
radius: 8,
branches: 3,
spin: 0.8,
randomness: 0.6,
randomnessPower: 2,
insideColor: '#ffb86b',
outsideColor: '#6b8cff',
brightness: 1.2
};
function generateGalaxy() {
if (galaxy !== undefined) {
points.geometry.dispose();
points.material.dispose();
scene.remove(galaxy);
}
galaxy = new THREE.Group();
const positions = new Float32Array(params.count \* 3);
const colors = new Float32Array(params.count \* 3);
const scales = new Float32Array(params.count);
const insideColor = new THREE.Color(params.insideColor);
const outsideColor = new THREE.Color(params.outsideColor);
for (let i = 0; i \< params.count; i++) {
const i3 = i \* 3;
const radius = Math.random() \* params.radius;
const branchAngle = ((i % params.branches) / params.branches) \* Math.PI \* 2;
const spinAngle = radius \* params.spin;
const randomX = Math.pow(Math.random(), params.randomnessPower) \* (Math.random() \< 0.5 ? 1 : -1) \* params.randomness \* radius;
const randomY = Math.pow(Math.random(), params.randomnessPower) \* (Math.random() \< 0.5 ? 1 : -1) \* params.randomness \* radius \* 0.2;
const randomZ = Math.pow(Math.random(), params.randomnessPower) \* (Math.random() \< 0.5 ? 1 : -1) \* params.randomness \* radius;
positions\[i3 + 0\] = Math.cos(branchAngle + spinAngle) \* radius + randomX;
positions\[i3 + 1\] = randomY \* 0.3;
positions\[i3 + 2\] = Math.sin(branchAngle + spinAngle) \* radius + randomZ;
const mixedColor = insideColor.clone();
mixedColor.lerp(outsideColor, radius / params.radius);
colors\[i3 + 0\] = mixedColor.r;
colors\[i3 + 1\] = mixedColor.g;
colors\[i3 + 2\] = mixedColor.b;
scales\[i\] = Math.random() \* 1.5 + 0.5;
}
const geometry = new THREE.BufferGeometry();
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));
geometry.setAttribute('aScale', new THREE.BufferAttribute(scales, 1));
const material = new THREE.ShaderMaterial({
depthWrite: false,
blending: THREE.AdditiveBlending,
vertexColors: true,
transparent: true,
uniforms: {
uSize: { value: params.size \* 100.0 },
uPixelRatio: { value: Math.min(window.devicePixelRatio, 2) },
uTime: { value: 0 },
uBrightness: { value: params.brightness }
},
vertexShader: \`
attribute float aScale;
varying vec3 vColor;
uniform float uSize;
uniform float uTime;
void main(){
vColor = color;
vec4 modelPos = modelMatrix \* vec4(position, 1.0);
// slight pulsation
float scale = aScale \* (1.0 + 0.2 \* sin(uTime + position.x \* 0.1));
vec4 viewPos = viewMatrix \* modelPos;
gl_Position = projectionMatrix \* viewPos;
gl_PointSize = uSize \* scale / - viewPos.z;
}
\`,
fragmentShader: \`
varying vec3 vColor;
uniform float uBrightness;
void main(){
float dist = distance(gl_PointCoord, vec2(0.5));
float alpha = 1.0 - smoothstep(0.35, 0.5, dist);
vec3 col = vColor \* uBrightness;
gl_FragColor = vec4(col, alpha);
}
\`
});
points = new THREE.Points(geometry, material);
galaxy.add(points);
// subtle core glow
const coreGeo = new THREE.SphereGeometry(params.radius \* 0.12, 32, 32);
const coreMat = new THREE.MeshBasicMaterial({ color: 0xffe9c0, transparent: true, opacity: 0.18 });
const core = new THREE.Mesh(coreGeo, coreMat);
galaxy.add(core);
scene.add(galaxy);
}
// initial generate with UI values
function refreshFromUI(){
params.count = Number(document.getElementById('stars').value);
params.branches = Number(document.getElementById('arms').value);
params.spin = Number(document.getElementById('spin').value);
params.radius = Number(document.getElementById('radius').value);
params.brightness = Number(document.getElementById('brightness').value);
generateGalaxy();
}
document.getElementById('stars').addEventListener('input', ()=\>{document.getElementById('fps').textContent = '—';});
document.getElementById('regen').addEventListener('click', refreshFromUI);
// double click fullscreen
window.addEventListener('dblclick', ()=\>{
const el = renderer.domElement;
if (!document.fullscreenElement) el.requestFullscreen?.(); else document.exitFullscreen?.();
});
let lastTime = performance.now();
let frames = 0;
let fpsUpdate = 0;
// animate
function animate(time){
const elapsed = time \* 0.001;
requestAnimationFrame(animate);
controls.update();
if (points && points.material && points.material.uniforms) {
points.material.uniforms.uTime.value = elapsed \* 1.2;
points.material.uniforms.uBrightness.value = params.brightness;
}
// slow rotation
if (galaxy) galaxy.rotation.y = elapsed \* 0.08 \* params.spin;
renderer.render(scene, camera);
// fps counter
frames++;
if (time - fpsUpdate \> 500) {
const fps = Math.round((frames \* 1000) / (time - fpsUpdate));
document.getElementById('fps').textContent = fps;
frames = 0; fpsUpdate = time;
}
}
// responsive
window.addEventListener('resize', ()=\>{
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
if (points && points.material && points.material.uniforms) points.material.uniforms.uPixelRatio.value = Math.min(window.devicePixelRatio, 2);
});
// initial kick
refreshFromUI();
| header 1 | header 2 |
|---|---|
| cell 1 | cell 2 |
| cell 3 | cell 4 |
| header 1 | header 2 |
|---|---|
| cell 1 | cell 2 |
| cell 3 | cell 4 |
animate(performance.now());
// optional: keyboard shortcuts
window.addEventListener('keydown', (e)=\>{
if (e.key === 'r') refreshFromUI();
});
// touch hint
renderer.domElement.style.touchAction = 'none';
</script></body>
</html>
[image](https://i.stack.imgur.com/abcd1.png)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns # just included to set plot style
sns.set_theme(style="darkgrid")
days_of_week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
df = pd.DataFrame(
dict(
year=[2023]*7 + [2024]*7 + [2025]*7,
day_of_week=days_of_week * 3,
avg_cardio_minutes=[20, 15, 10, 25, 30, 5, 0,
25, 20, 15, 30, 35, 10, 5,
30, 25, 20, 35, 40, 15, 10],
avg_lifting_minutes=[40, 35, 30, 45, 50, 25, 20,
45, 40, 35, 50, 55, 30, 25,
50, 45, 40, 55, 60, 35, 30]
)
)
def plot_stacked_grouped_bar_chart(df, x_major_column, x_minor_column, stack_columns,
stack_labels=None, y_label='', title='', legend_title=''):
"""
Plots a stacked grouped bar chart with the specified data and labels.
Parameters:
-----------
df : pd.DataFrame
DataFrame containing the data to plot.
x_major_column : str
Column name for the major x-axis grouping.
x_minor_column : str
Column name for the minor x-axis grouping.
stack_columns : list of str
List of column names to stack.
stack_labels : list of str, optional
List of labels for the stacked columns. If None, uses stack_columns.
y_label : str, optional
Label for the y-axis.
title : str, optional
Title of the plot.
legend_title : str, optional
Title of the legend.
"""
if stack_labels is None:
stack_labels = stack_columns
fig, ax = plt.subplots(figsize=(10, 5))
x_major_values = df[x_major_column].unique().tolist()
offset = 0
xtick_labels = []
# iterate over major x-axis groups
for i, major_value in enumerate(x_major_values):
df_major = df[df[x_major_column] == major_value]
x_minor_values = df_major[x_minor_column].unique().tolist()
x_positions = offset + np.arange(len(x_minor_values)) # the label locations
bottoms = np.zeros(len(x_minor_values))
# iterate over stack columns
for j, stack_column in enumerate(stack_columns):
heights = df_major[stack_column].values
ax.bar(x=x_positions, height=heights, color=f'C{j}', width=1, label=stack_labels[j], bottom=bottoms)
bottoms += heights
# add major x-axis label
ax.text(offset + len(x_minor_values) / 2 - 0.5, -0.2, major_value, ha='center', va='top', transform=ax.get_xaxis_transform())
# update offset and xtick labels
offset += len(x_minor_values)
xtick_labels.extend([x_minor_values])
if i < len(x_major_values) - 1:
offset += 1 # space between major groups
xtick_labels.append('') # empty label for space
ax.set_xticks(range(offset))
ax.set_xticklabels(days_of_week + [""] + days_of_week + [""] + days_of_week, rotation=45)
ax.set_ylabel(y_label)
ax.set_title(title)
# reorder legend to match stack order
handles, labels = ax.get_legend_handles_labels()
handles = handles[::-1][:len(stack_labels)]
labels = labels[::-1][:len(stack_labels)]
ax.legend(title=legend_title, handles=handles, labels=labels)
plt.show()
plot_stacked_grouped_bar_chart(df=df,
x_major_column = 'year',
x_minor_column = 'day_of_week',
stack_columns = ['avg_lifting_minutes', 'avg_cardio_minutes'],
stack_labels = ['Lifting', 'Cardio'],
y_label = 'minutes',
title = 'Average Time Working out per Day of Week',
legend_title = 'Workout Type')
Long story short: I think it's highly likely to be a wise choice to use other methods for formatting a text file for styling, as @AD7six suggested in the comment section.
As @j6t stated in the comment section, I feel like this issue has to do with the metadata. I'm not sure whether this is relevant or not, I found that git uses stat values.
Anyway, I ended up thinking that it should be impossible to use this program as a clean filter. The reason is that if I made the program not to modify a file being processed, then the index would differ with the worktree, and if I had it to modify, then git would recognize the file modified. Double trouble! This is a dilemma; either way, I will be in trouble.
Nevertheless I just wanted to make use of it since I already had spent two weeks to make this "simple" program. Perhaps it's my mistake to write it in C. So I considered the following alternatives:
git add. In other words, the script executes my program first, lets it modify the worktree, and then runs git add -- <file>....git add to update the index.However, #1 would require me to distinguish which is an option to git add and which is a file. I don't think argument parsing is an easy task. So I skipped #1. Meanwhile, #2 seemed promising but it has a flaw in that git add would occur twice: the first add by the user and the second by the hook. Also, actually another problem remains: how to handle the partial stages, i.e. git add -p? In this case I can't update the index with the fixed file in the worktree since doing so would nullify the partial stage. Maybe it would be possible to manage to fix and update the index only somehow without touching the worktree but doing so seems stressful. In the case of #3, I don't know how.
In the end I had no choice but to choose the #2 but I tried hard to avoid the handling of the partial-stage case by executing my program if and only if a file in the index has a modified state or newly added state, and the file does not have local changes, i.e. the index equals to the worktree.
In order to do so, I parsed the output of git status --short because its first and second columns represent the state of the index and the worktree, respectively.
fp = fopen("tempfile", "w+");
system("git status --short > tempfile");
while (readline(fp, &line)) {
if (line[0] != 'A' && line[0] != 'M')
continue;
if (line[1] != ' ')
continue;
...
}
A One liner to create a symlink from macOS's expected Java location to SDKMAN's installation:
curl -fsSL https://gist.githubusercontent.com/abd3lraouf/1db9bf863144802733bfd29bb5dada87/raw/install.sh | bash -s install
This creates /Library/Java/JavaVirtualMachines/sdkman-current/ pointing to ~/.sdkman/candidates/java/current, allowing /usr/libexec/java_home and Xcode to find your SDKMAN Java installation.
When you switch Java versions with sdk use java [version], the symlink automatically points to the new version. Full script and manual setup instructions.Retry
Gist: https://gist.github.com/abd3lraouf/1db9bf863144802733bfd29bb5dada87
Full script here:
#!/usr/bin/env bash
################################################################################
# Setup SDKMAN JDK Integration with /usr/libexec/java_home
################################################################################
# This script configures macOS to recognize SDKMAN-installed JDKs through
# /usr/libexec/java_home by creating a proper directory structure and symlink
# in /Library/Java/JavaVirtualMachines.
#
# Usage:
# ./setup_sdkman_java_home.sh [install|uninstall|verify|help]
#
# Options:
# install - Set up the SDKMAN JDK integration (default)
# uninstall - Remove the SDKMAN JDK integration
# verify - Check if the setup is working correctly
# help - Display this help message
#
# Requirements:
# - macOS
# - SDKMAN installed with at least one JDK
# - sudo privileges
################################################################################
set -eo pipefail
# Constants (temporarily disable -u for BASH_SOURCE check)
readonly SCRIPT_NAME="$(basename "${BASH_SOURCE[0]:-install.sh}")"
readonly SCRIPT_VERSION="1.0.0"
# Re-enable unbound variable checking
set -u
readonly TARGET_DIR="/Library/Java/JavaVirtualMachines/sdkman-current"
readonly CONTENTS_DIR="${TARGET_DIR}/Contents"
readonly HOME_LINK="${CONTENTS_DIR}/Home"
readonly PLIST_FILE="${CONTENTS_DIR}/Info.plist"
# Colors for output
readonly RED='\033[0;31m'
readonly GREEN='\033[0;32m'
readonly YELLOW='\033[1;33m'
readonly BLUE='\033[0;34m'
readonly BOLD='\033[1m'
readonly NC='\033[0m' # No Color
# Cleanup on error - silently exit (specific errors are already shown)
cleanup() {
local exit_code=$?
# Exit silently - specific error messages are already displayed
exit $exit_code
}
trap cleanup EXIT
################################################################################
# Utility Functions
################################################################################
# Print colored messages
print_header() {
echo -e "\n${BOLD}${BLUE}===${NC} ${BOLD}$1${NC} ${BOLD}${BLUE}===${NC}\n"
}
success() {
echo -e "${GREEN}✓${NC} $1"
}
info() {
echo -e "${BLUE}ℹ${NC} $1"
}
warn() {
echo -e "${YELLOW}⚠${NC} $1"
}
error() {
echo -e "${RED}✗${NC} $1" >&2
}
# Check if running on macOS
check_macos() {
if [[ "$(uname -s)" != "Darwin" ]]; then
error "This script only works on macOS"
exit 1
fi
}
# Check if SDKMAN is installed
check_sdkman() {
local sdkman_dir="${SDKMAN_DIR:-$HOME/.sdkman}"
if [[ ! -d "$sdkman_dir" ]]; then
error "SDKMAN not found at $sdkman_dir"
info "Install SDKMAN from: https://sdkman.io/install"
exit 1
fi
success "SDKMAN found at $sdkman_dir"
}
# Get SDKMAN current JDK path
get_sdkman_current_jdk() {
local sdkman_dir="${SDKMAN_DIR:-$HOME/.sdkman}"
local current_jdk="${sdkman_dir}/candidates/java/current"
if [[ ! -e "$current_jdk" ]]; then
error "No current JDK set in SDKMAN"
info "Install a JDK with: sdk install java"
info "Or set current with: sdk use java <version>"
exit 1
fi
# Resolve symlink to get actual JDK path
local actual_jdk
actual_jdk="$(readlink "$current_jdk" 2>/dev/null || echo "$current_jdk")"
echo "$current_jdk"
}
# Get JDK version from SDKMAN
get_jdk_version() {
local jdk_path="$1"
# Source SDKMAN and get current version
local sdkman_init="${SDKMAN_DIR:-$HOME/.sdkman}/bin/sdkman-init.sh"
if [[ -f "$sdkman_init" ]]; then
# Temporarily disable -u for sourcing SDKMAN and calling sdk (they have undefined variables)
set +u
# shellcheck source=/dev/null
source "$sdkman_init" 2>/dev/null || true
local version
version="$(sdk current java 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+[^[:space:]]*' || echo "unknown")"
set -u
echo "$version"
else
echo "unknown"
fi
}
# Get JDK vendor from path
get_jdk_vendor() {
local jdk_path="$1"
local vendor="SDKMAN"
# Extract vendor from path if possible (e.g., 21.0.9-amzn -> Amazon)
if [[ "$jdk_path" =~ -([a-z]+)$ ]]; then
local vendor_code="${BASH_REMATCH[1]}"
case "$vendor_code" in
amzn) vendor="Amazon Corretto" ;;
tem) vendor="Eclipse Temurin" ;;
zulu) vendor="Azul Zulu" ;;
graal*) vendor="GraalVM" ;;
liberica) vendor="BellSoft Liberica" ;;
sapmchn) vendor="SAP Machine" ;;
*) vendor="SDKMAN ($vendor_code)" ;;
esac
fi
echo "$vendor"
}
# Check if setup already exists
check_existing_setup() {
[[ -d "$TARGET_DIR" ]]
}
# Verify sudo access
verify_sudo() {
# Try non-interactive sudo first
if sudo -n true 2>/dev/null; then
# Already authenticated
# Keep sudo alive
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
return 0
fi
# Check if running non-interactively
if ! [ -t 0 ]; then
error "This script requires sudo access"
echo ""
echo "When running via pipe, sudo cannot prompt for password."
echo "Please authenticate sudo first, then re-run:"
echo ""
echo " sudo -v"
echo " curl -fsSL https://gist.githubusercontent.com/abd3lraouf/1db9bf863144802733bfd29bb5dada87/raw/install.sh | bash -s install"
echo ""
echo "Or download and run directly:"
echo ""
echo " curl -O https://gist.githubusercontent.com/abd3lraouf/1db9bf863144802733bfd29bb5dada87/raw/install.sh"
echo " chmod +x install.sh"
echo " ./install.sh install"
exit 1
fi
# Interactive mode - can prompt
if ! sudo -v; then
error "Sudo privileges required"
exit 1
fi
# Keep sudo alive
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
}
################################################################################
# Installation Functions
################################################################################
install_setup() {
print_header "Installing SDKMAN JDK Integration"
# Get SDKMAN JDK path
local sdkman_jdk
sdkman_jdk="$(get_sdkman_current_jdk)"
local jdk_version
jdk_version="$(get_jdk_version "$sdkman_jdk")"
local jdk_vendor
jdk_vendor="$(get_jdk_vendor "$sdkman_jdk")"
info "SDKMAN Current JDK: $sdkman_jdk"
info "Version: $jdk_version"
info "Vendor: $jdk_vendor"
# Check for existing setup
if check_existing_setup; then
warn "Existing setup found at $TARGET_DIR"
# Check if running interactively (can prompt)
if [ -t 0 ]; then
read -rp "Remove and reinstall? (y/N): " response
if [[ "$response" =~ ^[Yy]$ ]]; then
uninstall_setup
else
info "Installation cancelled"
exit 0
fi
else
# Non-interactive: auto-reinstall
info "Non-interactive mode: auto-reinstalling..."
uninstall_setup
fi
fi
# Request sudo access
verify_sudo
# Create directory structure
info "Creating directory structure..."
sudo mkdir -p "$CONTENTS_DIR"
success "Created $CONTENTS_DIR"
# Create symlink
info "Creating symlink to SDKMAN JDK..."
sudo ln -sf "$sdkman_jdk" "$HOME_LINK"
success "Created symlink: $HOME_LINK -> $sdkman_jdk"
# Create Info.plist
info "Creating Info.plist..."
sudo tee "$PLIST_FILE" > /dev/null << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>sdkman.current</string>
<key>CFBundleName</key>
<string>SDKMAN Current JDK</string>
<key>CFBundleVersion</key>
<string>${jdk_version}</string>
<key>JavaVM</key>
<dict>
<key>JVMPlatformVersion</key>
<string>9999</string>
<key>JVMVendor</key>
<string>${jdk_vendor}</string>
<key>JVMVersion</key>
<string>9999</string>
</dict>
</dict>
</plist>
EOF
success "Created Info.plist"
# Set proper permissions
info "Setting permissions..."
sudo chmod -R 755 "$TARGET_DIR"
success "Permissions set"
print_header "Installation Complete"
success "SDKMAN JDK integration installed successfully"
# Verify installation
verify_setup
}
################################################################################
# Uninstallation Functions
################################################################################
uninstall_setup() {
print_header "Uninstalling SDKMAN JDK Integration"
if ! check_existing_setup; then
warn "No existing setup found at $TARGET_DIR"
info "Nothing to uninstall"
return 0
fi
# Request sudo access if not already verified
verify_sudo
info "Removing $TARGET_DIR..."
sudo rm -rf "$TARGET_DIR"
success "Removed SDKMAN JDK integration"
print_header "Uninstallation Complete"
}
################################################################################
# Verification Functions
################################################################################
verify_setup() {
print_header "Verifying Setup"
# Check if setup exists
if ! check_existing_setup; then
error "Setup not found at $TARGET_DIR"
info "Run with 'install' to set up the integration"
exit 1
fi
# Check symlink
if [[ ! -L "$HOME_LINK" ]]; then
error "Symlink not found at $HOME_LINK"
exit 1
fi
success "Symlink exists: $HOME_LINK"
# Check if symlink target exists
if [[ ! -e "$HOME_LINK" ]]; then
error "Symlink target does not exist"
local target
target="$(readlink "$HOME_LINK")"
error "Broken symlink: $HOME_LINK -> $target"
exit 1
fi
local symlink_target
symlink_target="$(readlink "$HOME_LINK")"
success "Symlink target valid: $symlink_target"
# Check Info.plist
if [[ ! -f "$PLIST_FILE" ]]; then
error "Info.plist not found at $PLIST_FILE"
exit 1
fi
success "Info.plist exists"
# Test /usr/libexec/java_home
info "Testing /usr/libexec/java_home..."
local java_home_output
if java_home_output=$(/usr/libexec/java_home 2>&1); then
success "/usr/libexec/java_home works"
echo -e "\n${BOLD}Output:${NC}"
echo "$java_home_output"
else
error "/usr/libexec/java_home failed"
echo "$java_home_output"
exit 1
fi
# Show all available JVMs
echo -e "\n${BOLD}Available Java Virtual Machines:${NC}"
/usr/libexec/java_home -V 2>&1 || true
print_header "Verification Complete"
success "Setup is working correctly"
echo
info "Notes:"
echo " • When you change JDK with 'sdk use java <version>', the symlink"
echo " will automatically point to the new current version"
echo " • Xcode and other tools can now find Java using /usr/libexec/java_home"
echo " • The version is set to 9999 to ensure this JDK is always selected"
}
################################################################################
# Help Function
################################################################################
show_help() {
cat << 'EOF'
install.sh - Version 1.0.0
DESCRIPTION
Configure macOS to recognize SDKMAN-installed JDKs through /usr/libexec/java_home
by creating a proper directory structure in /Library/Java/JavaVirtualMachines.
USAGE
install.sh [COMMAND]
COMMANDS
install Set up the SDKMAN JDK integration (default)
uninstall Remove the SDKMAN JDK integration
verify Verify the setup is working correctly
help Display this help message
EXAMPLES
# Install the integration
install.sh install
# Verify it's working
install.sh verify
# Remove the integration
install.sh uninstall
HOW IT WORKS
1. Creates /Library/Java/JavaVirtualMachines/sdkman-current/Contents/
2. Symlinks Contents/Home to SDKMAN's current JDK
3. Creates Info.plist with proper metadata
4. Sets version to 9999 to ensure it's always selected
REQUIREMENTS
- macOS
- SDKMAN installed with at least one JDK
- sudo privileges
FILES CREATED
/Library/Java/JavaVirtualMachines/sdkman-current/
/Library/Java/JavaVirtualMachines/sdkman-current/Contents/
/Library/Java/JavaVirtualMachines/sdkman-current/Contents/Home (symlink)
/Library/Java/JavaVirtualMachines/sdkman-current/Contents/Info.plist
MORE INFO
- SDKMAN: https://sdkman.io/
- Gist: https://gist.github.com/abd3lraouf/1db9bf863144802733bfd29bb5dada87
EOF
}
################################################################################
# Main Function
################################################################################
main() {
# Check prerequisites
check_macos
# Parse command
local command="${1:-install}"
case "$command" in
install)
check_sdkman
install_setup
;;
uninstall)
uninstall_setup
;;
verify)
check_sdkman
verify_setup
;;
help|--help|-h)
show_help
;;
*)
error "Unknown command: $command"
echo
show_help
exit 1
;;
esac
}
# Run main function
main "$@"
=LET(
lookBack, 12,
prevDay, E5:AG5,
prevDayOutput, E6:AG6,
currDay,E8:AG8,
output, DROP(REDUCE(prevDayOutput, SEQUENCE(,COLUMNS(currDay)), LAMBDA(x,y,
HSTACK(x, IF(INDEX(currDay, y), INDEX(currDay, y),
LET(
v, TAKE(DROP(HSTACK(prevDay, TAKE(currDay,, y)),,-1),,-lookBack),
out, IF(OR(AND(v>0), TAKE(x,,-1)=0, AND(v=0), AND(TAKE(x,,-lookBack)>0)), 0, 0.5),
out
)
))
)),,COLUMNS(prevDayOutput)),
output)
I actually created this account just to share this, because I had been looking for a solution for days and couldn’t find anything that worked.
I was having this issue with PostgreSQL and tried several things without success. After installation, I noticed that the data folder inside the PostgreSQL directory was always empty, which seemed to be causing the problem.
I tried downloading the data folder (where the cluster files are stored) through the Command Prompt, and even created a new user account on Windows, but nothing worked.
What eventually solved it for me was installing pgAdmin 4 separately from the PostgreSQL installer. I went to the specific download page for pgAdmin 4, installed it first, ran it, and then restarted my PC as usual.
After that, I downloaded PostgreSQL using the official installer, but this time I unchecked the option to install pgAdmin 4, since I had already installed it. For some reason, that did the trick. I no longer got the “Problem running post-install step; installation may not complete correctly” error, and the data folder was finally created correctly.
https://docs.expo.dev/router/advanced/stack/
I found a property called unstable_headerRightItems in the stack header options. I managed to use it, and while it’s not officially supported yet, it does get the job done. It actually didn’t work for me until I installed react-native-screens version 4.18.0. However, I’m still not entirely sure how it’s meant to be used if you have any documentation or know a better approach, please share it.
unstable_headerRightItems: () => [
{
type: "button",
label: "Notifications",
onPress: () => router.push("/home/notifications"),
render: () => (
<HeaderButton
imageProps={{
systemName: "bell",
}}
buttonProps={{
variant: "plain",
}}
/>
),
},
{
type: "button",
label: "Streak",
onPress: () => router.push("/home/streak"),
},
],
Just add `padding-top` to the container div.
<div class="grid w-80 grid-cols-2 gap-2 text-[1rem] leading-[1.5]">
<div class="border border-blue-400">
<div class="pt-2">
<ruby>
吾輩<rt>わがはい</rt>
</ruby>
は猫である。名前はまだ無い。どこで
<ruby>
生<rt>う</rt>
</ruby>
れたかとんと見当がつかぬ。
</div>
</div>
<div class="border border-blue-400">
<div class="pt-2">
吾輩は猫である。名前はまだ無い。どこで
<ruby>
生<rt>う</rt>
</ruby>
れたかとんと見当がつかぬ。
</div>
</div>
</div>
Marking this as closed as using a different IDE provided a valid response object for me to dig deeper into. Thanks for your help everyone!
Read solution in the description above.
we can use this plug-in as well - JetBrains Mono. A typeface for developers_
I'd say that yes, you should probably switch to a:
| Ticket Number | Location | Start Date | End Date |
|---|
(or Start Location + End Location if they differ)
Thus:
This is not the same as this similar question Can I get an image digest without downloading the image?. That question gets the digest using a network query. This question is about analyzing the locally stored file.
Anyone got registry settings to stick for server 2025? For a workgroup server, I have tried lgpo.exe, reg.exe and secedit.exe and in about 1-2h, it reverts back to MS defaults, which I cannot use.
"🎰 Sekali main, langsung ketagihan. Karena di JO777, tiap putaran penuh kejutan elegan."
Envers might use the stable ValueObject.id as the primary identifier to track changes, completely bypassing the composite key issue with @ElementCollection
@Entity
@Audited
class ValueObject {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String propertyA;
private Integer propertyB;
}
@Entity
@Audited
class ParentEntity {
@Id
private Long id;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "parent_id")
@OrderColumn(name = "position")
private List<ValueObject> values = new ArrayList<>();
}
Changed @Embeddable to @Entity
Added @GeneratedValue
Changed @ElementCollection to @OneToMany
In the wrangler we have set column name options above the output schema right corner. Click on set column and you can give the column name as per standard naming convention with comma separated. Only make sure number of columns in input should match with number of columns in output.
I had the same issue with a new SSL certificate renewed on ssls.com
Our app no longer functions on Android 13 when REST API requests are in use, and embedded browsing is also broken.
I managed to solve it by contacting ssls.com support and they told me to start renewing the certificate, but don't enter the verification code in Sectigo's form. Meanwhile they contacted Sectigo and they provided files with a correct ca-bundle file in it. Then I finished the verification as usual, got the Zip file with the certificate files and created the PFX file from them, also embedding the ca-bundle file via openssl command line. (This was a new step for me.
With this fixed certificate (and bundle) everything works on Android 13 and earlier versions. Let's hope they will fix this issue soon on Sectigo's end, but at least there is a workaround that Support may be able to provide.
-keep class org.spongycastle.** { *; }
-dontwarn org.spongycastle.**
-keep class com.gemalto.** { *; }
-keep,includedescriptorclasses class org.bouncycastle.** { *; }
-dontnote sun.java2d.cmm.kcms.KcmsServiceProvider
-dontwarn com.gemalto.jp2.**
-dontwarn com.tom_roush.pdfbox.filter.JPXFilter
You are executing initialization code in the withHooks feature: https://ngrx.io/guide/signals/signal-store/lifecycle-hooks
Have you tried to exclude the MongoHealthContributorAutoConfiguration in your main application class?
@SpringBootApplication(
exclude = { org.springframework.boot.actuate.autoconfigure.data.mongo.MongoHealthContributorAutoConfiguration.class
}
)
public class YourApplication {
}
Image of ui hii i was working on a similar thing with electron i wrote a shell script to run automatically when the app starts, this enables me to find out the hardware specs of the pc that my app is currently running on, with the output from the script, i pass it to the front end and update the ui
so in short :
scripts get hardware specs
Main process runs the script
Exposes result through IPC
Renderer calls IPC and renders the string on the ui like the picture i have above
If it is just converted the df into html table then I agree. Use to_html(formattrers=list[callable])
I believe this Medium post is what you need. It's incredible
This is what I was looking for! And the tool you mentioned is super helpful. Thank you so much!
I have seen many answers, including the basics such as installing the extension, but none of them mentioned that you also need to include the following in your global or App CSS file:
@import "tailwindcss";
@import "tw-animate-css";
Try VITE. You never have to spend a minute of your time doing version control. I use VITE for my website rmlives.com.
FWIW, below are the changes I did in my Dockerfile to get LogMonitor.exe dialed in. I did configure LogMonitorConfig.json to show as well some of the Windows Event Log information and I do see them in the containers' logs.
If you are using app_links, please try to edit AndroidManifest.xml file (android/app/src/main/AndroidManifest.xml) by adding the following metadata tag and intent filter inside the tag with .MainActivity
<meta-data android:name="flutter_deeplinking_enabled" android:value="false" />
More details can be found here
I think you should just delete the database and re-create it. As you (or the docs) said, purge is limited to the indexeddb adapter and is not intended for regular deletion, so it's unreliable for a full restore.
See https://github.com/iced-rs/iced/pull/3099 . It will build for Android, but it still gets runtime errors. Starting with:
An `AndroidApp` as passed to android_main() is required to create an `EventLoop` on Android`
I'm facing a similar issue. The problem is that when building a bundle, all unnecessary localizations are stripped from the app, unlike when building an APK. To fix this, use the following code in your build.gradle.
bundle
{
language { enableSplit false }
}
I have been trying to achieve the same thing with MediaRecorder.pause and .resume
Once I get a phone call I pause the recording and resume when the phone is in IDLE state according to the TelephonyManager. But it doesn't seem to resume the recording and the recording stop abruptly without throwing any error.
The problem is that chrome uses the V8 engine and firefox uses SpiderMonkey
My app started failing recently. I have not been able to get it to work again using the solutions found in the comments on this post. My app has been running without problem for over five years.
Adding these to the YTPlayer vars solved the Error 153
origin: 'https://www.youtube.com',
widget_referrer: 'https://www.youtube.com'
But, the video does not play. The message An error occurred. Please try again later. (Playback ID: l3D74od3j9GXjKY-) is displayed. I right-clicked on the WebView2 display and then clicked debug info. The JSON below was displayed.
"api.invalidparam" and "invalidVideodata.1;a6s.1" indicate a problem but I don't have any idea what else to change.
{ "vct": "0.000", "vd": "NaN", "vpl": "", "vbu": "", "vbs": "", "vpa": "1", "vsk": "0", "ven": "0", "vpr": "1", "vrs": "0", "vns": "0", "vec": "null", "vemsg": "", "vvol": "1", "vdom": "1", "vsrc": "0", "vw": "0", "vh": "0", "dvf": 0, "tvf": 0, "state": "80", "debug_error": "{\"errorCode\":\"api.invalidparam\",\"errorMessage\":\"An error occurred. Please try again later.\",\"gN\":\"GENERIC_WITHOUT_LINK\",\"UY\":\"\",\"hf\":\"invalidVideodata.1;a6s.1\",\"QM\":2,\"cpn\":\"Mk4qbbDE9eZ6_uIk\"}", "relative_loudness": "NaN", "user_qual": 0, "release_version": "youtube.player.web_20251029_15_RC00", "0sz": "true", "op": "", "yof": "true", "dis": "", "gpu": "ANGLE_(Intel,_Intel(R)_UHD_Graphics_(0x00009A60)_Direct3D11_vs_5_0_ps_5_0,_D3D11)", "js": "/s/player/e237d4c5/player_ias.vflset/en_US/base.js", "debug_playbackQuality": "unknown", "debug_date": "Mon Nov 03 2025 13:12:54 GMT-0500 (Eastern Standard Time)", "origin": "https://www.youtube.com", "timestamp": 1762193574713 }
It is a Windows app that uses (.NET and WebView2). The app passes the HTML via string containing the YTPlayer JavaScript to the WebView2 API using WebView.NavigateToString(HTMLText);
Sample contents of the HTMLText string passed to WebView2:
Added to original HTMLText as a result of comments in this post:
<meta name='referrer' content='strict-origin-when-cross-origin'>
origin: 'https://www.youtube.com',
widget_referrer: 'https://www.youtube.com
<!doctype html>
<html lang='en'>
<head>
<title>YouTube Player</title>
<meta charset='UTF-8'>
<meta name='robots' content='none,noarchive,noindex,nofollow,nosnippet,noimageindex,unavailable_after: 01 Jan 2010 01:00:00 PST'>
<meta name='googlebot' content='noarchive,noindex,nofollow,nosnippet,noimageindex,unavailable_after: 01 Jan 2010 01:00:00 PST'>
<meta name='referrer' content='strict-origin-when-cross-origin'>
<style>
.video-container {position:relative;padding-bottom:56.25%;padding-top:0px;height:0;overflow:hidden;}
.video-container iframe, .video-container object, .video-container embed {position:absolute;top:0;left:0;width:100%;height:100%;}
</style>
</head>
<body>
<div class='video-container'><div id='ytplayer'></div></div>
<script>
var TheVID = ' The YouTube Video ID Godes Here';
var player;
var videoCount = 0;
var lastState = -1;
function SendMsg(msg) {
window.chrome.webview.postMessage(msg); // Send Message to program
}
function handlePaused() {
// If still paused after 10 seconds, send error and exit
if (lastState == YT.PlayerState.PAUSED) {
// Send error message to program
// Force a Navigation event
SendMsg('ERROR: YouTube ID=' + TheVID + ' paused unexpectedly. Exiting play.');
setTimeout(function(){window.location='about:blank';}, 5000); // Wait 5 seconds then exit
}
}
function onPlayerReady(event) {
if (TheVID.indexOf(',') > -1) {
var VIDList = TheVID.split(',');
videoCount = VIDList.length;
player.loadPlaylist(VIDList);
} else {
videoCount = 1;
player.loadVideoById(TheVID);
}
// Wait a bit. Supposed to AutoPlay but just in case it doesn't...tell it to play
setTimeout(function(){player.playVideo();}, 500);
}
window.onYouTubeIframeAPIReady = function() {
var vars = {enablejsapi: 1,
rel: 0, playsinline: 0, loop: 0, fs: 0, controls: 0,
autoplay: 1,
origin: 'https://www.youtube.com',
widget_referrer: 'https://www.youtube.com'
};
window.scrollbars.visible=false;
player = new YT.Player('ytplayer', {
playerVars: vars,
events: {
'onReady': onPlayerReady,
'onStateChange': function (event) {
if (event.data == YT.PlayerState.ENDED) {
videoCount = videoCount - 1;
if (videoCount == 0) {
// Force a Navigation event
window.location='about:blank';
}
}
if (event.data == YT.PlayerState.PAUSED) {
lastState = event.data;
SendMsg('WARNING: YouTube ID=' + TheVID + ' paused unexpectedly. Trying to resume playing.');
player.playVideo(); // Attempt to make it play again
setTimeout(handlePaused,10000); // Wait 10 seconds then check to see if play has resumed.
}
if (event.data == YT.PlayerState.PLAYING) {
lastState = event.data;
SendMsg('YouTube video is now playing.');
}
},
'onError': function (event) {
// Send error message to program
// Force a Navigation event to end the YouTube Player
var msg;
switch (event.data.toString()) {
case '2' :
msg=' The request contains an invalid parameter value (VideoID).';
break;
case '5' :
msg=' The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
break;
case '100' :
msg=' The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.';
break;
case '101' :
msg=' The owner of the requested video does not allow it to be played in embedded YouTube player';
break;
case '150' :
msg=' Allow Embedding not checked, Private checked or copyright claim prevents play in embedded YouTube player';
break;
default :
msg=' Error #' + event.data.toString();
break;
}
SendMsg('ERROR: YouTube ID=' + TheVID + ' ' + event.data.toString() + msg);
setTimeout(function(){window.location='about:blank';}, 5000); // Wait 5 seconds then exit
}
}
});
};
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = 'https://www.youtube.com/iframe_api';
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
//
// Replaces the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
</script>
</body>
</html>
you can’t directly “animate” an SVG <filter> used as a CSS mask browsers don’t re-render filters unless something inside changes. So your <feTurbulence> is static by default.
The simple fix is to animate the baseFrequency in SVG, not in CSS. Like this:
<feTurbulence id="fogNoise" type="fractalNoise" baseFrequency="0.004" numOctaves="1" stitchTiles="stitch">
<animate attributeName="baseFrequency" dur="8s" values="0.004;0.008;0.004" repeatCount="indefinite"/>
</feTurbulence>
Then reference that filter as your mask:
.page-heading::after {
mask: url(#fogNoise);
-webkit-mask: url(#fogNoise);
}
That’s it — the <animate> tag makes the noise “breathe” over time, giving you that subtle fog shimmer. No JS needed. Have a good day!
you can read more about the feature from here
The sources are there so you can investigate yourself if you want
According to the datasheet from your selected MCU (STM32F103C8T6) the device doesn't support the I2S interface. It supports only two normal SPI interfaces. You need a high-density device in the SM32F103xx series. STM32F103VG as an example, but it use a TQFP100 package.
You can also see this in the STM32F103 product selector, that the STM32F103C8 doesn't supports I2S.
This image is a screenshot from the mobile game Garena Free Fire. The QR code shown is part of a game event or a viral trend where players scan codes to potentially receive in-game rewards, such as free diamonds.
Thanks, Donal.
So, I didnt code this globally. According to the doc, local vars are scoped to the connection, not the iRule. So I made 2 irules. A common one to be used by all of the virtual servers I specify, and then a very short one for each connection, that merely prefills the variables that the longer one uses. I set the one with the variable (config) definitions as higher priority. I define the variables in the CLIENT_ACCEPTED event, and dont have anything defined prior to this
I could have done it with procedures as well, but that seemed more complicated than just letting the scope of the local vars do their thing. Plus, if I did everything as procedures, that would mean all of the events would also be coded inside of my "definition" irule, so if I chose to add new events to the rules, id still have to go back and make a custom change to every single irule that is specific on a per-virtual-server basis.
I ran a half million calls through my above example with zero issues, so unless you can give me a reason not to, I'm going to do some production testing, as the way I've implemented to far gives me the most flexibility.
You can now simply use pip install psycopg[binary] and it'll install only the compiled libpq and psycopg without the build tools.
I would check the hardware. Try other kinds of computations on the node.
Just use HTML CSS and JS and do it on a local folder. Run your html file in a webbrowser and it´s done.
Look some:
https://jcoimbras.blogspot.com/
getContainer={false}
This is will fix this issue
In my case the solution was:
# Sync CA bundle from webhook to CRD conversion webhook
CA=$(kubectl get mutatingwebhookconfiguration opentelemetry-operator-eks-desenv-mutation \
-o jsonpath='{.webhooks[0].clientConfig.caBundle}') kubectl patch crd opentelemetrycollectors.opentelemetry.io --type=json \
-p "[{\"op\":\"replace\",\"path\":\"/spec/conversion/webhook/clientConfig/caBundle\",\"value\":\"$CA\"}]"
Apparently the global JSX namespace has been moved to React.JSX
So in my case, simply changing
img: JSX.Element
to
img: React.JSX.Element
did the trick.
I can see your puma version 6.4.3 which had some issue with openssl version determine logic, if you upgrade to 6.5 might solve your problem, because they fixed some openssl version determining issue.
You can check details from https://github.com/puma/puma/compare/v6.4.3...v6.5.0 here. ext/puma_http11/extconf.rb
for JIRA cloud REST API access
you can create API token from your personal Atlassian account page:
there are 2 types of API tokens:

BUT Based on the options you need to use different URLs to access your JIRA REST API:
https://mysite.atlassian.net/rest/api/3/search/jqlhttps://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/search/jql
https://api.atlassian.com/ex/jira/123..../rest/api/3/search/jql?jql=project+%3D+XXXDocumentation is not very intuitive
JIRA cloud Basic auth for REST APIs:
Manage API tokens for your Atlassian account:
Explanation of API token scopes limits (ignore the info about Oauth2.0 and Forge apps):
It's easy to create such plots using ggalign, which offers an integrative, composable visualization framework for ggplot2..
library(ggalign)
set.seed(1)
time <- 1:50
data <- t(data.frame(
A = cumsum(rnorm(50, 0, 1)),
B = cumsum(rnorm(50, 0, 1)),
C = cumsum(rnorm(50, 0.2, 1)),
D = cumsum(rnorm(50, -0.2, 1))
))
stack_discreteh(data) -
# set default theme for all plots in the layout
scheme_theme(theme_minimal()) +
# add line plot
ggfree(size = 3) +
scheme_data(function(d) {
d$time <- time[d$.column_index]
d$.panel <- factor(d$.panel)
names(d$.panel)
d
}) +
geom_line(aes(time, value)) +
geom_hline(yintercept = 0, linetype = "dashed") +
facet_grid(rows = vars(.panel)) +
theme(strip.text = element_blank(), strip.background = element_blank()) +
# add the dendrogram
align_dendro(aes(color = branch), k = 4, plot_cut_height = FALSE) +
scale_color_brewer(palette = "Dark2", guide = "none") +
theme(axis.text.y = element_text())
More examples:
Yes, but how do you deal with a DB that exceeds RAM in that scenario?
Same question here! Curious to understand if you already find out the answer?
An answer from 2025.
Keycloak version: 21.0.2
The answer with most upvotes from @stephen is outdated, however I couldnt find Service Account in my client page.
MY CASE
I have a special user called keycloak_admin and I use him to work with API (without client id and secret) I forgot to give that user admin realm role :)
You are great solana dev. I got help your answer
You can not "turn your answer into community wiki" because this new format does not have "answers". Or "feedback comments as to why you got a downvote". There's only long chains of whatever this is.
Thanks for the tip on timeradd. Does timeradd "normalize" the values given to it? I'm not sure if it is there to add two struct timevals in a safe way, or if it should be used to initialize a struct timeval by adding one initialized to zero to another which is initialized to the intended final value?
I am facing similar issue. Was anyone able to resolve it?
As usual, I found the answer right after posting this question!
I just needed to say set bmargin 5 to increase the bottom margin. Similarly, set tmargin 5 could be used to increase the top margin to put labels up there.
I'm caught off guard by this new open-ended question format. It seems that instead of writing a comment one simply replies? (how to turn my answer into community wiki?) Anyway, please provide feedback when downvoting to help me understand why this is not valuable.
You can write it like this:
aSpcList.Sort(TComparer<TSpecies>.Construct(CompareMyObjects));
#if sizeof(uint64_t) == sizeof(unsigned long)
#define I_WANT_TO_DISABLE_THIS_BLOCK_YES
#else
#define I_WANT_TO_DISABLE_THIS_BLOCK_NO
#endif
I think it is self-expanatory
This is handled by django.core.management.find_commands :
def find_commands(management_dir):
"""
Given a path to a management directory, return a list of all the command
names that are available.
"""
command_dir = os.path.join(management_dir, "commands")
return [
name
for _, name, is_pkg in pkgutil.iter_modules([command_dir])
if not is_pkg and not name.startswith("_")
]
Originally implemented in https://github.com/django/django/commit/302eeaf1904a2f3852b223a563617d4999b4e9ae
You're using rather vague language that makes it difficult to determine an appropriate response.
You say the post-processing needs to be "worked on immediately" and it takes "not too much time" to complete. What is a reasonably acceptable amount of time between when the request is made by B and when the post-processing should be completed? How many microseconds? Milliseconds? Seconds? Minutes?
For me, ansible merges the inventories for similar setup (cfg file pointing to folder with several files).
Please perform proper troubleshooting- remove the file that gets processed and check if the other gets processed. If the second gets processed (when alone) this is strange. If it does not get processed- check permissions, etc.
Unable to reproduce the issue.
Tested on Ansible core 2.14.18. Almost clean install.
Not Delphi but Lazarus.
The concepts are almost identical, it might work:
https://forum.lazarus.freepascal.org/index.php?action=profile;area=showposts;u=73636
check out these react docs on "memo". sounds like exactly what you want. if CheckBox is not your own component, you could create a wrapper for it or use the "useMemo" hook on the component. check the "deep dive" section of these react docs on useMemo. essentially, the component only rerenders when one of its props' value changes.
So first, there are two ways to redirect: an internal redirect and an external redirect.
The internal redirect reuses the request and token to call a secondary endpoint.
The external redirect drops a thread, goes outside the DMZ, comes back in and has to be revalidated and recreate a new thread and then goes to the secondary endpoint.
The internal is MUCH faster and more secure.
https://www.linkedin.com/pulse/apis-why-use-internal-redirect-owen-rubel-api-expert-xsoec/
How exactly have you determined the check boxes are re-rendering? How are you determining unnecessary re-renders? Please [edit] your question to specifically and clearly define the problem that you are trying to solve. Additional details — including all relevant code (see mre for details), any complete error messages and stacktraces, and debugging logs and details from any investigation on your part — will help readers to better understand your problem and [what you are asking].
Also, FWIW, the React Context API is not a state management library, so attempting to compare it to Redux (and other similar state management libraries) is an apples to oranges comparison.
Additionally, please [edit] the title of your question to be descriptive, unambiguous, and specific to what you are asking. Currently it doesn't appear to match the post body's topic. For more guidance, see How do I write a good title?.
I confirm it's working, but the provider.tf must be in the same folder as our module. If you have multiple folder modules, you need to duplicate them in each folder:
I my case, I use
source = "microsoft/azuredevops"
Though the question is a little vague, I will assume that it's about JSON:API vs REST. JSON:API is a specification for using JSON whereas REST is an architecture pattern.
The JSON: API spec is compatible with REST which means they are not mutually exclusive and can be considered complementary to each other.
At a high level:
To interface with a REST API, make HTTP requests using the standard methods (or verbs) to endpoints (specific URIs) provided by the service. Ideally thse endpoints will be documented in a way that any consumer can easily understand (such as the Open API spec). How you parse the results depends on what the results are. They could be JSON, XML, HTML or plaintext.
To interface with a JSON:API you will need to make HTTP requests using its specific MIME type ad follow the recommended schema from the specification. To parse the result you will need to use the relevant methods or packages your programming language of choice provides. In JavaScript it's JSON.parse
You can try my configuration here : https://github.com/RAJ8664/nvim-config/blob/main/lua/plugins/blink_cmp.lua.
This works for me.
Lokesh tells us in the link above that we can use different options for our lightbox, like a wraparound, for example. He tells us to include the following, and then lists some more options. But he does not state anywhere WHERE we should put this code. In the html? the css? The js? And then, where exactly? in the head, the body, ...? He seems to just assume everybody knows... Well, I have no idea and therefore no way to activate the wraparound.
<script>
lightbox.option({
'resizeDuration': 200,
'wrapAround': true
})
</script>
I encountered the same problem. I found a solution here. You need to change the development interface language to English. https://learn.microsoft.com/ru-ru/answers/questions/5225129/vba-excel
Thanks Jon, couple of my words has been removed by stack. In fact I added what was tried!
One quite good approximation method is Bhāskara I's sine approximation formula :
https://en.wikipedia.org/wiki/Bh%C4%81skara_I%27s_sine_approximation_formula
This formula can also be used with fixed point computations and you might also use it for Q15 (both x as pi normalized and y as return value in range -1.0 ... +1.0-LSB).
Another efficient method is the CORDIC algorithm :
https://en.wikipedia.org/wiki/CORDIC
I used the CORDIC algorithm to write my own implementation (already adapted for Q15 input/output):
https://github.com/marcas756/fxp16