|
Post by AnthroHeart on Mar 21, 2024 6:45:49 GMT
nathanmyersc I think your multithreaded code was a little faster than mine before I added intention multiplying to v0.7.
So you could check to see if my code is optimized for that. I added in your recommendations like having sockets for each thread and adding iterations and freq in each thread and summing up the freq and iterations across all threads.
It definitely does feel really high pitched now.
I don't know if you can feel the energy.
If the intention is too long it might error out since I am multiplying it 500 times. So I will need to figure out the max length I can transmit and multiply intention to that instead.
|
|
|
Post by AnthroHeart on Mar 21, 2024 6:58:48 GMT
ChatGPT says you can only broadcast "1472 bytes", but the message I am broadcasting was:
"I am cleared, healed, balanced and release what I do not need. I am a 5D Light Being. I am Love and Bliss."
multiplied 500X, and it still worked. So I'm not sure if it is fully broadcasting.
|
|
|
Post by nathanmyersc on Mar 21, 2024 7:52:21 GMT
I'm getting approx 3MHz now on v0.7 of the WiFi Broadcaster with using intention repeating and multi-threading for "I am Love."
I am creating an intention_multiplied string that has intention repeated 2E5 (or 500) times. I couldn't go any higher because it errored out.
I introduced a 10ms delay each second to give the program room to breathe.
You might want to check to make sure my logic is correct.
What is the multiplier for? 5E2 or whatever it is. How is that relevant to the iterations or frequency count. Hmm multiplying your intention could be better practic up to a certain point. Because if you have a 50 byte sentence made of 50 characters its still better to send a packet of like 1024 up to like 10000 bytes or so. So the multiplying the intention is a good idea. But it becomes problematic with Ah i see because you are multiplying the intentions you multiply the other things too.
|
|
|
Post by AnthroHeart on Mar 21, 2024 7:54:14 GMT
I'm getting approx 3MHz now on v0.7 of the WiFi Broadcaster with using intention repeating and multi-threading for "I am Love."
I am creating an intention_multiplied string that has intention repeated 2E5 (or 500) times. I couldn't go any higher because it errored out.
I introduced a 10ms delay each second to give the program room to breathe.
You might want to check to make sure my logic is correct.
What is the multiplier for? 5E2 or whatever it is. How is that relevant to the iterations or frequency count. If you have the string "I am Love." and broadcast that, it's 1 repetition.
If you multiply that times two you get "I am Love.I am Love."
If you broadcast that it's 2 repetitions.
Repeat that 5E2 or 500X and you get 500 repetitions per broadcast.
However many times you can do that in 1 second = the number of Hz X 500.
The energy definitely feels thicker than before intention multiplying.
|
|
|
Post by nathanmyersc on Mar 21, 2024 8:03:32 GMT
What is the multiplier for? 5E2 or whatever it is. How is that relevant to the iterations or frequency count. If you have the string "I am Love." and broadcast that, it's 1 repetition.
If you multiply that times two you get "I am Love.I am Love."
If you broadcast that it's 2 repetitions.
Repeat that 5E2 or 500X and you get 500 repetitions per broadcast.
However many times you can do that in 1 second = the number of Hz X 500.
The energy definitely feels thicker than before intention multiplying.
Makes sense. Seems like a good idea. You could make it so that you calculate the byte size of your intention and multiply it the appropiate amount of times to remain within a acceptable packet size. i think up to like 10000 bytes per send or something. I am Love. is 10 bytes i believe. plus a new line character might make it 11 bytes. 11 x 500 = 5500 bytes. It probably depends on the length of the intention. So as i was saying find out what the maximum packet size you can send is and then divide that by the number of characters in your string and you have the multiplication amount. Like if we have a 10 byte string and we can send a 10000 byte packet. then you have a 1000 mulitplied string. because it is likely faster to send a larger packet less overhead. example for(int i = 0;i < 1500/ intention.size();++i ) 1500 being the commong MTU size. although since nothing has to recieve the packet it might be better to go up to like 10000 bytes. but im not sure. intentionMultiplied += intention; for(int i = 0;i < 1500/ intention.size();++i ) intentionMultiplied += intention; Or better yet this void setLocaleToAscii()
{
// Set the locale to "C", which is typically ASCII encoding
std::locale::global(std::locale("C"));
// Test if the locale is set to ASCII
if (std::locale().name() == "C") {
std::cout << "Locale set to ASCII encoding." << std::endl;
} else {
std::cout << "Failed to set locale to ASCII encoding." << std::endl;
}
} #pragma comment(lib, "iphlpapi.lib")
/// USED TO GET THE ADAPTER YOU ARE CONNECTED TO INTERNET WITHS NAME ///
std::string getConnectedAdapterName() {
PIP_ADAPTER_ADDRESSES pAddresses = nullptr;
ULONG outBufLen = 0;
DWORD ret = GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, pAddresses, &outBufLen);
if (ret != ERROR_BUFFER_OVERFLOW) {
std::cerr << "Failed to retrieve adapter addresses buffer size." << std::endl;
return "";
}
pAddresses = reinterpret_cast<PIP_ADAPTER_ADDRESSES>(malloc(outBufLen));
if (!pAddresses) {
std::cerr << "Memory allocation failed." << std::endl;
return "";
}
ret = GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, pAddresses, &outBufLen);
if (ret != NO_ERROR) {
std::cerr << "Failed to retrieve adapter addresses." << std::endl;
free(pAddresses);
return "";
}
for (PIP_ADAPTER_ADDRESSES pCurrAddress = pAddresses; pCurrAddress != nullptr; pCurrAddress = pCurrAddress->Next) {
if (pCurrAddress->OperStatus == IfOperStatusUp && pCurrAddress->IfType != IF_TYPE_SOFTWARE_LOOPBACK) {
std::string adapterName = pCurrAddress->AdapterName;
free(pAddresses);
return adapterName;
}
}
free(pAddresses);
return ""; // No connected adapter found
}
/// GETTING MAXIMUM TRANSMISSION UNIT ///
int getMTU(const char* ifname) {
PIP_ADAPTER_ADDRESSES pAddresses = nullptr;
ULONG outBufLen = 0;
DWORD ret = GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, pAddresses, &outBufLen);
if (ret != ERROR_BUFFER_OVERFLOW) {
std::cerr << "Failed to retrieve adapter addresses buffer size." << std::endl;
return -1;
}
pAddresses = reinterpret_cast<PIP_ADAPTER_ADDRESSES>(malloc(outBufLen));
if (!pAddresses) {
std::cerr << "Memory allocation failed." << std::endl;
return -1;
}
ret = GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, pAddresses, &outBufLen);
if (ret != NO_ERROR) {
std::cerr << "Failed to retrieve adapter addresses." << std::endl;
free(pAddresses);
return -1;
}
for (PIP_ADAPTER_ADDRESSES pCurrAddress = pAddresses; pCurrAddress != nullptr; pCurrAddress = pCurrAddress->Next) {
if (strcmp(ifname, pCurrAddress->AdapterName) == 0) {
free(pAddresses);
return pCurrAddress->Mtu;
}
}
free(pAddresses);
return -1; // Interface not found
}
setLocaleToAscii(); const short multiplier = getMTU(getConnectedAdapterName().c_str())/ intention.size();
for(int i = 0;i < multiplier;++i ) intentionMultiplied += intention; That will get the maximum transmission unit your system is designed for. It might be faster to transmit close to that number of bytes per transmission.
|
|
|
Post by AnthroHeart on Mar 21, 2024 8:40:15 GMT
Ok, I found out the max packet size accounting for overhead was about 65500 bytes.
I have updated to v0.8. It multiplies the intention until it reaches that limit and then takes the leftmost 65500 bytes.
For Intention: I am Love.
Without Multithreading: 2.928MHz
With Multithreading: 3.046MHz
|
|
|
Post by nathanmyersc on Mar 21, 2024 8:44:44 GMT
Ok, I found out the max packet size accounting for overhead was about 65500 bytes.
I have updated to v0.8. It multiplies the intention until it reaches that limit and then takes the leftmost 65500 bytes.
For Intention: I am Love.
Without Multithreading: 2.928MHz
With Multithreading: 3.046MHz
Another thing you can do to speed it up is this We are using IPPROTO_UDP instead of 0 And we are assigning a size to the buffer of the socket. which increases the speed signifigantly i set it to 4.18 mb. you could set it even higher and it will go even faster. the buffer size is good if your trying to transmit larger items for sure. speeds up things quite a bit // Create socket
socks[i] = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (socks[i] == INVALID_SOCKET) {
std::cerr << "Socket creation failed with error: " << WSAGetLastError() << std::endl;
WSACleanup();
return 1;
}
// Set socket to broadcast mode
const int broadcast = 1;
if (setsockopt(socks[i], SOL_SOCKET, SO_BROADCAST, (const char*)&broadcast, sizeof(broadcast)) == SOCKET_ERROR) {
std::cerr << "Error in setting Broadcast option with error: " << WSAGetLastError() << std::endl;
closesocket(socks[i]);
WSACleanup();
return 1;
}
// Set socket buffer size
int bufferSize = 2048 * 2048; // Example buffer size (2MB), you can adjust as needed
if (setsockopt(socks[i], SOL_SOCKET, SO_SNDBUF, (const char*)&bufferSize, sizeof(bufferSize)) == SOCKET_ERROR) {
std::cerr << "Error in setting UDP buffer size with error: " << WSAGetLastError() << std::endl;
closesocket(socks[i]);
WSACleanup();
return 1;
}
|
|
|
Post by AnthroHeart on Mar 21, 2024 10:26:52 GMT
I tried updating the buffer size as you suggested, but was getting this error when running:
Error in sending broadcast message with error: 10013
It indicates a permissions issue.
Not sure how to get around that atm.
Could we instead encode the intention multiplied string with a CODEC or similar, to make it smaller and able to repeat more?
Would an encoded string broadcast still be as effective?
|
|
|
Post by AnthroHeart on Mar 21, 2024 11:03:17 GMT
Ok, cool. I was able to use a buffer size of 2048 * 2048, broken down into chunks so it wouldn't error out. Version 0.9 is on my github repo.
The only problem with this version is sometimes it drops to 0. Since it's breaking it down in chunks anyway, it might not be useful to go over 65500 for buffer size. Though I gained 300kHz on the speed.
There is also a v0.10 that includes a Boost, which puts the number 0010110 into the intention. It slows down, but it's a powerful manifestation number.
For Intention: I am Love. MultiThreaded (y/N): n Broadcasting: [00:00:05] 17.616M Repetitions (2.936MHz) MultiThreaded (y/N): y Broadcasting: [00:00:07] 23.488M Repetitions (3.355MHz) github.com/tsweet77/intention-repeater-wifi
|
|
|
Post by reden on Mar 21, 2024 14:42:10 GMT
Try manifesting something physical with it
|
|
|
Post by reden on Mar 21, 2024 16:59:49 GMT
You can write a long string and hash it using md5 or sha256. All the words will be concentrated into the hash. Then you can repeat the hash many more times, but I forgot if hashing that still worked. When I did great multed files, the winmults, I compressed the giant txts into tars, then xz'd them, then hashed that, used it as the content of 100000 Nesting files, each of them containing 1 million hashes, and it worked.
|
|
|
Post by AnthroHeart on Mar 21, 2024 17:02:30 GMT
Do you think md5 or sha256 would be better for the energy?
Which one would provide better uniqueness?
|
|
|
Post by reden on Mar 21, 2024 17:06:21 GMT
Do you think md5 or sha256 would be better for the energy? Which one would provide better uniqueness? Sha256 would provide better uniqueness, but I never tried with md5. I just waited for the sha256s to finish. Since the massive files were compressed to barely 1 MB or less, it didn't take that long.
|
|
|
Post by AnthroHeart on Mar 21, 2024 17:12:52 GMT
Do you think md5 or sha256 would be better for the energy? Which one would provide better uniqueness? Sha256 would provide better uniqueness, but I never tried with md5. I just waited for the sha256s to finish. Since the massive files were compressed to barely 1 MB or less, it didn't take that long. Oh, I thought Sha256 compressed everything to 256 bits in size.
|
|
|
Post by reden on Mar 21, 2024 17:17:18 GMT
Sha256 would provide better uniqueness, but I never tried with md5. I just waited for the sha256s to finish. Since the massive files were compressed to barely 1 MB or less, it didn't take that long. Oh, I thought Sha256 compressed everything to 256 bits in size. I guess you could say that's what it did, then I stacked the hash up as I mentioned. Though it makes 64 characters that contain the encoded data.
|
|