This is the response from Acumatica support:
"To enabling the editing, please change UI in the Site Map for all graphs showing the error to the Classic (from Default)"
Seems like you could create one Random instance and setSeed with the hashcode as often as required.
I think you need to remove the @Configuration annotation.
You can try:
namedLogger := logger.Named("[TEST-NAME]")
namedLogger.Infof("log message")
And you'll see:
2025-11-11T14:54:52.092+0100 info [TEST-NAME] log message
I often struggle with this thought. Unlike the others, the fn key does not send the signal to the operating system, but to the keyboard firmware, which then sends it to the operating system, so this cannot be simulated with pyautogui or the keyboard library with the "send("fn"+"5") command, because these cannot communicate with the keyboard, only with the operating system.
You need:
overflow:hidden;
Also in the parent and ancestor components which are flex, until the ancestor which sets the width.
I had gulp-cli globally installed in a different node version managed by nvm. So I needed to switch to this node version (nvm use) and globally uninstall the gulp-cli version there.
You can of course also update it there, but I wanted to have it in my new node environment, so I uninstalled, switched node version, installed gulp-cli again.
Unblock your FW as in FireWall or ask a system administrative group.
If this error is occurring in 25R2, this is the response from Acumatica support:
"To enabling the editing, please change UI in the Site Map for all graphs showing the error to the Classic (from Default)"
A solution has been found. Not quite straight, but clean. Instead of connecting via ODBC, you need to connect via ADODB and the settings for the column header work there.
$conn = new \COM("ADODB.Connection");
$file = 'C:\123.xlsx';
$sheet = 'Sheet1';
$conn->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$file;Extended Properties=\"Excel 12.0;HDR=No;IMEX=1\"");
$query = "
SELECT
*
FROM [{$sheet}$]
";
$rs = $conn->Execute($query);
$num_columns = $rs->Fields->Count();
for ($i=0; $i < $num_columns; $i++) {
$fld[$i] = $rs->Fields($i)->Value();
}
var_dump($fld);
Considering the SECR Book, or perhaps ipsecr simulation, which chapter(s) would we be fruitfully reading? It is unclear if this is capture/recapture of tagged contestants or merely capture within a given season from the description above. None caught in a given area/season but can be modelled sounds like adjusting a line of code for a given parameter within that area/season. Rats are always present in the sugar cane fields suggests a floor with captures perhaps indicating better and worse areas to raise one's family.
Docker-compose and named volume permission denied suggests that, if you RUN mkdir /xxx && chown "$APP_UID" /xxx the directory in the Dockerfile, then when Docker creates the named volume, it will inherit the mount point's permissions. Does that setup work for you here too?
On the Build Settings tab under the heading Packaging, there is a setting "Info.plist File". It should show <projectname>/Info.plist, where you have to replace <projectname> with your project name.
When manually adding Info.plist, Xcode may automatically add it to Build Phases "Copy Bundle Resources".
So you need to:
Add Info.plist
Check Build Phases & remove Info.plist from Copy Bundle Resources, if it appears there
Check Build Settings & add the path to Info.plist under Packaging.
Build to check
Regarding the error still showing after you removed Info.plist, it may help to do Product -> Clear All Issues, then Build.
Thank you GuiFalourd,
This is part of a large terraform infrastructure deployment, so the state file already has a lot of resource blocks to handle. So, for this isolated scheduled apply and destruction, in this case of an Azure Bastion Host, is there another method that won't cause state file issues?
from PIL import Image, ImageOps
# Load your cake image
img = Image.open("IMG_8181.jpeg")
# Create a white A4 background (A4 at 300 DPI: 2480 x 3508 pixels)
a4_bg = Image.new("RGB", (2480, 3508), "white")
# Resize the cake image to fit nicely on the A4
img.thumbnail((2000, 2000))
# Paste the image roughly in the center
img_w, img_h = img.size
a4_bg.paste(img, ((2480 - img_w)//2, 100))
# Save the final A4 sheet
a4_bg.save("saja_boys_A4_sheet.png")
print("A4 sheet created successfully!")
Thanks a lot for your post !
I had the same problem and couldn't understand ... As you, I commented the line "After" and it works ...
Why ? By now, I don't know ... multi-user.target means that the systemd-service will start when the system reach runlevel 2 ... I don't know why this line is here ...
After=network.agent should make sense , but I don't even need to put it
Multi-user .. I don't understand why it should be necessary ???
Anyay, it works ... 😊
<!doctype html>
<meta charset="utf-8">
<title>Alerta</title>
<style>
body{background:#000;color:#f00;font-family:monospace;text-align:center;margin-top:10%}
h1{font-size:3em;animation:blink 1s infinite}
@keyframes blink{50%{opacity:0}}
button{background:#f00;color:#fff;border:0;padding:12px;cursor:pointer}
</style>
<h1>⚠️ ¡VIRUS DETECTADO! ⚠️</h1>
<p>Tu sistema ha sido comprometido. Eliminando archivos en 3... 2... 1...</p>
<button onclick="alert('😅 Tranquilo, es solo una broma. No hay ningún virus.');document.body.style.backgroundColor='#0a0';document.body.innerHTML='<h1>✅ Todo está bien 😎</h1><p>Era solo un simulador de virus falso.</p>'">Detener virus</button>
<script>
setInterval(()=>{document.title='⚠️ VIRUS DETECTADO ⚠️ '+Math.random().toString(36).slice(2,7)},300)
</script>
just add width to your Y axis (for X axis one may add height)
yAxis={[{ label: "Lorem Ipsum", width: 80 }]}
You should likely implement a null object pattern.
so "static string[]" and not "static string[]?"
If you need a collection that can expand, then use List<string>
But most important, if something can be null at an interface to any external interface, wrap the handling logic in a nullObject pattern, and then let the program "do nothing" rather than send "nullable" values around. Likely the best option you have.
I wanted to know how to get table data from data verse to databricks
Apparently this is a recent issue with the newest SDK version, reverting to 2.41.1 fixes it.
If you want ListView to act like Column if scrolling is not needed, meaning drag gestures are not occupied unnecessarily:
ListView(
physics: const ScrollPhysics(),
),
This works (or it does not work by default), because the default scroll physics is AlwaysScrollableScrollPhysics for the primary and vertical ScrollViews.
This is the condition in the Flutter source code:
physics =
physics ??
((primary ?? false) ||
(primary == null &&
controller == null &&
identical(scrollDirection, Axis.vertical))
? const AlwaysScrollableScrollPhysics()
: null);
I've maybe a follow up question. Currently, the default OpenMP version in GCC 15.2.0 is still 201511 ... i.e. 4.5. Is there a way to change that?
LLVM allows for the flag -fopenm-version=60 for switching to OpenMP version 6.0. Despite ChatGPT's claim, gcc does not accept this command-line option.
Do you know how this can be accomplished in GCC? Does one have to change something in the sources and rebuild GCC? I've tried setting _OPENMP to 202111 e.g. in different places, and rebuild GCC. But without success, yet.
Any idea is very welcome.
Cheers, Martin
You're reading freed memory, so the behavior is undefined and you can't rely on the contents at all. Also, glibc has a known bug with M_PERTURB causing an off-by-sizeof(size_t) overwrite, so the expected pattern won't fully appear.
You need to issue a certificate that includes
subjectAltName=DNS:localhost (or your domain)
Modern browsers ignore CN and look in
subjectAltName
This cookie-button stuff is annoying, I developed a generalized popup-closer. have a look at the closepopup-routines
https://github.com/dornech/utils-seleniumxp/blob/main/src/utils_seleniumxp/webdriver_addon.py
is there a way to let multiple boards feed into a bigger one? For example the screenshot of Fabio where there is a "dev boards" and a "produto boards" that you can combine in a bigger board? Where tasks or epics from dev and produto are shown in the same board?
Apparently, Apple changed the API in favour of a new isEnabled parameter: tabViewBottomAccessory(isEnabled:content:).
In contrast to the documentation I couldn't find the new overload in iOS 26.1 SDK, but it seems to be available from iOS 26.2 Beta.
To make it work in GitHub, don't use BrowserRouter, use HashRouter instead.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dandy's World</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="app">
<!-- Content will be generated by JavaScript here -->
</div>
<script src="script.js"></script>
</body>
</html>
Removing all volumes, changing the compose file to this
services:
hellodocker:
image: hellodocker:latest
user: 1000:1000
volumes:
- file-data:/xxx:rw
environment:
- HELLODOCKER_VALUEFILE_FULLNAME=/xxx/file.txt
volumes:
file-data:
and then doing docker compose up doesn't seem to help.
Is this diffferent from the -v option?
Yes fs watch listens to hidden folders.
I was running custom logic in a file system watcher with recursive: true. Since my watcher also observed the .git folder, running Git commands inside the watcher created a feedback loop: the Git commands modified the .git folder, which triggered the watcher again, and so on.
Fix: Ignore changes in the .git folder:
const watcher = fs.watch(dir, { recursive: true }, (eventType, filename) => {
if (filename && (filename.startsWith(".git") || filename.includes(`${path.sep}.git`))) {
console.log("Git folder changed, ignoring...");
return;
}
throttledNotify();
});
Somewhere in throttledNotify i was running const stdout = await runGitCommand(["status", "--porcelain"], dir); which causes the infinite feedback loop
I do face the same issue in Chrome browser Version 142.0.7444.135 (Official Build) (64-bit)
Screenshot Devtools
Personaly I prefer mode type-controlled aproach
function* handleAuthUser({ payload: { fields, isRegister } }: ReturnType<typeOf startAuth>)
Ok, so, i'm coming here years later, because I had the same problem ("Formula Error: Unexpected operator '&'").
No real answer here, so I tried a few things, and...
I found that I had HTML entities in some cells, like "=&gpt;", and Excel gets it as a formula instead of a "standard string value".
My solution was to change my code from :
$this->Excel->getActiveSheet()->setCellValue($column . $row, $value);
to :
$this->Excel->getActiveSheet()->setCellValueExplicit($column . $row, $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);
And it worked. Maybe you have the same problem.
Be aware that this workaround only works if you don't WANT formulas in your Excel output, obviously.
This part of the code should work with a data set, as in the original example of comparing color data from the iris.txt file. Hence the NumberFormatException, because you are writing a string that will give an error when converted to a number. To work with words, use the Word2Vec method of the Deeplearning4j library. An example of comparing words with the source code is described DL4J NLP Word2Vec Java.
You don't actually need PCRE to identify offices documents. For example, PDF can be identified using this simple rule:
rule pdf {
strings:
$pdf = "%PDF-"
condition:
$pdf at 0
}
For other documents, since they are actually packaged inside zip archives, you could search for the zip magic at offset 0, and search for the document type identifiable paths as strings in you yara
Few things that you could try:
The Blender Python API provides access to the quadriflow_remesh function (Requires Blender, and a triangle mesh is needed as input)
https://www.hellotriangle.io/ You will need to split your 2D polygon and create patches of quads between pairs of line segments using the connect() method.
https://github.com/hjwdzh/QuadriFlow (Also requires a triangle mesh as input. Not a Python package, but you could run this as a subprocess)
I had the same issue and solved it by cloning the repository in a new empty folder, and then copying the .git folder created to the directory of my project. It worked perfectly.
I've encountered this problem on Python 3.12
It just helped to switch back to 3.10
I am aware of that, but this is also not under my control and I have to process what is being served 🤷♂️
I would strongly suggest to use
df.to_csv("mydata.csv", index=False)
this would display your data in a excel sheet
where df here would be the name of the data frame
When integrating with third-party manufacturing APIs or services, rate limits restrict the number of requests you can make in a given period. To handle these effectively:
Understand the Limitations
Review the third-party API documentation to know the exact rate limits (e.g., requests per minute/hour).
Implement Caching
Store frequently requested data locally or in a cache (like Redis or Memcached) to reduce repetitive API calls.
Use Rate Limiting / Throttling Logic
Implement a queue or delay mechanism to space out requests and avoid hitting the limit (e.g., exponential backoff or token bucket algorithm).
Monitor API Usage
Track request counts and responses to identify when you’re approaching the limit.
Handle Errors Gracefully
If a rate limit error (e.g., HTTP 429) occurs, retry after the suggested “Retry-After” time rather than immediately resending the request.
Batch Requests When Possible
Combine multiple smaller requests into a single batch API call if supported.
Request Higher Limits
For production or high-demand use cases, contact the API provider for increased quotas or enterprise plans.
Still not entirely sure why it happened here, but this solved it:
externalApi
.WithHttpsEndpoint()
.WithExternalHttpEndpoints()
.AddEnvironmentVariable("ASPNETCORE_URLS", "http://0.0.0.0:8080")
.AddEnvironmentVariable("DOTNET_URLS", "http://0.0.0.0:8080")
.AddEnvironmentVariable("ASPNETCORE_FORWARDEDHEADERS_ENABLED", "true");
Flutter now has an optionsViewOpenDirection option: https://github.com/flutter/flutter/pull/129802
Yes, Vuforia has some limitations compared to ARCore and ARKit. While it supports a broader range of devices and platforms, it relies more on image-based tracking and offers less advanced environmental understanding. ARCore and ARKit provide superior plane detection, light estimation, motion tracking, and depth sensing due to their tight hardware integration with Android and iOS. Vuforia’s performance can vary across devices, and its 3D object recognition is generally less accurate and slower. Additionally, some advanced features in Vuforia require paid licences, whereas ARCore and ARKit offer powerful capabilities for free within their ecosystems.
For MacOS, open the AppInfo.xcconfig file by following the path macos/Runner/Configs/AppInfo.xcconfig and edit the product name section.
PRODUCT_NAME = your_app_name
sorry miss click, but i dont know how can i change it
maybe it is with your tier. for instance I am on Usage tier 1, where I think I can make request 500/m. Check your tier
then, if you want, you can add logics.
I am having trouble to understand how a tooling quesitons like this one fits in a "open-ended question" format. If you post this as proper question, it will be more thouroughly reviewed and critizised, but eventually you would receive an answer rather than a endless thread of comments that might lead nowhere.
I am in the process of developing a python DataGridView that handles big datasets with easiness
Take a look if you want
pyDataGridView
Thanks @Jillian Hoenig for confirming this was resolved.
We have added an issue to our sprint to rewrite the Faust tutorial to use wp-env instead of wp-now - https://github.com/wpengine/faustjs/issues/2211
We feel this might be more reliable going forward for all systems. Additionally this is something we have used recently in our hwptoolkit examples.
I can let you know once this is implemented.
The value isn’t rendered because the Float32Array isn’t reactive in Svelte when mutated. You must assign a new instance (or use $derived) so Svelte detects the change and updates the display.
I thought since Yocto Project is a tool for building, it should be posted here.
The build has been published in the production track of the Play Store, and real purchases seem to work as expected, so it seems that's a requirement for real purchases to work.
I need a personal information code that works in Python. My personal information is: My name is Hadi Amin, my major is Business Intelligence, I am 21 years old, and my university ID number is 202316697.
<html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<center>
<h1>400 Bad Request</h1>
</center>
</body>
</html>
Recently, I happened to discover a safe way to do this in any language, though I’ve only tested it on Windows 11 25H2.
1 | ChkDsk.exe [Drive] /F /R
Personally, my OSTS files are stored in a SharePoint document library. I synchronized the related folder with my local OneDrive. I created a JS file with my content, and then I have a Power Automate Flow that detects changes on the file with extension .js and that will automatically convert it into a .osts format.
gotcha, yeah i was already using memtester for memory test, might need to look into xsensors
today = datetime.datetime.now()
future = today + datetime.timedelta(days=30)
you can add days with this model; first import the datetime Python package.
Start your career with 360DigiTMG’s Data Analyst Internship for Freshers. Learn SQL, Python, Excel, data visualization, and analytics while working on live projects and receiving expert mentorship. Placement support ensures practical skills for entry-level analytics roles.
I have the same issue, I have a dependency on an observable and I wanted to call toSignal in a way that it's not in a reactive context, so basically I wanted to have a withMethods with a private method returning the signalified observable to consume in the computed. There are some workaround but I think the methods defined in the withMethods should be available in the withComputed, there is plenty of other ways to do stupid things, this restriction is completely unnecessary.
So workaround 1:
withComputed(store => {
const yourMethod = () => { };
return {
yourComputed: computed(() => store.yourState() * yourMethod()),
};
}),
This works fine, but the method is only reusable if you define it as a function outside of the signalStore.
Workaround 2:
withComputed((store, yourService = inject(YourService)) => ({
yourComputed: computed(() => store.yourState() * yourService.yourMethod()),
})),
By extracting your dependencies to a separate injectable you can reuse the methods and it looks a bit nicer also. In this case the YourService needs to be provided (I mean a mocked version) if you are using the createSignalStoreMock from ngx-signals-plus (this is also true for the first workaround if that contains injection).
If I am not mistaken, you can put @Startup on your manager to have it perform eager initialization at startup. Else your container will decide when to initialize it
Overall, I want to implement a graceful shutdown for proper process handling, at least to send what's already been processed and set statuses so it doesn't have to be reprocessed on subsequent restarts. Ideally, this shouldn't take more than 5 seconds. I'm also just wondering what the best way to do this is. Many people simply use asyncio.all_tasks and cancel them, but that's fine if you don't have other libraries and only work with the tasks you're currently running.
I work within K8s, so I don't think there will be any SIGKILLs (they usually give 30 seconds for a graceful shutdown) or power outages.
You need to be a developer of "Microsoft 365 and Copilot" apps. When adding yourself as developer or editing an existing developer (https://partner.microsoft.com/en-us/dashboard/account/v3/organization/identity?publisher=true&panelOpen=AddPublisher-SelectProgram) choose the program "Microsoft 365 and Copilot".
It may take some time until the Office tab (now it is "Microsoft 365 und Copilot") appears at the offers page (https://partner.microsoft.com/de-de/dashboard/marketplace-offers/overview).
I hope this can help you fix your issue, sir - https://mui.com/material-ui/integrations/tailwindcss/tailwindcss-v4/#next-js-app-router :)
BTW, don't choose the "Tooling" tab, if you want "normal" Stackoverflow Q and A where you can earn reputation. Stick with the default "Debugging"
That's perfect. Thank you very much for your support. The tests show that it works.
Assuming this is Web app on Windows plan you should set netFrameworkVersion to value v8.0 and metadata to [{ "name": "CURRENT_STACK", "value": "dotnet"}]. I do not think windowsFxVersion is used in that case and it should be empty string. Note that you mention web app but your code says function app so it is unclear which is it. If it is for function app the same value is for netFrameworkVersion but metadata property is not needed for functions.
i need help with c programming....Is anyone here
ok, this suggestion removed the StackOverFlowError exception.
First of all inspect stack's _Change sets_. There might be one waiting to be executed.
You can try with LaunchedEffect in your LazyColumn.
And use snapTo , resetState animates again.
LaunchedEffect(item.id) {
dismissState.snapTo(SwipeToDismissBoxValue.Settled)
}
Thank you Barmar! This one is precious.
And there is no need to 'create/instantiate' the SomeManager in the constructor of the bean class?
It doesnt look like a DI issue but more of a code design issue. StartupBean produces your two MyImplementations, but it also needs to inject a SomeManager during construction, but this manager needs the two MyImplementations... I m guessing the init is not complete and there is some sort of circular dependency? I would just delete the StartupBean constructor since nothing happens there
Yes, absolutely, but the package deming with the function deming() does not use least squares it uses maximum likelihood estimation to find the best fit of coefficients. Therefore, I am trying to find a package which uses least squares and with the option of getting the regression through the origin.
Why at all do you use demjson3 ? Python and javascript have builtin JSON support.
You can resolve this issue by converting the tbl_hierarchical object to a standard gtsummary table using as_gt() or as_tibble() before merging. The “Zero rows” output causes incompatibility during stacking, so ensure each table has consistent structure (e.g., same columns) or use tbl_merge() after standardizing formats.
{"isLoggedIn":true,"uuidToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiY2Q3ODU4NWYzYmU3NDU1MDk0NzhmZjNmZWExMmQ3ZGEiLCJleHAiOjE3NjU0Mzg1NTJ9.oQ7DQZZVfHQ0bt-LNeiw7onBPFkGZqWW43p_e26UslU"}
Add 'preferCurrentTab: true' to the method. You can ignore the type error, since it seems to be a typing problem. This param is indeed correct!
navigator.mediaDevices
.getDisplayMedia({
video: true,
preferCurrentTab: true,
})
Pick a suitable way to style your polygon:
https://github.com/lclpedro/leaflet.pm?tab=readme-ov-file#customize-style
Then read the state from your color atom and use it.
The 400 error happens because the Agent Builder sends an incomplete message payload when the thread exceeds limits.
Keep conversations shorter or restart sessions to avoid truncating reasoning items.
Thank you very much. I understand now, and it makes sense. Could you post that as an answer?
You cannot make the type checker infer the return type from a runtime argument like rtype: type[T]. The type checker sees that both str and int are possible return types and cant guarantee which will be returned at call sites.
Why? TypeVar substitution only works when the type is known at type-check time, usually from the argument type, not its value.
How can it be done? Overloads
from typing import overload
VALUES: dict[str, str] = {"SIZE": "100", "ADDR": "0x100", "NAME": "potato"}
@overload
def get_parameter(parameter: str, rtype: type[int]) -> int: ...
@overload
def get_parameter(parameter: str, rtype: type[str]) -> str: ...
def get_parameter(parameter: str, rtype: type[str] | type[int] = str) -> str | int:
value = VALUES[parameter]
if rtype is int:
return int(value, 0)
return value
2. Yes, the overload works in Python 3.10 as long as youre using from typing import overload
3. Yes, the example above shows defaulting rtype to str, but you can default to int if you prefer:
def get_parameter(parameter: str, rtype: type[str] | type[int] = int) -> str | int:
# implementation...
However, the type checker will assume calls without rtype return int. You should add corresponding overload for that:
@overload
def get_parameter(parameter: str) -> int: ...
IDK if this helps you but I hope so - If it does not help you just downvote my answer or I can delete it if you want me to.
Have a great day.
PS: i dont know either why the downvotes xD
I use something like this in a @Configuration annotated class
@ConfigurationProperties(prefix = "some.prefix")
@ConditionalOnProperty(prefix = "enabled")
MyConfigProperties myConfigProperties() {
return new MyConfigProperties();
}
Check your active plugins, especially:
Jetpack (or Site Stats)
Any optimization plugin (e.g., Autoptimize, WP Rocket, LiteSpeed Cache, etc.)
Any custom performance or HTML minifier plugin
Temporarily disable optimization/minification and clear your cache.
Then reload your site and check the browser console/network tab:
If the malformed URLs disappear → the issue is from a minifier plugin.
If they remain → the issue is likely from Jetpack or theme code.
Check your theme footer (often in footer.php or similar):
Search for stats.wp.com or <script src="https://stats.wp.com
If you find a script tag with ' defer='defer in it, remove the extra ' after .js
web apps can download files, but they cannot automatically save them inside system folders like %AppData%
Prepare the PKG for Proper Installation (Key Step from Official Docs):
Copy the .pkg file from your publish folder (e.g., bin/Release/net8.0-maccatalyst/publish/) to a neutral location outside your project, like the Desktop.
In your project folder, delete the entire bin and obj folders. This removes any linked .app artifacts that could confuse the installer.
Double-click the copied .pkg to run the installer. It should now place the app in /Applications.
In my case, there was a existing rebase was in process which I didn't completed. I aborted that after that this issue resolved.
You can try to wrap your safeAreaView in a View give full backgroundColor to the view so it extends.
OR
You could try using -
const insets = useSafeAreaInsets()
and then apply the insets inside your LinearGradient like this -
paddingTop: insets.top
paddingBottom: insets.bottom
"assumeChangesOnlyAffectDirectDependencies": true,
added in tsconfig.node.json and it worked
add this <meta-data> tag inside the <application> tag in your AndroidManifest.xml
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />
You may want to plug in your questions into your favorite browser and see what comes up.
I don't think it is possible to use dataclasses.
Lists do work
list_temp = [1, 2, 4, 8, 16, 32]
list_press = [1, 3, 9, 27, 81, 243]
sns.lineplot(data={'Temperature': list_temp, 'Pressure': list_press})
You can also nest the lists ...
hourly_reading = [list_temp, list_press]
sns.lineplot(data=hourly_reading)
... however you lose the series names. In the legend they will appear as generic index numbers (0, 1, 2 ...)
Dictionaries work quite well
met_dict = {"Temperatures": list_temp, "Pressures": list_press}
sns.lineplot(met_dict)
You can set workbook.default_format_properties in 2 ways:
When you create workbook, set the 'options' parameter:
wb = Workbook(options={'default_format_properties': {'font_name': ...., 'font_size': ....}})
After workbook created, before add_format(), set the 'default_format_properties' property:
wb.default_format_properties = {'font_name': ...., 'font_size': ....}
I created the design without external packages by extracting and customizing the necessary shape from the convex_bottom_bar package for my bottom navbar.
Full Code:
import 'dart:math' as math;
import 'package:flutter/material.dart';
class ConvexNotchedRectangle extends NotchedShape {
/// The corner radius of the top-left and top-right edges of the bar.
final double radius;
/// Create a convex notched rectangle with optional rounded top corners.
const ConvexNotchedRectangle({this.radius = 0});
@override
Path getOuterPath(Rect host, Rect? guest) {
if (guest == null || !host.overlaps(guest)) {
// If there’s no overlap or no guest (FAB), just draw a normal rectangle.
return Path()..addRect(host);
}
// The guest (FAB) is circular, bounded by the guest rectangle.
final notchRadius = guest.width / 2.0;
// These control the smoothness of the convex curve.
const s1 = 18.0;
const s2 = 2.0;
final r = notchRadius;
final a = -1.0 * r - s2;
final b = host.top - guest.center.dy;
// Compute control points using Bezier curve math
final n2 = math.sqrt(b * b * r * r * (a * a + b * b - r * r));
final p2xA = ((a * r * r) - n2) / (a * a + b * b);
final p2xB = ((a * r * r) + n2) / (a * a + b * b);
final p2yA = -math.sqrt(r * r - p2xA * p2xA);
final p2yB = -math.sqrt(r * r - p2xB * p2xB);
final p = List<Offset>.filled(6, Offset.zero, growable: false);
// p0, p1, and p2 are control points for the left side curve
p[0] = Offset(a - s1, b);
p[1] = Offset(a, b);
final cmp = b < 0 ? -1.0 : 1.0;
p[2] = cmp * p2yA > cmp * p2yB ? Offset(p2xA, p2yA) : Offset(p2xB, p2yB);
// p3, p4, and p5 are mirrored on the x-axis for the right curve
p[3] = Offset(-1.0 * p[2].dx, p[2].dy);
p[4] = Offset(-1.0 * p[1].dx, p[1].dy);
p[5] = Offset(-1.0 * p[0].dx, p[0].dy);
// Translate all control points to the FAB’s center position
for (var i = 0; i < p.length; i++) {
p[i] = p[i] + guest.center;
}
// Build the final path with optional corner radius
return radius > 0
? (Path()
..moveTo(host.left, host.top + radius)
..arcToPoint(
Offset(host.left + radius, host.top),
radius: Radius.circular(radius),
)
..lineTo(p[0].dx, p[0].dy)
..quadraticBezierTo(p[1].dx, p[1].dy, p[2].dx, p[2].dy)
..arcToPoint(
p[3],
radius: Radius.circular(notchRadius),
clockwise: true,
)
..quadraticBezierTo(p[4].dx, p[4].dy, p[5].dx, p[5].dy)
..lineTo(host.right - radius, host.top)
..arcToPoint(
Offset(host.right, host.top + radius),
radius: Radius.circular(radius),
)
..lineTo(host.right, host.bottom)
..lineTo(host.left, host.bottom)
..close())
: (Path()
..moveTo(host.left, host.top)
..lineTo(p[0].dx, p[0].dy)
..quadraticBezierTo(p[1].dx, p[1].dy, p[2].dx, p[2].dy)
..arcToPoint(
p[3],
radius: Radius.circular(notchRadius),
clockwise: true,
)
..quadraticBezierTo(p[4].dx, p[4].dy, p[5].dx, p[5].dy)
..lineTo(host.right, host.top)
..lineTo(host.right, host.bottom)
..lineTo(host.left, host.bottom)
..close());
}
}
BottomAppBar(
padding: EdgeInsets.zero,
color: Colors.white,
shape: const ConvexNotchedRectangle(),
notchMargin: 8,
elevation: 0,
clipBehavior: Clip.antiAlias,
child: SizedBox(
height: 88,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
_buildNavItem(0),
_buildNavItem(1),
_buildNavItem(2),
_buildNavItem(3),
_buildNavItem(4),
],
),
),
),
I was finally able to get it to work by encoding the String to : Base64.NO_WRAP
This was accepted in the Retrofit Header
really related? why do you have .gitignore file in strapi directory? because i have the same issue and do not have .gitignore file in the server.