Yes, you can include formatting hints in your JSON response by adding metadata. For example:
{ "value": 5, "format": { "backgroundColor": "red" } }
Your frontend can read this and style the cell accordingly. Avoid sending actual functions in JSON — instead, send conditions or flags the frontend can interpret.
If you need to format or clean your JSON for testing, this JSON Formatter tool is quite handy.
InetAddress.getLocalHost() does not always give the correct IP. Use a method that checks network interfaces
Make sure firewalls are not blocking it
Make sure you're on the same local network
Finally, use the correct IP and port of the other party to establish a connection
I feel like this should be a very simple thing to do but my knowledge of unity is not great
If you need any more information please ask!https://dev-myservice123.pantheonsite.io/
And thank you in advance for helping.
TO BETTER KNOW
Okay for any one else that has this problem.
When I generated the tile based on the sprite it set the flag dropdown to "Lock color" which made it unchangeble...
setting this to "none" ficed my problem
I think you can do this just by using a plugin called Uncanny Automator it’s awesome! I had been searching for a solution like this for over 3 months. With this plugin, you can create a recipe where you set a trigger and an action. For example: if a user passes an exam, the plugin can automatically mark a specific course or lesson as completed, and much more.
The free version already includes a lot of useful options, and some of you might consider upgrading to the pro version for additional features.
Please let me know if this helps! I’m also still searching for a way to mark courses as complete for users who already passed an exam in the past but didn’t open the lessons, so they aren’t being marked as complete.
You can refer to this topic and reply either here or there. Thanks for your help!
we can do without presist midlleware also like make custom middleware for the fetching data form backend and its use in the redux like when the user relaoding or the redux state will lost time it wil automatically run through the help of he useffect and dispatch the credential to the redux state also .
This is one of my opinion you can reserch about and you can implement by your logic
I also had the same issue. Finding which plugin was causing this was tough so i just switched from php 8.2 to 8.1 and the error went away.
Seem not problem, but we use Telegram.WebApp.initData, you can check what's the difference between 'initData' and 'initDataUnsafe'.
All hex value from 0% to 100% alpha, You can set any color with alpha values mentioned below link.
Add as bookmarks ,if helpful for all the color Alpha or Opacity .
100% working .
Go to extension (ctrl+shift+X) and search for GitHub Copilot and uninstall it. Note that just disabling do not work , you have to uninstall it and reopen the vs code .This will definitely work.When ever you want it you can easily download
The ffmpeg command
ffmpeg -i sample.mp4 -vf "crop=496:279:0:0,setdar=16/9" output.mp4
only keep DAR 16:9 ,height will be converted to 278 ,SAR converted to 278:279.
Setting resolution as 480*270 can keep all arguments unchanged:
ffmpeg -i sample.mp4 -vf "crop=480:270:0:0,setdar=16/9" output.mp4
Now SAR=1:1 ,DAR=16:9.
Overflow-y - Set this to scroll, this handles the column site and makes the breaking on the vertical site work.
Overflow-x - Set this also to scroll. This is even more important as it is main reason the media breaks when the width is smaller that it can handle.
Note: The overflow-x being set in CSS on the local host is visible, but on the GitHub pages/site, it renders perfectly.
Update:
I found this exact bug marked as solved in .net maui 9 release notes, so the solution was migrate the whole application from .net8 to .net9 and the bug magically disappeard
If you have pip install alembic done correctly which can be verified using pip show alembic , then do it from the terminal / cmd , sometime the console of the third-party application like vscode,intellij or others acts wierd.
You're right to investigate this—an 8-second initial load time is definitely on the high side for a Blazor Server app, even with EF Core.
Even though you're warming up the DbContext, that only helps with one part of the cold start. EF Core model building typically takes less than 1.5 seconds, so the remaining delay likely comes from other parts of the application.
Here are a few things to consider:
Blazor Server Cold Start
Blazor Server apps need to initialize SignalR connections, Razor components, and set up dependency injection. These steps can add a few seconds, especially during the first request after deployment or application pool recycling.
EF Core Model Precompilation
Instead of building the EF model at runtime, you can pre-compile it during build time to reduce startup time. This is available in EF Core 7 and above.
Logging Can Help
Try enabling detailed logging during startup to see which parts are taking time. That might help you isolate whether it’s SignalR, dependency injection setup, or something else.
ReadyToRun Compilation
If you’re running the app from source or in development mode, just-in-time compilation can also cause delays. Publishing with ReadyToRun enabled (available in .NET publish options) can help reduce this.
Check for Auto-Migrations
If EF Core is applying database migrations on startup, that can add significant delay. Make sure migrations are not triggered automatically unless that’s expected.
To summarize, warming up the DbContext is a good move, but it's only part of the picture. The rest of the delay is likely due to app-level startup costs, not just EF Core. Pre-compiling the EF model, enabling detailed logging, and trying ReadyToRun publish can all help narrow this down.
Set the line width before rendering
system("Rscript -e \"require(rmarkdown); options('width'=100); rmarkdown::render('test_rmarkdown.Rmd', 'html_document')\"")
There's nothing to blame. knitr is doing a nice thing and avoiding overriding width on its own.
Perhaps the blame should be on the default value of width in R. It is 72.
If nothing works, simply hide scroll bar using css.
<style>
body{
overflow-x: hidden,
}
</style>
i'm using python, and I reverted mcp lib back to v1.8.1 and the client session initialization works, something changed between 1.8.1 and 1.9.0, not sure what was it. I noticed response code was 200 OK (v1.9.*) vs. 202 ACCEPTE (in v1.8.1).
Renaming the extension to .gif solved the problem for the windows image viewer. Windows image viewer specifically seems to honor the extension rather than signature markers.
But why we need to explicitly add
import static com.github.tomakehurst.wiremock.client.WireMock.*;
Isn't adding wiremock dependency to pom.xml enough
Can some one clarify
@hero-truong/adminjs-relation — it's free and allows overriding components in AdminJS. It might help with customizing relation fields or forms. Make sure to check the documentation for integration.
Use s3-upload-stream with SDK v2, set the part size to ~10MB–50MB (tunable), and pipe your input stream directly.
I would recommend having a separation of principle. Here is a simple structure to start from.
Controller: Receives your DTO e.g. "Book".
Mapper: Translates a DTO to a DAO, later you can also a Sanitizer somewhere at this level.
Repository: Saves into db. e.g. dao.insertBook().
Controller should be a simple interface to declare the endpoint at best it should even do some exception handling. Inserting your DTO as a DAO can cause some issues, security wise especially.
Seems like Plotly doesn't support chart selection the way I would like to, and I have to use HTML Canvas, but that's not really a problem. I just grouped the charts together with Plotly's subplots and created a Canvas above the whole chart. Since I know where the user clicks and where the diagrams are, it's not too hard to calculate the maths needed and draw the rectangles on the Canvas accordingly. May have performance issues with a larger data set and multiple subplots, but that needs further investigation. The idea is basically this and the question is solved.
Make sure the useRouter is from next/navigation and not from next/router.
If that doesn't work, try using a Link element to trigger the modal, perhaps the router.push doesn't work.
This function doesn't look like usual React. It is taking a parameter (src), not an object ({src})
export default function Thumbnail(src){
Try changing it to
export default function Thumbnail({src}){
I think you can do this just by using a plugin called Uncanny Automator it’s awesome! I had been searching for a solution like this for over 3 months. With this plugin, you can create a recipe where you set a trigger and an action. For example: if a user passes an exam, the plugin can automatically mark a specific course or lesson as completed, and much more.
The free version already includes a lot of useful options, and some of you might consider upgrading to the pro version for additional features.
Please let me know if this helps! I’m also still searching for a way to mark courses as complete for users who already passed an exam in the past but didn’t open the lessons, so they aren’t being marked as complete.
You can refer to this topic and reply either here or there. Thanks for your help!
If there is a way to do this, it is to reverse the elements of the list. So put first item to last position then remove it from top when scroll down and put last item to the top then remove it from last. Actually this method usefull for symetric lists. because user not to notice item changes.
package repositories
import (
"context"
"go.temporal.io/sdk/workflow" // @TODO: remove this
)
type WorkflowClient[C interface{}, T interface{}, U any] interface {
Connection() C
Connect() error
ExecuteWorkflow(ctx context.Context, options T, workflow interface{}, args ...interface{}) (U, error)
ExecuteChildWorkflow(ctx workflow.Context, workFlow interface{}, args ...interface{}) workflow.ChildWorkflowFuture
}
without any library? the closest I can think of is writing PTX assembly by hand, and using system calls to send it directly to the GPU. It can be quite an adventure.
This error usually means that code file is running in background . To fix this issue close currently the running programs or restart the eclipse ide or clean the project ( goto project -> clean) or run the ide in administration mode may be it's fixed.
We have here an asp.net 3.5 application using NTLM based windows authentication.
Use a custom loss function
Only compare the model's prediction to the real values at the 15 pixels, and leave the rest.
Keep your CNN simple
Use a few convolution layers (e.g., 2 or 3) with ReLU. Since your problem is small, you don’t need anything to complicate it.
Train it to focus
Make sure the model is trained to only care about the 15 pixels that are "on". Pass the binary mask to guide where it should look.
If the client is giving cannot connect errors, try using
https://<youreserver>:8089/
and accept self signed certs. I was using self signed certs.
Your S3 bucket needs a CORS (Cross-Origin Resource Sharing) policy to accept uploads directly from your app. Make sure this is configured correctly in your bucket's permissions.
Ragfist AI Ultra Full Final Master Code
By Piyush Singh 💠
import os
import json
import time
import threading
import cv2
import face_recognition
import pyttsx3
import speech_recognition as sr
import openai
import pkg_resources
from cryptography.fernet import Fernet
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.graphics import Color, Ellipse
import subprocess
GPT-4o API Key (Replace with your key)
openai.api_key = "sk-proj-Your-API-Key"
Window.clearcolor = (0.05, 0.05, 0.1, 1)
class OrbAvatar(Widget):
def init(self, **kwargs):
super().init(**kwargs)
self.intensity = 0.4
self.emotion = 'neutral'
Clock.schedule_interval(self.animate_orb, 0.05)
def set_emotion(self, emotion):
self.emotion = emotion
def animate_orb(self, dt):
self.canvas.clear()
colors = {
'happy': (0.3, 1, 0.5),
'angry': (1, 0.2, 0.2),
'sad': (0.2, 0.4, 1),
'neutral': (0.2, 0.7, 1)
}
glow = colors.get(self.emotion, (0.2, 0.7, 1))
self.intensity += 0.02
if self.intensity \> 1: self.intensity = 0.3
with self.canvas:
Color(\*glow, self.intensity)
size = min(self.width, self.height) \* 0.6
Ellipse(pos=(self.center_x - size/2, self.center_y - size/2), size=(size, size))
class RagfistCore(BoxLayout):
def init(self, **kwargs):
super().init(orientation='vertical', padding=20, spacing=10, **kwargs)
self.engine = pyttsx3.init()
self.recognizer = sr.Recognizer()
self.label = Label(text="🎤 Ragfist AI: Voice Activation Ready", font_size=24, color=(1,1,1,1), size_hint=(1, 0.15))
self.orb = OrbAvatar(size_hint=(1, 0.4))
self.add_widget(self.label)
self.add_widget(self.orb)
self.owner_name = "Piyush"
self.owner_image = "owner.jpg"
self.memory_file = "memory.json"
self.key_file = "key.key"
self.user_file = "users.json"
self.permissions = {}
self.active_user = None
self.features = {
"ब्राउज़र खोलो": self.open_browser,
"ब्लूटूथ ऑन": self.bluetooth_on,
"ब्लूटूथ बंद": self.bluetooth_off,
"व्हाट्सएप खोलो": self.open_whatsapp,
"यूट्यूब खोलो": self.open_youtube,
"गैलरी खोलो": self.open_gallery,
"फाइल्स खोलो": self.open_files,
"संगीत चलाओ": self.open_music,
"कॉन्टैक्ट्स खोलो": self.open_contacts,
"कॉल लॉग खोलो": self.open_call_logs,
"एसएमएस खोलो": self.open_sms,
"कैलेंडर खोलो": self.open_calendar,
"स्मृति बताओ": self.show_memory,
"याद दिलाओ": self.set_reminder,
"टाइमर सेट करो": self.set_timer,
"ऐप्स दिखाओ": self.list_installed_apps,
"फीचर्स बताओ": self.list_features
}
self.load_keys_and_memory()
self.face_verify()
Clock.schedule_once(lambda dt: self.start_voice_loop(), 2)
def speak(self, text):
self.label.text = f"🧠 {text}"
self.engine.say(text)
self.engine.runAndWait()
def detect_emotion(self, text):
if any(w in text for w in \["खुश", "मजा", "बढ़िया"\]): return 'happy'
if any(w in text for w in \["गुस्सा", "नाराज़"\]): return 'angry'
if any(w in text for w in \["थका", "नींद"\]): return 'sad'
return 'neutral'
def load_keys_and_memory(self):
if not os.path.exists(self.key_file):
self.key = Fernet.generate_key()
with open(self.key_file, "wb") as f: f.write(self.key)
else:
with open(self.key_file, "rb") as f: self.key = f.read()
self.fernet = Fernet(self.key)
if os.path.exists(self.memory_file):
try:
with open(self.memory_file, "rb") as f:
self.memory = json.loads(self.fernet.decrypt(f.read()).decode())
except: self.memory = {}
else: self.memory = {}
if os.path.exists(self.user_file):
try:
with open(self.user_file, "rb") as f:
self.users = json.loads(self.fernet.decrypt(f.read()).decode())
except: self.users = {}
else: self.users = {}
def save_memory(self):
with open(self.memory_file, "wb") as f:
f.write(self.fernet.encrypt(json.dumps(self.memory).encode()))
def save_users(self):
with open(self.user_file, "wb") as f:
f.write(self.fernet.encrypt(json.dumps(self.users).encode()))
def face_verify(self):
self.speak("पहचान सत्यापित की जा रही है...")
video = cv2.VideoCapture(0)
ret, frame = video.read()
video.release()
if not ret:
self.speak("कैमरा नहीं चला")
exit()
try:
unknown_encoding = face_recognition.face_encodings(frame)\[0\]
for name, image_file in self.users.items():
if not os.path.exists(image_file):
continue
known_image = face_recognition.load_image_file(image_file)
known_encoding = face_recognition.face_encodings(known_image)\[0\]
match = face_recognition.compare_faces(\[known_encoding\], unknown_encoding)
if match\[0\]:
self.active_user = name
self.speak(f"स्वागत है {name}!")
if name == self.owner_name:
self.permissions\["full_access"\] = True
else:
self.permissions\["full_access"\] = False
return
self.speak("पहचान विफल")
exit()
except:
self.speak("चेहरा पहचानने में विफल")
exit()
def start_voice_loop(self):
threading.Thread(target=self.listen_loop, daemon=True).start()
def listen_loop(self):
while True:
with sr.Microphone() as source:
try:
self.label.text = "🎙 सुन रहा हूँ..."
audio = self.recognizer.listen(source, timeout=5)
command = self.recognizer.recognize_google(audio, language="hi-IN").lower()
self.label.text = f"📥 {command}"
emo = self.detect_emotion(command)
self.orb.set_emotion(emo)
if "सवाल" in command or "gpt" in command:
self.ask_gpt(command)
elif "नई पहचान जोड़ो" in command and self.permissions.get("full_access"):
self.add_new_user()
elif "अनुमति दिखाओ" in command and self.permissions.get("full_access"):
self.list_permissions()
elif "अनुमति चालू करो" in command and self.permissions.get("full_access"):
self.toggle_permission(command, True)
elif "अनुमति बंद करो" in command and self.permissions.get("full_access"):
self.toggle_permission(command, False)
else:
self.handle_command(command)
except:
self.label.text = "⚠️ सुन नहीं पाया"
def handle_command(self, cmd):
for key in self.features:
if key in cmd:
if self.permissions.get("full_access") or self.permissions.get(key, False):
self.features\[key\]()
else:
self.speak("माफ़ कीजिए, आपके पास इस फीचर की अनुमति नहीं है।")
return
if "अलविदा" in cmd or "बंद करो" in cmd:
self.speak("अलविदा सर")
self.save_memory()
self.save_users()
App.get_running_app().stop()
else:
self.speak("यह कमांड ज्ञात नहीं है")
def ask_gpt(self, prompt):
try:
self.label.text = "🤖 GPT सोच रहा है..."
history = self.memory.get("history", \[\])\[-3:\]
history.append({"role": "user", "content": prompt})
res = openai.ChatCompletion.create(model="gpt-4o", messages=history)
reply = res.choices\[0\].message.content.strip()
self.memory.setdefault("history", \[\]).append({"role": "assistant", "content": reply})
self.save_memory()
self.speak(reply)
emo = self.detect_emotion(reply)
self.orb.set_emotion(emo)
except:
self.speak("GPT से जवाब नहीं मिल पाया")
def add_new_user(self):
self.speak("कृपया नये व्यक्ति का नाम बताइये।")
with sr.Microphone() as source:
audio = self.recognizer.listen(source, timeout=5)
try:
name = self.recognizer.recognize_google(audio, language="hi-IN").capitalize()
self.speak(f"{name} के चेहरे की तस्वीर ले रहा हूँ।")
video = cv2.VideoCapture(0)
ret, frame = video.read()
video.release()
if ret:
filename = f"{name}.jpg"
cv2.imwrite(filename, frame)
self.users\[name\] = filename
self.save_users()
self.speak(f"{name} सफलतापूर्वक जोड़ा गया।")
else:
self.speak("कैमरा नहीं चला")
except:
self.speak("नाम नहीं समझ पाया।")
def list_permissions(self):
allowed = \[key for key, val in self.permissions.items() if val\]
self.speak("अभी चालू अनुमतियाँ हैं: " + ", ".join(allowed))
def toggle_permission(self, command, status):
for key in self.features:
if key in command:
self.permissions\[key\] = status
state = "चालू" if status else "बंद"
self.speak(f"{key} की अनुमति {state} कर दी गई है।")
return
self.speak("यह फीचर नहीं मिला।")
# System Feature Methods
def open_browser(self):
self.speak("ब्राउज़र खोल रहा हूँ")
os.system("xdg-open https://www.google.com")
def bluetooth_on(self):
os.system("rfkill unblock bluetooth")
self.speak("ब्लूटूथ चालू किया गया")
def bluetooth_off(self):
os.system("rfkill block bluetooth")
self.speak("ब्लूटूथ बंद किया गया")
def open_whatsapp(self):
self.speak("व्हाट्सएप खोल रहा हूँ")
os.system("am start -n com.whatsapp/.HomeActivity")
def open_youtube(self):
self.speak("यूट्यूब खोल रहा हूँ")
os.system("am start -n com.google.android.youtube/.HomeActivity")
def open_gallery(self):
self.speak("गैलरी खोल रहा हूँ")
os.system("am start -a android.intent.action.VIEW -t image/\*")
def open_files(self):
self.speak("फाइल्स खोल रहा हूँ")
os.system("am start -a android.intent.action.VIEW -t resource/folder")
def open_music(self):
self.speak("संगीत ऐप खोल रहा हूँ")
os.system("am start -a android.intent.action.MUSIC_PLAYER")
def open_contacts(self):
self.speak("कॉन्टैक्ट्स खोल रहा हूँ")
os.system("am start -a android.intent.action.VIEW -t vnd.android.cursor.dir/contact")
def open_call_logs(self):
self.speak("कॉल लॉग्स खोल रहा हूँ")
os.system("am start -a android.intent.action.VIEW -t vnd.android.cursor.dir/calls")
def open_sms(self):
self.speak("SMS ऐप खोल रहा हूँ")
os.system("am start -a android.intent.action.MAIN -t vnd.android-dir/mms-sms")
def open_calendar(self):
self.speak("कैलेंडर खोल रहा हूँ")
os.system("am start -a android.intent.action.VIEW -t vnd.android.cursor.dir/event")
def list_installed_apps(self):
self.speak("आपके फ़ोन में इंस्टॉल्ड ऐप्स खोज रहा हूँ।")
try:
output = subprocess.check_output(\["pm", "list", "packages"\])
packages = output.decode().splitlines()
app_list = \[pkg.split(":")\[1\] for pkg in packages\]
self.speak(f"आपके फोन में {len(app_list)} ऐप्स हैं।")
except:
self.speak("ऐप्स लिस्ट नहीं कर पाया।")
def set_reminder(self):
self.speak("क्या याद दिलाना है?")
with sr.Microphone() as source:
audio = self.recognizer.listen(source, timeout=5)
try:
reminder = self.recognizer.recognize_google(audio, language="hi-IN")
self.memory.setdefault("reminders", \[\]).append(reminder)
self.save_memory()
self.speak(f"याद रखूँगा: {reminder}")
except:
self.speak("याद नहीं रख पाया।")
def set_timer(self):
self.speak("कितने सेकंड का टाइमर सेट करना है?")
with sr.Microphone() as source:
audio = self.recognizer.listen(source, timeout=5)
try:
seconds = int(self.recognizer.recognize_google(audio, language="hi-IN"))
threading.Thread(target=self.timer_countdown, args=(seconds,), daemon=True).start()
self.speak(f"{seconds} सेकंड का टाइमर चालू")
except:
self.speak("टाइमर सेट नहीं कर पाया।")
def timer_countdown(self, seconds):
time.sleep(seconds)
self.speak("टाइमर समाप्त")
def list_features(self):
features_list = ", ".join(self.features.keys())
self.speak(f"मेरे अंदर ये सभी फीचर्स हैं: {features_list}")
def show_memory(self):
if "reminders" in self.memory:
reminders = ", ".join(self.memory\["reminders"\])
self.speak(f"आपने मुझे ये याद दिलाने को कहा था: {reminders}")
else:
self.speak("कोई याद नहीं मिली।")
class RagfistAIApp(App):
def build(self):
return RagfistCore()
if name == 'main':
RagfistAIApp().run()
Going to explain issue step by step :
Step 1 : You have an entity with a nullable bool? property.
Step 2 : Scaffolding generated <InputCheckbox @bind-Value="VendorDataFile.IsLicensed" />.
Step 3 : You see compiler errors, because:
- InputCheckbox only supports bool, not bool?.
- The bind expression assumes it is bool.
Step 4 : Changing to just @bind suppresses compiler errors, but leads to a runtime exception, because InputCheckbox needs a valid ValueExpression.
Solution as per below :
If you're not allowed to change the model, the best approach is to map the nullable value to a non-nullable one temporarily in the UI, and then sync it back.
@code {
private bool isLicensed
{
get =\> VendorDataFile.IsLicensed ?? false; // default to false
set =\> VendorDataFile.IsLicensed = value;
}
}
Then change the checkbox code to:
\<div class="mb-3"\>
\<label for="islicensed" class="form-label"\>IsLicensed:\</label\>
\<InputCheckbox id="islicensed" @bind-Value="isLicensed" class="form-check-input" /\>
\<ValidationMessage For="() =\> VendorDataFile.IsLicensed" class="text-danger" /\>
\</div\>
This avoids runtime issues by using a non-nullable proxy (isLicensed) for a nullable property (IsLicensed).
RESOLVED
UPDATE: I have identified the issue as the fact that Cloudflare Workers don't run in a full node environment, and thus they don't support certain dependencies in the "form-data" library. After refactoring my formHandler to make a fetch call to Mailgun's api directly rather than using the mailgun.js and form-data libraries, the issue was resolved on my deployed website.
The project is using an incompatible version (AGP 8.1.0) of the Android Gradle plugin. Latest supported version is AGP 8.0.0-rc01
Your problem is your .html file in the lua folders. Just search it by going to the garrysmod/lua folder, click search, click the .html file when it shows up (if it does), and put '--' in front of every typed line of code, or just delete every line and save. Don't try to delete the whole file, it will come back via a backup of file integrity. You don't need .html.
This will give you more information on what DRME is, where your malicious endpoint really leads to, and why it's not good for your computer:
https://archive.org/details/exposed-the-malicious-endpoint-.lua-error
OR
well hot digities....
changing from
@bind-Value="VendorDataFile.IsLicensed"
to
@bind="VendorDataFile.IsLicensed"
resolved the issue. too early to know if there are side effects but the data is displaying correctly.
// Mesajul tău pentru Lilu
const mesaj = `Eu nu vreau să te am fizic,
dar vreau să te iubesc din tot sufletul,
să te simt alături, chiar dacă nu pot.
Mintea mea spune "nu",
dar inima spune "da".
Știu că-i ceva interzis ce simt pentru tine,
dar nu-mi pot interzice inimii să te adore.
Ești pură, știi ce vrei,
iar eu... te iubesc așa cum sunt.`;
Here I will suggest two thing as per below :
Use using keyword to closed write object before delete.
File.Copy(filename, filename + ".bak");
using (TextWriter writer = new StreamWriter(filename))
{
writer.Write(content);
}
if (File.Exists(filename + ".bak"))
{
try
{
File.Delete(filename + ".bak");
}
catch (IOException ex)
{
Debug.WriteLine("Delete failed: " + ex.Message);
Thread.Sleep(500); // allow file system to catch up
File.Delete(filename + ".bak"); // retry
}
}
Also I faced issue is file corrupted when copy from source like FTP So please check before delete you just copy file on destination folder and check is corrupted or not and able to open if are able to open same location then try delete operation.
Sure it will work..
May be this helps for latest version of iPhone Landscape with larger screen.
@media screen and (max-device-width: 480px) and (orientation:landscape) {
}
May I ask if you have solved it? I want to do pruning for yolo, but I'm pruning for the improved YOLO 11. I'm not very familiar with this aspect. Could you please tell me how to prune yolo after its improvement?
in this example, you can see how do you set label to show when the chart dont detected data, please remember use after section of chart:
chartOptionsDonut:{
chart: {
type: 'donut',
},
noData: {
text: "No data text",
align: "center",
verticalAlign: "middle",
},
When it comes to asking a user for data, I start from the premise that he is not only the dumbest guy in the world, but that his only neuron is used to create problems for me... and you don't want to use external libraries, well, let's make our own chooser:
public class Gui extends JDialog {
Principal principal;
JTextField days[], yearInput;
JComboBox<String> months;
JPanel panel;
JButton button;
JLabel messages;
// "first" and "last" will help us to determine which of the fields
// that make up the grid, we should use
int first = 50, last = 41, year, month, day;
public Gui( Principal pri ) {
principal = pri;
setTitle( "MyDateChooser" );
initializeComponents();
createAndSet();
setFields();
setPositionAndSize();
setComponents();
addListeners();
addToPanel( button, messages, yearInput, months );
add( panel );
setVisible( true );
}
private void setFields() {
int one = 1;
int x = 10;
int y = 30;
for( int i = 0; i < days.length; i ++ ) {
if( i % 7 == 0 ) {
x = 10;
y += 26;
}
if( i < first || i >= last ) {
days[ i ].setVisible( false );
}
else {
days[ i ].setVisible( true );
days[ i ].setText( "" + one ++ );
days[ i ].setBounds( x, y, 30, 24 );
}
x += 30;
}
}
private void initializeComponents() {
panel = new JPanel( null );
button = new JButton( "Done" );
messages = new JLabel( "Enters the year" );
yearInput = new JTextField();
}
private void createAndSet() {
days = new JTextField[ 42 ];
for( int i = 0; i < days.length; i ++ ) {
days[ i ] = new JTextField();
days[ i ].setBackground( new Color( 130, 130, 130 ) );
days[ i ].setHorizontalAlignment( JTextField.RIGHT );
days[ i ].setEditable( false );
panel.add( days[ i ] );
days[ i ].addMouseListener( new MouseAdapter() {
@Override
public void mouseClicked( MouseEvent evt ) {
createDate( evt );
}
} );
}
String m[] = {
"Enero", "Febrero", "Marzo", "Abril",
"Mayo", "Junio", "Julio", "Agosto",
"Septiembre", "Octubre", "Noviembre", "Diciembre" };
months = new JComboBox<>( m );
String[] nameOfDays = "LMMJVSD".split( "" );
JLabel[] daysInitials = new JLabel[ 7 ];
int x = 22;
for( int i = 0; i < 7; i ++ ) {
daysInitials[ i ] = new JLabel( nameOfDays[ i ] );
daysInitials[ i ].setBounds( x, 35, 30, 24 );
daysInitials[ i ].setForeground( Color.yellow );
panel.add( daysInitials[ i ] );
x += 30;
}
}
private void setPositionAndSize() {
setBounds( 10, 10, 240, 258 );
button.setBounds( 150, 10, 70, 24 );
messages.setBounds( 15, 10, 100, 24 );
yearInput.setBounds( 100, 10, 50, 24 );
months.setBounds( 140, 10, 80, 24 );
}
private void setComponents() {
months.setVisible( false );
panel.setBackground( Color.darkGray );
messages.setForeground( Color.LIGHT_GRAY );
yearInput.setBackground( new Color( 170, 170, 170 ) );
requestFocusInWindow();
setFocusable( true );
}
private void addListeners() {
button.addActionListener( ( evt ) -> {
// after entering the year we verify that the string
// is not empty and that it only contains numbers.
String text = yearInput.getText();
if( ! text.isEmpty() && text.matches( "^[1-9]\\d*$" ) ) {
year = Integer.parseInt( text );
messages.setText( "Select month" );
button.setVisible( false );
months.setVisible( true );
yearInput.setVisible( false );
}
} );
months.addActionListener( ( evt ) -> {
// based on the user's selection, we instantiate “month” we create a “LocalDate”
// object of the first day of the month, from it, we obtain the day of the
// week and the number of days of the month, with this data we instantiate
// “first” and ‘last’ and call “setFields” to show the calendar.
month = months.getSelectedIndex() + 1;
LocalDate aux = LocalDate.of( year, month, 1 );
int dayOfWeek = aux.getDayOfWeek().getValue();
int DayOfMonth = aux.lengthOfMonth();
first = dayOfWeek + 1;
last = first + DayOfMonth;
setFields();
} );
}
private void addToPanel( JComponent... comps ) {
for( JComponent comp : comps ) {
panel.add( comp );
}
}
// the listener of the JTextField on which the user clicked, calls this method that
// instantiates “day” with the string of the same and invokes the corresponding
// method of the object that created the ‘chooser’ passing it as a parameter, the
// object “LocalDate”.
void createDate( MouseEvent evt ) { // and send
day = Integer.parseInt( ( (JTextComponent) evt.getSource() ).getText() );
principal.setFecha( LocalDate.of( year, month, day ) );
dispose();
}
}
PS: it is a basic version, some things need to be modified and others implemented (like going backwards), I hope it will serve as an inspiration for you.
Ok the log is only grepping the "service-name" keyword. Once I check the full logs, it shows a bunch of other services have been in the restart loop, many of which are failing, exceeding the 30second default max timeout. monit does the operations in a synchronous loop, hence there is delay when there are other services.
I found the issue is my file name
though it is late to answer, but may there be another option, like `linkedom`
Make sure your DEBUG = False , Django stores the static files in the local files instead of uploading to the S3 while in development mode. If this is not the case, please hide your credentials or any private implementations and upload full code to make the problem more clear to understand. Your current implementation looks fine for django 4.2 and later versions.
You also have to bind the address is the my.cnf file. There is a different wildcard for ipv6. It would be ::. So it would like this bind-address = ::
Starting from IntelliJ IDEA version 2025.1, to restore the Intellij-idea commit tab you need to check if you have pre-installed the Modal Commit Interface Plugin and then disable it.
How about I don't know why this suddenly came on don't understand or want it so take it off
As @zivkan answered https://stackoverflow.com/a/77147546/6200917, default msbuild and nuget actions produces flat binary output directory preserving references original names. Renaming files there must be matched with changes in loading those renamed dll's (e.g. by directly using AssemblyLoadContext). Making this to work seems not so obvious.
But sometimes useful solution could be obvious one, so here it is.
If those required packages are not transitive, creating trivial proxies (perhaps packing them to NuGet format) and referring them from main project should work (and nicely integrate with default MSBuild/Nuget actions), for example:
LoadedLib.1.0.1 project heaving:
<PackageReference Include="LoadedLib" Version="1.0.1" />
LoadedLib.2.0.1 project heaving:
<PackageReference Include="LoadedLib" Version="2.0.1" />
App project heaving
<PackageReference Include="LoadedLib" Version="3.0.1" />
<PackageReference Include="LoadedLib.1.0.1" Version="1.0.1" />
<PackageReference Include="LoadedLib.2.0.1" Version="2.0.1" />
I haven't solved the issue itself but found a perfect work around.
I am not quite sure why it works but it does.
Instead of using the Image component (causing issues) I use this :
<img src={e.child('thmbNl_128x128').val()} />
If someone has an explanation, please let us know.
Many answers don't work in some scenarios and some introduce unneeded useEffect while also not working in all cases.
The defaultValue doesn't work for cases where the field is controlled, which is often needed when state is controlled and updated by upstream state.
In particular, when typing fast the timeout solutions don't work. (The answers with setTimeout or useEffect don't work when the user types quickly)
The Promise solution in one answer works well, and it is simple and clean.
The minimal code for the Promise solution that works regardless of typing speed using a controlled component:
<input
value={value}
onChange={async (event) => {
const inputElement = event.target;
setValue(inputElement.value);
const { selectionStart, selectionEnd } = inputElement;
/**
* This works correctly, even if the user types quickly. (setTimeout does not)
*/
await Promise.resolve().then(() => {
inputElement.setSelectionRange(selectionStart, selectionEnd);
});
}}
/>
https://codesandbox.io/p/sandbox/qxg8k9?file=%2Fsrc%2FApp.js%3A1%2C1
For the original question, input type="number" does not support setSelectionRange, so many solutions to this question don't work if using that type. The only one that can is defaultValue, but that doesn't work if other code updates the state. Recommend using type="text" and convert to number outside of form.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange
The element must be of one of the following input types:
password,search,tel,text, orurl.
In recent React versions you can just simply add the mappings in the tsconfig.json file:
{
"compilerOptions": {
"paths": {
"@Components": ["./src/components"],
"@Components/*": ["./src/components/*"]
}
}
}
There is no way to use Warp in the integrated terminal. You can create a shortcut key to open Warp in a dedicated window. There is an official guide on how to do this:
For the number of calendar days between two dates (not the number of 24 hour amounts):
$fecha = "13-10-2016 00:00:00";
$dt_epoch_days= floor(date('U',strtotime($fecha))/(60*60*24));
$now_epoch_days= floor(date('U')/(60*60*24));
echo $now_epoch_days-$dt_epoch_days;
Did you find out any more information on this?
(thanks for idea Alan Zeino)
in terminal try
defaults delete com.apple.finder _FXEnableColumnAutoSizing
killall Finder
Maybe you can try installing psycopg2-binary instead of psycopg2. Also make sure you read installation documentation.
If you keep gpg configurations in location different than default one (which is ~/.gnupg/) then you may need to tell gpg where is that configuration by using gpg --homedir <config-directory> and setting default key in gpg.conf by adding default-key 5D89...
I deleted the C:\Users\<myusername>\Documents\IIS Express\config folder, didn't work.
But then I deleted C:\Users\<myusername>\OneDrive\Documents\IIS Express\config folder and iisexpress started right up.
You need to use version 1.31.0 or later of the CloudAMQP provider.
Function composition - compact your opt funcs into a single one, before passing to New (as the 2nd param). You may also be fine with an option struct, do you really need logic in configs?
If you have updated your project to a newer version of React Native and all the API calls stopped working suddenly then update @react-native-community/netinfo library. It also causes problems.
#1 Put the Python formula in A1
=PY("import pandas as pd, numpy as np;
df = pd.DataFrame(np.random.randint(0,3,(3,3)), columns=list('ABC'), index=[1,2,3]);
df.reset_index(names='Index', inplace=True);
return df")
#2 Click the little ↘ icon (or choose **Excel values** in the dropdown)
The DataFrame now *spills* as a normal 4 × 4 grid (index + A B C).
#3 Give that spill a named range
Formulas ► Name Manager ► New →
Name: **DF_Out**
Refers to: `=Sheet1!$A$1#` ← the **#** means “this whole spill, whatever size”.
#4 Insert a PivotTable
Insert ► PivotTable ► *From Table/Range* → type **DF_Out**.
Build the Pivot, then add a PivotChart if you like.
✔ The pivot/chart updates whenever the Python code re-runs; just hit **Data ► Refresh All**.
Limitations
* A spill range itself can’t become an Excel Table (Excel blocks it), so the named-range trick is the workaround.
* If you really need a Table, copy-paste-values the spill elsewhere, press **Ctrl + T**, and use that – but you’ll have to overwrite it each time the DataFrame changes.
I suggest letting husky go and installing lefthook.
<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.10.1</center>
</body>
</html>
In my case, i had an interface and was trying to instantiate an instance of it in another file.
wrong: let obj = new IMyInterface()
correct: let obj : IMyInterface = {}
There is a ".." in the indicated zip entry.
https://github.com/eclipse-jdt/eclipse.jdt.core/pull/2015
This could be particular to eclipse.buildId=4.31, try with 4.32.
Check the cache headers for the first request for the base page URL. If it is marked as cacheable and you are within the cache period then avoiding the second request is expected and correct behavior
If yoy are looking for good STDIN python code compiler, id recommend OneCompiler, it supports many more languages too. (www.onecompiler.com)
Another answer comes down to the DIFFERENCES between RaisError and Throw ... as RaisError does NOT honor Set Xact_Abort.
Moreover, Microsoft recommends that "new applications should use THROW instead." - Source
Excerpt:
| RAISERROR statement | THROW statement |
|---|---|
| If a msg_id is passed to RAISERROR, the ID must be defined in sys.messages. | The error_number parameter doesn't have to be defined in sys.messages. |
| The msg_str parameter can contain printf formatting styles. | The message parameter doesn't accept printf style formatting. |
| The severity parameter specifies the severity of the exception. | There's no severity parameter. When THROW is used to initiate the exception, the severity is always set to 16. However, when THROW is used to rethrow an existing exception, the severity is set to that exception's severity level. |
| Doesn't honor SET XACT_ABORT. | Transactions are rolled back if SET XACT_ABORT is ON. |
If you need check labels in your nodes, use
$ kubectl get nodes --show-labels
It's better to use a no-code solution for ETL. Choose between Fivetran, Renta ETL or Stitch Data.
My quick advice: if security is your top priority and support for service accounts is important, then Renta is the best choice. It gives you more control.
Also, Google Sheets handles only small volumes of data. The free tier should be sufficient. I don't see any reason to write code.
Following samcarter_is_at_topanswers.xyz's answer, I looked into the moderncv documentation, and found besides loading \moderncvcolor{} before \moderncvstyle{}, we also need to use \colorlet{lastnamecolor}{black} and \colorlet{firstnamecolor}{black} (called after \moderncvstyle{}) to make the color of name looks right.
The Discussions GraphQL API seems only to be for managing discussions; I did not see any way to enable it for a repo for which it has not been enabled manually (or with the gh cli) already.
So I made this: https://github.com/scottvr/gh_discussions_mass_enable which uses a browser, interactive auth (including 2FA), and the ability to specify one or more (or --all) of your repos to enable discussions on.
To properly resolve this issue in Power Apps, where you need a ComboBox on a second form to automatically populate with the same value selected in the ComboBox on the first form, you must use the DefaultSelectedItems property and keep in mind that a ComboBox expects a table (even for a single value), which is why the brackets [] are required.
Consider the following:
ComboBox_Clientes_Form1 → belongs to the first form (it already works and displays customer data).
ComboBox_Clientes_Form2 → must display the same customer in the second form.
Properties
1. Items in both ComboBoxes
Both must have the same list or set of customers as their data source:
Items: ListaClientes
2. DefaultSelectedItems in the ComboBox on the second form
Here's the most important part:
DefaultSelectedItems: [ComboBox_Clientes_Form1.Selected]
If you don't use brackets [], Power Apps throws an error because it expects a table, even if it's a single-record table.
Power Apps treats DefaultSelectedItems as a table of values because a ComboBox can be multi-select. Even if you only want to select one item, you need to encapsulate it in a table (a list of one), hence [ComboBox.Selected].
If the ComboBox is single-select, make sure AllowMultipleSelection is false.
If you're using SubmitForm instead of Patch(), make sure the field is correctly connected to a Lookup DataField field in SharePoint.
You're specifying only the y scale. Update your options to specify both the x and y scales.
options: {
scales: {
x: {
beginAtZero: true,
},
y: {
beginAtZero: true,
},
},
}
Also, put the whole code in the window.onload, to ensure the script loads before the JS executes.
This post is 14 years old, but answered my question today 6/20/2025.
I don't know if k to the z will see this, as he has not posted here for 9 years.
I liked his answer the best, not that the others were not good.
I began studying HTML in 1998.
At that time I did not use CSS.
I slowly delved in it here from 1999 - 2017.
In 2017 I took an HTML course at a local Community College.
I learned quite a bit, but it was new information and much did not last.
I chiefly use HTML on my local computer to capture information and display it to my liking and it is easy for me to find later. It is a way I take notes chiefly.
I just now created a mystyle.css file and it is working for my local webpage.
I have had my own domain and website but found it cost prohibitive for a poor cheapskate / miser / A.K.A my favorite name for it "frugal".
Should I delve into the somewhat costly world of my own domain.
In this modern 2025 world.
Would you say there is a place for inline stylesheet styling to change the look of different pages, or would you say that the separate stylsheet, like the mystyle.css (which could be changed of course to another name) be almost exlusively used?
I am thankful for this article.
I don't know if my question is helpful here as the post is so old.
But here goes.
Thank you!
equivalent of git show:
git difftool HEAD^
or
git difftool -t meld HEAD^
shows contents of the last commit
To see diff of arbitrary commit, e.g. 4th from HEAD:
git difftool HEAD~3
To see diff of an arbitrary commit, say `deadfeed`:
git difftool deadfeed^ deadfeed
User ngrok to expose your local url so clerk can call it from the internet
I am assuming its a bug, I had the same issue with version 1.101 of vscode, I was able to ssh through my terminal but vscode was failing. It wasn't happening for all of my servers so I am assuming that the problem happens with something specific in those servers which makes the problem more complicate I guess?. I tried many suggestions from github and an older question here but non worked, I even reinstalled vscode from scratch but nothing was working. I installed an earlier version (1.99.3) and that fixed it and I can ssh now with no issue.
Realize this is a preeeetty old question, but for those who are still searching for the same thing, Zest is the solution. (Full disclosure, I work there!) We help brands scale corporate, consumer, and event gifting and the multiship problem is our bread and butter.
If anyone is looking for this in 2025 - check out this control from MESCIUS ComponentOne:
WinForms MultiSelect Control.png
It's called MultiSelect and it works as both a checked listbox and a comma-delimited tag editor. See more here https://developer.mescius.com/componentone/winforms-ui-controls/multiselect-winforms-list-control or get the nuget package called https://www.nuget.org/packages/C1.Win.Input.MultiSelect
Well, in the meantime this question could be found obsolete. If you have to edit other programmers code, you will find classes and methods...
Well, after have been down-voted twice (without knowing why, cause' I tough my question was well made (AND I SEARCHED FOR ANSWERS BEFORE ASKING...))
I finally ended up with a partial answer, that, did nots really answered but at least fixed the problem !
In my code by doing that :
import pygame
import pymunk
import pymunk.pygame_util
class Player:
def __init__(self, space):
self.mass = 3
self.body = pymunk.Body(self.mass, pymunk.moment_for_box(self.mass, (50, 100)))
self.shape = pymunk.Poly.create_box(self.body, (50, 100))
self.shape.friction = 1
self.shape.elasticity = 0.0
space.add(self.body, self.shape)
self.direction = pygame.Vector2(0, 0)
def move(self, dir_vec):
self.direction = dir_vec
def update(self, dt):
if self.direction.length() < 0.2:
return
force = self.direction * 500 # À ajuster selon le poids de l'objet
self.body.apply_force_at_local_point(tuple(force))
pygame.init()
WIDTH, HEIGHT = 1920//2, 1080//2
window = pygame.display.set_mode((WIDTH, HEIGHT))
players = []
def draw(space, window, draw_options):
window.fill("white")
space.debug_draw(draw_options)
pygame.display.update()
def run(window, width, height):
run = True
clock = pygame.time.Clock()
FPS = 120
# Create a pymunk space
space = pymunk.Space()
space.damping = .5
space.iterations = 30
space.collision_slop = 0.1
space.collision_bias = 0.1
players.append(Player(space))
players.append(Player(space))
draw_options = pymunk.pygame_util.DrawOptions(window)
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
break
keys = pygame.key.get_pressed()
dir_p1 = pygame.Vector2(0, 0)
dir_p2 = pygame.Vector2(0, 0)
if keys[pygame.K_z]:
dir_p1.y -= 1
if keys[pygame.K_q]:
dir_p1.x -= 1
if keys[pygame.K_s]:
dir_p1.y += 1
if keys[pygame.K_d]:
dir_p1.x += 1
if keys[pygame.K_UP]:
dir_p2.y -= 1
if keys[pygame.K_DOWN]:
dir_p2.y += 1
if keys[pygame.K_LEFT]:
dir_p2.x -=1
if keys[pygame.K_RIGHT]:
dir_p2.x += 1
players[0].move(dir_p1)
players[1].move(dir_p2)
substeps = 100
for _ in range(substeps):
for player in players:
player.update(1/FPS/substeps)
space.step(1/FPS/substeps)
draw(space, window, draw_options)
clock.tick(FPS)
pygame.quit()
return
if __name__ == "__main__":
run(window, WIDTH, HEIGHT)
Which mean by substeping (a lot) and adding inertia, well, it fixed everything.
I really think that the bug was comming from the player update method because it was moving to strogly and so the detections couldn't be calculated.
Thank's to all the people who juste tried to think about my question!
I may not have been clear, even though the responses have been helpful.
Rather than delving into the world of thread programming if I didn't have to, I did some profiling. Here are the approximate timings:
p = sync_playwright().start() # .4 seconds
browser = p.firefox.launch() # .8 seconds
page = browser.new_page() # .9 seconds
page.goto(url) # 2.5 - 3.2 seconds
So, the start-up overhead is about 40% of the full request time. Definitely worth trying to optimize.
It looks like I want to put:
p = sync_playwright().start()
browser = p.firefox.launch()
page = browser.new_page()
in the "parent" thread, but make p, browser, and page available to each "child" thread.
So, I changed my code to look like:
thread_data = threading.local()
thread_data.p = sync_playwright().start()
@app.route('/fetch/')
def fetch_url():
url = request.args.get('url')
return fetch(url)
def fetch (url, thread_data=thread_data):
p = thread_data.p
browser = p.firefox.launch()
....
When I run this, I get:
File "/home/mdiehl/Development///Checker/./app.py", line 27, in fetch
p = thread_data.p
^^^^^^^^^^^^^
AttributeError: '_thread._local' object has no attribute 'p'
So, I guess I don't understand how threading works in Python. (I've done it in Perl and C)
Any further help would be appreciated.
Mike.
I realize I'm very late to this question, but for anyone else looking for this, the config option CONFIG_CMD_CONFIG accomplishes this. With this enabled, you can run the config command in a running U-Boot to see the configs in the image. See this commit in U-Boot. It appears to have first been added in v2017.03.
-- Count related entities per parent
SELECT parent_id, COUNT(*) AS related_count
FROM related_entity
WHERE parent_id IN (...)
GROUP BY parent_id;
-- Average value per parent
SELECT parent_id, AVG(score) AS avg_score
FROM ratings
WHERE parent_id IN (...)
GROUP BY parent_id;
ComponentOne has a more affordable DataGrid for MAUI. It's called FlexGrid - you can just grab it from nuget.org and start working with it. https://www.nuget.org/packages/C1.Maui.Grid
What's nice is that you can customize the grid line visibility so you can achieve a clean, mobile look, or keep the gridlines for a classic datagrid look. The control has star sizing, so the width can always fill your screen and not require horizontal scrolling (not ideal on mobile). See more images here: https://developer.mescius.com/componentone/maui-ui-controls/flexgrid-maui-datagrid
Approaches that always help me to reduce amount of false positives:
1. Rebuilt Pyinstaller Bootloader to use GCC compiler instead of MSVC.
2. Use obfuscation for your code before compilation. I prefer pyarmor lib and it allows to obfuscate and compile with pyinstaller straight forward by command like pyarmor gen --pack onefile main.py
3. If you call some CMD or Powershell from your code, make sure that these string calls are getting built during runtime. For example if you call CMD like my_command = "wmic csproduct get uuid" in code better do it like my_command = ''.join(['w', 'm', 'i', 'c', ...]) . I believe there should exist some Python string obfuscators but it is easy to do on your own.
If you use Oh My Zsh, you can use vyper-env:
Vyper-env is a lightweight Oh My Zsh plugin and works like a champ.
I solve de problem. my db cluster has an option called AUTO_ID_CACHE, it make auto_increment skips 30000 numbers. when you create a database, set AUTO_DB_CACHE 1 to avoid that behavior.
ENGINE=InnoDB AUTO_ID_CACHE 1;
<img src="logo.png" alt="Salamat Communication Logo" style="height:80px; margin-top:10px;" />
Is there anything wrong with the following as a short solution?
private object myLock = new object();
if (Monitor.TryEnter(myLock))
{
doWork();
Monitor.Exit(myLock);
}
else
{
lock (myLock){ };
}
from collections import defaultdict
import re
# Cole aqui o conteúdo do edital entre aspas triplas
edital_texto = """
(COLE AQUI TODO O TEXTO DO EDITAL)
"""
# Separar os tópicos principais
def verticalizar_edital(texto):
secoes = re.split(r'\n(?=[A-Z][A-Z\s]+:)', texto)
edital_dict = defaultdict(list)
for secao in secoes:
if ':' in secao:
titulo, conteudo = secao.split(':', 1)
conteudo = conteudo.strip().replace('\n', ' ')
subitens = re.split(r'(?<=\d)\. ', conteudo)
edital_dict[titulo.strip()].extend([item.strip() for item in subitens if item])
return edital_dict
# Gerar e imprimir o edital verticalizado
verticalizado = verticalizar_edital(edital_texto)
for secao, conteudos in verticalizado.items():
print(f"\n{secao}")
for item in conteudos:
print(f" - {item}")