The error is mainly due to wrong class declared. To solve there are two methods
check for class name and file name
if your file name is basics.java then class name must be basics and written like this public class basics{
and for best compilation there must be not space between basics and { this brakcet
check for correct compilation in terminal
it must be javac basics.java (maybe you only used javac basics)
and after the compilation task to run the file use java basics.java (maybe you forgot to type .java)
Console.Write("Please, input your age: ");
int age = Convert.ToInt32(Console.ReadLine());
int counter = 0;
while (counter < age)
{
if (counter >= 5)
{
break;
}
Console.WriteLine("Happy Birthday!");
counter++;
}
you are a lifesaver, this saved me a lot. thanks mate @Anthony
The only solution is to create a new console application, nothing works.
I use this repo and when haven't internet or some blocks happen, perhaps usefull for someone
The sticky element depend on the height and the width of the parent if it has no parent so it depend on the body of the element or viewport so we have to give a speciifc height or widht not margin because the margin is space outside the box while height and widht is the space inside the box. and if we give a specific value to top,left,right,bottom so it stick there when we scroll where the value is set.
same issue here, adding Business Intelligence in the Visual Studio Installer fixed it for me.
use the pybit modul from bybit api documentation :D
You extract the entire callback and store it in a constant. Then you pass that same constant to the call to subscribe
The error Permission denied (publickey) means the Bitbucket Pipeline environment doesn't have access to a valid SSH private key for your server. Even if your local machine can connect, the pipeline runs in a separate container with its own keys. You need to add a matching private SSH key to Bitbucket (as a repository variable or via Pipelines SSH Keys) and the corresponding public key to your droplet's ~/.ssh/authorized_keys. Also ensure the server's fingerprint is added to known_hosts using ssh-keyscan.
I'm not sure how to fix this but it intrigues me a lot!
androidx.legacy was released in 2018-09-21, and is deprecated now.
Use the latest AndroidX libraries compatible with your targetSdkVersion and minSdkVersion. The current stable version of androidx.core is 1.16.0 and that of androidx.appcompat is 1.7.1.
WindowInsetsCompat.getInsets() and WindowInsetsCompat.Type were added in 1.5.0 (2021-05-18), so you must use androidx.core:core:1.5.0 or later.
Use this config
{
"mcpServers": {
"context7": {
"command": "npx",
"timeout": 60000,
"args": [
"-y",
"@upstash/context7-mcp@latest"
]
}
}
}
You using first time flutter in Android studio?
Thank you for your solution. I faced the same issue in one of my flutter projects, and your fix worked perfectly. I ran flutter clean followed by flutter run, and the app was up and running.
However, the problem is that it only works from the terminal. If I try to run the app using the VS Code GUI (the button in the top right), the same error reappears. Even after running flutter clean and then clicking the debug button, the error still persists.
"Launching lib\main.dart on SM N975F in debug mode...
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
\> Failed to create parent directory 'C:\Users\Mujeeb' when creating directory 'C:\Users\Mujeeb\ Khawaja\Desktop\flutter\ projects\new\ videx\videx\build\app\intermediates\flutter\debug\flutter_assets'
* Try:
\> Run with --stacktrace option to get the stack trace.
\> Run with --info or --debug option to get more log output.
\> Run with --scan to get full insights.
\> Get more help at https://help.gradle.org.
BUILD FAILED in 6s
Error: Gradle task assembleDebug failed with exit code 1"
My directory name in "This PC" is "C:\Users\Mujeeb Khawaja", not 'C:\Users\Mujeeb' and flutter is trying to do "'C:\Users\Mujeeb\ Khawaja\"
I get a solution, i use one build method, but it don't seem so perfect. Because code is not reusable, it limit index of list. Perhaps as furas said, i need use a list save values, instead of a1, a2...
@dataclass
class Base():
def __str__(self):
data = ','.join([str(x) for x in vars(self).values()])
return data
@dataclass
class B(Base):
b1: int = 0
b2: int = 0
b3: int = 0
@dataclass
class A(Base):
a1: int = 0
a2: int = 0
a3: int = 0
b: B = None
def build(self, *arg):
a_arg = list(arg[0: 3])
b_arg= arg[3: 6]
b = B(*b_arg)
all_arg = a_arg + [b]
self.__init__(*all_arg)
return self
num = [1,2,3,4,5,6]
my_data = A().build(*num)
print(my_data) # 1,2,3,4,5,6
I just had a similar issue and I've built a simple tool to specifically test the user-agents for my URLs.
Feel free to use it: https://crawlercheck.com
Any feedback is appreciated.
inject your viewmodel using this method for koin
@Composable
inline fun <reified T: ViewModel> koinViewModel(): T {
val scope = currentKoinScope()
return viewModel {
scope.get<T>()
}
}
Thank you for your solution. I faced the same issue, and your fix worked perfectly. I ran flutter clean followed by flutter run, and the app was up and running.
However, the problem is that it only works from the terminal. If I try to run the app using the VS Code GUI (the button in the top right), the same error reappears. Even after running flutter clean and then clicking the debug button, the error still persists.
"Launching lib\main.dart on SM N975F in debug mode...
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
\> Failed to create parent directory 'C:\Users\Mujeeb' when creating directory 'C:\Users\Mujeeb\ Khawaja\Desktop\flutter\ projects\new\ videx\videx\build\app\intermediates\flutter\debug\flutter_assets'
* Try:
\> Run with --stacktrace option to get the stack trace.
\> Run with --info or --debug option to get more log output.
\> Run with --scan to get full insights.
\> Get more help at https://help.gradle.org.
BUILD FAILED in 6s
Error: Gradle task assembleDebug failed with exit code 1"
My directory name in "This PC" is "C:\Users\Mujeeb Khawaja", not 'C:\Users\Mujeeb' and flutter is trying to do "'C:\Users\Mujeeb\ Khawaja\"
I think here might be the possible answers
Initially Check Services, by ensuring Apache (or Nginx) and MySQL are running (e.g., via XAMPP/WAMP/LAMP).
Check for the Correct URL – Try http://127.0.0.1/phpmyadmin/ or ensure the case matches (e.g., phpMyAdmin on Linux).
Port Conflicts – Verify no other apps block ports 80 (Apache) or 3306 (MySQL).
Clear Cache – Use a private browser window or clear cookies/cache.
Logs – Check Apache’s `error.log` or PHP logs for clues.
If not try reinstall, by reinstalling phpMyAdmin if corrupted.
Quick Test:
- Create a test.php file with <?php phpinfo(); ?> if it loads, PHP works.
- Try accessing MySQL via command line (mysql -u root -p).
$category = Category::where('status',1)->orderBy('id','desc')->get();
what is the data type of column status ?
in mysql true/false is not supported and these are just simple string . instead datatype tinyint(1) with value 0 and 1 is used for boolean column.
For React (Web Frontend)
Includes login, signup, dashboard, and more.
Based on Material Design, highly customizable.
GitHub Search: "React free template"
React Native Elements Templates
Instamobile Templates (Some free ones)
GitHub Search: "Expo template"
This feature is now follow supported according to this post here:
You need Toolbox App 2.6.
https://blog.jetbrains.com/toolbox-app/2025/04/toolbox-app-2-6-is-here-with-remote-development-support/
I would suggest using the TabPanePro library. It provides special areas for adding any controls and, besides that, it solves all problems related to the tab menu button.
In my system Powershell 7.x and powershell 5.x was there. However, as per Microsoft Powershell docs, version 5.x is integrated with core components. hence, I uninstalled the powrshell 7.x. The build got succeeded
This issue is fixed now, basically 2 changes I had to do.
experimental: {
serverActions: {
allowedOrigins: [
'localhost:3000',
]
}
}
COPY --from=builder /app/next.config.ts ./
Actually your wrong im playing a android game and I run scripts in it all day, free resources, currency, accelerated farming and growth in games, and I happen to have it right here https://fluxus-team.net/ or this one is the one I use https://delta-executor.com/deltaexploit/ and this one's good too https://hydrogen.us.com/download/
So yes android has scripts that can be run in the background of any app or game without root, don't believe me I'll send a screen record of me doing so
Thank you fot letting me kick some knowledge
| header 1 | header 2 |
|---|---|
| cell 1 | cell 2 |
| cell 3 | cell 4 these are screen shots off a samsung galaxy s-21FE OF DELTA FLUXUS, AND HYDROGEN script executors |
what no it does not use ^ as excape
Check my repo https://github.com/Eric-Guo/coreui4-rails-starter, it's based on webpack 5 and core ui 4.
All, Thanks for your time and my apologies for the confusion. Turns out when I installed redis-cli it also installed redis-server on my windows 11 laptop which I was not aware off. I uninstalled the application and removed the task. I also deleted the folder itself from C:\Windows.
I then extracted the redis-cli.exe and along with the dlls and copied them to C:\windows\system32.
It is working as expected now.
I dont know why this cause because i ran it as admininstrator, And i manage to solve this by set my src file as a startup project
Project > set as startup project
# Set the limit to a higher value (e.g., 10000)
sys.set_int_max_str_digits(0)
# Or, to disable the limit entirely (use with caution)
# sys.set_int_max_str_digits(0)
# Now, perform your integer string conversion
large_number = 10**5000 # Example of a very large number
number_as_string = str(large_number)
from tkinter import*
a=Tk()
z=1
for x in range(1,171):
z=z*x
print(z)
z=(str(z))
n=Label(a,text=z)
n.place(x=50,y=50)
Sorry for not posting the direct answer. I was struggling with coding up lease-based-master-election strategy in python. But I think this strategy is used for High Availibility only. Like scenarios where if the master fails, then the incoming requests should be quickly forwarded to the slaves.
But the catch is even when the master fails until the time is reached for which the lease was taken the incoming requests will be forwarded to the same master. So it will not be available for that time.
What my proposed design is - Keeping two pods with two different statefulset, a master and a slave. They both will be kept consistent asynchronously. And in the application level logic we can backoff exponentially and say for every even retry we try the master and for odd retry we try the slave. We can make more slaves to get higher availibility and in this way the downtime will be decreased dramatically.
Please let me know your opinion on this design.
const arr1 = [10, 20, 30, 40, 50];
const res = arr1.at(2);
console.log(res);king
Mohamed
| header 1 | header 2 |
|---|---|
| cell 1 | cell 2 |
| cell 3 | cell 4 |
Hahaha
IsSoftDeleted is a provisioning engine virtual attribute, evaluated only at runtime during provisioning operations, currently as of me writing this post, there is still an Entra issue with the payload and attribute mapping to "Active". When it is sent to active it should be a Boolean (true / false) but currently Entra will send it to the remote platform as a string ("true" / "false"). Option one have the remote platform modify the Active field to accept strings, option 2 use the SCIM compatibility flag in your endpoint URL.
Try with these keywords "verb forms V1, V2, V3, V4 and V5"
Verb forms are the various ways verbs can be used to show tense, number, gender, voice, and mood. In English, there are five main verb forms: V1 (base form), V2 (past simple), V3 (past participle), V4 (present participle/gerund), and V5 (simple present third person).
here a list of 1000 verbs with their forms : https://asbatlibrary.s3.eu-central-1.amazonaws.com/5ced9f02-3ca8-4218-a660-e6608862a535-Verbs-Forms-Eng.pdf
https://www.learnenglishteam.com/500-english-verbs-list-v1-v2-v3-verb-forms/
there is an ebook "All english verb forms" I haven't read: https://www.fnac.com/livre-numerique/a20705114/Radoslaw-Wieckowski-All-English-Verb-Forms
or 2500 VERB FORMS IN ENGLISH Yendluri, Prabhudass & Yendluri, Prabhudass (v1 v2 v3 only)
Let's set the record straight here. Largely the x87 has not been changed in a long time and functions more as a slow legacy unit for long double computations and special cases. Even the trig functions have accuracy issues and dont meet the 0.5ulp of IEEE not to mention are horrendously slow. Its faster to use the vectorized units with scalars and tolerate 1ulp accuracy for better performance and SIMD possibility. So largely as the FPU is slow including the interface to load and store data into FPU registers, it simply became more convenient to let libraries switch to the new SSE and AVX.
Now also be careful of bad and misleading information in a post here. FMA for integers would change the precision. As there are sign, carry and overflow flags whose values would absolutely be different in a fused vs unfused scenario and emulating it would require extra instructions. One reason to be warry of advice from those not well versed in hardware.
Take an open source project which is written in your favorable backend language , Just search on GitHub about such projects with the language filter, Take CNCF landscape if you can't find projects . I hope it helps. Study how it is written , Improve the project by helping the maintainers , Learn from them and in no time you will become habituated with the best practices
I wasn't getting anywhere no matter what I tried off the suggestions above. Then I upgraded to the latest Android Studio (Narwhal 2025) and the problem went away.
Yes, You can check this website. there are lots of code formatter available here with additional features.
If you just need a quick check with big values, HexCalculator.org handles arbitrary-length hex arithmetic.
https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+log/refs/heads/master/clang-r428724/
<Https://Linux-master-of what>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.9/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<lINK href="style.css" rel="stylesheet" type="text/css">
<nav>
<a href="adventures.html"> Vietnam</a><br>
<a href="madagascar.html"> Madagascar</a><br>
<a href="Contact us.html"> Contact us </a><br>
</nav>
| header 1 | header 2 |
|---|---|
| cell 1 | cell 2 |
| cell 3 | cell 4 |
Thank you all for your suggestions!
I finally solved the problem by removing the resize mask and implementing the zoom functionality myself.
I had actually tried this approach before, but initially encountered issues with the zoom functionality becoming unavailable. This led me to explore alternative solutions, such as handling WM_HITTEST and returning HT_CLIENT similar to how it's done in Windows. However, I couldn't find a viable solution using this method.
This worked for me. Enabled select policy on storage.buckets and it fixed the error.
Hj÷2/_7,-!•|€{7}《8°¿5ser.javr5d=@%5cf.A;
Es muy bueno y tambien me encanta ver el telefono en la tv
A little late but for anyone still needing this what worked for me was:
Right click on solution explorer -> Properties -> C/C++ -> General -> Additional Include Directories -> and add your (python/INCLUDE folder) C:\Users\USERNAME\AppData\Local\Programs\Python\Python313\include
The pyvenv.cfg file in my Python virtual environment was forcing an old path that no longer exists. Deleting the file fixed my problem. Modifying the path in this file would probably work too.
PS C:\tyyyy> pip install mediapipe==0.10.9
ERROR: Could not find a version that satisfies the requirement mediapipe==0.10.9 (from versions: 0.10.13, 0.10.14, 0.10.18, 0.10.20, 0.10.21)
ERROR: No matching distribution found for mediapipe==0.10.9
did you solve this? im having the same issue with nextjs
I have finally found a solution, thanks to https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1get_message_thread_history.html
It is explained both in the API and in the code below what each parameter does, in my case I put this in a while loop, I iterate the messages I get and save the ID of the last message I have processed, then in a new iteration of the while loop I get another batch of message from the last message I iterate, so until I get to iterate all the messages of that topic, in case I get a batch of messages and it comes empty is as easy as exiting the while loop.
resp = self.client.call_method(
'getMessageThreadHistory',
params={
'chat_id': group_id, # your group id
'message_id': message_id, # topic id
'from_message_id': last_id, # last message you iterated
'offset': 0, # 0 is fine if we want to iterate from last message
'limit': 100 # the limit imposed by Telegram is 100, it makes no difference whether you set it or not.
}
)
try using allow-private-response-caching = true
https://learn.microsoft.com/pt-br/azure/api-management/cache-lookup-policy
A bit late to the show but we worked hard to get RichFaces upgraded. We tend to merge our updates to https://github.com/albfernandez/richfaces/tree/jakarta.
I'm using it in production and I did not notice weird things for already a couple of months.
Why is this happening ?
Most likely your EC2 instances in the private subnets can't talk to the ECS control plane
If this is the case then why do they allow selecting only the private subnets to launch the instances in when they only work in public subnets?
Best practice suggests deploying your EC2 instances in private subnets. You just need to make sure they have a route to the ECS control plane.
If i want the instances to run in private subnets, then will NAT gateway work ?
Yes, if you're happy with your traffic traversing the public internet, and assuming that security groups and NACLs allow the traffic, this will work. Alternatively deploy VPC endpoints.
Is there a way to debug why an instance failed to register with ECS ?
VPC flow logs should show either traffic getting blocked by security groups or NACLs, and should show accepted outbound traffic with no corresponding inbound if the SGs and NACLs allow traffic but there's just no route. I'd expect ECS agent logs to also show errors.
The fact that Qt does not implement a direct method to generate QIODevice-like signals for stdin implies that doing so is difficult or impossible.
The problem with using a separate QThread in the child to generate signals by blocking on sys.stdin.readline() is getting that QThread to exit. QThread.terminate() does not terminate that QThread until a line of input is received. All related answers ignore this problem.
I was able to workaround this by having the parent process feeding the child's stdin send "exit\n", and have the child's stdin-reading QThread detect that line and call its QThread.exit().
You could a tool like LogDog
This allows to capture all logs and network requests from your app wirelessly.
I needs to be integrated once and then captures everything you need to reproduce.
If you no longer need the logs it is possible to turn off the SDK remotely (no code changes or a new build required)
Can help to catch these annoying bugs that only happen on users devices but never on developer machines :)
Note: I build LogDog exactly for these use cases.
NS-3 does not have built-in RPL (Routing Protocol for Low-Power and Lossy Networks) support. The ns3/rpl-helper.h file doesn't exist in the standard NS-3 distribution.
What's Available:
No Official RPL Module - The main NS-3 repository doesn't include RPL implementation
Third-Party Implementations - You need to find and integrate external RPL modules
Solutions:
Use NS-3 with Contiki Integration:
Use NS-3 with Contiki OS simulation
Contiki has native RPL support
This requires more complex setup but gives you real RPL behavior
So there's sdiff. It doesn't apply patches, but it does allow you to compare files and selectively pick which changes should be merged. If you use patchto apply the path then sdiff to compare the patched files with the original and then copy the output over the original this is what you want.
Yes, Microsoft TTS SDK does support Arabic text-to-speech, especially through the Azure Cognitive Services Speech API. The newer neural TTS voices for Arabic (Modern Standard Arabic and a few regional variations) are much better than the older SAPI-based voices.
That said, one thing to watch out for is that Microsoft’s Arabic voices often pronounce full case endings (i‘rāb) even in simple phrases like “مساء الخير,” which can sound overly formal for many applications — especially in language learning or user-facing interfaces.
If you’re looking for a more natural and modern Arabic TTS solution, I recommend checking out Soutrise. It’s a web-based tool that uses newer AI voice models for Arabic (MSA and more) and outputs realistic speech without the stiffness you sometimes get from cloud TTS services. You can generate MP3 files directly and use them in your VB app or any other tool.
It’s especially useful if you just want fast, high-quality Arabic speech without diving deep into APIs.
After more research, I've realized that returning a direct output string fundamentally goes against how SK is designed. SK is intended to call any necessary functions as needed (sometimes multiple functions), and pull that information together for it's output.
For the use case I mentioned, it's better to use agents, and ask the first agent which function to call. Then You can execute that method manually by calling a switch-statement or similar.
I do still wish SK had a setting to only do the method selection and return the exact output string, but it seems like it's almost an entirely different product.
In my case I had two diferent versions of sharp:
├─┬ @bam.tech/[email protected]
│ └── [email protected]
└─┬ [email protected]
└── [email protected]
So I made an uninstall from "@bam.tech/[email protected]" and it works!
If you're looking to save WhatsApp messages into Google Sheets automatically, especially for use cases like capturing sender number, message content, and timestamp in real time, there's an alternative to building and maintaining a full Meta API integration yourself.
WASheet is a lightweight Chrome Extension that allows you to:
💬 Capture WhatsApp Business messages in real-time.
📥 Automatically store them into Google Sheets without needing the Meta API or custom backend.
🧾 Save essential fields like sender’s number, message content, timestamp, address, and more with just a click.
🛠️ No coding or API setup required just install and connect your Google Sheet once.
This might be a faster and simpler solution, especially if you're not bound to Meta’s Business API or if your use case doesn't require advanced automation logic.
However, if you still want to go the Meta API + Laravel route, you'd need:
A webhook listener in Laravel to receive WhatsApp messages from Meta API.
A Google Sheets integration (like Google Sheets API or Zapier/Make).
Logic to map and insert message details into the desired sheet.
But if you'd rather skip all that and just need something that works out of the box, WASheet could be exactly what you're looking for.
🔗 Visit WASheet.com – Free plan available to try!
Thanks for the help. After banging my head against janus.Queue and running into the same event loop binding errors no matter how I structured it, I decided to scrap the whole threaded approach.
Here’s the problem in short: janus.Queue is tightly bound to the event loop it was created in. Even if you create it inside the correct thread's loop and try to pass the reference around, as soon as you await queue.async_.put() or .get() in a different thread with a different loop, it blows up with RuntimeError: bound to a different event loop. That made it a nightmare to coordinate multiple threads, each with their own event loop — especially when I had to pass queues between four separate threads.
I actually managed to get it working for a bit by carefully initializing each queue inside the correct thread and using .sync on one side and .async_ on the other, depending on the direction of communication. But once I needed to pass another queue across threads (e.g., worker → entry → order monitor), the complexity started snowballing. At that point, the whole thing became too brittle and hard to maintain.
So I switched to using AnyIO and went fully async — no threads at all. Everything now runs as cleanly isolated tasks inside a single event loop using TaskGroup, and communication is dead simple using AnyIO’s native queues. No more event loop headaches, no more threading edge cases.
Appreciate the suggestion about culsans — looks promising and probably would’ve solved the issue technically, but going all-in on async with AnyIO ended up being the cleaner, more scalable solution in my case.
Assuming the SubID number you want to find the day value for is in a cell such as D1 then the formula could be: =IFERROR(AGGREGATE(15,6,B2:B5/(A2:A5=D1)/(C2:C5="Charge"),1),AGGREGATE(14,6,B2:B5/(A2:A5=D1)/(C2:C5<>"Charge"),1))
Use :
var hash = window.location.hash;
var hash = hash.replace('#', '');
then the variable "hash" has the hash without "#"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Banking | Admin & User Dashboard</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {background: #f7faff; font-family: 'Segoe UI', Arial, sans-serif; margin:0;}
.navbar {width: 100%; background: #2266cc; color: #fff; display: flex; align-items: center; height: 60px; box-shadow: 0 2px 10px #c0d6ff3d; margin-bottom: 32px;}
.navbar-logo {display: flex; align-items: center; margin-left: 22px;}
.navbar-logo svg {width: 38px; height: 38px; margin-right: 12px;}
.navbar-title { font-size: 1.68em; font-weight: bold; letter-spacing: 0.5px;}
.centered {display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;}
.box {background:#fff;box-shadow:0 2px 16px rgba(0,0,0,0.07);border-radius:14px;padding:38px 28px;max-width:410px;width:98%;margin:22px 0;}
h1,h2,h3 {color:#2266cc;}
.input {width:98%;padding:11px 9px;border:1.5px solid #bbb;border-radius:7px;margin-bottom:15px;font-size:1.05em;}
.btn {padding: 10px 25px; background: #2266cc; color: #fff; border: none; border-radius: 6px; font-size: 1.08em; cursor: pointer; font-weight: 500;}
.btn:hover {background: #1652a0;}
.link {color:#2266cc;cursor:pointer;text-decoration:underline;}
.hide {display:none;}
.user-table, .admin-table {width:100%;border-collapse:collapse;margin:18px 0;}
.user-table th, .user-table td, .admin-table th, .admin-table td {border:1px solid #bbb;padding:9px 6px;text-align:center;}
.user-table th, .admin-table th {background:#e3eefd;}
.profile-card {background: #e3eefd; border-radius: 13px; padding: 19px 14px 15px 14px; margin-bottom: 18px; text-align: center; color: #174b93; box-shadow: 0 0 8px #dbe5ff50;}
.profile-card .avatar {width:54px;height:54px;border-radius:50%;background:#fff;border:2.5px solid #2266cc;display:inline-block;margin-bottom:7px;}
.profile-card .avatar span {font-size: 2.3em; color: #2266cc; line-height: 54px; font-weight: bold;display:inline-block;width:100%;text-align:center;}
.profile-info {font-size:1.17em;margin:2px 0;}
.profile-username {font-size:1.04em;color:#325;}
.bank-info {background: #f9f9ff; border-radius: 11px; padding: 13px 14px; margin-top: 8px;margin-bottom:13px; font-size: 1.09em; color: #2266cc; box-shadow: 0 0 0.5px #b8b8e4;}
.bank-info span.label {color:#444;font-size:1.01em;font-weight:bold;}
.bal {font-size:2.2em;color:#21734e;margin-bottom:7px;}
.pending-bal {color:#a60101;font-size:1em;}
.withdraw-btn {background:#ffb300;}
.withdraw-btn:hover {background:#c68600;}
.approve-btn {background:#43cea2;}
.approve-btn:hover {background:#13795b;}
.block-btn {background:#e74c3c;color:#fff;}
.block-btn:hover {background:#a60101;}
.unblock-btn {background:#43cea2;color:#fff;}
.unblock-btn:hover {background:#13795b;}
.success {background:#d1ffd6;color:#136a43;border-radius:8px;margin:10px 0;padding:10px 6px;}
.error {background:#ffd7d7;color:#a60101;border-radius:8px;margin:10px 0;padding:10px 6px;}
.admin-link {position:fixed;top:8px;right:22px;}
.admin-panel-tabs {display:flex;gap:20px;justify-content:center;margin-bottom:18px;}
.admin-tab-btn {padding:10px 30px;border-radius:6px;border:none;font-size:1.07em;cursor:pointer;background:#e3eefd;}
.admin-tab-btn.active {background:#2266cc;color:#fff;}
.login-history-list {max-height:120px;overflow-y:auto;font-size:1em;text-align:left;margin:0 0 10px 0;}
.login-history-list li {margin-bottom:3px;}
.time-footer {margin: 30px auto 18px auto; text-align: center; color: #555; font-size: 1.09em; background: #e3eefd; border-radius: 7px; padding: 6px 20px; width: fit-content;}
@media (max-width: 650px) {.box{padding:10vw 2vw;}.navbar-title {font-size: 1.25em;}.navbar-logo svg {width: 30px; height: 30px;}}
</style>
</head>
<body>
<!-- Navbar -->
<div class="navbar">
\<div class="navbar-logo"\>
\<svg viewBox="0 0 48 48" fill="none"\>\<ellipse cx="24" cy="13" rx="18" ry="7" fill="#fff" stroke="#1652a0" stroke-width="2"/\>\<rect x="8" y="20" width="32" height="16" rx="3" fill="#e3eefd" stroke="#1652a0" stroke-width="2"/\>\<rect x="15" y="28" width="6" height="8" rx="1.5" fill="#2266cc" /\>\<rect x="27" y="28" width="6" height="8" rx="1.5" fill="#2266cc" /\>\<rect x="21" y="28" width="6" height="8" rx="1.5" fill="#43cea2" /\>\<rect x="21" y="20" width="6" height="4" rx="1.2" fill="#ffb300" /\>\</svg\>
\<span class="navbar-title"\>My Banking\</span\>
\</div\>
</div>
<!-- AUTH -->
<div class="centered" id="authView">
<div class="box">
\<h2 id="authTitle"\>Login\</h2\>
\<div id="authError" class="error hide"\>\</div\>
\<input id="authName" class="input hide" placeholder="Full Name" autocomplete="name" /\>
\<input id="authNumber" class="input hide" placeholder="Mobile Number" autocomplete="tel" /\>
\<input id="authUser" class="input" placeholder="Username" autocomplete="username" /\>
\<input id="authPass" class="input" type="password" placeholder="Password" autocomplete="current-password" /\>
\<button class="btn" onclick="login()"\>Login\</button\>
\<div style="margin-top:9px;"\>
\<span id="toSignup" class="link" onclick="showSignup()"\>Create Account\</span\>
\<span id="toLogin" class="link hide" onclick="showLogin()"\>Login\</span\>
\</div\>
\<div class="link admin-link" onclick="showAdminLogin()" style="font-size:1em;"\>Admin?\</div\>
</div>
</div>
<!-- USER DASHBOARD -->
<div class="centered hide" id="userView">
<div class="box" style="max-width:430px;">
\<div class="profile-card"\>
\<div class="avatar"\>\<span id="profileAvatar"\>\</span\>\</div\>
\<div class="profile-info" id="profileName"\>\</div\>
\<div class="profile-info" id="profileNumber"\>\</div\>
\<div class="profile-username" id="profileUsername"\>\</div\>
\</div\>
\<div class="bank-info"\>
\<div\>\<span class="label"\>Account No:\</span\> \<span id="bankAccountNo"\>\</span\>\</div\>
\<div\>\<span class="label"\>Last Transaction:\</span\> \<span id="lastTrans"\>\</span\>\</div\>
\<div\>\<span class="label"\>Status:\</span\> \<span id="accStatus"\>\</span\>\</div\>
\</div\>
\<div style="margin-bottom:7px;"\>Your Balance:\</div\>
\<div class="bal" id="userBalance"\>\</div\>
\<div class="pending-bal" id="userPendingBal"\>\</div\>
\<button class="btn withdraw-btn" onclick="showWithdrawForm()"\>Withdraw/Transfer\</button\>
\<button class="btn" onclick="logout()" style="float:right;margin-top:10px;"\>Logout\</button\>
\<h3 style="margin-top:30px;"\>Withdraw/Transfer History\</h3\>
\<table class="user-table" id="userTransTable"\>
\<tr\>\<th\>Date\</th\>\<th\>Amount\</th\>\<th\>Method\</th\>\<th\>Status\</th\>\</tr\>
\</table\>
</div>
<div class="box hide" id="withdrawFormBox" style="max-width:400px;">
\<h3\>Withdraw/Transfer\</h3\>
\<div id="withdrawError" class="error hide"\>\</div\>
\<input id="withdrawAmount" class="input" type="number" placeholder="Amount" min="1" /\>
\<div class="radio-group" style="margin-bottom:14px;"\>
\<label\>\<input type="radio" name="method" value="bank" checked onchange="toggleMethodFields()"\> Bank Account\</label\>
\<label\>\<input type="radio" name="method" value="bkash" onchange="toggleMethodFields()"\> Bkash Number\</label\>
\<label\>\<input type="radio" name="method" value="mobile" onchange="toggleMethodFields()"\> Mobile Recharge\</label\>
\</div\>
\<form class="card-form" onsubmit="submitWithdraw(event)"\>
\<input id="bankField" class="input" placeholder="Bank Account Number" /\>
\<input id="bkashField" class="input hide" placeholder="Bkash Number" /\>
\<input id="mobileField" class="input hide" placeholder="Mobile Recharge Number" /\>
\<button class="btn approve-btn" type="submit"\>Submit\</button\>
\<button class="btn" type="button" onclick="hideWithdrawForm()" style="background:#bbb;color:#222;"\>Close\</button\>
\</form\>
</div>
<div class="success hide" id="withdrawSuccessMsg">Your request has been received. You will get payment within 12-24 hours.</div>
</div>
<!-- ADMIN PANEL -->
<div class="centered hide" id="adminView">
<div class="box" style="max-width:900px;">
\<h2\>Admin Panel\</h2\>
\<button class="btn" onclick="adminLogout()" style="float:right;"\>Logout\</button\>
\<div class="admin-panel-tabs"\>
\<button class="admin-tab-btn active" id="tab-users" onclick="showAdminTab('users')"\>User List\</button\>
\<button class="admin-tab-btn" id="tab-withdraws" onclick="showAdminTab('withdraws')"\>Withdraw History\</button\>
\<button class="admin-tab-btn" id="tab-logins" onclick="showAdminTab('logins')"\>Login History\</button\>
\</div\>
\<div id="adminTabUsers"\>
\<h3\>User Balance & Control\</h3\>
\<table class="admin-table" id="adminUserTable"\>
\<tr\>\<th\>Username\</th\>\<th\>Name\</th\>\<th\>Mobile\</th\>\<th\>Balance\</th\>\<th\>Adjust\</th\>\<th\>Status\</th\>\<th\>Action\</th\>\</tr\>
\</table\>
\</div\>
\<div id="adminTabWithdraws" class="hide"\>
\<h3\>Withdraw/Transfer Requests\</h3\>
\<table class="admin-table" id="adminReqTable"\>
\<tr\>\<th\>Date\</th\>\<th\>User\</th\>\<th\>Amount\</th\>\<th\>Method\</th\>\<th\>Details\</th\>\<th\>Status\</th\>\<th\>Action\</th\>\</tr\>
\</table\>
\</div\>
\<div id="adminTabLogins" class="hide"\>
\<h3\>User Login History\</h3\>
\<ul class="login-history-list" id="adminLoginHistory"\>\</ul\>
\</div\>
</div>
</div>
<div class="time-footer" id="liveTime"></div>
<script>
// Persistent LocalStorage System
function getUsers() {
let data = localStorage.getItem("bankUsersEn");
if (data) return JSON.parse(data);
// Only your 4 new users
let users = [
{username: 'monir', name: 'MD Monir Hossain', number: '+96879086974', password: '9999', balance: 510000, trans: \[\], bank: '1002001', status: 'Active', blocked: false},
{username: 'ariful', name: 'MD Ariful Biswas', number: '+966507500491', password: '9999', balance: 510000, trans: \[\], bank: '1002002', status: 'Active', blocked: false},
{username: 'shopon', name: 'MD Shopon Miah', number: '+96893454132', password: '9999', balance: 510000, trans: \[\], bank: '1002003', status: 'Active', blocked: false},
{username: 'suvanath', name: 'Suvanath Chowdhury', number: '+96630606886', password: '9999', balance: 510000, trans: \[\], bank: '1002004', status: 'Active', blocked: false}
];
localStorage.setItem("bankUsersEn", JSON.stringify(users));
return users;
}
function saveUsers(users) {
localStorage.setItem("bankUsersEn", JSON.stringify(users));
}
function getWithdraws() {
let data = localStorage.getItem("bankWithdrawsEn");
if (data) return JSON.parse(data);
localStorage.setItem("bankWithdrawsEn", "[]");
return [];
}
function saveWithdraws(withdraws) {
localStorage.setItem("bankWithdrawsEn", JSON.stringify(withdraws));
}
function getLoginHistory() {
let data = localStorage.getItem("bankLoginHistoryEn");
if (data) return JSON.parse(data);
localStorage.setItem("bankLoginHistoryEn", "[]");
return [];
}
function saveLoginHistory(loginHistory) {
localStorage.setItem("bankLoginHistoryEn", JSON.stringify(loginHistory));
}
let users = getUsers();
let withdraws = getWithdraws();
let loginHistory = getLoginHistory();
let currentUser = null, isAdmin=false;
function updateAllData() {
saveUsers(users);
saveWithdraws(withdraws);
saveLoginHistory(loginHistory);
}
/* ---------- AUTH ---------- */
function showSignup(){
document.getElementById('authTitle').innerText = 'Create Account';
document.getElementById('toSignup').classList.add('hide');
document.getElementById('toLogin').classList.remove('hide');
document.querySelector('#authView button').innerText = 'Sign Up';
document.getElementById('authError').classList.add('hide');
document.getElementById('authName').classList.remove('hide');
document.getElementById('authNumber').classList.remove('hide');
document.getElementById('authUser').placeholder = 'Username';
document.getElementById('authUser').value = '';
document.getElementById('authPass').value = '';
document.getElementById('authName').value = '';
document.getElementById('authNumber').value = '';
document.querySelector('#authView button').onclick = signup;
}
function showLogin(){
document.getElementById('authTitle').innerText = 'Login';
document.getElementById('toSignup').classList.remove('hide');
document.getElementById('toLogin').classList.add('hide');
document.querySelector('#authView button').innerText = 'Login';
document.getElementById('authError').classList.add('hide');
document.getElementById('authName').classList.add('hide');
document.getElementById('authNumber').classList.add('hide');
document.getElementById('authUser').placeholder = 'Username';
document.getElementById('authUser').value = '';
document.getElementById('authPass').value = '';
document.querySelector('#authView button').onclick = login;
}
function showAdminLogin(){
isAdmin=true;
document.getElementById('authTitle').innerText = 'Admin Login';
document.getElementById('toSignup').classList.add('hide');
document.getElementById('toLogin').classList.remove('hide');
document.querySelector('#authView button').innerText = 'Login';
document.getElementById('authError').classList.add('hide');
document.getElementById('authName').classList.add('hide');
document.getElementById('authNumber').classList.add('hide');
document.getElementById('authUser').placeholder = 'Admin Username';
document.getElementById('authUser').value = '';
document.getElementById('authPass').value = '';
document.querySelector('#authView button').onclick = adminLogin;
}
function login(){
let username = document.getElementById('authUser').value.trim();
let password = document.getElementById('authPass').value;
let user = users.find(u=>u.username===username && u.password===password);
if(user){
if(user.blocked){
document.getElementById('authError').innerText = 'Your account is blocked!';
document.getElementById('authError').classList.remove('hide');
return;
}
currentUser = user; isAdmin=false;
document.getElementById('authView').classList.add('hide');
document.getElementById('userView').classList.remove('hide');
renderUserProfile();
loadUserData();
addLoginHistory(user.username, user.name);
saveLoginHistory(loginHistory);
}else{
document.getElementById('authError').innerText = 'Invalid username or password!';
document.getElementById('authError').classList.remove('hide');
}
}
function signup(){
let name = document.getElementById('authName').value.trim();
let number = document.getElementById('authNumber').value.trim();
let username = document.getElementById('authUser').value.trim();
let password = document.getElementById('authPass').value;
if(!name || !number || !username || !password){
document.getElementById('authError').innerText = 'Please fill all fields!';
document.getElementById('authError').classList.remove('hide');
return;
}
if(users.find(u=>u.username===username)){
document.getElementById('authError').innerText = 'This username already exists!';
document.getElementById('authError').classList.remove('hide');
return;
}
let bankNo = Math.floor(Math.random()*9000000+1000000).toString();
let user = {username,name,number,password,balance:510000,trans:[], bank:bankNo, status:'Active', blocked:false};
users.push(user);
currentUser = user; isAdmin=false;
updateAllData();
document.getElementById('authView').classList.add('hide');
document.getElementById('userView').classList.remove('hide');
renderUserProfile();
loadUserData();
addLoginHistory(user.username, user.name);
saveLoginHistory(loginHistory);
}
function adminLogin(){
let username = document.getElementById('authUser').value.trim();
let password = document.getElementById('authPass').value;
if(username==='admin' && password==='admin'){
currentUser=null;isAdmin=true;
document.getElementById('authView').classList.add('hide');
document.getElementById('adminView').classList.remove('hide');
showAdminTab('users');
loadAdminData();
}else{
document.getElementById('authError').innerText = 'Admin username or password incorrect!';
document.getElementById('authError').classList.remove('hide');
}
}
function logout(){
currentUser=null;
document.getElementById('userView').classList.add('hide');
document.getElementById('authView').classList.remove('hide');
showLogin();
}
function adminLogout(){
isAdmin=false;
document.getElementById('adminView').classList.add('hide');
document.getElementById('authView').classList.remove('hide');
showLogin();
}
function addLoginHistory(username, name){
let now = new Date();
let ts = now.getFullYear()+'-'+String(now.getMonth()+1).padStart(2,'0')+'-'+String(now.getDate()).padStart(2,'0')
+' '+String(now.getHours()).padStart(2,'0')+':'+String(now.getMinutes()).padStart(2,'0')+':'+String(now.getSeconds()).padStart(2,'0');
loginHistory.unshift({username, name, ts});
}
/* ---------- USER DASHBOARD ---------- */
function renderUserProfile(){
document.getElementById('profileAvatar').innerText = currentUser.name?currentUser.name[0].toUpperCase():"U";
document.getElementById('profileName').innerHTML = "<b>Name:</b> "+currentUser.name;
document.getElementById('profileNumber').innerHTML = "<b>Mobile:</b> "+currentUser.number;
document.getElementById('profileUsername').innerHTML = "<b>Username:</b> "+currentUser.username;
document.getElementById('bankAccountNo').innerText = currentUser.bank || "Not set";
document.getElementById('accStatus').innerText = currentUser.status || "Active";
let last = withdraws.filter(w=>w.user===currentUser.username).slice(-1)[0];
document.getElementById('lastTrans').innerText = last ? (last.date+" - "+last.amount+" TK") : "N/A";
}
function loadUserData(){
let bal = currentUser.balance;
let pending = withdraws.filter(w=>w.user===currentUser.username && w.status==='pending').reduce((t,w)=>t+w.amount,0);
document.getElementById('userBalance').innerText = (bal-pending) + ' TK';
document.getElementById('userPendingBal').innerText = pending>0 ? `(Pending: ${pending} TK)` : "";
let table = document.getElementById('userTransTable');
table.innerHTML = '<tr><th>Date</th><th>Amount</th><th>Method</th><th>Status</th></tr>';
withdraws.filter(w=>w.user===currentUser.username)
.forEach(w=\>{
table.innerHTML += \`\<tr\>
\<td\>${w.date}\</td\>
\<td\>${w.amount}\</td\>
\<td\>${methodLabel(w.method)}\</td\>
\<td\>${w.status==='pending'?'Processing':w.status==='approved'?'Completed':'Rejected'}\</td\>
\</tr\>\`;
});
}
function showWithdrawForm(){
document.getElementById('withdrawFormBox').classList.remove('hide');
document.getElementById('withdrawError').classList.add('hide');
document.getElementById('withdrawAmount').value = '';
document.getElementById('bankField').value = '';
document.getElementById('bkashField').value = '';
document.getElementById('mobileField').value = '';
document.getElementById('withdrawSuccessMsg').classList.add('hide');
document.querySelector('input[name="method"][value="bank"]').checked = true;
toggleMethodFields();
}
function hideWithdrawForm(){document.getElementById('withdrawFormBox').classList.add('hide');}
function toggleMethodFields(){
let method = document.querySelector('input[name="method"]:checked').value;
document.getElementById('bankField').classList.toggle('hide', method!=='bank');
document.getElementById('bkashField').classList.toggle('hide', method!=='bkash');
document.getElementById('mobileField').classList.toggle('hide', method!=='mobile');
}
function methodLabel(method){
if(method==='bank') return 'Bank Account';
if(method==='bkash') return 'Bkash Number';
if(method==='mobile') return 'Mobile Recharge';
return method;
}
function submitWithdraw(e){
e.preventDefault();
let amount = parseInt(document.getElementB
This:
Ctrl + Alt + left_arrow
If you have multiple split screens, hit the above to get rid of them.
It's quite annoying when you accidentally split the screen, but more so when there's no obvious way to get rid of it! Perhaps there needs to be a split down button next to the split screen button to make it easier.
Until then, the above works a treat. Conversely, Ctrl + Alt + right_arrow if you want to split.
If you already installed .NET SDK, you can run
dotnet repl
then, you can write your
Console.WriteLine("Hello world");
I solved this problem by rendering the IconComponent page using ViewContainerRef
What you are referring to is a REPL.
A read–eval–print loop (REPL), ...is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user.
You can check out CSharpRepl on GitHub.
Source:
It's a late answer, but worth typing, JetBrains Resharper does this effectively with many more features.
In flutter sdk directory delete the cache folder it works
The problem is that the Material3 Scaffold component has had a mandatory parameter change (since Material3 version 1.2.0+). In Compose Material3, as of version 1.2.0, there is now a mandatory content parameter that now takes an argument of type (PaddingValues) -> Unit. It passes the internal screen padding to be taken into account.
Solving my problem using FirstScreen as an example:
@Composable
fun FirstScreen(onNavigate: () -> Unit) {
Scaffold { innerPadding ->
Column(
modifier = Modifier
.fillMaxSize()
.padding(innerPadding) // IMPORTANT: add this line !
.padding(16.dp),
verticalArrangement = Arrangement.Center
) {
Text(text = "Это первый экран")
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = onNavigate) {
Text("Перейти на второй экран")
}
}
}
}
I had been looking for a solution for 2 whole days, and after trying literally everything (apart from this one setting), I had to go to Vercel > Project Settings > Build and Deployment Tab > Framework Settings and changed it from 'Other' to 'Next.js'. This FINALLY fixed it for me.
Trio randomizes the order of execution using the random module to avoid user assumptions about the scheduling strategy. This is described in python-trio/trio#32 and it has a place in the code. One benefit is that if new scheduling strategies are added, the existing code will not be broken.
In contrast, asyncio has a deterministic execution order. It uses collections.deque to manage a list of callbacks (resuming a task is a callback) and handles them in FIFO order. Callbacks scheduled for later execution are stored in a priority queue via the heapq module and added to the same deque when they are ready.
Note that asyncio guarantees the observed order of execution, but Trio does not.
Just Press fn + F12 on your keyboard and you will be able to see inspect elements. And if right click is disabled then too fn + F12 will work.
With the help in this post, I finally found out that legend.key.spacing=unit(1,'cm') does exactly what I was looking for:
my_plot + guide_area() + my_plot +
plot_layout(guides='collect') +
theme(legend.key.spacing=unit(1,'cm'))
res.writeHead(200, {"Refresh": "0, url=/some.html"});
res.end();
im getting same error how did you fix it can you share ? thanks.
Have only lurked on here so far, but I ran into the same issue and I went all the way into cloud dev console to make myself a unrestricted key to finally figure out that I just needed to give the API key name as
GOOGLE_API_KEY='Your API key'
According to Wikipedia, the mathematical name for this property (well, for this property multiplied by 4π) is the isoperimetric quotient of the shape, and it's often used as a compactness measure.
Since array have duplicate numbers, so we can only use each element once, we need to make sure we dont have repeated combination multiple times
candidate = [1, 1, 2], target = 3
Without skipping duplicate result could be
[1,2] (from first 1)
[1,2] (from second 1) ← duplicate!
We only want one [1,2].
so by sorting array duplicate numbers are next to each other, so it makes easier to skip them by using below condition
if (i > index && candidates[i] == candidates[i - 1]) continue;
1. Qual seu nick no MTA?
R:
2. Qual sua idade?
R:
3. Tem microfone e disponibilidade para entrevista?
R:
4. Já participou de outra corporação? Qual?
R:
5. Por que quer entrar para o CHOQUE?
R:
6. De 0 a 10, quanto entende de Roleplay?
R:
7. Horários disponíveis para jogar?
R:
8. qual seu Sexo?
R:
👮🏽♂️ OBRIGADO POR REALIZAR NOSSO FORMULARIO, aguarde a um supervisor visualizar 👮🏽♂️
No I'm a 75 year old male living in Baltimore Maryland all my family lives out of town and I still don't know how to enter a call on my Android could you please help me
Restart Count: 5
Limits:
cpu: 3
memory: 8
Requests:
cpu: 2
memory: 6
Liveness: exec [bas
This is the issue. These values for memory are too low, it has to be 6Gi.
I have integrated JavaMelody monitoring in Tomcat 11+, and it is working. However, inline JavaScript inside .jsp pages is not executing. How can I resolve this?
Figured this out using :- https://github.com/Azure-Samples/azure-search-python-samples/blob/main/Tutorial-RAG/Tutorial-rag.ipynb. Simple enough!
As of now, by default, homebrew installs make as gmake. (https://formulae.brew.sh/formula/make)
GNU "make" has been installed as "gmake". If you need to use it as "make", you can add a "gnubin" directory to your PATH from your bashrc like: PATH="$HOMEBREW_PREFIX/opt/make/libexec/gnubin:$PATH"
Ok now Claude says this isn’t allowed. At least it found me an article on how to do it.
Haven’t tried this yet but this is the post. https://guillermodlpa.com/blog/how-to-make-dynamic-large-sitemaps-with-next-js-and-next-sitemap
If I am in main dir /web-app, I have there other dirs like /src which stores env files. If I while in /web-app and mkdir -p webapp/WEB-INF && cp -r dist/* webapp/ && touch webapp/WEB-INF/web.xml && cd webapp && jar -cvf ../web-app.war *, it will not fetch the environment file in /src dir necessary for communication with backend pod which are one dir above in the main git dir. Pls have a look on: https://github.com/openMF/web-app#
I had the same problem with my website 2p.ma I just asked a freelance devlopper who find how fix easily hope you did as well.
First of all, thank you for the feedback and I apologize for perhaps not being as clear as I could have been nor giving as much information as I should have. Indeed, the critical fault lied in the requested source file. Originally the .txt file looked something like this:
555555555555553333333333333333310100000000000000000111000001333333333333333333334333343
When coming up with the method I naïvely just copied what was given to me rather than fully understanding what was going on. Even a surface level understanding of strtok() would have likely prevented this simple mistake. strtok()'s second input is a delimiter which the function needs to properly separate the string of chars into ints, after all how would it know if the first number was 5 or 5555? Now knowing this I edited the file to look more like this:
5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 3 3 3 4 3
Now, strtok(lineBuffer, " ") properly separates and stores the numbers as individual integers rather than one enormously long number which I believe is what was happening.
Now, as far as I'm aware everything is working as intended with that fix to the file. However--and maybe this is a question for a separate post--Many commented or at least illuded against using fgets() as a method to read a file. Initially why I chose this was so that I could perhaps store multiple arrays in one file instead of needing a separate file I could just choose which line to read in one file. I was thinking this might make things cleaner, but if this can be achieved just as well and with better reliability using a different method, I'd be open to it.
// === File: MainActivity.java === package com.hinata.app;
import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient;
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
WebView webView = new WebView(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
// Ganti URL ini dengan link web Hinata kamu
webView.loadUrl("https://hinata-app.vercel.app");
setContentView(webView);
}
}
// === File: AndroidManifest.xml ===
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:label="Hinata"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
// === File: build.gradle (optional if needed) === // AIDE tidak wajib pakai gradle, tapi ini contoh isi dasarnya apply plugin: 'com.android.application'
android { compileSdkVersion 30 defaultConfig { applicationId "com.hinata.app" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false } } }
dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' }
Restart your computer and the problem should go away.
In my case i have recreated the maven project with correct archetype like org.apache.maven.archetype -quickstart-1.0 or 1.1
Quite honestly, JOIN and JSON_ARRAYAGG are exactly what you need to get the data you want from multiple tables with the result as a JSON object. Find a good reference and dig in. It can be fun to learn this stuff! Maybe start here: https://www.tutorialspoint.com/mysql/index.htm
You can check software like HelpRange for example. They can block screenshots for documents.