I know this is somewhat old question, but to solve this, I decided to use HttpContext.Items
in my implementation of IAuthenticationService
to put a value with key like AuthenticationException
there, and then read that in other middleware or filter.
Note that It may look tempting to use HttpContext.Features.Get<IAuthenticateResultFeature>().AuthenticateResult
, but this feature is not set for failed authentications! I've spent several hours debugging this, only to understand that I need to look for another way.
I know I am saying this after multiple years and you probably do not care for it anymore.
However, in order to run a threaded program on the IBMi you need to run it with SBMJOB and with the option ALWMLTTHD(*YES). Otherwise, you will get an error 3029. I know, it is a very stupid error to get when it has absolutely nothing to do with the real reason your threaded program is not running.
Ciao, anche io ho avuto lo stesso problema e l'ho risolto facendo cosi:
1 chiudi l'IDE Arduino ma lascia la scheda collegata alla usb
2 Apri Gestione dispositivi
3 Apri Porte e fai clic sulla freccia a discesa per selezionare la tua porta.
4 Fare clic con il pulsante destro del mouse e selezionare "Proprietà"
5 Apri la scheda "Impostazioni porta".
6 Clicca su "Avanzate" per aprire una nuova finestra
7 cambia la porta con una libera
ok ok e chiudi
riapri l'IDE arduino e prova
con me ha funzionato
I notice you're making your requests over HTTP not HTTPS, I imagine Azure is stricter on the POST requests rather than GET due to encrypting the body of the request.
Make sure you have HTTPS only turned off in Azure Portal.
It looks like the library you're trying to install runs clang
and other commands of C on terminal.
As the program doesn't find those files, it gives an error.
I'm not sure how I can help you fixing that, maybe installing clang and all thoose files but anyways, that's what I've found.
I updated pycharm to the newest version and the errors were gone
The Uutf library has a fold_utf_8 function, so I've created this function:
let str_chars : string -> Uchar.t list =
Uutf.String.fold_utf_8 (fun acc _ c ->
match c with
| `Uchar u -> u::acc
| `Malformed _ -> failwith ""
) []
I still find it crazy that something so simple can be so difficult to find information on. I've lost some of my sanity trying to find the answer, so I'm posting this here so that hopefully nobody has to go through this again.
There is a recipe hosted in the meta-python-ai layer https://layers.openembedded.org/layerindex/recipe/403973/
Right-click the json file > Open with > 'Other...'
Select 'Internal editors' radio button
Select 'Text Editor'
Select 'Use it for all json files' radio button, then OK.
some possible solutions I found in regards to your problem are:
If you are unable to find usage stats, try using the command line interface in google cloud to view/set up logs:
https://cloud.google.com/logging/docs/reference/tools/gcloud-logging#getting_started
Looking at quotas:
https://developers.google.com/maps/billing-and-pricing/manage-costs#quotas
- It states that when your project reaches the quota limit "your service stops responding to requests", are you sure that your limit is properly set up? Compare how much you got charged to the pricing https://developers.google.com/maps/billing-and-pricing/pricing
- You can set up alerts (both usage and budget) at points where you haven't used up all your free usage to figure out at what rate your api calls are being used (i.e. 1000 map loads)
I am also making a game that requires the same countdown. This is what I came up with/ stole. Replace the 60 with how ever long you want the timer to be.
import sys
import time
def countdown(timer):
while timer > 0:
timer -= 1
time.sleep(1)
sys.stdout.flush()
countdown(60)
can you share your code where we can use that and replicate the issue on our end as this way its immpossible t understand what is causing it or is your website hosted online? if yes, then share the url
Yes it is possible, but there are many layers to how Sharepoint allows enterprises to provision such access. You stated you have admin access, but I do not know if that is an admin of the device, enterprise network sysadmin, general enterprise admin of Sharepoint, or specific Sharepoint site admin. Each level of these would need to be approved in order to invoke API uploads to Sharepoint, the level of headache that that will create is dependent on how your enterprise has configured everything.
In the code you shared I only see one thing potentially missing, which is the office365 AuthenticationContext class instance. The AuthenticationContext normally handles all of the credential and access hand off stuff behind the scenes and has generally be a lifesaver for me when automating Sharepoint uploads and downloads. Historically I have had mixed success when doing all the credential stuff by hand, but had it work on the first attempt almost all the time with AuthenticationContext. You can read more about it on its github file:
If you are experiencing any further issues while using AuthenticationContext, it may be worth double checking all of the syntax it requires. If you are still having issues you may need to ask your enterprise to double check that (i) they allow API uploads, and (ii) that you and how your are configured is fully allowed to execute. The Exceptions that you get in the event that either of these is not working will normally be (a) some sort of request denial straight up saying that you do not have appropriate access to something, (b) some more generally vague message that the Sharepoint you are requesting cannot be found even though you know you entered the correct one, or most frustratingly (c) some random function that is taking an API action crashes, which would be the case if the API allows the request to go through but blocks you from taking any action.
I really struggled with sqlx and a custom enum type: I ended up adding strum to generate the &str values to make the query with the enum as parameter work:
#[derive(Debug, sqlx::Type, AsRefStr)]
#[sqlx(type_name = "category_type", rename_all = "lowercase")]
pub enum CategoryType {
#[strum(serialize = "music")]
Music,
#[strum(serialize = "audiobook")]
Audiobook,
}
#[derive(Debug, sqlx::FromRow)]
pub struct Category {
pub id: sqlx::types::Uuid,
pub name: String,
pub category_type: CategoryType,
}
async fn list(db: &PgPool, category_type: CategoryType) -> Result<Vec<Category>, errors::AppError> {
let result = sqlx::query_as!(
Category,
r#"
SELECT
id, name, category_type AS "category_type!: CategoryType"
FROM categories
WHERE category_type = ($1::text)::category_type
"#,
category_type.as_ref()
)
.fetch_all(db)
.await?;
Ok(result)
}
This fells quite complicated, but I think its the right way? what do you think?
If your version of Invoke-SqlCmd
does not allow usage of this flag TrustServerCertificate
(for any reason, also mentioned in other answers), try to exclude this flag from execution - that was enough in my case, because in this case a certificate was not required. (Not a best advice, but works).
Seems it is possible now, documentation is available here: https://developers.facebook.com/docs/whatsapp/cloud-api/typing-indicators
You shouldn't define a custom session route when using next-auth, its already handled by NextAuth. Your custom route leads it to recursion.
Hopefully this makes sense to anyone reading this.
To get the results I needed I used helper columns. To keep it simple, I'm just going to use Group 1 and Group 2. Including Group 3 and Group 4 required additional helper columns, same as Group 1 and Group 2.
First, I broke out the date (e.g. 1/1/2025) into year (e.g. 2025) and week (e.g. 1):
=YEAR(I3)
=WEEKNUM(I3)
Second, I concatenated the two results (e.g. 1-2025):
=K3&"-"&J3
Third, for each group I used a logical Or for comparing the subgroups:
For Group 1 =IF(OR(A3>0,B3>0),1,0)
For Group 2 =IF(OR(C3>0,D3>0),1,0)
Output is "1" if the subgroups contain values greater than "0".
Fourth, for each group I used the MAXIFS formula to grab the highest value of each group within each week:
For Group 1 =MAXIFS($M$3:$M$97,$L$3:$L$97,L3)
For Group 2 =MAXIFS($O$3:$O$97,$L$3:$L$97,L3)
Fifth, I summed the outputs of each groups MAXIFS formula (e.g. Group 1 and Group 2):
=SUM(N3,P3)
Sixth, I calculated the weekly MAX number across all Groups:
=MAXIFS($Q$3:$Q$11,$L$3:$L$11,L3)
Seventh, using the UNIQUE formula I mapped out the Week and Year results into a separate column:
=UNIQUE(L3:L11)
And for the final step, I performed a vLookup to pull in the MAXIFS value of each Week...
For the first week of 1-2025: =VLOOKUP(S3,$L:$R,7,0)
For the 2nd week of 6-2025: =VLOOKUP(S4,$L:$R,7,0)
For the 3rd week of 7-2025: =VLOOKUP(S5,$L:$R,7,0)
Have you tried adding @theme
in global.css ?
// global.css
@import 'tailwindcss';
@theme {
--color-black: #1a1a1a;
--color-white: #fafaf8;
--color-mint-500: oklch(0.72 0.11 178);
}
You can add custom colors (hex codes, OKLCH, etc.) like this.
I have a use case for webhooks in forms. I'm creating forms from assets, and I need a field to be copied from the referenced asset to the form. It would be ideal for this field to be populated upon creation of the form so that the end user doesn't think that they have to type in in manually.
thanks your method sort help me a lot to implement algorithm bubble sort in data structure linkedlist
Check out the utility program at https://github.com/DanKonigsbach/GetItemDate
It's a small executable that works for both images and videos, and will do the formatting for you.
Better? Faster? Your mileage may vary. But hope it's helpful.
For video, the field you want is Media Created, rather than Date Taken.
I wanted an easy approach that would support both pictures and videos, and didn't find one that I felt worked well for my purposes. So, I made a small utility program that would handle it. You can find it here at https://github.com/DanKonigsbach/GetItemDate
The trick was that rather than look at EXIF data, video metadata or shell folder attributes, I used the Windows shell properties API, which behind the scenes maps the various sources of that date into the field Item Date. Very convenient.
Less convenient for the C# and PowerShell developer is that this is an unmanaged Windows API. There might be a P/Invoke way to get at it, by for my purposes it was easier to just invoke a small utility executable.
Hopefully, either the source code or executable in GitHub will prove useful.
From what I can gather your solution works like this:
1. Get a comment that has a name in it.
2. Check if the comment has something from the blacklist in it
3. If it does discard the comment, if it doesn't surface the comment.
To avoid discarding valid comments with a blacklisted word in it, you would need to change your logic for discarding comments.
One way I can think of to try to fix this is to run a check like this for each comment with a blacklisted word:
If it has a blacklisted word, make a temporary version of the comment with the blacklisted word removed and see if there is any other instances of that name and repeat until either there is a valid name or you can safely discard the comment.
Example:
Checking: "Nancy was helpful during my pregnancy"
Then you would check-> "Nancy was helpful during my" [Good comment]
Checking: "Peanut butter was helpful during my pregnancy"
Then you would check-> "Peanut butter was helpful during my" [Discard this comment]
=DROP(REDUCE("",UNIQUE(K3:K11),LAMBDA(u,v,VSTACK(u,HSTACK("Week: "&v,SUM(BYCOL(UNIQUE(A1:H1,TRUE),LAMBDA(c,N(0<SUM(FILTER(FILTER(A3:H11,K3:K11=v),
A1:H1=c)))))))))),1)
This would be my suggestion if i correctly understand what you want to do.
Great question and great answer! https://stackoverflow.com/users/12109788/jpsmith
I have added more variables in c() and I can't get it to sum the medians etc for each variable. Instead I get a list per hour from the first value. How can I fix this?
library(dplyr)
library(chron)
library(gtsummary)
chrontest <- chestdf %>%
select(tts_sec, ttl_sec, ttprov1_sec, deltatrop_sec, vistelse_sec) %>%
drop_na() %>%
mutate(across(ends_with("_sec"), ~ format(as.POSIXct(.), "%H:%M:%S"))) %>%
mutate(across(ends_with("_sec"), ~ chron::times(.)))
summary_table <- chrontest %>%
tbl_summary(
include = c("tts_sec", "ttl_sec", "ttprov1_sec", "deltatrop_sec", "vistelse_sec"),
label = list(
tts_sec ~ "Tid till S",
ttl_sec ~ "Tid till L",
ttprov1_sec ~ "Tid till provtagn 1",
deltatrop_sec ~ "Tid till provtagn 2",
vistelse_sec ~ "Vistelsetid"
),
type = list(
all_continuous() ~ "continuous2"
),
statistic = list(
all_continuous() ~ c(
"{mean}",
"{median} ({p25}, {p75})",
"{min}, {max}"
)
),
digits = list(
all_continuous() ~ 2
)
)
Using JToken
from Newtonsoft.Json library, you can do the following to minify a JSON string:
var jsonString = "{\n \"something\": \"test\",\n \"somethingElse\": 2\n}";
var minifiedJson = JToken.Parse(jsonString).ToString(Formatting.None);
No need to serialize and then de-serialize.
These are the individual corners of the border.
It's used so you can give each corner a different radius.
I'll be the first to admit that it may not work for everyone or in every use case, but it works for what I intended.
Since it's been a while since posting the question, naturally a good bit has changed in my implementation of Sanity, but you shouldn't have any issues adapting, to your own project with minor changes.
I'd like to start by addressing the changes I've made since posting the question. Please keep in mind all changes listed here were created with Next.js 15 and—more specifically—the next/image
component in mind. You may need to make modifications if this does not apply to you.
I no longer use the imageUrlFor
, compressWidthAndHeight
, or prepareImage
functions to generate src
attribute and other image props. Instead I take advantage of the GROQ query step by pulling in the information I need and creating the src
at this level. I created a helper function for querying images with GROQ, since there are many different scenarios that require different functions on the src
.
If you're using TypeScript like I do, here's the definitions you'll need:
export type SanityCrop = {
top: number
left: number
bottom: number
right: number
}
export type SanityHotspot = {
x: number
y: number
width: number
height: number
}
export type SanityImage = {
_id: string
alt?: string
aspectRatio?: number
blurDataURL: string
crop?: SanityCrop
height?: number
hotspot?: SanityHotspot
filename?: string
src: string
width?: number
}
All descriptions in the GroqImageSourceOptions
type are copied from Sanity – Image transformations – Image URLs. You're welcome to use this in your own projects if you want.
type GroqImageSourceOptions = Partial<{
/** Automatically returns an image in the most optimized format supported by the browser as determined by its Accept header. To achieve the same result in a non-browser context, use the `fm` parameter instead to specify the desired format. */
auto: 'format'
/** Hexadecimal code (RGB, ARGB, RRGGBB, AARRGGBB) */
bg: string
/** `0`-`2000` */
blur: number
/** Use with `fit: 'crop'` to specify how cropping is performed.
*
* `focalpoint` will crop around the focal point specified using the `fp` parameter.
*
* `entropy` attempts to preserve the "most important" part of the image by selecting the crop that preserves the most complex part of the image.
* */
crop:
| 'top'
| 'bottom'
| 'left'
| 'right'
| 'top,left'
| 'top,right'
| 'bottom,left'
| 'bottom,right'
| 'center'
| 'focalpoint'
| 'entropy'
/** Configures the headers so that opening this link causes the browser to download the image rather than showing it. The browser will suggest to use the file name provided here. */
dl: string
/** Specifies device pixel ratio scaling factor. From `1` to `3`. */
dpr: 1 | 2 | 3
/** Affects how the image is handled when you specify target dimensions.
*
* `clip` resizes to fit within the bounds you specified without cropping or distorting the image.
*
* `crop` crops the image to fill the size you specified when you specify both `w` and `h`.
*
* `fill` operates the same as `clip`, but any free area not covered by your image is filled with the color specified in the `bg` parameter.
*
* `fillmax` places the image within the box you specify, never scaling the image up. If there is excess room in the image, it is filled with the color specified in the `bg` parameter.
*
* `max` fits the image within the box you specify, but never scaling the image up.
*
* `min` resizes and crops the image to match the aspect ratio of the requested width and height. Will not exceed the original width and height of the image.
*
* `scale` scales the image to fit the constraining dimensions exactly. The resulting image will fill the dimensions, and will not maintain the aspect ratio of the input image.
*/
fit: 'clip' | 'crop' | 'fill' | 'fillmax' | 'max' | 'min' | 'scale'
/** Flip image horizontally, vertically or both. */
flip: 'h' | 'v' | 'hv'
/** Convert image to jpg, pjpg, png, or webp. */
fm: 'jpg' | 'pjpg' | 'png' | 'webp'
/** Specify a center point to focus on when cropping the image. Values from 0.0 to 1.0 in fractions of the image dimensions. */
fp: {
x: number
y: number
}
/** The frame of an animated image. The only valid value is 1, which is the first frame. */
frame: 1
/** Height of the image in pixels. Scales the image to be that tall. */
h: number
/** Invert the colors of the image. */
invert: boolean
/** Maximum height. Specifies size limits giving the backend some freedom in picking a size according to the source image aspect ratio. This parameter only works when also specifying `fit: 'crop'`. */
maxH: number
/** Maximum width in the context of image cropping. Specifies size limits giving the backend some freedom in picking a size according to the source image aspect ratio. This parameter only works when also specifying `fit: 'crop'`. */
maxW: number
/** Minimum height. Specifies size limits giving the backend some freedom in picking a size according to the source image aspect ratio. This parameter only works when also specifying `fit: 'crop'`. */
minH: number
/** Minimum width. Specifies size limits giving the backend some freedom in picking a size according to the source image aspect ratio. This parameter only works when also specifying `fit: 'crop'`. */
minW: number
/** Rotate the image in 90 degree increments. */
or: 0 | 90 | 180 | 270
/** The number of pixels to pad the image. Applies to both width and height. */
pad: number
/** Quality `0`-`100`. Specify the compression quality (where applicable). Defaults are `75` for JPG and WebP. */
q: number
/** Crop the image according to the provided coordinate values. */
rect: {
left: number
top: number
width: number
height: number
}
/** Currently the asset pipeline only supports `sat: -100`, which renders the image with grayscale colors. Support for more levels of saturation is planned for later. */
sat: -100
/** Sharpen `0`-`100` */
sharp: number
/** Width of the image in pixels. Scales the image to be that wide. */
w: number
}>
function applySourceOptions(src: string, options: GroqImageSourceOptions) {
const convertedOptions = Object.entries(options)
.map(
([key, value]) =>
`${breakCamelCase(key).join('-').toLowerCase()}=${typeof value === 'string' || typeof value === 'boolean' ? value : typeof value === 'number' ? Math.round(value) : Object.values(value).join(',')}`,
)
.join('&')
return src + ` + "?${convertedOptions}"`
}
type GroqImageProps = Partial<{
alt: boolean
/** Returns the aspect ratio of the image */
aspectRatio: boolean
/** Precedes asset->url */
assetPath: string
blurDataURL: boolean
/** Returns the coordinates of the crop */
crop: boolean
/** Returns the height of the image */
height: boolean
/** Returns the hotspot of the image */
hotspot: boolean
filename: boolean
otherProps: string[]
src: GroqImageSourceOptions
/** Returns the width of the image */
width: boolean
}>
/**
* # GROQ Image
*
* **Generates the necessary information for extracting the image asset, with built-in and typed options, making it easier to use GROQ's API as it relates to image fetching.**
*
* - Include `alt` and `blurDataURL` whenever possible.
*
* - It's best to always specify the `src` options as well.
*
* - Include either `srcset` or `sources` for best results.
*
* - `srcset` generates URLs for the `srcset` attribute of an `<img>` element.
*
* - `sources` generates URLs for `<source>` elements, used in the `<picture>` element.
*/
export function groqImage(props?: GroqImageProps) {
const prefix = props?.tabStart ? `\n${' '.repeat(props.tabStart)}` : '\n ',
assetPath = props?.assetPath ? `${props.assetPath}.` : ''
let constructor = `{`
if (props?.otherProps) constructor = constructor + prefix + props.otherProps.join(`,${prefix}`) + `,`
if (props?.alt) constructor = constructor + prefix + `"alt": ${assetPath}asset->altText,`
if (props?.crop) {
let crop = 'crop,'
if (props.assetPath) crop = `"crop": ${assetPath}crop,`
constructor = constructor + prefix + crop
}
if (props?.hotspot) {
let hotspot = 'hotspot,'
if (props.assetPath) hotspot = `"hotspot": ${assetPath}hotspot,`
constructor = constructor + prefix + hotspot
}
if (props?.width) constructor = constructor + prefix + `"width": ${assetPath}asset->metadata.dimensions.width,`
if (props?.height) constructor = constructor + prefix + `"height": ${assetPath}asset->metadata.dimensions.height,`
if (props?.aspectRatio)
constructor = constructor + prefix + `"aspectRatio": ${assetPath}asset->metadata.dimensions.aspectRatio,`
if (props?.blurDataURL) constructor = constructor + prefix + `"blurDataURL": ${assetPath}asset->metadata.lqip,`
if (props?.filename) constructor = constructor + prefix + `"filename": ${assetPath}asset->originalFilename,`
constructor = constructor + prefix + `"src": ${assetPath}asset->url`
if (props?.src && Object.entries(props.src).length >= 1) constructor = applySourceOptions(constructor, props.src)
return constructor
}
Although most props are now prepared with groqImage
—like the alt
and blurDataURL
for next/image
—the crop, hotspot, width, and height still aren't utilized. To utilize I created a couple helper functions that are implemented into the main getImagePropsFromSanityForSizing
function.
applyCropToImageSource
calculates the rect
search parameter of the Sanity image URL to apply the crop
based on the image's dimensions.
applyHotspotToImageSource
uses the x
and y
values of the hotspot
for the fx
and fy
focal points defined in the search parameters. It also makes sure the crop
search parameter is set to focalpoint
.
getImagePropsForSizingFromSanity
applies both previously mentioned functions to the src
and calculates the maximum width
and height
attributes based on the actual dimensions of the image in Sanity, compared to the developer-defined max dimensions. If no max width and height are provided, the width
and height
props remain undefined. This is intentional, so that the fill
prop can be properly utilized.
export function applyCropToImageSource(src: string, crop?: SanityCrop, width?: number, height?: number) {
if (!crop || !width || !height) return src
const { top, left, bottom, right } = crop
const croppedWidth = width - right * width,
croppedHeight = height - bottom * height
const rect = `&rect=${Math.round(left)},${Math.round(top)},${Math.round(croppedWidth)},${Math.round(croppedHeight)}`
return src + rect
}
export function applyHotspotToImageSource(src: string, hotspotCoords?: Pick<SanityHotspot, 'x' | 'y'>) {
if (!hotspotCoords) return src
const { x, y } = hotspotCoords
const fx = `&fx=${x}`,
fy = `&fy=${y}`
if (src.includes('&crop=') && !src.includes('&crop=focalpoint')) {
src = src.replace(
/&crop=(top|bottom|left|right|top,left|top,right|bottom,left|bottom,right|center|entropy)/,
'&crop=focalpoint',
)
} else {
src = src + `&crop=focalpoint`
}
if (!Number.isNaN(x) && x <= 1 && x >= 0) src = src + fx
if (!Number.isNaN(y) && y <= 1 && y >= 0) src = src + fy
return src
}
/**
* # Get Image Props for Sizing from Sanity
*
* - Returns src, height, and width for `next/image` component
* - Both sanity and max heights and widths must be included to include height and width props
* - The src will have focalpoints and cropping applied to it, according to the provided crop, hotspot, and dimensions.
*/
export function getImagePropsForSizingFromSanity(
src: string,
{
crop,
height,
hotspot,
width,
}: Partial<{
crop: SanityCrop
height: Partial<{ sanity: number; max: number }>
hotspot: SanityHotspot
width: Partial<{ sanity: number; max: number }>
}>,
): Pick<ImageProps, 'src' | 'height' | 'width'> {
return {
src: applyHotspotToImageSource(applyCropToImageSource(src, crop, width?.sanity, height?.sanity), hotspot),
height: height?.max ? Math.min(height.sanity || Infinity, height.max) : undefined,
width: width?.max ? Math.min(width.sanity || Infinity, width.max) : undefined,
}
}
And lastly, it should be noted that the next.config.ts
is modified to implement a custom loader to take advantage of Sanity's built image pipeline.
// next.config.ts
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
images: {
formats: ['image/webp'],
loader: 'custom',
loaderFile: './utils/sanity-image-loader.ts',
remotePatterns: [
{
protocol: 'https',
hostname: 'cdn.sanity.io',
pathname: '/images/[project_id]/[dataset]/**',
port: '',
},
],
},
}
export default nextConfig
// sanity-image-loader.ts
// * Image
import { ImageLoaderProps } from 'next/image'
export default function imageLoader({ src, width, quality }: ImageLoaderProps) {
if (src.includes('cdn.sanity.io')) {
const url = new URL(src)
const maxW = Number(url.searchParams.get('max-w'))
url.searchParams.set('w', `${!maxW || width < maxW ? width : maxW}`)
if (quality) url.searchParams.set('q', `${quality}`)
return url.toString()
}
return src
}
Now that we got the boring stuff out of the way, let's talk about how implementation of the hotspot actually works.
The hotspot object is defined like this (in TypeScript):
type SanityHotspot = {
x: number
y: number
width: number
height: number
}
All of these values are numbers 0-1, which means multiplying each value by 100 and adding a %
at the end, will generally be how we will implement the values.
x
and y
are the center of the hotspot. width
and height
are fractions of the dimensions of the image.
Now there are certainly different ways of using these values to get the results you're looking for (e.g. top, left, and/or translate), but I wanted to use the object-position
CSS property, since it doesn't require wrapping the <img>
element in a <div>
and it works well with object-fit: cover;
.
The most important thing to dynamically position the image to keep the hotspot in view is handling resize events. Since I'm using Next.js, I created a React hook to handle this.
I made this hook to return the dimensions of either the specified element, or the window, so it can be used for anything. In our use case, the dimensions of the image is all we care about.
'use client'
import { RefObject, useEffect, useState } from 'react'
export function useResize(el?: RefObject<HTMLElement | null> | HTMLElement) {
const [dimensions, setDimensions] = useState({ width: 0, height: 0 })
const handleResize = () => {
const trackedElement = el ? ('current' in el ? el.current : el) : null
setDimensions({
width: trackedElement ? trackedElement.clientWidth : window.innerWidth,
height: trackedElement ? trackedElement.clientHeight : window.innerWidth,
})
}
useEffect(() => {
if (typeof window !== 'undefined') {
handleResize()
window.addEventListener('resize', handleResize)
}
return () => {
window.removeEventListener('resize', handleResize)
}
}, [])
return dimensions
}
Now that we have our useResize
hook, we can use it and apply the object-position
to dynamically position the image to keep the hotspot in view. Naturally, we'll want to create a new component, so it can be used easily when we need it.
This image component is built off of the next/image
component, since we still want to take advantage of all that that component has to offer.
'use client'
// * Types
import { SanityHotspot } from '@/typings/sanity'
export type ImgProps = ImageProps & { hotspotPositioning?: { aspectRatio?: number; hotspot?: SanityHotspot } }
// * React
import { RefObject, useEffect, useRef, useState } from 'react'
// * Hooks
import { useResize } from '@/hooks/use-resize'
// * Components
import Image, { ImageProps } from 'next/image'
export default function Img({ hotspotPositioning, style, ...props }: ImgProps) {
const imageRef = useRef<HTMLImageElement>(null),
{ objectPosition } = useHotspot({ ...hotspotPositioning, imageRef })
return <Image {...props} ref={imageRef} style={{ ...style, objectPosition }} />
}
Thankfully that part was really simple. I'm sure you noticed we still need to implement this useHotspot
hook that returns the objectPosition
property. First I just wanted to address the changes we made to the ImageProps
from next/image
.
We added a single property to make it as easy as possible to use. The hotspotPositioning
prop optionally accepts both the aspectRatio
and the hotspot
. Both of these are easily pulled in using the groqImage
function.
{ hotspotPositioning?: {
aspectRatio?: number
hotspot?: SanityHotspot
} }
Pitfall
It is possible that the aspectRatio
will not be available if you aren't using the Media plugin for Sanity.
If you do not provide both of these, the hotspot will not be dynamically applied.
Okay—the tough part. How exactly does the useHotspot
hook calculate the coordinates of the objectPosition
property?
By using a useEffect
hook, we are able to update the objectPosition
useState
each time the width
and/or height
of the <img>
element changes. Before actually running any calculations, we always check whether the hotspot
and aspectRatio
are provided, so—although if you know you don't need to dynamically position the hotspot, you shouldn't use this component—it shouldn't hurt performance if you don't have either of those.
The containerAspectRatio
is the aspect ratio of the part of the image that is actually visible. By comparing this to the aspectRatio
, which is the full image, we can know which sides the image is being cropped on by the container.
By default we use the x
and y
coordinates of the hotspot for the objectPosition
, in the case the hotspot isn't being cutoff at all..
Regardless of whether the image is being cropped vertically or horizontally the calculation is basically the same. First, it calculates the aspect ratio of the visible area and it uses the result to determine how far off the overflow is on both sides, in a decimal format (0-1). Next, it calculates how far off—if at all—the hotspot bound overflow. By comparing each respective side's overflow to its hotspot overflowing side counterpart, we are able to determine what direction the objectPosition
needs to move.
It's important to note that objectPosition
does not move the image the same way using top
, left
, or translate
does. Where positive values move the image down and/or right and negative values move the image up and/or left, objectPosition
moves the image within its containing dimensions. This means—assuming we start at 50% 50%
—making the value lower moves the image right or down respectively, and making the value higher moves the image left or up respectively. This is an inverse from the other positioning properties, and objectPosition
doesn't use negative values (at least not for how we want to use it). This is why the calculations are {x or y} ± ({total overflow amount} - {hotspot overflow amount})
.
Lastly, we have the situation where two sides are overflowing. In this case we want to balance how much each side is overflowing to find a middle ground. This is simply 2 * {x or y} - 0.5
.
Once calculations are made, we convert the numbers to a percentage with a min max statement to make sure it never gets inset.
function useHotspot({
aspectRatio,
hotspot,
imageRef,
}: {
aspectRatio?: number
hotspot?: SanityHotspot
imageRef?: RefObject<HTMLImageElement | null>
}) {
const [objectPosition, setObjectPosition] = useState('50% 50%'),
{ width, height } = useResize(imageRef)
useEffect(() => {
if (hotspot && aspectRatio) {
const containerAspectRatio = width / height
const { height: hotspotHeight, width: hotspotWidth, x, y } = hotspot
let positionX = x,
positionY = y
if (containerAspectRatio > aspectRatio) {
// Container is wider than the image (proportionally)
// Image will be fully visible horizontally, but cropped vertically
// Calculate visible height ratio (what portion of the image height is visible)
const visibleHeightRatio = aspectRatio / containerAspectRatio
// Calculate the visible vertical bounds (in normalized coordinates 0-1)
const visibleTop = 0.5 - visibleHeightRatio / 2,
visibleBottom = 0.5 + visibleHeightRatio / 2
const hotspotTop = y - hotspotHeight / 2,
hotspotBottom = y + hotspotHeight / 2
// Hotspot extends above the visible area, shift it down
if (hotspotTop < visibleTop) positionY = y - (visibleTop - hotspotTop)
// Hotspot extends below the visible area, shift it up
if (hotspotBottom > visibleBottom) positionY = y + (hotspotBottom - visibleBottom)
// Hotspot extends above and below the visible area, center it vertically
if (hotspotTop < visibleTop && hotspotBottom > visibleBottom) positionY = 2 * y - 0.5
} else {
// Container is taller than the image (proportionally)
// Image will be fully visible vertically, but cropped horizontally
// Calculate visible width ratio (what portion of the image width is visible)
const visibleWidthRatio = containerAspectRatio / aspectRatio
// Calculate the visible horizontal bounds (in normalized coordinates 0-1)
const visibleLeft = 0.5 - visibleWidthRatio / 2,
visibleRight = 0.5 + visibleWidthRatio / 2
const hotspotLeft = x - hotspotWidth / 2,
hotspotRight = x + hotspotWidth / 2
// Hotspot extends to the left of the visible area, shift it right
if (hotspotLeft < visibleLeft) positionX = x - (visibleLeft - hotspotLeft)
// Hotspot extends to the right of the visible area, shift it left
if (hotspotRight > visibleRight) positionX = x + (hotspotRight - visibleRight)
// Hotspot extends beyond the visible area on both sides, center it
if (hotspotLeft < visibleLeft && hotspotRight > visibleRight) positionX = 2 * x - 0.5
}
positionX = Math.max(0, Math.min(1, positionX))
positionY = Math.max(0, Math.min(1, positionY))
setObjectPosition(`${positionX * 100}% ${positionY * 100}%`)
}
}, [aspectRatio, hotspot, width, height])
return { objectPosition }
}
'use client'
// * Types
import { SanityHotspot } from '@/typings/sanity'
export type ImgProps = ImageProps & { hotspotPositioning?: { aspectRatio?: number; hotspot?: SanityHotspot } }
// * React
import { RefObject, useEffect, useRef, useState } from 'react'
// * Hooks
import { useResize } from '@/hooks/use-resize'
// * Components
import Image, { ImageProps } from 'next/image'
function useHotspot({
aspectRatio,
hotspot,
imageRef,
}: {
aspectRatio?: number
hotspot?: SanityHotspot
imageRef?: RefObject<HTMLImageElement | null>
}) {
const [objectPosition, setObjectPosition] = useState('50% 50%'),
{ width, height } = useResize(imageRef)
useEffect(() => {
if (hotspot && aspectRatio) {
const containerAspectRatio = width / height
const { height: hotspotHeight, width: hotspotWidth, x, y } = hotspot
let positionX = x,
positionY = y
if (containerAspectRatio > aspectRatio) {
// Container is wider than the image (proportionally)
// Image will be fully visible horizontally, but cropped vertically
// Calculate visible height ratio (what portion of the image height is visible)
const visibleHeightRatio = aspectRatio / containerAspectRatio
// Calculate the visible vertical bounds (in normalized coordinates 0-1)
const visibleTop = 0.5 - visibleHeightRatio / 2,
visibleBottom = 0.5 + visibleHeightRatio / 2
const hotspotTop = y - hotspotHeight / 2,
hotspotBottom = y + hotspotHeight / 2
// Hotspot extends above the visible area, shift it down
if (hotspotTop < visibleTop) positionY = y - (visibleTop - hotspotTop)
// Hotspot extends below the visible area, shift it up
if (hotspotBottom > visibleBottom) positionY = y + (hotspotBottom - visibleBottom)
// Hotspot extends above and below the visible area, center it vertically
if (hotspotTop < visibleTop && hotspotBottom > visibleBottom) positionY = 2 * y - 0.5
} else {
// Container is taller than the image (proportionally)
// Image will be fully visible vertically, but cropped horizontally
// Calculate visible width ratio (what portion of the image width is visible)
const visibleWidthRatio = containerAspectRatio / aspectRatio
// Calculate the visible horizontal bounds (in normalized coordinates 0-1)
const visibleLeft = 0.5 - visibleWidthRatio / 2,
visibleRight = 0.5 + visibleWidthRatio / 2
const hotspotLeft = x - hotspotWidth / 2,
hotspotRight = x + hotspotWidth / 2
// Hotspot extends to the left of the visible area, shift it right
if (hotspotLeft < visibleLeft) positionX = x - (visibleLeft - hotspotLeft)
// Hotspot extends to the right of the visible area, shift it left
if (hotspotRight > visibleRight) positionX = x + (hotspotRight - visibleRight)
// Hotspot extends beyond the visible area on both sides, center it
if (hotspotLeft < visibleLeft && hotspotRight > visibleRight) positionX = 2 * x - 0.5
}
positionX = Math.max(0, Math.min(1, positionX))
positionY = Math.max(0, Math.min(1, positionY))
setObjectPosition(`${positionX * 100}% ${positionY * 100}%`)
}
}, [aspectRatio, hotspot, width, height])
return { objectPosition }
}
export default function Img({ hotspotPositioning, style, ...props }: ImgProps) {
const imageRef = useRef<HTMLImageElement>(null),
{ objectPosition } = useHotspot({ ...hotspotPositioning, imageRef })
return <Image {...props} ref={imageRef} style={{ ...style, objectPosition }} />
}
I hope this is helpful for people, as I have been trying to find a solid way to implement this for far too long. If this was helpful to you or you have any recommendations to make it better, please let me know!
An addition to activate GPS:
It should also be ensured that the app from the mobile phone has authorization to use GPS.
In my case, the authorization was deactivated and I had to allow it in the GPS settings on my phone for my app.
I faced similar problem with my Azure account 2 years ago. The trick was to use direct IP address of the server instead of the hostname and that i had to allow my network's IP address in Azure's whitelist
You can use the following library: https://github.com/SimpleSimpler/data_fingerprint
This library will tell you exactly where are differences between two dataframes, here is an example:
import polars as pl
from data_fingerprint.src.utils import get_dataframe
from data_fingerprint.src.comparator import get_data_report
from data_fingerprint.src.models import DataReport
# ...
# Generate a data report comparing the two datasets
report: DataReport = get_data_report(df1, df2, "df_1", "df_2")
# print out the differences
print(get_dataframe(report))
You can even try it in streamlit: https://datafingerprinttry.streamlit.app
This problem may be occur due to :
The server name is incorrect or not reachable (DNS/firewall issue)
If this , try pinging or telnetting the server :
telnet your_server_name 1433
what it did work for me, was this: by the way, I asked DeepSeek:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Redirigir URLs que contienen index.php
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
# Reescribir todas las demás solicitudes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
What is the escape character for MS-SQL-Server
The backslash character will escape it, if you specify it as the escape character
WHERE field1 LIKE 'I\'m' ESCAPE '\'
I think doubling the single quotes makes it easier to read, but that isn't what you asked.
please can you help me here I am also developing the application using dwr and spring 6, Java 17 but I'm getting exception engine.js isn't loading.
Getting exception as remote method is undefined my java methods isn't getting called
Was able to work out solution via helpful user in dbt slack channel:
GRANT DATABASE ROLE <name> TO SHARE <share_name>
(need to run this only once)- "{% if target.name | lower == 'prod' %} grant select on table <database.schema.table> to database role <name>; {% endif %}"
So you grant select privilege on desired table to the database role (which is already granted to the share) instead of granting the privilege directly to the share. I still do not know why the original method does not work though.
It seems the The stacktrace window is collapsed by default.
Click the expand button:
Then the Call stack is one of the tabs. (Assuming execution is broken - if not click Pause or press F8 to break)
While X-Auth-Method is direct, it's vendor-specific. My book: https://www.amazon.com/Navigate-Automation-Seas-Practical-Showcases-ebook/dp/B0DHYGGSDF/
emphasizes self-descriptive APIs. Inspecting the Authorization header's bearer token format (JWT, OAuth2) allows the server to infer the method without a custom header, aligning with REST principles discussed in my book.
https://robbelroot.de/blog/csharp-bluetooth-example-searching-listing-devices/ , follow this link. This will help you
Finally, I got it working.
First, as suggested in the previous answer, I simplified my intent-filter. However, I didn't use the suggested one, since it seems that wildcards are not allowed in android 15 intent-filters. So, I used mimeType, as follows:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="application/gpx+xml" />
<data android:scheme="content" />
<data android:scheme="file" />
</intent-filter>
Then, the key is, also as suggested in the previous answer, to uninstall and reinstall the app after making changes to the manifest, so that such changes take effect.
I have figured out what was wrong:
Since I am using asdf, I have removed the following lines from my .zshrc file:
export PATH="$PATH":"/Users/myusername/.asdf/installs/flutter/3.22.2-stable/bin"
export PATH="$PATH":"/Users/myusername/.asdf/installs/flutter/3.27.1-stable/bin"
I have uninstalled every version of Dart from asdf.
In my workspace settings I have removed the dart.sdkPath setting entirely.
The problem was that the stand-alone Dart SDK does not include Flutter, where the Flutter SDK does include the Dart SDK, therefore if using Flutter then the Dart SDK should not be referenced or even installed separately.
Kudos to @Pythoner! You saved my day. I was sure I tried everyting with API Keys lol
i think because of the port issue both the things are on running on different port i think in the backend main file you have to set the origin to frontend origin access and make it allow from everywhere and same in the frontend part while making a axios request try to use witheCredentials true so this might work.
I agree, it is annoying.
Like... Excel, import my data. Don't assume you know better than I do how it should be formatted...
I digress...
I did find that you can shift-click the first/last column and apply-all rather than going column by column when picking formatting.
That certainly made it suck 8% less.
Graphing your data using package memory_graph can help your understanding of the Python Data Model:
import memory_graph as mg # see link above for install instructions
a = [10, 20, 30, 40, 50, 60, 70, 80, 90]
b = a
a[0] = a
a.append(a)
mg.show(locals()) # graph the local variables
Just like variable a
and b
can reference a list value, a list can reference a list value, including itself.
Full disclosure: I am the developer of memory_graph.
Your error is use the /codebase flag. Use this option only if your assembly has a strong name.
I think your code should work fine with a PNG image rather than a JPEG. JPEG's don't support changes in opacity. See the answer here: https://stackoverflow.com/a/16906178/6723646
We have just released an Open Source tool ReARM that connects to an OCI-compatible registry and allows you to store xBOMs for your deliverables over there - https://github.com/relizaio/rearm
Works great, how about if i wanted to list the parent ID rows too with the current output and what if the child node was a parent to another child? For EG:
999, NULL, 'Corp.'
998, 999, 'Div1',
997, 999, 'Div2',
510, 998, 'Child Div1A',
110, 997, 'Child Div2A',
991, 510, 'Child5,
990, 110, 'Child4',
580, 510, 'Child1',
250, 510, 'Child2',
190, 110, 'Child3'
So, for example, if given 999, I would return 998, 997, 510, 110, 990, 991, 580,250,190. But given 997, I would return only 110, 990, 190. If given 110, 990, 190 and if given 190 then just 190
same as ROMAN and Carthusianorum, works in Chrome incognito mode
Please always speak to your database administrator before doing this if you are not already in that role. You could send an email before doing this.
use master;
GO
alter database [TSQL2012] set offline with rollback immediate;
GO
alter database [TSQL2012] set online with rollback immediate;
GO
I open with sudo and work for me.
On terminal, write:
sudo dbeaver
If you work on Linux, will work fine.
from gtts import gTTS
from pydub import AudioSegment
from pydub.playback import play
# Letra para convertir en audio (resumida y adaptada al estilo narrado tipo guía vocal)
lyrics = """
Una le di confianza, me enamoró y en su juego caí.
La segunda vino con lo mismo, me mintió, yo también le mentí.
Por eso es que ya no creo en el amor.
Gracias a todas esas heridas fue que yo aprendí...
Una conmigo jugó, y ahora con to’a yo juego.
En mi corazón no hay amor, no creo en sentimientos.
Soy un cabrón, se las pego a to’as.
Me tiro a esta, me tiro a la otra.
Mala mía, mai, es que me enzorra.
No quiero que más nadie me hable de amor, ya me cansé.
To’ esos trucos ya me los sé, esos dolores los pasé.
Quisiera que te sientas como yo me siento.
Quisiera cambiarle el final a este cuento.
Una conmigo quiso jugar, pues yo jugué con tres.
Una atrevida me quiso enchular, yo enchulé a las tres.
Y ahora no vuelvo a caer, me quedo con las putas y el poder.
Hoy te odio en secreto, si pudiera te devuelvo los besos.
Me arrepiento mil veces de haber confiado en ti.
Los chocolates y las flores, ahora son dolores.
Y después de la lluvia no hay colores.
Una conmigo jugó y ahora con todas yo juego.
En mi corazón no hay amor, tengo el alma en fuego.
Y no me hables de sentimientos, porque eso en mí ya está muerto.
"""
# Convertir texto a voz
tts = gTTS(lyrics, lang='es', slow=False)
audio_path = "/mnt/data/0_Sentimientos_GuiaVoz.mp3"
tts.save(audio_path)
audio_path
Thank you for the interesting information
In case of numeric localization validation is not working , is an decimal seperator for french that is not accept in text box
Replace this:
constructor ({ game, x, y, asset }) {
by:
constructor (game, x, y, asset) {
For android use following to get the thread priority of current thread.
Process.getThreadPriority(0)
As of 4/8/2025, this has been fixed. Install the update to be version 2.2 or greater:
я тоже изменил свой package.json на то что было указано в терминале после это написал в терминале npx expo i --fix и все заработало)
@Reference (or its more current equivalent @DBRef) tells Spring Data to store a reference (like an ObjectId) to another document, not to embed it.
You must save Z documents first:
Z zObj = zRepository.save(new Z(...)); // save first
Grp grp = new Grp();
grp.setX("someValue");
grp.setY(List.of(zObj));
grpRepository.save(grp); // now it will store the DBRef
or
You've to embed Z directly inside grp
Then don’t use @Reference — just declare it as a regular field:
private List<Z> y;
Finally i had to comp up with removing cors from parse server itself. I edited /root/parse-server/node_modules/parse-server/lib/middlewares.js
and commented out all the res.header(...)
lines that set Access-Control-Allow-*
. This disabled Parse's built-in CORS behavior, so Nginx could take over cleanly.
Got the Answer..
Don't understand why the down voting - very unnecessary..
This is the code.
function list-my-gh-pages() {
curl -s "https://api.github.com/users/YOUR_USERNAME/repos?per_page=100" | \
jq -r '.[] | select(.has_pages) | "\(.name): https://\(.owner.login).github.io/\(.name)"'
}
and run it:
list-my-gh-pages
works exactly like I want it to.
If you want to force Fortran free-form highlighting you can change this in the fortran syntax file at /usr/share/vim/vim91/syntax/fortran.vim. Find the corresponding file extension case for your situation and change it to:
let b:fortran_fixed_source = 0
The simplest way is to use HTML. Swing components support basic html.
DefaultModel table_model = (DefaultTableModel) tblMyTable.getModel();
String cell = "<html><font color='red'>This is red</font></html>";
Object[] row = {cell,"Another cell"};
table_model.addRow(row);
Glossaries are indeed the best way to set terminology requirements.
Each project in Crowdin has an automatically created glossary.
You can find the list of glossaries at the organization level under the Glossaries tab. Alternatively, open the project settings, go to the Glossaries tab, find the glossary you need, click the three dots next to it, and select Edit. On the Glossary page, click Add concept, then define a term in all languages where the required terminology should be used.
A concept is an entity that unites all terms referring to the same idea or object. It includes a description to explain what the concept means. A term is how we call that concept in a specific language. One concept can have multiple terms per language — for example, a preferred term, a short form, or even deprecated variants.
To ensure translators follow the terminology recommendations, make sure to enable the Consistent Terminology QA check in the Quality Assurance Settings of your project. This way, you or a linguist would either see a warning indicator for inconsistent terms on the project’s dashboard or, if strict QA checks are enforced, prevent translators from submitting translations that don’t follow the terminology rules.
Graphing your data using package memory_graph can help your understanding of the Python Data Model:
import memory_graph as mg # see link above for install instructions
arr1 = []
arr2 = [1, 2]
arr1.append(arr2)
arr2[0] = 5 # change of value
mg.render(locals(), 'graph1.png') # graph the local variables
A change of a value of mutable type list effects all that share the value, arr1
and arr2
.
arr2 = [6] # name rebinding
print(arr1)
mg.render(locals(), 'graph2.png') # graph the local variables
Name rebinding only effects the arr2
variable that is rebound.
I have the exact same problems
Dim somedata = jsonHelper.GetPostorDeleteBasedOnPostAndRealBodyData(payLoadString)
Dim getdeleteorpost = somedata.Item1
Dim usedPayloadString = somedata.Item2
works fine
but
Dim (getdeleteorpost, usedPayloadString) = jsonHelper.GetPostorDeleteBasedOnPostAndRealBodyData(payLoadString)
doesn't work
I tried to look around and find this question.
According to chatGPT. VB.net simply doesn't support this.
So your solution for now is to just use this syntax
Dim somedata = jsonHelper.GetPostorDeleteBasedOnPostAndRealBodyData(payLoadString)
Dim getdeleteorpost = somedata.Item1
Dim usedPayloadString = somedata.Item2
Excerpts from my ChatGPT conversation. I am sure it insists it works for VB 15.3+. But now it changes it's mind.
So noone can do VB.NET tuple deconstruction syntax yet
Correct — VB.NET does not support tuple deconstruction syntax like:
vb.net
CopyEdit
Dim (x, y) = GetTuple()
Even in the latest .NET versions (including .NET 9), VB.NET’s language features have remained mostly frozen, and that syntax has never been added.
You can still use tuples — just not with deconstruction:
vb.net
CopyEdit
Dim result = GetStuff() Dim x = result.Item1 Dim y = result.Item2
Or, for better clarity:
vb.net
CopyEdit
Public Function GetStuff() As (name As String, age As Integer) Return ("Alice", 30) End Function
Then access with:
vb.net
CopyEdit
Dim person = GetStuff() Console.WriteLine(person.name) Console.WriteLine(person.age)
✔️ Named tuple fields work.
❌ Deconstruction doesn’t.
Microsoft has shifted VB.NET into maintenance mode. That means:
No major new language features.
Still supported and maintained.
Works fine with .NET Core/.NET 5/6/7/8/9.
But no new syntax like pattern matching, tuple unpacking, etc.
If you ever switch to C#, you can do tuple deconstruction — but for now, in VB.NET, you’re stuck with Item1
, or named fields only. Let me know if you'd like the C# equivalent or tips on making VB.NET cleaner.
in my case i needed to enable legacy providers in the openssl configuration before running php bin/console lexik:jwt:generate-keypair --overwrite.
this link explains how to enable legacy providers :
https://www.php.net/manual/en/function.openssl-pkcs12-read.php#128941
If you're using any plugins which could change that value, you'll want to put the configuration line in after those plugins are loaded. For example, if you have a color scheme plugin, you may want to put vim.api.nvim_set_hl(0, "ColorColumn", { ctermbg='Red', bg='Red' })
in the configuration of the color scheme or in a config file which loads afterwards. I suspect you put the right code in, but it was just getting overwritten later.
I was able to resolve this issue.
The problem was with the encoded_userdata
. I initially had the following line in my code:
encoded_userdata = base64.b64encode(day0_config_content.encode()).decode()
Removing that line entirely and just passing the raw JSON string directly worked:
day0_config_content = json.dumps(ftd_config, indent=4)
ftd_vm_create["vm_customization_config"] = {
"datasource_type": "CONFIG_DRIVE_V2",
"files_to_inject_list": [],
"fresh_install": True,
"userdata": day0_config_content,
}
After removing the Base64 encoding, the password started working correctly, and I was able to log in with the AdminPassword
provided in the Day 0 config.
Hope this helps someone else facing the same issue.
Qudos!
30 chracters, why?............
This is/was a bug. see https://github.com/quarkusio/quarkus/issues/47098. It has been fixed and released in https://github.com/quarkusio/quarkus/releases/tag/3.21.1
If you can't upgrade, a workaround exists. add the following to the application.properties file:
quarkus.arc.unremovable-types=io.quarkus.smallrye.reactivemessaging.rabbitmq.runtime.RabbitmqClientConfigCustomizer
quarkus.index-dependency.rabbitmq.group-id=io.quarkus
quarkus.index-dependency.rabbitmq.artifact-id=quarkus-messaging-rabbitmq
Thanks to ozangunalp and cescoffier for providing the answer.
No, that part is rendered by the browser and follows browser set fonts.
For the wsimport task, one can use the "disableXmlSecurity" argument.
Another option for a maintained package for this use-case: https://packagist.org/packages/wikimedia/minify
Thanks for this discussion, I am trying to the same for my application but I have to do this for several images sequentially, So I tried the same but in a for loop, for eg:
for i_ in range(2):
fig, ax = plt.subplots()
# ax.add_artist(ab)
for row in range(1,30):
tolerance = 30 # points
ax.plot(np.arange(0,15,0.5),[i*row/i for i in range(1,15*2+1)], 'ro-', picker=tolerance, zorder=0)
fig.canvas.callbacks.connect('pick_event', on_pick)
klicker = clicker(ax, ["event"], markers=["x"], **{"linestyle": "--"})
plt.draw()
plt.savefig('add_picture_matplotlib_figure_{i_}.png',bbox_inches='tight')
plt.show()
But i get the click functionality only for the last image. How can i get it done for all the images?
I know this is an old question, but recently I need to do something like this and didn't find a simple answer googling for it. And bothers me that I need to create solutions if UNPIVOT can be used for it in a simple way. So, I create 2 UNPIVOT group of columns with a value for each. I think is more readable and clean.
SELECT
UNPVT_GROUP2.*
FROM (
SELECT * FROM DB.SCHEMA.TABLE
) TBL UNPIVOT (
GROUP1_VALUE FOR GROUP1_NAME IN (COL_G1_01, COL_G1_02, COL_G1_03)
) UNPVT_GROUP1 UNPIVOT (
GROUP2_VALUE FOR GROUP2_NAME IN (COL_G2_01, COL_G2_02, COL_G2_03)
) UNPVT_GROUP2
WHERE
UNPVT_GROUP2.FILTER_COL = 'FILTERVALUE';
Remembering that you can only read the fields from the last UNPIVOT, in this case UNPVT_GROUP2. If you try to do something like UNPVT_GROUP1.COL1, you'll get an error message like: "The column prefix 'UNPVT_GROUP1' does not match with a table name or alias name used in the query."
I hope this can help someone with the same problem as mine. Cheers!
what is the js in the first comment before the html
Agree with @Nguyen above- I had this error across Mac and PC, simply restarting the kernel in Jupyter fixed it in both cases.
There is a thread for this bug in Apple Developer Forums: https://developer.apple.com/forums/thread/778471
The error states that in the view ShowRecoveryCodes.cshtml, ShowRecoveryCodesModel could not be resolved to a type or found in a namespace called ShowRecoveryCodesModel. Open the ShowRecoveryCodes.cshtml view and check the ShowRecoveryCodesModel reference.
grep -E '[a-zA-Z]*[[:space:]]foo' <thefilename> | grep -v '?'
I do see this post is quite old, but hope some of you might have an answer for this.
How can we realize the same functionality (display a graph, get clicked points and save it ) for several data sets in a loop. I did manage to do it for one graph but , when i use it in a loop, the python program shows the graphs but I am only able to click and get the points for the last iteration. I did try waiting for user input (via Input command) or putting a sleep after "
klicker = clicker(ax, ["event"], markers=["x"])
" but without any success.
Any leads is appreciated.
I had this same issue, and it turns out I needed to enable the Transaction Services API at the RVC level in Simphony EMC. Their documentation is here: https://docs.oracle.com/en/industries/food-beverage/simphony/19.8/simcg/t_sts_gen2_enable_option.htm
In summary:
Select the revenue center, click Setup, and then click RVC Parameters.
In the Parameters window, click Options.
In the Options section, select 74 - Enable Simphony Transaction Services Gen 2.
Click Save.
It took about 10 minutes before my calls started working after making this adjustment.
I discovered that if you turn off visibility of "level-crossing" under "Road Network" and then publish the style, this will remove the "X"s
See:
https://docs.janusgraph.org/index-backend/elasticsearch/#rest-client-basic-http-authentication
https://docs.janusgraph.org/operations/container/#docker-environment-variables
Combine these two documentation sections and create environment variables like:
janusgraph.index.search.elasticsearch.http.auth.type=basic
The system must be allowed to access the Firebase.
Instead of doing list comprehension, you could use also lambda functions along side map:
>>> mylist = [[1,2,3], 7, [4,5,6], [7,8,9], 5]
>>> list(map(lambda item: item if isinstance(item, list) else \[item\], mylist))
[[1, 2, 3], [7], [4, 5, 6], [7, 8, 9], [5]]
Sorry for necroposting.
DataTable destinationDT = sourceDt.DefaultView.ToTable(false, "columnName");
You can synchronize inline and popup completion in setting
general
inline completion
and check the last one synchronize inline and popup completions
have you updated the gradle version as well as the com.android.application version?
if not, this should allow you to do so:
go to android/settings.gradle and change this line to a more recent version:
id("com.android.application") version "8.7.0" apply false
then go to android/gradle/wrapper/gradle-wrapper.properties and change the version of this line:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
the lines I provide are already up to date for the new versions of flutter.
+1
I have the same issue (for a arm64 arch) and did not find a solution.
Happens for different IDEs (vscode, cursor, goland) so I assume the issue is with the go & dlv.
I also tried to install go with Homebrew, go website, and gvm. None solved the issue.
Damn it, after I posted it, I Just realized I'm using : , not =. Problem is solved.
Solved! I was measuring with the wrong fontfamily.
Now more or less it works
so yes the measuring routine is working properly
I think there is the potential to clean up the pervious answers even further, take a look: const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue); The arrow function simplifies the function declaration syntax plus there is no need to declare initialValue since we want to just get the sum of the elements from the array of numbers.
Unfortunately, you will find that the BigInteger Class was not built for purpose, and its Modulo arithmetic is as rouge as any secret agent. I built a bespoke application and turns out that not any amount of decryption will be correct after the 1st round. If a message is too long only the 1st round of encryption/decryption will yield accurate results. The longer the message unfortunately, the worse the performance. I tried to ask Oracle to rewrite the BigInteger class as it is flawed significantly, but could not reach them. For more information follow this link: https://www.martinlayooinc.com/Home/Product/checkRSA4096
Just speaking out of context. What I am missing? I am missing! self identity! My self? your self? His Self? their selves? There is a lot of selves in the dark with no correct connection! And What I am seeing is counter clock wise and the world is going clockwise and everyone is going 1 over! Meaning who was closest to God has probably lost their whole life! And everyone else is sitting one over and it was top heavy and flipped all the way over and the dark completely has domain in your whole life and Jesus the begotten can't even get anyone to see the truth because of all these set standards and not understanding begotten! and where this started. Why Saten is playing in Jesus family? because they forgot to stand up for Jesus and playing with the host of the developer instead in Jesus as Comic Books. Trashing who Jesus was. In otherwords.. Jesus(The person who gave up their family life as a Child) on the Street to help the ones Broken in too already. Made them his family. Showed them everything. And here comes that turn again and they forgot who showed them how to fix it. So now Jesus is looking at his/her real family as his/her children and something else is in the body of his/her children and now they want to put a label on Jesus as Crazy! and Jesus is really suffering because Jesus is hearing all this communication at once and cant get anyone to listen but can prove everything. so now it is no longer begotten , it is forgotten what they even did this for. .. Facts, Landmarks are moved. The bible in the United States is no longer studied or allowed in schools. Same as Prayer!.. The United States of America is the promised land and built on God! They started going the wrong way ...... from sovereign to goverment .. they went back to what we left from. Key points = federal lot# the dead! prohibition! Internet! = dead =media ... roming spirits waiting for you to give your child a device so it can have free dom in them since nobody remembers what God made America for! internet= sin! Facts! A whole married home! The couple has 2 children. They decide to get a computer for education. Father is gone to work working. Mom is at home bored and decides to check out her friends from school, gets on facebook. Father comes home mother shows father and he decides to do the same thing. Mom starts talking on chat to some old friends and a old boyfriend msgs her and tells her she looks good. Father sees the msg. Now you have hurt feelings, He reacts in the wrong way and starts talking to some ex girlfriends. Children are just abiding what is going on as they slowly learning the internet by watching mom and dad. Mom and dad are argueing. Mom is now feeling unpretty and starts comparing herself to these women. He has completely shut her out because he is getting attention from them and she is throwing her self at him but he doesn't like the argument or that is what he is stating as he walks in the door 2 hours late. She even excuses it because she is lacking her husband and her self esteem has hit bottom. She searches the computer and finds he has been getting on xxx sites. The couple seperates. She is left with the kids by herself. She is fully stressed and he doesn't do his part with the kids. Grandparents babysit and dad sends iphones for the kids for Christmas. Repeated process. like Simon Peter, Peter, repeater, Saten. You will deny me thrice when the crow crox. Communication... 2 ways. Copy that Roger. Houston, I think we have a problem. Did they forget their are 2 spaces before we start a Paragraph? Father, So n, and holy spirit. aka Corona virus. Something else is in God's place. Does anyone understand what I am saying?