If it’s only CSS, did you try applying a transparent cursor to both the html and body elements? Sometimes just targeting body isn’t enough, especially in fullscreen mode:
I did two steps, and it worked:
!pip install -U transformers huggingface_hub
from fpdf import FPDF
# Crea
| header 1 | header 2 |
|---|---|
| cell 1 | cell 2 |
| cell 3 | cell 4 |
te instance of FPDF class with UTF-8 support using DejaVu font
pdf = FPDF(format='A4')
pdf.add_page()
# Add DejaVu fonts for Unicode support
pdf.add_font('DejaVu', '', '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', uni=True)
pdf.add_font('DejaVu', 'B', '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf', uni=True)
# Title
pdf.set_font('DejaVu', 'B', 18)
pdf.multi_cell(0, 10, "सच्ची दुनिया और सच्चा इंसान", align='C')
pdf.ln(5)
# Body
pdf.set_font('DejaVu', '', 12)
content = """दुनिया को बदलने से पहले, हमें खुद को समझना सीखना चाहिए।
अक्सर हम सोचते हैं कि दुनिया बुरी है, लोग गलत हैं, किस्मत साथ नहीं देती —
लेकिन सच्चाई यह है कि दुनिया वैसी ही होती है, जैसी हमारी सोच होती है।
अल्बर्ट आइंस्टीन ने कहा था —
“जीवन का असली मूल्य इस बात में है कि हम दूसरों के लिए क्या करते हैं।”
जब हम दूसरों की मदद करते हैं, जब किसी के चेहरे पर मुस्कान लाते हैं,
तो वहीं से हमारी असली सफलता शुरू होती है।
ज्ञान या पैसा बड़ा नहीं होता — बड़ी होती है इंसानियत।
महात्मा गांधी ने भी कहा —
“सत्य और अहिंसा ही सबसे बड़ी ताकत हैं।”
उन्होंने अपने जीवन से सिखाया कि सच्चाई पर टिके रहना कठिन जरूर है,
पर अंत में वही जीतता है।
जो खुद के अंदर की बुराइयों से लड़ता है, वही सच्चा विजेता होता है।
हम सब इस दुनिया को जानना चाहते हैं —
लेकिन असली समझ तब आती है, जब हम अपने मन की दुनिया को पहचानते हैं।
जब हम गुस्से की जगह धैर्य चुनते हैं,
नफरत की जगह प्यार, और डर की जगह विश्वास —
तभी हम दुनिया को वैसा देख पाते हैं, जैसी वो सच में है — सुंदर, सच्ची और अवसरों से भरी।
इसलिए याद रखिए —
दुनिया बदलने की शुरुआत “आप” से होती है।
अगर आप थोड़ा बेहतर इंसान बन जाएं,
तो आपकी वजह से दुनिया भी थोड़ी बेहतर हो जाएगी। 🌞"""
pdf.multi_cell(0, 8, content, align='J')
pdf.ln(10)
# Author name at the bottom right
pdf.set_font('DejaVu', '', 12)
pdf.cell(0, 10, 'लेखक: P.K. Yadav 720', 0, 0, 'R')
# Save PDF
file_path = "/mnt/data/Sacchi_Duniya_aur_Saccha_Insaan.pdf"
pdf.output(file_path)
file_path
If you are working with RN cli, try to use react-native-startup-splash, this library is built using turbo modules and supports both platforms.
I found out the following way to solve the issue
__files/search-response-e.json
{{#assign 'page-size'}}20{{/assign~}}
{{#each request.query}}
{{#if (eq @key 'size')}}
{{#assign 'page-size}}
{{this}}
{{/assign~}}
{{/if~}}
{{/each~}}
Iterating over the request.query content doesn't include the size property when it's not sent as a query parameter. So it is possible to iterate over all elements in request.query, check if any of the keys matches the parameter {{#if (eq @key 'size')}} and then assign the value replacing the default one if the parameter is present.
It is a solution but it's also very verbose and weird to understand what it's doing at first glance. I would appreciate it if anyone knows a better and cleaner way to solve this.
I'd like to know if there is a way to push an SBOM and then using Dependency track's API by getting the uuid or the url of the SBOM that was pushed automatically ?
Because after pushing the SBOM to my Dependency Track instance, and then asking for:
/api/v1/project/lookup?name=ECU3D06&version=0.0.1
I get the following response:
Access to the specified project is forbidden
probably because this SBOM is not added to my Portfolio Access Control team ... Is there a way to add it to the latter automatically in the last version of Dependency Track ?
This topic is first on google so : official answer from isotope devs : https://github.com/metafizzy/isotope/issues/1216, remove all "transition all" for isotope item as it messes with isotope inner class.
Applications can regain continuity and consistency by restoring past configurations, data, and session information from the database.
In How to control significant digits, ONLY when necessary, in a Thymeleaf template? they find a workaround for the case that it is an integer:
<span th:text="${user.averageScore} % 1 == 0? ${user.averageScore} :${#numbers.formatDecimal(user.averageScore, 0, 2)}"/>
Try to use react-native-startup-splash, this library is built using turbo modules and supports both platforms.
best secure platform for mode app download: You can find genuine mod APKs on websites such as ApkPure, APKMirror, and Uptodown. All three of these sites offer a wide selection of mod APKs for various apps and games. Additionally, you can also find mod APKs on XDA Developers, which is a great source for Android-related content.
Another option is to move your VAT calculation into a global snippet and include it in both product-template.liquid and cart-template.liquid. This ensures the same VAT-inclusive price appears site-wide.
In which world do you expect a mod app to be secure? It’s like trying to give birth in outer space.
transformToByteArray internally assumes Node-style buffers. Convert stream to ArrayBuffer safely in Deno using something like:
const byteArray = new Uint8Array(await new Response(response.Body).arrayBuffer());
Instead of using request.query.size directly, you need to access it using the lookup helper on the query parameters map:
{{#assign "page-size"}}
{{#if (lookup request.query "size")}}
{{lookup request.query "size"}}
{{else}}
20
{{/if}}
{{/assign}}
For Android UI design in Photoshop, it’s best to start with a base canvas size matching the density bucket you’re targeting like mdpi (baseline 160 dpi) for 320x480 pixels. Design your layout there at 72 dpi resolution in RGB mode. Then create scaled versions for hdpi, xhdpi, xxhdpi, etc., by multiplying the base size accordingly (e.g., 1.5x for hdpi). This approach helps keep your design sharp across different screen densities and sizes. Also, follow Material Design guidelines for consistent spacing and typography. Keep your layers organized for easier scaling and export.
Go to Build Phases and remove Info.plist if there is one inside "Copy Bundle Resources" as your porject knows this already exist!
According to https://www.jidesoft.com/history/index.php#3.7.4 the bug was fixed in this version
The correct term is a Power User Interface (or sometimes an Expert-Oriented Interface).
These interfaces are optimized for efficiency and speed, not for ease of learning. They assume users are already familiar with the system, allowing fast command entry and minimal visual overhead.
Examples include command-line tools, airline reservation terminals, and advanced editors like Vim or Emacs.
🔹 Note: This is not the same as an Expert System, which refers to an AI system that simulates human expertise in a specific domain.
The term you’re looking for is often called a “power user interface” or “expert interface.” These UIs are designed specifically for users who need speed and efficiency, often using shortcuts, commands, or minimal visuals to get things done faster like command-line tools or pro software. It’s different from general user-friendly interfaces meant for beginners.
Downgrading pylance worked for me, I downgraded it to "2024.12.1". I suspect this problem is caused by the server version being too old.
function display_class_category() {
global $post;
// Make sure we are using the correct post in the loop
setup_postdata( $post );
$target_categories = array( 'bread', 'cake', 'brownie' );
$categories = get_the_category( $post->ID );
$output = '';
if ( $categories ) {
foreach ( $categories as $category ) {
if ( in_array( $category->slug, $target_categories ) ) {
$category_link = get_category_link( $category->term_id );
$output .= '<div class="link-cat">
<a href="' . esc_url( $category_link ) . '">' . esc_html( $category->name ) . '</a>
</div>';
}
}
}
wp_reset_postdata();
return $output;
}
add_shortcode( 'class_category', 'display_class_category' );
setup_postdata( $post ) ensures that WordPress functions like has_category() or get_the_category() reference the current post in the loop — not a leftover global value.
No return inside the loop — so you can correctly build $output for each category.
wp_reset_postdata() cleans up after the shortcode so it doesn’t mess with the rest of the loop.
<?php while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
[class_category]
<?php endwhile; ?>
Now each post in your archive should show the correct linked category (bread, cake, or brownie) according to its own category.
Would you like it to show only the first matching category, or all matching ones (if a post has multiple from that list)?
I faced the same issue. What I did was: Open Xcode → Settings → Components → Others, then install the required iOS simulators. After the installation, I got the simulator with Rosetta. Now I’m able to build the iOS app and run it on the Rosetta simulator without any issues.
enter image description hereenter image description here
I can use iOS 26 device for debugging after changing the flutter stable version to the master version, for complete details you can check here : https://github.com/flutter/flutter/issues/163984
Yes! I've been using sa-token-rust, which is a lightweight, high-performance authentication and authorization framework inspired by the popular Java sa-token library.
It provides everything you need in one cohesive framework:
✅ Complete authentication and authorization
✅ Multiple web framework support (Axum, Actix-web, Poem, Rocket, Warp)
✅ JWT with 8 algorithms (HS256/384/512, RS256/384/512, ES256/384)
✅ OAuth2 authorization code flow
✅ WebSocket authentication
✅ Real-time online user management and push notifications
✅ Distributed session for microservices
✅ Event listener system
✅ Security features (Nonce, Refresh Token)
✅ 7 token generation styles
✅ Production-ready with comprehensive tests
You state that you
need to install the source version of terra to use the INLA package (the binary version is not compatible).
That is almost certainly not true. Where did you get that idea?
If I do
install.packages("terra")
install.packages("INLA",repos=c(getOption("repos"),INLA="https://inla.r-inla-download.org/R/stable"), dep=TRUE)
All works as expected.
The reason that this is not working for you is that you are using an ancient version of Rtools and probably also of R.
using pysql instead of
mysql+mysqlconnector
I got around this by creating a meeting with the e-mail using respond with an event and then adding the event to one note. This way it works even with 5000 and above notes
I found that create-next-app installed Tailwind 3.x here in the fall of 2025, and as such, the steps above were helpful to upgrade to Tailwind 4.x. However, that alone was not sufficient.
My ultimate fix was to remove --turboback from this line in package.json:
"dev": "next dev",
Apparently, it skips Tailwind's preprocessing stages and doesn't handle @theme, @layer, or custom directives. And it injects only raw CSS imports.
I have created an iOS app in swiftUI to handle KML/KMZ files. They work swiftly with these files format and have created certain others features which might be useful during field survey. https://apps.apple.com/in/app/we-map/id6751641623
I found solution work for me. We have to handle inside iframe, not at parent website. The idea is: listen to wheel event of iframe document, if scroll position is top or bottom then preventDefault the wheel event. In my case, only div tag id message_list is overflow-auto, so I base on it to detect whether the scroll position is top or bottom. Hope this would help you all. My app is vue3 btw.
const handleWheel = (e) => {
try {
const el = document.getElementById('message_list');
if (!el) {
return;
}
const delta = e.deltaY;
const atTop = el.scrollTop === 0;
const atBottom = el.scrollTop + el.clientHeight >= el.scrollHeight;
if ((delta < 0 && atTop) || (delta > 0 && atBottom)) {
e.preventDefault();
}
} catch {
//
}
};
onMounted(() => {
document.addEventListener('wheel', handleWheel, {
passive: false,
});
});
onMounted(() => {
document.addEventListener('wheel', handleWheel, {
passive: false,
});
});
There are a few bugs in Swift 4.2.1 (2017) with Float80:
example: Float80(2.718281828459045312) truncates to Float64 then stores the inaccurate result in Float80 give the result: $R75: Float80 = 2.7182818284590450908.
Likewise let q:Float80 = Float80(2.718281828459045312) gives the result:q: Float80 = 2.7182818284590450908
The only way to get by that bug is by giving up on the Float80() method altogether: let q:Float80 = 2.718281828459045312 correctly gives the result: q: Float80 = 2.71828182845904531197
I had an underscore in my user name: user_q and that was making the making the rabbit upset.
Mustn't upset the rabbit
In my case, the issue was actually due to an incorrect keymap selected in the dropdown. You can also search for `Show Context Actions` to see what it is mapped to currently.
it's nice to meet you. I'm experiencing a similar issue. Have you found a solution yet?
in my case, It seems like the topology refresh is working correctly, but the connectionWatchdog keeps trying to reconnect with the old IP address.
My current settings are as follows:
enablePeriodicRefresh(true)
enableAllAdaptiveRefreshTriggers()
dynamicRefreshSources(true)
autoReconnect(true)
and, I am using DirContextDnsResolver for the dnsResolver
Perhaps try specifying which openssl you want to use during configure and make, i.e. to successfully install php from source on my mac I used:
# install missing requirements
brew install re2c libiconv pkg-config
# configure (you can change PATH for a single command without needing to change your ~/.bashrc or ~/.bash_profile)
PATH=/opt/homebrew/Cellar/bison/3.8.2/bin/:/opt/homebrew/opt/libiconv/bin/:/opt/homebrew/bin/:$PATH ./configure --with-openssl
# make the executable, then check you don't have any errors in the installation
PATH=/opt/homebrew/Cellar/bison/3.8.2/bin/:/opt/homebrew/opt/libiconv/bin/:/opt/homebrew/bin/:$PATH make
make test
# if there are no errors, install the software
make install
Does this approach solve your problem?
Environment variables like $POSTGRES_PASSWORD are only processed if the container initialization is running on an empty database directory; otherwise the users and passwords that were previously in the database state are kept, and no new users are created and no passwords are changed. You should clear the cache in the /data directory, I.e. the /data directory on the host; what is mounted on /var/lib/postgresql/data in the container.
PS: Thanks for @David Maze for posting the comment that finally worked as a correct answer! I’m not familiar with the community and can only pay tribute in this way :( If there’re proper ways to cite this, please inform me.
Try disabling Extensions and seeing of one of them is ruining your day. For me it was Atomineer.
I was able to approve tools by using the Agents interface within VS Code as described on this page: https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/develop/vs-code-agents-mcp
Never found a way to approve through the web UI.
I was unable to use the setup provided by @lightning_missile. Instead I manually wrapped the client like so:
class OpensearchAsyncClient:
def __init__(self, endpoint, region, access_key, secret_key, session_token):
self.endpoint = endpoint
self.signer = AWSV4Signer(
boto3.Session(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
aws_session_token=session_token,
).get_credentials(),
region
)
self.session = aiohttp.ClientSession()
async def make_request(self, method, path, params, body: Dict[str, any], timeout=30):
url = f"https://{self.endpoint}/{path.lstrip('/')}"
url_encoded = str(URL(url).with_query(params))
body_str = json.dumps(body)
headers = self.signer.sign(
method,
url_encoded,
body_str,
{'Content-Type': 'application/json'},
)
async with self.session.request(
method, url,
params=params,
json=body,
headers=headers,
timeout=timeout
) as response:
if response.status != 200:
res_json = await response.json()
raise ValueError(f"Unable to make request: {str(response)}: {res_json}")
response = await response.json()
return response
Unfortunate because this prevents using opensearch-py directly. Including the answer because it does make use of the constructs provided by it, and there is likely a way to inject an Http client into opensearch-py so that it works but i cannot find a method at the moment
I was able to do it by using custom layers on Nivo
aca el simon dice que anda piola nada que ver lo que decis
The problem is not the python script. I run the code under two different version of the same IDE, one displays perfectly fine and the newer version is distorted.
I think I’ve figured out the reason: the cloud mask function removes many images with clouds, which reduces the amount of available data. The availability also varies across different regions depending on cloud conditions. The code works if we retrieve one image from every two months instead of one.
FIGURED IT OUT. indeed, it was the matter of adding the right binary to the correct package manually (it didnt work when i just tried to add it straight to '.', i had to manually add it to casadi package).
this was done by adding the following line to .spec file under Analysis config:
binaries=[('venv/Lib/site-packages/casadi/_casadi.pyd','casadi')]
(.pyd is like a DLL designed for python)
thanks to @furas for pointing this out!
I was having the same issue while using an JDK Alpine image in the Build stage, and solve it by changing it to a regular JDK image, I was able to generate my docker container even with the ${os.detected.classifier} in the POM.
from:
FROM maven:3.9.9-eclipse-temurin-21-alpine AS builder
to:
FROM maven:3.9.9-eclipse-temurin-21 AS builder
the same image that is used in the project repository:
https://github.com/chrisblakely01/java-spring-microservices/blob/main/billing-service/Dockerfile
for anyone interested this is the project course video
https://www.youtube.com/watch?v=tseqdcFfTUY by Chris Blakely,
awesome course.
How can I update the capacity of a finetuned GPT model on Azure using Python?
The code wasn't working due to a bug on MSFT side. They fixed the bug last week, and as a result updating the capacity of a finetuned GPT model on Azure using Python is now working.
Sometimes it's just the add-in buttons that don't appear. Try opening PowerPoint online. On the Home ribbon, click the Add-ins button. If your add-in is on the flyout that opens, select it and the buttons should appear.
When you specify a Content-Type of application/x-www-form-urlencoded, the XMLHttpRequest API is expecting that your post data be formatted just like query parameters. i.e.: ip=val1&ua=val2&country=val3. The following code should post to your script by first encoding the FormData entries into a URLSearchParams instance, then exporting that to a string.
var data = new FormData();
data.append('ip', 'val');
data.append('ua', 'val2');
data.append('country', 'val3');
var xhr = new XMLHttpRequest();
xhr.open('POST', 'visitor.php?type=visitorControl', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var params = new URLSearchParams(data);
xhr.send(params.toString());
In addition to what @p-sampath mentioned, when working with Azure infrastructure, think about which layer to make changes in. If you have any infrastructure like Azure Application Gateway, Azure Front Door, or other reverse proxies/load balancers involved, it's likely they are the real and final server to the client. In that case, follow these steps [here](https://learn.microsoft.com/en-us/azure/application-gateway/hsts-http-headers-portal) to have your ApplicationGateway add a rewrite ruleset to inject the strict-transport-security header into the response for the https listener. Otherwise, any changes you make to the front end or the App Service settings directly don't even make it past the gateway to the client.
Finally found a way to exclude .js files from TypeScript checks.
You can add this rule in your settings.json file:
"js/ts.implicitProjectConfig.checkJs": false
Looking at the examples in the docs, it seems like you should omit the BearerToken in the Route environment type when you attach the middleware.
The warning appears in development (where dev keys are correct) but not in production (where dev keys are the actual problem). It only triggers when you're doing things right.
Also, if you make a warning that cannot be suppressed, people will just ignore it. Warnings need to be real, actionable issues—otherwise it's just noise that trains developers to tune out your messages.
Consider detecting the actual problem case (dev keys in production builds) rather than warning during normal development work.
This issue is really bugging me because I like a clean console!
Install the GraphQL app on your store and run your query. It's likely that you are exceeding the cost limit of the query and need to break it into smaller parts. The response comes back as empty with no error when I run it from Powershell, but in their app, it will actually tell why the query isn't working.
I have never seen an API silently fail like this. This has been maddening.
I just ran into a similar issue.
Instead of having something like this on your DTO:
#[Assert\Range(min: 0)]
#[Assert\NotNull()]
public float $price = null;
You can explicitly allow integers as well:
#[Assert\Range(min: 0)]
#[Assert\NotNull()]
public float|int|null $price = null;
Seems like the issue has been resolved in newer versions of React Native Executorch. You can give it a try, and if this won't work for you, please re-open the following issue on GitHub.
direction property<ScrollView horizontal style={{direction: 'rtl'}} contentContainerStyle={{flexDirection: 'row'}}>
<Item />
<Item />
<Item />
</ScrollView>
Give this a try:
from curl_cffi import requests
with requests.Session(impersonate="chrome") as session:
session.verify = False # Disable SSL verification
ticker = yf.Ticker(ticker=ticker_symbol, session=session)
This functionality has now been built into Positron: https://github.com/posit-dev/positron/pull/9324
Delete older version files from cache path. Worked for me.
Adding this as a help to anyone facing the same challenge:
WSO2 Identity Server supports Bcrypt from version 7.1.0 onwards. For IS 7.1.0, the support is provided through the Bcrypt Hash Provider Connector. You can find the configuration steps for this connector here: https://github.com/wso2-extensions/identity-hash-provider-bcrypt/blob/main/README.md.
Once the connector is set up, for this specific use case where the existing Bcrypt-hashed passwords need to be migrated, you can migrate the usernames and their corresponding password hashes directly into the WSO2 Identity Server user store schema using a carefully written database script. This way, users will be able to continue logging in with their existing passwords, and there’s no need to force a password reset flow.
If your migration scenario differs (eg: prompt users to reset their passwords), refer to the official WSO2 documentation for recommended migration approaches: https://is.docs.wso2.com/en/7.1.0/guides/users/migrate-users/
🗓️ হাঁস ও কয়েল পাখির ইনকিউবেশন ক্যালেন্ডার
তারিখ দিন কাজের বিবরণ হাঁসের অবস্থা কয়েলের অবস্থা
০৯ অক্টোবর দিন ১ হাঁসের ডিম ইনকিউবেটরে দিন শুরু —
১০–১৯ অক্টোবর দিন ২–১১ ডিম প্রতিদিন ৩–৪ বার ঘোরান, আর্দ্রতা ৫৫–৬০% রাখুন বিকাশ চলমান —
২০ অক্টোবর দিন ১২ (হাঁস) / দিন ১ (কয়েল) কয়েল পাখির ডিম ইনকিউবেটরে দিন বিকাশ চলমান শুরু
২১–২৭ অক্টোবর হাঁস দিন ১৩–১৯ / কয়েল দিন ২–৮ প্রতিদিন ডিম ঘোরান (দু’ধরনেরই) স্বাভাবিক বিকাশ বিকাশ শুরু
২৮ অক্টোবর–২ নভেম্বর হাঁস দিন ২০–২৫ / কয়েল দিন ৯–১৪ ডিম ঘোরানো অব্যাহত রাখুন ভ্রূণ সক্রিয় রক্তনালী গঠন
৩ নভেম্বর হাঁস দিন ২৬ / কয়েল দিন ১৫ কয়েলের জন্য ঘোরানো বন্ধ করুন, আর্দ্রতা ৭০% করুন ফাইনাল পর্যায় শেষ ধাপ
৪–৬ নভেম্বর হাঁস দিন ২৭–২৮ / কয়েল দিন ১৬–১৭ ইনকিউবেটর বন্ধ না করে রাখুন, পানি ট্রে পূর্ণ রাখুন বাচ্চা ফোটার সময় বাচ্চা ফোটার সময়
৬ নভেম্বর ২০২৫ — 🎉 হাঁস ও কয়েল দুটোই ফুটবে 🐣🦆 ফুটবে ফুটবে
import javax.cache.event.*;
import javax.cache.Cache;
public class JCachePutTraceListener
implements CacheEntryCreatedListener\<Object, Object\>,
CacheEntryUpdatedListener\<Object, Object\> {
@Override
public void onCreated(Iterable<CacheEntryEvent<?, ?>> events) throws CacheEntryListenerException {
for (CacheEntryEvent\<?, ?\> e : events) {
System.out.println("\[JCache\] CREATED key=" + e.getKey());
new RuntimeException("JCache PUT caller trace").printStackTrace();
}
}
@Override
public void onUpdated(Iterable<CacheEntryEvent<?, ?>> events) throws CacheEntryListenerException {
for (CacheEntryEvent\<?, ?\> e : events) {
System.out.println("\[JCache\] UPDATED key=" + e.getKey());
new RuntimeException("JCache PUT caller trace").printStackTrace();
}
}
}
import javax.cache.Cache;
import javax.cache.configuration.MutableCacheEntryListenerConfiguration;
import javax.cache.configuration.FactoryBuilder;
Cache<Object,Object> cache = cacheManager.getCache("yourCache");
MutableCacheEntryListenerConfiguration<Object,Object> cfg =
new MutableCacheEntryListenerConfiguration<>(
FactoryBuilder.factoryOf(JCachePutTraceListener.class),
null, // no filter
false, // old value not required
true // **synchronous** => runs on the caller thread
);
cache.registerCacheEntryListener(cfg);
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
from fpdf import FPDF
# Create a Word document for the assignment
doc = Document()
# Title and header section
doc.add_heading('Assignment: Preparing an Effective Job Description for Customer Service Executives', level=1)
doc.add_paragraph("Name: Ramavatar Godara")
doc.add_paragraph("Subject: Human Resource Management")
doc.add_paragraph("College: JECRC University")
doc.add_paragraph("Date: 12-10-2025")
# Situation section
doc.add_heading("Situation:", level=2)
doc.add_paragraph(
"A fast-growing e-commerce company is hiring new customer service executives. "
"The management observes that many new employees leave within a few months, stating that "
"the actual work differs from what they expected during hiring."
)
# Question section
doc.add_heading("Question:", level=2)
doc.add_paragraph(
"As the HR Manager, how would you prepare a clear and effective Job Description for the customer service executive role "
"to avoid such mismatches? What key elements would you include in the job description, and why?"
)
# Answer section
doc.add_heading("Answer:", level=2)
doc.add_paragraph(
"As an HR Manager, preparing a clear and effective job description is essential to ensure that potential candidates have a "
"realistic understanding of the role. This helps to align expectations, improve employee satisfaction, and reduce early resignations."
)
doc.add_heading("Steps to Prepare a Clear Job Description:", level=3)
steps = [
"1. Job Analysis: Study the duties of existing executives and consult team leaders.",
"2. Define the Purpose of the Role: Explain why the role exists and how it contributes to company goals.",
"3. List of Key Responsibilities: Handle queries, maintain records, and meet performance targets.",
"4. Required Skills and Qualifications: Communication skills, computer literacy, and calmness under pressure.",
"5. Work Environment and Schedule: Mention shifts, night duties, or remote work details.",
"6. Performance Expectations: Define measurable targets and behavioral expectations.",
"7. Growth Opportunities: Include potential promotions and learning opportunities.",
"8. Compensation and Benefits: State salary range, incentives, and other perks."
]
for step in steps:
doc.add_paragraph(step, style='List Number')
# Key elements table
doc.add_heading("Key Elements Included in the Job Description and Why:", level=3)
table = doc.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Element'
hdr_cells[1].text = 'Purpose'
elements = [
("Job Title & Summary", "Provides a quick understanding of the role."),
("Duties & Responsibilities", "Clarifies what the employee will actually do."),
("Required Skills", "Ensures candidates assess their own suitability."),
("Work Conditions", "Prevents misunderstandings about shifts or work type."),
("Performance Metrics", "Sets clear expectations for success."),
("Growth & Benefits", "Motivates and retains employees.")
]
for element, purpose in elements:
row_cells = table.add_row().cells
row_cells[0].text = element
row_cells[1].text = purpose
# Conclusion section
doc.add_heading("Conclusion:", level=2)
doc.add_paragraph(
"A well-structured job description acts as a communication tool between HR and employees. "
"It ensures that candidates fully understand the nature of their job, leading to better job satisfaction, "
"reduced turnover, and improved organizational performance."
)
# Save as Word document
word_path = "/mnt/data/HR_Job_Description_Assignment.docx"
doc.save(word_path)
# Convert to PDF (simple typed style since true handwriting fonts require local font files)
pdf_path = "/mnt/data/HR_Job_Description_Assignment.pdf"
pdf = FPDF()
pdf.add_page()
pdf.set_font("Times", size=12)
pdf.multi_cell(0, 10, txt="""
Assignment: Preparing an Effective Job Description for Customer Service Executives
Name: Ramavatar Godara
Subject: Human Resource Management
College: JECRC University
Date: 12-10-2025
Situation:
A fast-growing e-commerce company is hiring new customer service executives. The management observes that many new employees leave within a few months, stating that the actual work differs from what they expected during hiring.
Question:
As the HR Manager, how would you prepare a clear and effective Job Description for the customer service executive role to avoid such mismatches? What key elements would you include in the job description, and why?
Answer:
As an HR Manager, preparing a clear and effective job description is essential to ensure that potential candidates have a realistic understanding of the role. This helps to align expectations, improve employee satisfaction, and reduce early resignations.
Steps to Prepare a Clear Job Description:
1. Job Analysis: Study the duties of existing executives and consult team leaders.
2. Define the Purpose of the Role: Explain why the role exists and how it contributes to company goals.
3. List of Key Responsibilities: Handle queries, maintain records, and meet performance targets.
4. Required Skills and Qualifications: Communication skills, computer literacy, and calmness under pressure.
5. Work Environment and Schedule: Mention shifts, night duties, or remote work details.
6. Performance Expectations: Define measurable targets and behavioral expectations.
7. Growth Opportunities: Include potential promotions and learning opportunities.
8. Compensation and Benefits: State salary range, incentives, and other perks.
Key Elements Included in the Job Description and Why:
- Job Title & Summary: Provides a quick understanding of the role.
- Duties & Responsibilities: Clarifies what the employee will actually do.
- Required Skills: Ensures candidates assess their own suitability.
- Work Conditions: Prevents misunderstandings about shifts or work type.
- Performance Metrics: Sets clear expectations for success.
- Growth & Benefits: Motivates and retains employees.
Conclusion:
A well-structured job description acts as a communication tool between HR and employees. It ensures that candidates fully understand the nature of their job, leading to better job satisfaction, reduced turnover, and improved organizational performance.
""")
pdf.output(pdf_path)
(word_path, pdf_path)
Adding onClick events on div's generally not recommended
try to add role="button" on the div which yo want to make as clickable.
func loginButtonClicked() {
let loginManager = LoginManager()
loginManager.logOut()
loginManager.logIn(permissions: [.email], viewController: nil) { (loginResult) in
switch loginResult {
case .success(let grantedPermissions, _, let token):
self.returnUserData()
print("Success",token,grantedPermissions)
break
case .cancelled:
print("Cancel")
break
case .failed(let error):
print(error.localizedDescription)
break
}
}
}
Concurrency: execution of progressive parts of different processes through switching, where only one part can execute at the same time.
Parallelism: execution of progressive parts of different processes through switching, where multiple parts execute at the same time.
For deploying Medusa v2’s admin panel on Render, you typically need to build the admin frontend separately since it’s a React app that outputs static files like index.html. Render needs to serve these built files, so you should run the build command (usually npm run build in the admin folder) and point Render to the build folder as the static site root. If you’re only deploying the Medusa backend on Render, then yes—you’ll usually deploy the admin frontend separately (for example, on Vercel) to properly serve the React app. Your current repo likely only contains the backend, so having a separate frontend repo and deployment is recommended.
Thank you @masoudiofficial your hint was enough for me to get to a workable version for my use case, which seems to be responsive too.
/* Position the tooltip */
position: fixed;
top: 40%;
left: 50%;
transform: translate(-50%, -5%);
z-index: 80;
I had an issue while importing modules with lambda layer.
I was using macos, each time when I wanted a compressed image, I used GUI. It was the culprit in my case. When I changed to CLI, it worked like charm.
I have replaced it with
Video.setAudioDevice(NoiseCancellationAudioDevice(context))
https://www.twilio.com/docs/video/noise-cancellation#noise-cancellation-for-android
try flushing it, but you should stop the queue beforehand :
php artisan queue:flush && php artisan queue:clear
The nuget package MSTest.TestAdapter had a different version then MSTEST.TestFramework. Selecting the same version fixed it for me.
Is queue button customization supported? Can I change the queue button's icon or behavior in Android Auto?
The icon used for the queue button is determined by the Android Auto app and there's no way for you as a developer to change that.
Alternative approaches? Should I disable the built-in queue and implement a custom solution?
The main option for being able to customize your app's appearance and behavior would be to build your app using the Car App Library, as detailed in Build templated media apps for cars. Note that media apps built using the Car App Library are (at this time) only supported by Android Auto (and not Android Automotive OS) and can only be distributed to Internal Testing and Closed Testing tracks on the Play Store.
Everyone see current security vulnerabilities here
it might be late but a modern option can be <p style="white-space: pre-line;"></p>
reference: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
Use ASWebAuthenticationSession (system web view).
Through testing, we were able to determine that the problem was in the default value of the forward_origins parameter of the SELECT pglogical.create_subscription(...) procedure.
The documentation at https://github.com/2ndQuadrant/pglogical specifies that the forward_origins parameter identifies an "array of origin names to forward" and, by default, value is'{all}'.
In our tests, we set it to a null array '{}' and the replication works. Therefore, the correct subscription (in any direction) is:
SELECT pglogical.create_subscription(
subscription_name := 'sub_node1_to_node2',
provider_dsn := 'host=127.0.0.1 port=5432 dbname=dbtest02 user=postgres password=MyPAssword',
replication_sets := ARRAY['replication_set_a2'],
synchronize_structure := false,
synchronize_data := false,
forward_origins := '{}'
);
Since 2020, libmnl is available on debian through :
sudo apt install libmnl-dev
And eventually, libnftnl :
sudo apt install libnftnl-dev
Emulator
CLI wrapper was crashing; we created a direct launcher (startDataConnectEmulator.js) that runs reliably on port 9399 and outputs schema extensions and a generated SDK.
not an automated solution but i have been draggin ai through the mud on an app i'm building and i thought i'd share this with anyone still aving the issue. it seems to function as it shoul dnot from testing buyt my knowledge is limited.
I ran into the exact same issue and it appears to be related to VS Code's latest release (1.105, October 9, 2025).
The fix that worked for me was rolling back to an older version and disabling auto-updates for the time being.
In case someone else encountered this, After much troubleshooting and experimentation, I realised that KCL is not designed to work this way.
KCL will automatically scale your application by spinning up multiple threads in the same machine, based on the number of kinesis shards.
KCL is not designed to work directly with platforms auto scalling.
Setting up autoscalling on AWS will not help. For example, say you only have 5 shards, but the messages are a lot that your auto scalling spins up 10 more instances, only 5 of those instances will be used by KCL (1 per shard) while the rest of your spun up instances will be idle.
If the stream's thoroughput is still too high, auto scalling will continue provissioning until max number of instances but none will be useful.
If you can sacrifice a bit of lag, SQS is a better approach.
The roll must have the Lists -> Entity-Subsidiary relationship permission
Android's WebView has much stricter security policies than iOS's WKWebView when it comes to dynamic iframe creation. When JavaScript tries to create an iframe on-the-fly and inject it into the DOM, Android's WebView often blocks it silently. You'll see errors like:
"Kommunicate is not defined"
"Cannot access frame"
The iframe simply doesn't appear
JavaScript that should run inside the iframe never executes
Meanwhile, on iOS, the exact same code works flawlessly. Maddening, right?
1. JavaScript Interface Restrictions
Android WebView has tighter restrictions on JavaScript execution, especially when it involves:
Creating new window contexts (iframes)
Cross-origin communication
Dynamic script injection
DOM manipulation that creates new browsing contexts
2. Mixed Content Blocking
Even if your main content is HTTPS, if the iframe tries to load any HTTP resources, Android blocks it more aggressively than iOS.
3. WebView Settings That Matter
Android WebView has specific settings that need to be enabled for dynamic iframe creation to work. Missing even one can break everything.
Solution 1: Configure WebView Settings Properly
Here's the configuration that usually fixes it:
dart
import 'package:webview_flutter/webview_flutter.dart';
import 'package:webview_flutter_android/webview_flutter_android.dart';
class ChatWebView extends StatefulWidget {
@override
_ChatWebViewState createState() => _ChatWebViewState();
}
class _ChatWebViewState extends State<ChatWebView> {
late final WebViewController controller;
@override
void initState() {
super.initState();
controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(Colors.transparent);
// This is the crucial part for Android
if (controller.platform is AndroidWebViewController) {
final androidController = controller.platform as AndroidWebViewController;
androidController
..setMediaPlaybackRequiresUserGesture(false)
..setOnShowFileSelector((params) async {
// Handle file selection if needed
return [];
});
// Enable debugging to see what's happening
AndroidWebViewController.enableDebugging(true);
}
_loadHtmlWithWorkaround();
}
void _loadHtmlWithWorkaround() {
// Instead of loading a URL directly, load HTML with proper setup
final html = '''
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Security-Policy"
content="frame-src https://*.kommunicate.io https://widget.kommunicate.io;">
</head>
<body>
<script type="text/javascript">
// Add a delay to ensure WebView is ready
setTimeout(function() {
(function(d, m){
var kommunicateSettings = {
"appId": "YOUR_APP_ID",
"automaticChatOpenOnNavigation": true,
"popupWidget": true
};
var s = document.createElement("script");
s.type = "text/javascript";
s.async = true;
s.src = "https://widget.kommunicate.io/v2/kommunicate.app";
var h = document.getElementsByTagName("head")[0];
h.appendChild(s);
window.kommunicate = m;
m._globals = kommunicateSettings;
})(document, window.kommunicate || {});
}, 500); // Give WebView time to initialize
</script>
</body>
</html>
''';
controller.loadHtmlString(html);
}
@override
Widget build(BuildContext context) {
return WebViewWidget(controller: controller);
}
}
Solution 2: Use flutter_inappwebview Instead
Sometimes webview_flutter just won't cooperate. flutter_inappwebview often handles these cases better:
dart
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
class ChatWebView extends StatefulWidget {
@override
_ChatWebViewState createState() => _ChatWebViewState();
}
class _ChatWebViewState extends State<ChatWebView> {
late InAppWebViewController webViewController;
@override
Widget build(BuildContext context) {
return InAppWebView(
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
javaScriptEnabled: true,
useShouldOverrideUrlLoading: true,
mediaPlaybackRequiresUserGesture: false,
transparentBackground: true,
supportZoom: false,
disableContextMenu: true,
// This is important for iframes
allowFileAccessFromFileURLs: true,
allowUniversalAccessFromFileURLs: true,
),
android: AndroidInAppWebViewOptions(
useHybridComposition: true, // Often helps with complex web content
mixedContentMode: AndroidMixedContentMode.MIXED_CONTENT_ALWAYS_ALLOW,
domStorageEnabled: true,
databaseEnabled: true,
clearSessionCache: true,
thirdPartyCookiesEnabled: true,
allowContentAccess: true,
allowFileAccess: true,
),
),
onWebViewCreated: (controller) {
webViewController = controller;
_loadContent();
},
onConsoleMessage: (controller, consoleMessage) {
print("Console: ${consoleMessage.message}");
},
);
}
void _loadContent() {
// Load your HTML with Kommunicate script
webViewController.loadData(
data: _getHtmlContent(),
mimeType: 'text/html',
encoding: 'utf-8',
);
}
}
Solution 3: The Nuclear Option - Preload Everything
If dynamic creation keeps failing, preload the iframe in your HTML and just show/hide it:
html
<!DOCTYPE html>
<html>
<body>
<!-- Pre-create the iframe structure -->
<div id="kommunicate-widget-container" style="display:none;">
<iframe id="kommunicate-frame"
src="about:blank"
style="width:100%; height:100%; border:none;">
</iframe>
</div>
<script>
// Wait for everything to be ready
window.addEventListener('load', function() {
// Now initialize Kommunicate
// It should use the existing iframe instead of creating a new one
initializeKommunicate();
});
</script>
</body>
</html>
dart
AndroidWebViewController.enableDebugging(true);
Then open chrome://inspect in Chrome to debug the WebView.
xml
<!-- android/app/src/main/AndroidManifest.xml -->
<uses-permission android:name="android.permission.INTERNET"/>
Use Hybrid Composition (for flutter_inappwebview): This renders the WebView using the platform's native view system, which often fixes rendering issues.
Handle SSL Certificate Issues:
dart
onReceivedServerTrustAuthRequest: (controller, challenge) async {
// Only for development! Don't do this in production
return ServerTrustAuthResponse(
action: ServerTrustAuthResponseAction.PROCEED
);
}
Here's the truth: Android WebView is fundamentally more restrictive than iOS's WKWebView. Some third-party web SDKs just aren't designed with Android WebView's limitations in mind. If you've tried everything and it still doesn't work:
Contact the SDK provider (Kommunicate in this case) - they might have Android-specific integration instructions
Consider native integration - Use platform channels to integrate the Android SDK directly
Use a different approach - Maybe host the chat in a separate full-screen WebView instead of embedding it
The most frustrating part? The same code that works perfectly in a regular Chrome browser on Android won't work in Android's WebView. They're different beasts with different security models.
Pro tip: Always test WebView integrations on actual Android devices, not just emulators. Real devices sometimes behave differently, especially older Android versions (looking at you, Android 7-9).
You probably want to start by organizing your data. Whether that be sorting or whatnot.
This really depends on the domain of data you're looking at but you might also look into converting data to fixed width rows.
For example:
Dan , 22,Farmer
Carson ,-01,Scientist
A very efficient way to check for negatives now appears where you can just check the [12] and/or [13] index of every row for a '-'
Though, I suspect your issues probably have more to do with polynomial or exponential complexity rather than linear
Might be helpful to include some sample data.
Quick AnswerNo, those .pyc files you created on your x86_64 PC aren't secure, they're not the best fit, and they'll likely get recreated fresh on the ARM64 board—as long as Python can write to the file system there. The wonky system clock on the board could throw a wrench into that process, though.Digging Deeper1. Are .pyc Files from x86_64 a Security Headache on ARM64?Security worries with .pyc files aren't usually a big deal, since they're not like sneaky native code that could run wild. Let's break it down:
They're not actual machine code: .pyc files hold Python bytecode, which runs on the Python Virtual Machine (PVM), not directly on your CPU. The PVM on ARM64 can happily read and run bytecode made on x86_64—no problem there. The format is the same across platforms.
The real "risk" isn't what you might think: It's not about the board running some evil x86_64 instructions (it literally can't). Instead, the issue is that these old .pyc files are just extra baggage that could hide bugs. If something went wrong in your build and you end up with mismatched .pyc files that don't match your .py source code, you'll get weird, head-scratching errors later.
Bottom line on security: They won't let hackers take over your board like a bad binary might. But from a "is my software solid?" angle, they're like a mismatched puzzle piece—wrong and potentially misleading.2. Will They Get Updated on the ARM64 Board? (The Big Question)Yeah, they'll probably get rebuilt from scratch, and that's the key takeaway here. Python decides whether to use an existing .pyc or make a new one based on a few checks:
Does the .pyc file even exist?
Does its "magic number" match? (That's a little 4-byte tag at the start that says which Python version made it.) If you used the same Python version (like 3.9) on both machines, this is fine.
Is the .pyc newer than the .py source file? Timestamps are where things get messy, especially with your board's off-kilter clock.
Here's how it plays out:
Scenario A: Board's clock is right (or ahead of your build time). The .pyc looks old compared to the .py (which the board thinks is "recent"). Python says, "Outdated—time to remake it."
Scenario B: Board's clock is behind your build time (the sneaky one). From the board's view, the .pyc was made in the "future," so it's newer than the .py. Python goes, "Cool, I'll use this one," and skips regenerating. Boom—your code runs on outdated bytecode that doesn't match what you shipped. Debugging nightmare.
Pro tip: Don't trust timestamps for reliable builds. Always wipe the slate clean to avoid these gotchas.3. How Does the Wrong System Time Mess Things Up?Like I mentioned, a screwy clock can trick Python's "is this fresh?" check. It might make it reuse stale .pyc files when it shouldn't, or force unnecessary rebuilds. Either way, it's a recipe for frustration.What You Should Do: Tips and FixesYou're smart to worry about this—it's a common pitfall. Here's how to handle it:
I have the same problem on my website https://www.al7addad.com. Have you found a solution?
Java supports half-precision floats (Float16) natively since JDK 24, see https://docs.oracle.com/en/java/javase/24/docs/api/jdk.incubator.vector/jdk/incubator/vector/Float16.html
Although it's still an incubating feature.
After running the build commande, you should move to .medusa/server and then start.
or run this commande directly:
cd .medusa/server && npx medusa start
check documentation for reference: https://docs.medusajs.com/learn/build
Actually my full code will include checking statement to replace the customized text only to product items as below:
function custom_search_read_more_text( $more ) {
if ( is_search() ) {
global $post;
if ( 'product' === get_post_type( $post ) ) {
return ' <a class="more-link" href="' . get_permalink( $post ) . '">View Product</a>';
} else {
return ' <a class="more-link" href="' . get_permalink( $post ) . '">Read More</a>';
}
}
return $more;
}
add_filter( 'excerpt_more', 'custom_search_read_more_text' );
But as I tried just plain returning without the if, none of the above ever worked. So I simplified it here to make they read easier.
This is now possible (with GitLab >= 17.2). I quote the documentation:
you can [...] store the title of a wiki page in a front matter block before a page’s contents"
--- title: Page title ---
How did you solve the problem?
Try changing the post request call signature to this one (this is an example from my project):
It is working now, I was using the Test credentials instead of the Live credentials. I thought the live credentials were only required when using an actual WhatsApp Business number, not the sandbox.
The error usually means that credentials in the .npmrc file are missing or incorrect. I have encountered the error at work; probably, the login token has been invalidated. I have logged in to Sonatype Nexus Repository, regenerated it and copied it; but it still didn't work. Eventually I have discovered the following: the base64 representation of the user:password pair displayed by Nexus was wrong; it omitted the final padding '=' characters. I have manually converted the user:password string to base64 (there's an online utility where this can be done) and copied it to the .npmrc file; then the credentials started working again.
Manually delete /obj and /bin from the project folder.
<rule name="OnlyOffice_Proxy_Inbound" stopProcessing="true">
<match url="^onlyofficeapi/(.*)" ignoreCase="true" />
<serverVariables>
<!-- Nginx $the_prefix için -->
<set name="HTTP_X_FORWARDED_PREFIX" value="/onlyofficeapi" />
</serverVariables>
<action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" appendQueryString="true" />
</rule>
In this url rewrite rule i send /onlyofficeapi to prefix. ds-docservice.conf uses this prefix value and return true url.
I actually managed to figure this out. Apparently my first try was almost correct:
vi.mock("@/composables/ApiClient", () => ({
useApiClient: () => ({
apiClient // from the previous codeblock
})
}));
But instead of using the apiClient const, I needed to actually write everything open.
vi.mock("@/composables/ApiClient", () => ({
useApiClient: () => ({
apiClient: {
getSafe: vi.fn(() => ({
response: {
data: {
someData: "something",
otherData: "somethingElse"
}
}
}))
}
})
}));
Doing it this way the mock started to work. It looks horrible and I wish I could use some variables to make this look nice, but I guess it can't be helped.
You want to try out this?
SELECT
Columna,
Columnb,
Columnc,
CASE
WHEN (SELECT SUM(*) FROM YOURTABLE WHERE Columnb between 1 and Columnb - 1) < 6000 THEN Columnc
ELSE (SELECT 6000 - SUM(*) FROM YOURTABLE WHERE Columnb between 1 and Columnb - 1)
END AS Columnd
FROM YOURTABLE;
You must enable maximize by change this:
super("Puchase",false,true,false,true);
to:
super("Puchase",false,true,true,true);
Parameters of this:
// super(Title, Resizable, Closable, Maximizable, Iconifiable)