Green will seed of wrath location
GardeningWhenItCounts
2021.08.12 16:36 ampersand12 GardeningWhenItCounts
"We can live into the future with hope rather than hopelessness, feeling empowered rather than powerless." - Leah McElrath A positive community to discuss gardening, farming, and other means of food production when it counts. Our future looks scary, but we aren't helpless. Being resilient by growing food is an important skill in an uncertain future. We promote the ideas of mutual aid and community support. In hard times all we have is each other. Please share knowledge and ask questions.
2015.05.20 06:54 jmetal88 Cosmo and Wanda
A subreddit for real-life sightings of Cosmo and Wanda!
2019.07.22 23:04 Elainasha Green Frontier: Netflix Original Series
A subreddit for the Netflix crime thriller Green Frontier. Anybody is welcome to comment about anything related to the series.
2023.03.27 03:15 ThrowRAthebiblybot Survey on Tampa PD’s approval
I recently visited Tampa on a trip, and as a first year Criminal Justice student, a project I am completing polls either current, or former residents of a town/city on what they believe needs to improve within their local law enforcement in terms of community outreach. The poll must be done in a location exceeding 50k residents, and unfortunately for me, my town has nowhere near this. I figured this sub would be a great way to get
somewhat unbiased results and concerns with any current tampa residents. This is NOT intended to be a political debate, this is NOT intended to create any arguments. You have a right to respectfully disagree with a statement, but please keep it civil.
I have spoken with moderators prior to posting this Thank you so much for participating, this will be used as data in my project and hopefully in the future to bring forward any concerns residents may have about public safety.
View Poll submitted by
ThrowRAthebiblybot to
tampa [link] [comments]
2023.03.27 03:15 custommedalspins How To Attach Enamel Pin
| Over the past few years, enamel pins have seen significant growth in popularity as a type of fashion item. These pins are available in a plethora of designs and aesthetics, ranging from charming and quirky to sophisticated and elegant in both appearance and design. When it comes to wearing enamel pins, knowing how to properly attach them is one of the most crucial things you can learn. In this piece, we will discuss a variety of techniques for affixing enamel pins in a manner that will ensure they do not become loose over time. https://preview.redd.it/pauj2rt3n6qa1.jpg?width=750&format=pjpg&auto=webp&s=c8a6fb8db1453695ce47255d076850d6379f59ca Method 1: The Rubber Clutch The rubber clutch is the attachment mechanism that is used for enamel pins more frequently than any other. It is a circular piece of rubber that is very small and may be put onto the rear of the pin. The rubber clutch wraps itself securely around the pin post and maintains the position of the pin as a result. In order to attach an enamel pin utilizing a rubber clutch, the following steps need to be followed: Position the pin so that it will go through the fabric at the desired attachment point.To attach the rubber clutch to the pin, slide it onto the post. When you get it where you want it, push the clutch up toward the back of the pin so that it is flush on the fabric. Attaching enamel pins can be done in a quick and efficient manner by using a rubber clutch. It is simple to remove and reposition the pin whenever it is necessary, despite the fact that it maintains the pin in a secure position. Method 2: The Butterfly Clutch Another common way for attaching enamel pins is by using a butterfly clutch, which is also sometimes referred to as a military clutch. It is a piece of metal with two little wings that fold over the pin post in order to secure the pin in its position. The following procedures need to be taken in order to successfully attach an enamel pin using a butterfly clutch: Position the pin so that it will go through the fabric at the desired attachment point. One hand should be used to keep the pin in position while the other should be used to fold the butterfly clutch’s wings over the pin’s post. When you get it where you want it, push the clutch up toward the back of the pin so that it is flush on the fabric. The butterfly clutch is a secure attachment mechanism that is frequently used for enamel pins that are either particularly costly or particularly heavy. Although it is more challenging to remove than the rubber clutch, it gives a firmer grasp on the object. Method 3: Safety Pin Using a safety pin to secure enamel pins is a straightforward and time-honored method. However, this method is not advised for use with heavy or precious pins because it poses a risk of damaging either the pin or the fabric. Follow these procedures to successfully attach an enamel pin utilizing a safety pin: When you get to the spot on the fabric where you wish to connect the pin, poke the safety pin through it. Just thread the loop of the safety pin through the opening in the enamel pin. When the safety pin is closed, you can check to see sure the enamel pin is firmly attached. Although while the safety pin is a straightforward and inexpensive way of connection, it is not the safest or most dependable choice. It is recommended that you only use this procedure for pins that are not particularly valuable and are light in weight. Method 4: Using A Magnetic Backing Enamel pins are typically fastened with a magnetic back, which is a contemporary attachment method that is gaining in popularity. It is a two-piece combination that consists of a magnet and a metal component that fastens to the rear of the pin. The magnet may be attached to almost anything. The following actions need to be taken in order to successfully attach an enamel pin with a magnetic back: Position the metal piece so that it will go through the cloth at the location where the pin will be attached. Keep the enamel pin in place, and then position the magnet such that it is adhered to the pin’s reverse side. The magnet will attach to the metal component, which will then keep the pin in a safe and secure position. The magnetic back provides a way of attachment that is not only reliable but also simple to use. On the other hand, you should avoid using it for pins that are very heavy or precious because the magnet might not be powerful enough to keep them in place. Advice and Safety Measures In addition to the procedures that have been outlined above, there are a number of helpful hints and measures that can be taken to guarantee that your enamel pins will remain firmly attached. The following are some important considerations to keep in mind: Avoid over-tightening Indeed, and in that spirit, I’ll provide the following additional recommendations and safety precautions: It is important not to overtighten the clutch or butterfly clutch because doing so can harm the pin or make it more difficult to remove in the future. When mounting enamel pins, especially those that are heavy or precious, exercise caution. You might want to think about utilizing a more robust attachment method such as the butterfly clutch or the magnetic back. When attaching enamel pins, avoid using glue or tape because doing so can damage the pin or the fabric, and it also could not hold securely. To guarantee a safe and secure grasp, clean the pin as well as the area where it will be attached before proceeding. Pins made of enamel should be kept in a protected location, such as a pin board or a box, to avoid being damaged or lost. While using enamel pins, you need to be careful not to poke holes in delicate textiles or leave marks on the surface of the cloth. While deciding on a method of attachment, you should take into account the weight of the enamel pin. It’s possible that a rubber clutch or a safety pin will work just fine for lighter pins, but heavy pins could need a butterfly clutch or a magnetic back instead. It is important to keep in mind that different textiles could call for a different way of attachment. For example, a butterfly clutch, as opposed to a rubber clutch, may be necessary for holding the pin securely in place when working with heavier textiles. In addition to the methods of attachment and helpful hints that have been shown thus far, it is essential to give careful consideration to the layout and design of enamel pins. You can use enamel pins to show support for a cause or express your own sense of style, and you can fasten them to a broad variety of products, such as clothing, purses, caps, and more. When deciding where on an object to attach a pin, you should take into account not only the overall design and balance of both the item and the pin, but also the location of any other pins or accessories that may be present. Affixing enamel pins is a straightforward operation that, when done correctly, may provide a wacky and one-of-a-kind quality to your sense of personal style. You can make sure that your enamel pins stay securely in place and look wonderful if you follow these suggestions and choose the attachment method that is suited for both your pin and the fabric you’re using. Whether you are an experienced pin collector or are just beginning your journey into the world of enamel pins, the following advice can assist you in making the most of your collection and ensuring that you will continue to enjoy your pins for many years to come. custommedalsandpins.com submitted by custommedalspins to u/custommedalspins [link] [comments] |
2023.03.27 03:14 Odd_Construction_377 I need help with my kicker set up
I need help with my kicker set up, I had a kicker cxa800.1 amp which handles up to 600 watts rms at 2 ohms and I had a 12 inch kicker comp r subwoofer which handles 500 watts rms at 2 ohms also, I had them for 2 months or more w/o any problem, I could put the max volume on my head unit and there wouldn’t be any distortion, yesterday my subwoofer blew out, there was smoke coming out of my sub, today in the morning I checked and to my surprise my amp also blew out, it stays on protection mode with it trying to go on green but it goes back to red (protection mode) I need everyone’s help to know what could’ve happened? The subwoofer comp r handles up to 1000 watts peak according to kicker which is probably not true but it is still much more than what my amp can give. Hope you guys can help me, I will upload the videos on the comments
submitted by
Odd_Construction_377 to
CarAV [link] [comments]
2023.03.27 03:14 Khamomile-Kitty [MC] Can’t kinstone fuse with Din, Farore and Nayru??
For context, for the house subquest, and I chose Din and Farore. (didn’t know what the bonuses did until recently, or I probably would have chosen Nayru.) I remember that a joy butterfly to upgrade digging, swimming, and something else can be found by fusing with these girls as well. I thought that meant in addition to causing the house subquest, a butterfly would spawn in a certain location. But the butterflies aren’t there, so I’m assuming it’s a second kinstone fusion w Din and Farore, and then Nayru. But none of them will do it! I’ve been checking since I did the Wind Temple, and just recently finished the Temple of Droplets. They still don’t want to fuse. In fact, I’m having a hard time finding anyone that wants to fuse. Is this a glitch, or does the option to fuse w them again not appear until later? Please help, I’m losing my mind
submitted by
Khamomile-Kitty to
zelda [link] [comments]
2023.03.27 03:12 ZephyrKnight18 Rate my campaign idea. (Dubbed: Game of the Gods)
Your players suddenly awake in a random location seemingly in the wilderness far away from where they had once been the day before. After a few minutes of questions from the characters about who is who, a thunderous boom sounds and the aspect of a gargantuan figure above the sky configures. They state that they are a deity of games and competition (who specifically this god/goddess could be is up to you). They explain that your party, along with several others have been chosen as participants in a great game of the gods. If your party of X (however many players you have at the table) can conquer 10 plains of monstrous creatures, they each will be rewarded beyond what any mortal could fathom. There is a particularly powerful foe on each plain that any number of the groups must slay before they move on. However if they are to fail, then the god assured them they will be safely returned to their homes. With that god disappears in a burst of light, and the games begin.
A bit of specificity of how i personally am thinking of running this with my 3 players; they start at 3rd lvl and gain lvls through xp by killing monsters, just as you would normally with that leveling system in DnD. But they can also use the XP as 'currency' to gain a small amount of insight (based on the xp they offered) about the plain they are on. Ex, where the plain boss is located, where some secret item is that will help them through that plain, etc. As mentioned, the players will be competing against other groups of NPCs roughly around their level and party size (in my case 3).
Obviously the starting level of your players can fluctuate based on how you feel, as well as how many total plains they must get through, and so on. One important thing to note is that, after a few floors (or when one of the players die) it is revealed that, upon death, the players aren't sent back, they are erased completely.
There are a few other 'rules' for the game, but that would take me ages to explain, this is just a baseline of things.
But anyways, I'd like to hear your thoughts.
submitted by
ZephyrKnight18 to
DnD [link] [comments]
2023.03.27 03:12 randomstuffsendhelp Nurse here, help me pick my first command..
I am a nurse and will be going to my first command later this year. I have two options: Naval hospital Jacksonville or MNRTC San Diego. Any nurses here that can give insight on what the work environment is like at these locations? I know SD is great for the location but I’m mostly concerned about the command climates. What is that patient ratio like at these locations? Acuity? Do you feel supported by your peers? How is the leadership at either location? And which one would you select/recommend to your best friend? In terms of experience, which would you prefer? I’ve worked in toxic environments/hospitals in the past and really would like to avoid that if I can help it. Sos help me out please!
submitted by
randomstuffsendhelp to
newtothenavy [link] [comments]
2023.03.27 03:12 Freeek323 Small pastry business, questions
Heyo!
There’s plenty of posts similar to this one on the subreddit, but I’d like to post my own with our current situation and what me and my girlfriend are planning to do, and whether it seems feasible or if it’s straight up idiotic.
We relocated to Prague from Australia approximately 2 years ago, for my own work purposes which I will still be continuing with. My GF though is a French pastry chef and has been for about 15 years and can confidently do just about any pastry or dessert, cakes, the lot.
She has worked at many high end restaurants and cafes, and especially has lots of experience at things like farmers markets running stalls selling pastries, etc.
Anyway, whilst living in Prague, she has been running her own at-home pastry business specialising in Australian pastries (both sweet and savoury) through an app system akin to say, Uber Eats.
Things have been going pretty well, and 1-2 times a week she has been attending farmers markets selling all the goods also.
Anyhow, we are now looking at potentially taking the next step for her which is to open up a location.
We are currently very interested in this brand new small shop space that exists within a food court at a shopping center that is opening near us. It’s 4 stories and the lower 2 stories are normal shops (non food), whilst the top 2 stories are still under construction. The spot we are looking at/in dicussions with us a corner space at 6x5m. It’s honestly perfect size and we’ve gone down and checked it out ourself. The food court is already well under construction and will have some big names such as Burger King and subway located within it.
The rent is 27K Czech Crowns a month (about 1200usd), which is inclusive of all common services other than power, and marketing (which would go up inside and outside the center). The spot, he’ll the entire food court is brand brand new.
We’re aware there would be high costs involved to purchase equipment, construct the benches, etc, but perhaps not exactly, does anyone have any recommendations to figure out approximations? I assume it’d just be smart to get multiple quotes or something.
Just looking for any advice that perhaps we’re blind too (trying to keep the post not incredibly long with stuff we’re already aware of). But I guess it’s more about whether the risk is genuinely not worth it, etc.
This wouldn’t be a cafe per-se. More an actual pastry shop inclusive of custom cake making and readily-available Australian hot pastries such as meat pies and sausage rolls. We’ve seen just from the at-home and market run business side for the year that the demand is there, but really just wanting to grow/give it a bigger shot.
Capital we’re not too bothered on, and actually also not too worried if it fails (though will give it our best shot to not have that happen obviously), just looking for any advice if it’s actually a moronic idea that we may be pursuing.
The location itself is not directly within the city (about 15 mins drive out), but the actual shopping centre is the biggest one in the area and is smack bang in the middle of countless new apartments/high rises. Like literally one side entrance to the shopping center is a walking path leading directly to the backyards of a couple thousand apartments.
We decided to sit around for an hour on a bench on one of the open floors where there is a grocery store and the foot traffic was fairly standard/as expected. My instinct/gut feel about the food court’s opening feels good, but it’s exactly that, a gut feel.
So yeah, would love any advice if anyone has anything, thanks :)
submitted by
Freeek323 to
smallbusiness [link] [comments]
2023.03.27 03:12 flyrene Anyone else struggling to get grad school externships?
I am a grad student at a university in Virginia that is having a lot of trouble getting us externships. Especially adult placements. While they promised us one child and one adult placement when we first started the program, a significant amount of us will graduate without any adult placement or experience because of a shortage of adult placement opportunities. I opted for a placement out of state, and was told I had to find one myself. It took calling over 40 locations before I found anyone willing to accept a student.
Just curious - is this happening anywhere else, or is it just my school?
submitted by
flyrene to
slp [link] [comments]
2023.03.27 03:11 FumaCavalo How many f2p pulls until Focalors' banner - My (not very precise) analysis.
TLDR:
If you start saving from the start of 3.6 until the end of 4.0, you should get about 200 pulls, so a limited 5 star should be guaranteed to you after then.
Introduction
I've seen many posts here of people unsure of their probability of getting Focalors, and I am curious about how far I can go myself, as a f2p player. Because of that, I decided to write this post in order to share my thought process in situations like this one. It's very speculation-based, though, so read it with a grain of salt.
Also, I should point out that if you spend money at all in this game, the values for you are going to be higher. However, I will be focusing on f2p values and will not consider resources that cannot be obtained by only playing the game.
How many pulls do you get per patch?
First of all, we need to consider how many pulls can we get in each patch. My main points of reference will be that one BP mission that requires you to pull 50 times on any banner and
this reddit post. Yes, the post is a bit old and a bit inaccurate according to the OP himself, but the values are somewhat constant and the numbers aren't that off the chart, neither. Also, they do not consider primogems acquired through permanent content, such as exploration and archon/stories/world quests, so the value should even be mostly higher for each patch with that in mind.
Starting with that BP quest, There should NOT be a season-long mission that absolutely requires you to spend money to complete, so no matter what, it should be completely possible for any player to complete it and be able to pull 50 times on any banner by the end of a patch. However, using that alone as an estimate is too inaccurate even for me, which is why the reddit post is so important. The
average f2p
primogem count that you get each patch, according to the aforementioned post, is about of 8260 gems, which if divided by 160 (the value of a single pull), gets us 51 pulls and some leftovers. Of course, in some patches you get less and in others you get more. But, again, if we also consider the gems you get from exploration and whatnot, it should be safe to assume that you are indeed able to get enough primogems to pull 50 times each patch, so I will be using that as my north.
In which patch will Focalors come out?
All that's left is for us to know in which patch is she going to come out. Now, this is where the posts gets REALLY imprecise, since I'm working mostly with speculations and leaks, so take what I'll say from here on out with an even bigger grain of salt.
Since she is an archon, it's a little bit easier to locate in which patch is she going to appear, since we can track the patches in which Nahida's and Raiden's banners came out, which were 3.2 and 2.1, respectively. Basically, not right away, but also not after too much time. With that in mind, I think it's unlikely that we'll get Focalors at 4.0, right when the new region comes out. Just to be safe, though, I'll
assume that she'll come at 4.1, and since I have no idea if on the second or first half, I will not consider the primogems we are getting in that specific patch.
Now, we need to know what will be the last patch of 3.X. According to
some leaks, there will be a limited-time event at 3.8 that is not the Golden Apple Archipelago from version 1.6 and 2.8. It's something else and it's also supposed to show some details about Fontaine. This is a heavy indicator that 3.8 might be the last Sumeru patch we'll have, since both times we got GAA, we got new hints for the upcoming version and their regions (we also got a Kazuha banner on both of those events, so maybe we get another one here?). However, if that leak is incorrect,
this other leak tell us that, at the very least, there will be a 3.8 version, with only some possibilities of there being a 3.9. But, just to be safe, I'll consider that 3.8 will be our last patch before Fontaine and use that as a reference.
So, how many pulls?
Finally, we just have to do some quick maths. Remember: a guaranteed 5 stars happens at 90 pulls and a guaranteed limited 5 star (if you're not on a 50/50) happens at 180 pulls.
My speculation is that, starting on patch 3.6 (next patch) and ending on patch 4.0, we should get: +50 pulls from 3.6; +50 pulls from 3.7; +50 pulls from 3.8; And +50 pulls from 4.0.
All of that amounts to the estimate of 200 f2p pulls at the end of 4.0. This should mean that if you pull until the end of Ayaka's/Shenhe's banners, get one of them and stay on 0 pity, you'd still be able to get a guaranteed C0 Focalors on 4.1 with maybe 20 pulls to spare.
If you wish to pull for any 5 stars next patch, though, depending on how many primogems you get left, you could end up with some pulls away from a guaranteed. However, if you are a big hopium inhaler like me, you could also consider that pity exists and that when new regions come out, there's generally a pretty big spike in primogem availability, since a whole new region just came out and, with it, archon quests (which now also give 1 free intertwined fate upon completion) + story quests + world quests + exploration chests + exploration gimmicks + teleports and such, so you might be able to clutch it.
If you don't clutch it, worry not. I'll be pulling for Nahida next patch, and chances are your failure = my failure, so we'd be together in our pain.
Conclusion
Lastly, I cannot conclude this post without saying, once more, that "accurate" is not a word that you can use to describe it. It's all based pretty much purely on speculation, leaks and unofficial information. I could be completely off the mark. However, this has been my thought process throughout my entire time playing this game and I've been mostly doing fine. But, of course, you have to be pretty disciplined with logging in to do your dailies, do the events and do some exploring every weekend or so. Therefore, taking into account your own life routine, built up pity and primogems you already have stored is heavily advised.
All in all, I wish you all good luck with your pulls! :)
submitted by
FumaCavalo to
FocalorsMains_ [link] [comments]
2023.03.27 03:09 dan7843292 multiple peers with the same allowed ips subnet in a single interface.
I downloaded several configs from a commercial vpn and I am was trying to test to see if i can add multiple peers to a single interface with different location.
example my vpn offers connections in nj and ny. so i downloaded a wireguard config of each city. created the interface and added the peers found in each config file to wg0 in my router.
interface: wg0 public key: 2LHKdfA.... private key: (hidden) listening port: 51751 peer: Orm/o/kO..... endpoint: 146.70.202.x:51820 allowed ips: 0.0.0.0/0 latest handshake: 1 minute, 25 seconds ago transfer: 1.09 GiB received, 287.17 MiB sent peer: kiVlibD... endpoint: 69.10.63.y:51820 allowed ips: (none)
both peers are configured with the same subnet as allowed ips (0.0.0.0/0). I understand that is not possible
so when the interface starts one of the peers is disabled right?
my question is how is the active peer determined? is it random? based on the end point ip?
if the wireguard service is restarted will always the same peer be activated? or ramdomly chosen?
submitted by
dan7843292 to
WireGuard [link] [comments]
2023.03.27 03:08 milkants Currently without a PC, need one for gaming and music production
What will you be doing with this PC? Be as specific as possible, and include specific games or programs you will be using.
- Gaming, and I'd like to be able to play fairly graphically intensive games like Devil May Cry 5, Red Dead Redemption 2, the Resident Evil Remakes, Sea of Thieves, Battlefield 1, etc. I don't feel a strong need to be able to run them all at max settings, but I'd like them to look nice and to be able to enjoy them at high framerates.
- I also like to watch YouTube videos on my second monitor while I play games which have less of a story or a need to give them my full attention. I'd say being able to multitask and process multiple things at a time is also an important thing to be able to do with this build.
- Music production, using FL Studio 21. I'd like to be able to easily use plugins that my old pc (which I believe had an i7 7700k) was unable to run, such as iZotope's Ozone Imager. Music production is something I want to enter into more heavily and I'd say is more of a priority in this build than gaming, ultimately. As long as I can enjoy my games I don't need to be running them at the absolute highest level of performance. With music however, I'd ideally like for there to be as few limitations as possible on what I can use. Within reason and budget, of course.
What is your maximum budget before rebates/shipping/taxes?
When do you plan on building/buying the PC? Note: beyond a week or two from today means any build you receive will be out of date when you want to buy.
What, exactly, do you need included in the budget? (ToweOS/monitokeyboard/mouse/etc)
- Would you all say that generally I should be buying a new tower? Mine is 5-6 years old, but I was open to simply buying new parts which are compatible with it and re-using it for this new build.
- This could help reduce the cost of the build, and my tower also has a few stickers on it which hold some sentimental value to me. Ultimately it's not too important to me that I use the same tower though, and if it being potentially worn-out after all this time is a concern, I'd rather avoid having any issues because of it down the line.
- I believe it is a midtower Phanteks Eclipse p400 with tempered glass, but I'm only 99% sure of that as I don't know how to find out the exact model. If that also makes it too risky to buy new parts which might not fit, I understand.
- In that case, yes I would need a new tower included in the budget.
- I also need a new copy of Windows 11.
Which country (and state/province) will you be purchasing the parts in? If you're in US, do you have access to a Microcenter location?
If reusing any parts (including monitor(s)/keyboard/mouse/etc), what parts will you be reusing? Brands and models are appreciated.
- I don't have the exact model information in front of me, so I apologize for the imprecision;
- I have two monitors from Dell, one 1080p and one 1440p. Both connect via DisplayPort cable.
- The 1440p monitor is Nvidia G Sync Compatible.
- Razer Ornata Chroma keyboard.
- Just some generic USB mouse. Most of my peripherals such as my ps5 controller and my Blue Snowball mic I connect via USB, keyboard included.
- I use Sennheiser HD 450SE headphones, which I currently connect using a 3.5mm audio jack. They are however Bluetooth, and on this new PC I would very much enjoy built-in Bluetooth functionality so I have the ability to connect them wirelessly.
Will you be overclocking? If yes, are you interested in overclocking right away, or down the line? CPU and/or GPU?
- I've never overclocked before and am unfamiliar with the process, however my last PC had the capability to.
- So yes, it's something I would be interested in learning to do down the line, but is not something I plan to do right away in all likelihood.
Are there any specific features or items you want/need in the build? (ex: SSD, large amount of storage or a RAID setup, CUDA or OpenCL support, etc)
- I'd like a small SSD of around 250-500 GB to install the OS on, also including room for anything else I find necessary to install or store on there like Discord, search engines, things which occasionally prefer you install them on the C drive.
- An HDD with around 2-4 TB to install games and music production software on
Do you have any specific case preferences (Size like ITX/microATX/mid-towefull-tower, styles, colors, window or not, LED lighting, etc), or a particular color theme preference for the components?
- If using the same case:
- It is a mid-tower
- It has a tempered glass window
- It has a red-and-black colour scheme and I would prefer all the components match this.
- If buying a new case:
- I'd like to stick with a mid-tower that has a window and some LED lighting inside.
- No specific colour scheme but probably black for the most part with accents possibly being in colour.
Do you need a copy of Windows included in the budget? If you do need one included, do you have a preference?
Extra info or particulars:
- Sorry if I didn't fill this in the most orderly way, I mentioned some of this above but:
- Built-in bluetooth capability would be nice
- The ability to add or replace storage over time
- A window so I can easily open it up and clean it of dust
- Liquid cooling is good I think
submitted by
milkants to
buildmeapc [link] [comments]
2023.03.27 03:07 TastyBananaPeppers How to pull and convert PGSharp's GPX Route to use in another joystick app
Requirements
- Windows OS computer with a mouse and keyboard.
- Notepad++ from https://notepad-plus-plus.org/downloads/
- PGSharp.dat file from exporting your profile.
Don't have a computer?
This guide is not for you to try because you will be doing a lot work just to convert one route. Converting a 100 Pokestop route will take about 3 minutes on a computer. Doing the same process on an Android smartphone, tablet, or Chromebook will require you painstakingly repeat certain steps 100 times. The big advantage with a Windows computer is you get full featured application and command shortcuts.
Part 1: Make a GPX Route in PGSharp and favorite it.
- Open the map.
- Press on the Pokestop and Gym icons (bottom right corner).
- Press on each stop and the + (plus) system to connect the Pokestops and Gyms together.
- If you teleport, it will delete your route and you will have to start over. I recommend you constantly save your route by favorite it (star). To continue adding more stops to the route, you go to your "favorite routes" and load it. Then repeat steps 1 to 3.
Part 2: Make a backup of your Exported Profile
- Open PGSharp's settings.
- Press on "Export".
- Rename "PGSharp.dat" to "PGSharp-MainBackup.dat"
- If you have a lot of saved routes in your profile, deleting the routes you do not plan to convert will make it easier to do certain steps otherwise you would have to scroll through a very large paragraph of coordinate sets to highlight with your mouse. If you do this, export another one and name it "PGSharp-GPX.dat" and use this one to transfer to your computer.
Part 3: Extract Coordinates
[1] Create a blank text file by right-clicking anywhere on your desktop, go to "new" then "text document".
[1] Transfer the PGSharp.dat file to your Windows OS computer.
[2] Right click on PGSharp.dat file and open/edit with Notepad++.
[3] Use CTRL+F to open the find window. Type in the name of your saved route. It will highlight it for you.
[4] Click X to close the find window.
[5] Click before (in bold)
,"name":" then highlight to after
[{"points": because you just need the coordinate sets that come before the route name.
[{"points":[-1.282117,103.859044,1],[-1.281564,103.858542,1],[-1.281376,103.858951,1]],"name":"Singapore"}
[6] After you highlight the coordinates, you CTRL+C to copy and then CTRL+V to paste in the blank text file and save it by CTRL+S or by going to File > Save then close it.
[-1.282117,103.859044,1],[-1.281564,103.858542,1],[-1.281376,103.858951,1]
[7] Right-click the "New Text Document" file to edit with Notepad++.
[8] In NotePad++, you will see your coordinate sets all in one line. You want to put each coordinate set onto its own line because:
- The coordinates you see are in [longitude,latitude,altitude]. The altitude number is not needed for a GPX Route.
- Depending on where you created the route, you may have multiple different altitude numbers. By putting each coordinate set onto its own line, it is very easy to see this part by scrolling down.
[9] Use CTRL+H to open "Replace" window. Make sure these are checked: Wrap around, Regular Expression, and matches new line.
Then, you add the altitude part from your coordinates to the Find what bot. This number will be different for you. What you see below, you must type it exactly like that. You may need to repeat this until you get all the coordinates on its own line.
Find what: ,1]
Replaced with: \n
[10] Click "Replace all" and it will look something like this. In my example, I only used 3 Pokestops so I have 3 lines. If I used 400 Pokestops, I will have 400 lines. You can see the number of lines below in the status bar " length : # lines: 3 ".
[-1.282117,103.859044 ,[-1.281564,103.858542 ,[-1.281376,103.858951
[11] Delete the " [ " in the first line.
-1.282117,103.859044 ,[-1.281564,103.858542 ,[-1.281376,103.858951
[12] Delete all the " ,[ " from the front of each coordinates. Use CTRL+H to open "Replace" window.
- Do not include the " - " (minus symbol) because this will mess up your route and may telelport you to a different country.
Find what: ,[
Replaced with: (nothing should be in this box so clear it)
[13] Click Replace all and it should now look like this. Some coordinates might be shorter or longer, but it won't matter as long as it looks something similar to what you see with " longitude,latitude ".
-1.282117,103.859044 -1.281564,103.858542 -1.281376,103.858951
[14] Make sure you scroll through to check to each line to see if you missed something. Sometimes you might another altitude in one or multiple lines like the ",78" (number will be different for everyone).
-1.281376,103.858951,78 -> should be -> -1.281376,103.858951
You might find a closing bracket " ] " like this on the last line you must also delete it.
-1.281376,103.858951] -> should be -> -1.281376,103.858951
[15] Go to
https://www.gpsvisualizer.com/convert_input?convert_format=gpx&force_type=r&units=us [16] Go to " Force text data to be this type: " and change it from "route points" to "waypoints". This is the only option you change.
- Waypoints is for Fake GPS Joystick, Route Go & GPS Joystick, and PGSharp.
- As for iPogo's Android app, I don't know what they use, but it could be trackpoints or route points.
[17] In the box, " Or paste your data here:", you must add "latitude,longitude" to the first line then press enter on your keyboard.
[18] Go back to your Notepad++ with all your coordinates and do CTRL+A to highlight all. Then, do CTRL+C to copy.
[19] Go back to the website and do CTRL+V to paste it after "latitude,longitude", so it looks like
latitude,longitude -1.282117,103.859044 -1.281564,103.858542 -1.281376,103.858951
[20] Click the "CONVERT" button and you will get something like this. You download the GPX file.
- I recommend you rename it to something more recognizable before transferring it back to your Android device.
submitted by
TastyBananaPeppers to
PoGoAndroidSpoofing [link] [comments]
2023.03.27 03:07 MathiusShade Downtown Richardson -- Why'd they Cut Down All Those Trees?
The Beltline / Main area in DT Richardson had a row of trees in the middle median-- construction worked around them so they'd remain.
Then last week I noticed all but one were chopped down-- and then today noticed the one remaining was chopped also. There's now a neat row of 1 foot high trunks.
Somebody please tell me that they were diseased and had to be removed, or at least they will be replaced; something green has to go back in because I think there's too much concrete in the urban sprawl.
submitted by
MathiusShade to
Richardson [link] [comments]
2023.03.27 03:04 Worldweatheralerts TORNADO WARNING
The National Weather Service in Mobile has issued a * Tornado Warning for... Central Choctaw County in southwestern Alabama... * Until 830 PM CDT. * At 737 PM CDT, a severe thunderstorm capable of producing a tornado was located 4 miles east of Crandall, or 16 miles east of Quitman, moving northeast at 45 mph. HAZARD...Tornado and quarter size hail. SOURCE...Radar indicated rotation. IMPACT...Flying debris will be dangerous to those caught without shelter. Mobile homes will be damaged or destroyed. Damage to roofs, windows, and vehicles will occur. Tree damage is likely. * This dangerous storm will be near... Toxey around 745 PM CDT. Butler around 800 PM CDT. Pennington around 815 PM CDT. PRECAUTIONARY/PREPAREDNESS ACTIONS... TAKE COVER NOW! Move to a basement or an interior room on the lowest floor of a sturdy building. Avoid windows. If you are outdoors, in a mobile home, or in a vehicle, move to the closest substantial shelter and protect yourself from flying debris.
submitted by
Worldweatheralerts to
u/Worldweatheralerts [link] [comments]
2023.03.27 03:02 The_Awesome_Red1 I don’t like the idea of Mrs. Afton being the new CEO
Granted, her character hasn’t been all THAT important up to this point, so her having stake in the story would be cool. But that’s the thing, she hasn’t been that important and has not been developed much at all. We practically know nothing about her. Would she be willing to help William despite everything he did, ESPECIALLY after their divorce? And if that’s the case, does she know anything about robotics or engineering? Does she know how remnant or agony works? Did she even know what happened in the FNaF 6 location and that William’s dead body is even there? I suspect that she doesn’t even know about the identities of the possessed animatronics, and it’s clear that Charlotte was trapped somewhere in the Pizzaplex, and that whoever did it taunts her for it, what with the Nightmarionne imagery. That’s what I suspect that room was with the endoskeleton and the Nightmare plush; a holding room. I don’t think she would even know about that. And from the parallels we’ve seen of her (Clara and the TV person in Midnight Motorist [if that is her]), she just seemed like a nice woman who wanted to keep her family happy and in order. And if anything, I always thought she was dead up to this point. I suspected that after their divorce and that she lost custody of her children, she killed herself, as hinted in Vanessa’s therapy sessions (if she’s meant to represent Elizabeth). The therapists states that her mother [REDACTED] after the custody case was lost, which could either mean that she left or committed suicide, and I honestly believe it’s the latter. Security Breach did censor a lot of things for the sake of pandering to children, even going as far as to censor dialogue that mentions blood. I honestly don’t think they would have inserted mentions of suicidal themes directly at the audience, mainly the target audience of children. I tried to see if there were any themes in the books that could possibly hint at her being the CEO, but what I found instead were a lot of instances of a missing/dead parent and step parents in relation to the main character of a good chunk of the stories, so nothing really helped me out. Overall, she’s so much of a blank slate that I can’t see her being the CEO
submitted by
The_Awesome_Red1 to
fivenightsatfreddys [link] [comments]
2023.03.27 03:01 AutoModerator [Get] Biaheza – Dropshipping Course (COMPLETE)
| Get the course here: https://www.genkicourses.com/product/biaheza-dropshipping-course-complete/ Biaheza – Dropshipping Course (COMPLETE) https://preview.redd.it/j2j54ld0z5pa1.jpg?width=225&format=pjpg&auto=webp&s=ebd4dec14d7c876786b008640091b3635660432a About The Course: This course outlines the systems and secrets I used to make over $300,000+ in my first year with entrepreneurship While I was still 17 years old… And was also a high school dropout… So what’s your excuse? It’s time to crush it. I want you to take a moment and imagine a world where you could… Never worry about money ever again. Build a six figure marketing agency and the best part? it’s a reality that all of my students are living RIGHT NOW.Take care of your family & loved ones. Yeah… this is something close to my heart. My marketing agency finally allowed me to take care of my mom and the people who believed in me when I had nothing.Travel the world, anytime! Yes… that’s right. After this course you will have the location freedom to travel anywhere in the world you want! Now, who is the genius (kidding… kinda) behind this whole course? Let me introduce myself, my name is Iman. At the age of Seventeen, I dropped out of high school to commit to the world of online marketing. Within my first year I had made over $300,000+, I had traveled the world working from my computer, I had constructed my dream lifestyle and this was all done through the power of what I teach in Six Figure SMMA. I run my own digital marketing agency based out here in London, although we have clients out in Amsterdam and St. Tropez. I have my personal brand which is another six figure business… Then I have a few other smaller income streams here and there. I love the internet! Haha Damn… I worked hard for this life. I worked hard to create the sort of income where I can take care of my family and not even check the price… I guess that’s why I’m so passionate about what I teach. It’s because it changed my life in unexplainable ways. I don’t think I could ever go back to my old life after living like this. submitted by AutoModerator to Affordable_Courses [link] [comments] |
2023.03.27 03:00 blindsideman 39 [M4F] houston looking for a long term AP and real connection
I am currently in a dead bed room situation. I am Hispanic and I’m 6’1. I do like to work out and try to stay fit. I’m not muscular but I try to be active. I like to be outside and do outdoor activities. I like going to to mall and I like to be out and about.
I am located on the west side of Houston. I am close to the Katy area. This will only work if you are close in order to meet or have the ability to travel to meet.
submitted by
blindsideman to
houstonr4r [link] [comments]
2023.03.27 03:00 farning10 Chat GPT and I design and implement a flight simulator using Rust and Godot
Below is a conversation where chatGPT and I design a rust flight simulator. I had already planned to do a similar project to this myself, so I though it would be an interesting opportunity to see how well chatGPT can solve the problem.
I would say the results are mixed overall. ChatGPT needed a lot of guidance to get to the design I wanted and I believe it would take a lot of additional work to integrate what ChatGPT wrote into any kind of real project. Still, I was pleasantly surprised at what it could accomplish with a bit of pointing in the right direction.
Apologies for Formatting :P
----
📷Help me design an API for simulating flight mechanics in rust language and rendering the result through the godot game engine.
Sure, I can help you design an API for simulating flight mechanics in Rust language and rendering the result through the Godot game engine. Here are the steps you can follow:
- Define the API endpoints: You need to define the API endpoints that will be used to interact with the flight simulator. For example, you can create an endpoint to initialize the simulation, an endpoint to set the input parameters (such as velocity, acceleration, and direction), and an endpoint to retrieve the output parameters (such as altitude, pitch, and roll).
- Define the input and output data structures: You need to define the data structures that will be used to represent the input and output parameters of the flight simulator. For example, you can create a struct to represent the input parameters and another struct to represent the output parameters.
- Implement the flight mechanics: You need to implement the flight mechanics that will be used to simulate the flight of the aircraft. You can use existing libraries, such as nalgebra, to implement the physics calculations required for the flight simulator.
- Integrate with Godot game engine: You need to integrate the flight simulator with the Godot game engine to render the output parameters of the simulation. You can use the Godot Rust bindings to interact with the game engine and display the output parameters, such as altitude, pitch, and roll.
- Test the API: Once you have implemented the API, you should test it thoroughly to ensure that it works as expected. You can use unit tests to test the individual components of the API and integration tests to test the interaction between the flight simulator and the Godot game engine.
Here's a sample code that demonstrates how to create an API endpoint for initializing the simulation:
rustCopy code
use rocket::serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] struct SimulationInitRequest { aircraft_type: String, initial_altitude: f32, initial_velocity: f32, initial_acceleration: f32, } #[derive(Debug, Clone, Serialize, Deserialize)] struct SimulationInitResponse { id: u32, status: String, } #[post("/api/simulation/init", data = "")] fn init_simulation(request: Json) -> Json { // Implement the initialization logic here let id = 1; let status = "initialized".to_string(); Json(SimulationInitResponse { id, status }) }
This code defines an API endpoint /api/simulation/initthat receives a POSTrequest with a SimulationInitRequestJSON payload. The endpoint returns a SimulationInitResponseJSON payload with the simulation ID and status. You can use this endpoint to initialize the simulation and obtain the simulation ID for subsequent API requests.
I hope this helps you get started with designing your flight simulator API in Rust language and integrating it with the Godot game engine!
📷why did you choose to expose the simulation through a REST API? That seems like a strange choice to me.
You're right that a REST API may not be the best choice for simulating flight mechanics. REST APIs are typically used for stateless communication between clients and servers over HTTP, and may not be the most efficient or performant way to simulate real-time flight mechanics.
Instead, a more appropriate approach would be to use a real-time communication protocol, such as WebSockets, to send and receive data between the flight simulator and the Godot game engine. WebSockets allow for bidirectional, low-latency communication between the server and the client, making them ideal for real-time applications such as flight simulators.
Here's a sample code that demonstrates how to use WebSockets to send and receive data between the flight simulator and the Godot game engine:
rustCopy code
use std::collections::HashMap; use ws::{listen, CloseCode, Handler, Handshake, Message, Result, Sender}; struct FlightSimulator { out: Sender, } impl Handler for FlightSimulator { fn on_open(&mut self, _: Handshake) -> Result<()> { Ok(()) } fn on_message(&mut self, msg: Message) -> Result<()> { let input: HashMap = serde_json::from_str(msg.as_text()?)?; // Implement the flight mechanics here let output: HashMap = simulate_flight(&input); self.out.send(serde_json::to_string(&output)?)?; Ok(()) } fn on_close(&mut self, _: CloseCode, _: &str) { // Handle close event } } fn main() -> Result<()> { listen("127.0.0.1:3000", out FlightSimulator { out })?; Ok(()) }
This code uses the wscrate to listen for WebSocket connections on port 3000. When a client connects to the WebSocket server, the on_openmethod is called. When the client sends a message, the on_messagemethod is called, where the flight mechanics are simulated based on the input data received from the client. The output data is then sent back to the client using the out.sendmethod. Finally, when the client disconnects, the on_closemethod is called.
Overall, using WebSockets or another real-time communication protocol is a better choice than REST API for simulating flight mechanics, as it allows for low-latency, bidirectional communication between the server and client.
📷I am not going to use a web browser at all for this simulator. Please reconsider your suggestion without using anything that will also require a web browser to be used, such as websockets.
Thank you for the clarification. In that case, if you don't want to use WebSockets or any other browser-based communication protocol, one option would be to use a local inter-process communication (IPC) mechanism, such as Unix domain sockets or named pipes.
Here's a sample code that demonstrates how to use Unix domain sockets to send and receive data between the flight simulator and the Godot game engine:
rustCopy code
use std::io::prelude::*; use std::os::unix::net::{UnixListener, UnixStream}; fn main() -> std::io::Result<()> { // Create a Unix domain socket listener let listener = UnixListener::bind("/tmp/flight.sock")?; // Listen for incoming connections for stream in listener.incoming() { // Spawn a new thread to handle each connection std::thread::spawn(move { // Handle the connection handle_connection(stream.unwrap()); }); } Ok(()) } fn handle_connection(mut stream: UnixStream) { // Read the input data from the stream let mut buf = [0; 1024]; stream.read(&mut buf).unwrap(); let input: HashMap = serde_json::from_slice(&buf).unwrap(); // Simulate the flight mechanics based on the input data let output: HashMap = simulate_flight(&input); // Write the output data to the stream let response = serde_json::to_vec(&output).unwrap(); stream.write(&response).unwrap(); stream.flush().unwrap(); }
This code creates a Unix domain socket listener on the path /tmp/flight.sock. When a client connects to the socket, a new thread is spawned to handle the connection. The handle_connectionfunction reads the input data from the socket, simulates the flight mechanics based on the input data, and writes the output data back to the socket.
On the client side, you can use a Unix domain socket client to send input data to the flight simulator and receive output data. Here's a sample code that demonstrates how to send input data to the flight simulator and receive output data:
rustCopy code
use std::io::prelude::*; use std::os::unix::net::UnixStream; fn main() -> std::io::Result<()> { // Connect to the Unix domain socket let mut stream = UnixStream::connect("/tmp/flight.sock")?; // Send the input data to the flight simulator let input = HashMap::new(); let request = serde_json::to_vec(&input).unwrap(); stream.write(&request).unwrap(); stream.flush().unwrap(); // Read the output data from the flight simulator let mut buf = [0; 1024]; stream.read(&mut buf).unwrap(); let output: HashMap = serde_json::from_slice(&buf).unwrap(); Ok(()) }
This code connects to the Unix domain socket at /tmp/flight.sock, sends the input data to the flight simulator, and reads the output data from the socket.
I hope this solution meets your requirements of not using any browser-based communication protocol and helps you implement your flight simulator API.
📷This simulation must run on the microsoft windows operating system, so a unix socket cannot be used. Please reconsider your suggestion so that it can run on the windows operating system.
Thank you for the clarification. In that case, you can use named pipes instead of Unix domain sockets for inter-process communication on Windows. Here's how you can modify the Rust code to use named pipes:
rustCopy code
use std::io::prelude::*; use std::os::windows::io::{AsRawHandle, FromRawHandle}; use std::sync::mpsc::channel; use std::thread; use winapi::um::namedpipeapi::{ConnectNamedPipe, CreateNamedPipeW}; use winapi::um::winbase::{FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE, PIPE_WAIT}; use winapi::um::winnt::{HANDLE, GENERIC_READ, GENERIC_WRITE}; fn main() -> std::io::Result<()> { ... } ....
📷is it possible to directly integrate the godot part and the rust part through linking a library?
Yes, it is possible to directly integrate the Godot part and the Rust part by linking a Rust library to a Godot module. Here's how you can do it:
- Create a Rust library that exposes the flight simulation functionality through a C-compatible interface. You can use Rust's #[no_mangle]attribute to ensure that the function names are not mangled by the Rust compiler. For example:
rustCopy code
#[no_mangle] pub extern "C" fn simulate_flight(input: *const u8, input_len: usize, output: *mut u8, output_len: usize) -> usize { // Convert the input data to a Rust struct let input: HashMap = serde_json::from_slice(unsafe { std::slice::from_raw_parts(input, input_len) }).unwrap(); // Simulate the flight mechanics based on the input data let output_data = simulate_flight(&input); // Convert the output data to a byte array let output_data = serde_json::to_vec(&output_data).unwrap(); let output_data_len = output_data.len(); // Copy the output data to the output buffer unsafe { std::ptr::copy_nonoverlapping(output_data.as_ptr(), output, std::cmp::min(output_len, output_data_len)); } // Return the length of the output data output_data_len }
- Build the Rust library as a C-compatible dynamic library. You can do this by specifying the cdylibcrate type in your Cargo.tomlfile:
tomlCopy code
[lib] name = "flight_simulator" crate-type = ["cdylib"]
- Create a Godot module that links to the Rust library. You can do this by creating a gdmodulefile that specifies the Rust library as a dependency:
gdscriptCopy code
[dependencies] windows="0.19.0" [general] singleton=false load_once=true module_library="res://addons/flight_simulatoflight_simulator.dll"
- Use the OS.dynamic_loadfunction to load the Rust library at runtime, and use the OS.get_symbolfunction to get a pointer to the simulate_flightfunction. You can then call this function to simulate the flight mechanics and get the output data. For example:
gdscriptCopy code
var lib = OS.dynamic_load("res://addons/flight_simulatoflight_simulator.dll") var simulate_flight = lib.get_symbol("simulate_flight") var input = { "throttle": 0.5, "elevator": 0.1, "aileron": -0.2, "rudder": 0.3 } var input_data = JSON.print(input) var input_len = input_data.length() var output_data = OS.allocate(1024) var output_len = call_func(simulate_flight, input_data, input_len, output_data, 1024) var output = JSON.parse(OS.get_data_pool().get_string_from_utf8(output_data, output_len)) print(output)
Note that you will need to adjust the paths and function names to match your project structure and Rust code.
📷Ok good idea. I will use that approach. Now tell me how best I can structure the API to ensure that rendering a large number of objects in godot will performant when they are managed entirely by the rust dynamic simulation.
To ensure that rendering a large number of objects in Godot will be performant when they are managed entirely by the Rust dynamic simulation, you can use a few strategies:
- Use a batching technique to group similar objects together and reduce the number of draw calls. This can be done by organizing the objects into small groups (e.g., by their location or type) and rendering them together. You can also use techniques like instancing to efficiently render large numbers of identical objects.
- Use a data-oriented approach to store the object data in a way that is efficient for rendering. This means storing the data in contiguous arrays (e.g., using a structure of arrays instead of an array of structures) and minimizing cache misses. You can also use techniques like spatial partitioning (e.g., quad trees or octrees) to efficiently cull objects that are not visible and reduce the number of objects that need to be rendered.
- Use a multi-threaded approach to offload the rendering work to separate threads and minimize the impact on the simulation performance. This means dividing the work of rendering the objects into separate threads (e.g., using a thread pool) and synchronizing the data between the Rust simulation and the Godot engine.
- Minimize the amount of data that needs to be transferred between the Rust simulation and the Godot engine. This means only sending the data that is necessary for rendering (e.g., position, orientation, and scale), and using efficient serialization techniques (e.g., binary serialization) to minimize the size of the data.
To implement these strategies, you can structure your API in a way that supports these optimizations. For example, you can expose functions in the Rust library that allow the Godot engine to query the position, orientation, and scale of the objects that need to be rendered. You can also expose functions that allow the Godot engine to query the simulation state (e.g., which objects are visible) and optimize the rendering accordingly. Additionally, you can use efficient serialization techniques (e.g., using a binary format like Protocol Buffers) to minimize the amount of data that needs to be transferred between the Rust simulation and the Godot engine.
By using these strategies and structuring your API in a way that supports them, you can ensure that rendering a large number of objects in Godot will be performant even when they are managed entirely by the Rust dynamic simulation.
📷Please construct a reasonably suitable API based on your suggestions
Sure, here is an example of a reasonably suitable API for your flight simulator:
rustCopy code
// Define a struct to represent the state of each object in the simulation struct ObjectState { position: (f32, f32, f32), orientation: (f32, f32, f32, f32), scale: f32, is_visible: bool, // Other simulation state data as needed } // Define a trait for the Rust simulation library to implement trait Simulation { // Get the current state of all objects in the simulation fn get_object_states(&self) -> Vec; // Set the state of a specific object in the simulation fn set_object_state(&mut self, id: u32, state: ObjectState); // Get the simulation time in milliseconds fn get_time_ms(&self) -> u64; } // Define a function to initialize the Rust simulation library and start the simulation loop fn start_simulation() -> impl Simulation { // Initialize the simulation state and return a struct that implements the Simulation trait // Start a separate thread to run the simulation loop } // Define a function to render the simulation in Godot fn render_simulation(objects: &[ObjectState]) { // Batch the objects by location or type // Use efficient data structures (e.g., structure of arrays) for the object data // Use culling techniques (e.g., frustum culling) to reduce the number of objects that need to be rendered // Use instancing to efficiently render large numbers of identical objects // Use a multi-threaded approach to offload the rendering work to separate threads } // Define a function to update the simulation state based on user input from Godot fn update_simulation(id: u32, state: ObjectState) { // Update the state of the specified object in the Rust simulation library } // Define a function to handle API requests from Godot fn handle_api_request(request: String) -> String { // Parse the request and call the appropriate function // Use efficient serialization techniques (e.g., Protocol Buffers) to minimize the amount of data transferred between Godot and Rust // Return the response to Godot }This API defines a Simulationtrait that allows the Rust library to manage the state of the objects in the simulation and provides functions to get and set the object state. It also defines functions to start the simulation loop, render the simulation in Godot, and handle API requests from Godot. By using efficient data structures, culling techniques, and multi-threading, the rendering of a large number of objects in Godot can be optimized for performance. Additionally, using efficient serialization techniques minimizes the amount of data transferred between Godot and Rust, further improving performance.
📷Nice, now please implement the simulation dynamics. I want rigid-body newtonian physics model. With collision detection. Use an octree to improve performance of collision detection. Please use quaternions to represent orientation and rotations. Please ensure the model can use a configurable timestep. Please use SI units for physics calculations when necessary and try to add comments which specify what quantities and units variables are intended to represent.
Sure, here is an example implementation of the simulation dynamics in Rust:
rustCopy code
use nalgebra::{Vector3, Quaternion, Rotation3, Isometry3}; use std::collections::HashMap; const GRAVITY: f32 = 9.81; // m/s^2 const DEFAULT_TIMESTEP: f32 = 0.01; // s // Define a struct to represent a rigid body in the simulation struct RigidBody { position: Vector3, // meters velocity: Vector3, // meters/second acceleration: Vector3, // meters/second^2 orientation: Quaternion, angular_velocity: Vector3, // radians/second angular_acceleration: Vector3, // radians/second^2 mass: f32, // kilograms inertia_tensor: Vector3, // kilograms * meters^2 is_static: bool, // if true, this object cannot be moved } // Define a struct to represent a collision mesh struct CollisionMesh { // Define the collision mesh data (e.g., vertices, faces, etc.) // Use efficient data structures and algorithms for collision detection (e.g., an octree) } // Define a struct to represent the state of the simulation struct SimulationState { objects: HashMap, // map object IDs to RigidBody objects collision_meshes: HashMap, // map object IDs to CollisionMesh objects octree: Octree, // octree for collision detection time_ms: u64, // milliseconds since the start of the simulation } impl Simulation for SimulationState { fn get_object_states(&self) -> Vec { let mut object_states = Vec::new(); for (id, rigid_body) in &self.objects { let object_state = ObjectState { position: (rigid_body.position.x, rigid_body.position.y, rigid_body.position.z), orientation: (rigid_body.orientation.w, rigid_body.orientation.i, rigid_body.orientation.j, rigid_body.orientation.k), scale: rigid_body.mass.sqrt(), is_visible: true, // assume all objects are visible for now }; object_states.push(object_state); } object_states } fn set_object_state(&mut self, id: u32, state: ObjectState) { if let Some(rigid_body) = self.objects.get_mut(&id) { rigid_body.position = Vector3::new(state.position.0, state.position.1, state.position.2); rigid_body.orientation = Quaternion::new(state.orientation.0, state.orientation.1, state.orientation.2, state.orientation.3); } } fn get_time_ms(&self) -> u64 { self.time_ms } } impl RigidBody { // Apply a force to the rigid body at its center of mass fn apply_force(&mut self, force: Vector3) { if !self.is_static { self.acceleration += force / self.mass; } } // Apply a torque to the rigid body fn apply_torque(&mut self, torque: Vector3) { if !self.is_static { let angular_acceleration = self.inertia_tensor.component_mul(&torque); self.angular_acceleration += angular_acceleration; } } // Integrate the state of the rigid body over a given timestep using the Verlet method fn integrate(&mut self, timestep: f32) { if !self.is_static { // Update linear position and velocity
📷continue outputting your simulation implementationswiftCopy code
self.position += self.velocity * timestep + 0.5 * self.acceleration * timestep.powi(2); self.velocity += 0.5 * (self.acceleration + self.acceleration) * timestep; // Update angular position and velocity let rotation = Rotation3::from_quaternion(self.orientation); let angular_velocity_matrix = rotation.matrix() * self.angular_velocity.cross(&rotation.matrix()).into_matrix(); let angular_acceleration_matrix = rotation.matrix() * self.angular_acceleration.into_matrix(); let orientation_derivative = Quaternion::from_parts(0.0, self.angular_velocity.x, self.angular_velocity.y, self.angular_velocity.z) * self.orientation * 0.5; let angular_velocity_derivative = self.inertia_tensor.try_inverse().unwrap() * (torque - self.angular_velocity.cross(&self.inertia_tensor.component_mul(&self.angular_velocity))); self.orientation += orientation_derivative * timestep; self.orientation.normalize(); self.angular_velocity += angular_velocity_derivative * timestep; // Reset acceleration and angular acceleration self.acceleration = Vector3::zeros(); self.angular_acceleration = Vector3::zeros(); } } // Perform collision detection and resolution with a given CollisionMesh fn collide(&mut self, mesh: &CollisionMesh) { if !self.is_static { // Perform collision detection using the octree let objects_in_tree = mesh.octree.get_objects_near_point(self.position); for object in objects_in_tree { if self.is_colliding_with(&object) { // Perform collision resolution let normal = self.get_collision_normal(&object); let relative_velocity = self.get_relative_velocity(&object); let restitution = 0.5; // coefficient of restitution let impulse = -(1.0 + restitution) * relative_velocity.dot(&normal) / (self.mass + object.mass); let force = normal * impulse; self.apply_force(force); self.apply_torque((self.position - object.position).cross(&force)); } } } } // Check if this rigid body is colliding with another RigidBody fn is_colliding_with(&self, other: &RigidBody) -> bool { // Perform collision detection using a bounding sphere let distance = (self.position - other.position).norm(); let radius = (self.mass + other.mass).sqrt(); distance <= radius } // Get the normal vector for a collision between this rigid body and another RigidBody fn get_collision_normal(&self, other: &RigidBody) -> Vector3 { (self.position - other.position).normalize() } // Get the relative velocity between this rigid body and another RigidBody fn get_relative_velocity(&self, other: &RigidBody) -> Vector3 { self.velocity - other.velocity }
}
📷if you are done with your simulation implementation tell me that you are done. If not, please continue outputting it.
I'm sorry, I have completed the implementation of the Rigid Body Dynamics simulation in Rust language. Please let me know if you have any questions or if there is anything else I can assist you with.
📷Can you give me an example of a rigid body for this simulation?
Sure, here is an example of a simple RigidBody for this simulation:
rustCopy code
let mut rigid_body = RigidBody::new( Vector3::new(0.0, 0.0, 0.0), // position (m) Vector3::new(0.0, 0.0, 0.0), // velocity (m/s) Vector3::new(0.0, 0.0, 0.0), // acceleration (m/s^2) Quaternion::identity(), // orientation (quaternion) Vector3::new(0.0, 0.0, 0.0), // angular velocity (rad/s) Vector3::new(0.0, 0.0, 0.0), // angular acceleration (rad/s^2) 1.0, // mass (kg) Matrix3::identity(), // inertia tensor (kg*m^2) false, // is static (boolean) );
In this example, the RigidBody is initially located at the origin (0, 0, 0) with zero initial velocity, acceleration, angular velocity, and angular acceleration. It has a mass of 1 kilogram and is not a static object (i.e. it is free to move and can be affected by external forces and torques). The inertia tensor is initialized to the identity matrix, which assumes the RigidBody has uniform density and is symmetric about its center of mass.
📷Please create a new rigid body representing a simple cessna 150 airplane sitting at the origin.
Sure, here's an example of creating a new RigidBody representing a simple Cessna 150 airplane sitting at the origin:
rustCopy code
// Define the dimensions of the Cessna 150 airplane in meters let length = 7.31; // Length of the airplane (m) let wingspan = 10.16; // Wingspan of the airplane (m) let height = 2.69; // Height of the airplane (m) // Define the mass and inertia tensor of the airplane in SI units let mass = 670.0; // Mass of the airplane (kg) let ixx = 3435.0; // Moment of inertia about x-axis (kg*m^2) let iyy = 16020.0; // Moment of inertia about y-axis (kg*m^2) let izz = 18200.0; // Moment of inertia about z-axis (kg*m^2) let ixy = 0.0; // Product of inertia about xy-plane (kg*m^2) let ixz = 0.0; // Product of inertia about xz-plane (kg*m^2) let iyz = 235.0; // Product of inertia about yz-plane (kg*m^2) // Define the initial position and orientation of the airplane let position = Vector3::new(0.0, 0.0, 0.0); let orientation = Quaternion::from_euler_angles(0.0, 0.0, 0.0); // Define the initial velocity, acceleration, and angular velocity of the airplane let velocity = Vector3::new(0.0, 0.0, 0.0); let acceleration = Vector3::new(0.0, 0.0, 0.0); let angular_velocity = Vector3::new(0.0, 0.0, 0.0); // Define the initial angular acceleration of the airplane let angular_acceleration = Vector3::new(0.0, 0.0, 0.0); // Define the new RigidBody representing the Cessna 150 airplane let mut cessna_150 = RigidBody::new( position, velocity, acceleration, orientation, angular_velocity, angular_acceleration, mass, Matrix3::new( ixx, ixy, ixz, ixy, iyy, iyz, ixz, iyz, izz, ), false, // not a static object );
This example defines the dimensions of the Cessna 150 airplane in meters, as well as the mass and inertia tensor in SI units. The initial position and orientation are set to the origin and no initial velocity, acceleration, or angular velocity or acceleration are applied.
submitted by
farning10 to
artificial [link] [comments]
2023.03.27 02:58 BelugaBilliam Authelia (auto-authelia) script updated: NPM & Caddy support!
Hello all! Thanks for all the support on this project! I was quite surprised on how well recieved it was!
Here is what has been recently added:
- Nginx Proxy Manager installation via docker-compose (Usage for NPM on github page. GUI based so I can't pre-configure it, unless I create a script to generate the "Advanced" section part).
- Caddy installation
- Automatic Caddy configuration (Caddyfile setup) for authelia
Github Repo
https://github.com/lordzeuss/auto-authelia
Previous Reddit Post
https://www.reddit.com/selfhosted/comments/11y2raa/authelia_autoconfiguration_script_v10/
How do I use this new addition?
Here is the short and high level view of it:
When you clone the repo, you will notice there is an additional script (proxy-setup.sh).
Once you run the script, it will prompt you to select NPM or Caddy to install.
If you choose NPM, it will create a docker-compose file, and ask if you want to start the container.
If you choose Caddy, it will install Caddy. It will then ask the auth root domain (auth.example.com), then create the base template Caddyfile.
All you have to do is edit the caddyfile, to add your service domain (service.example.com), and add the location of the service (EX: localhost:8080 OR IP:PORT if not a local service).
You can then just follow the pre-setup Caddyfile to add more services.
In the future, I will simply add any reverse proxy setups/configs to that script. Keeping it simple.
Thats it! Detailed instructions on how to use the new script, and the whole process, is on the github page. This is the short and sweet version. I have plans on including a demo/guide video, as well as adding additional proxies. I am just working one at a time, as I do not have much experience with raw nginx and traefik, so I am learning as I am going!
As always, please let me know what you'd like to see! I would like to see if I can create a small documentation site on github, so the README file on the github page isn't too long and hard to read.
submitted by
BelugaBilliam to
selfhosted [link] [comments]
2023.03.27 02:58 StepwiseUndrape574 Fans speculate about the location of GTA 6
As fans eagerly await the release of Grand Theft Auto 6, speculation about the game's setting and location continues to grow. While Rockstar Games has been tight-lipped about the game's development, fans have been scouring the internet for clues.
One popular theory is that the game will be set in Vice City, the fictional Miami-inspired city that was featured in Grand Theft Auto: Vice City. This theory is based on a number of clues, including a cryptic tweet from Rockstar Games that featured an image of a palm tree with the words "KIFFLOM" written on it. This phrase has appeared in previous games in the series and is associated with a cult that is based in the game's version of Los Angeles.
Other theories suggest that the game could take place in a new location entirely, possibly even outside of the United States. Some have suggested that the game could be set in Tokyo, Japan, or even in a fictional version of Rio de Janeiro, Brazil.
Regardless of where the game is set, fans can be sure that Rockstar Games will create a rich, immersive world full of interesting characters and compelling storylines. And for those who can't wait to get their hands on GTA 6, GTA 5 Modder 👑 Buy gta 5 accounts
http://Furymodz.com // Fortnite // GTA 5 Accounts, Mods 💎 Creator on Patreon:
http://patreon.com/furymodz 🎪 offers a variety of mods and accounts to enhance the GTA V experience while we wait for the next installment in the series.
submitted by
StepwiseUndrape574 to
gta5moddedoutfits_ [link] [comments]
2023.03.27 02:58 randomstuffsendhelp Help me pick my first command.
I am a nurse and will be going to my first command later this year. I have two options: Naval hospital Jacksonville or MNRTC San Diego. Any nurses here that can give insight on what the work environment is like at these locations? I know SD is great for the location but I’m mostly concerned about the command climates. What is that patient ratio like at these locations? Acuity? Do you feel supported by your peers? How is the leadership at either location? And which one would you select/recommend to your best friend? In terms of experience, which would you prefer? I’ve worked in toxic environments/hospitals in the past and really would like to avoid that if I can help it. Sos help me out please!
submitted by
randomstuffsendhelp to
navy [link] [comments]
2023.03.27 02:57 Wonderful-Ad-7303 New player and recently just discovered about the penalty system
I love mechs, I love gundam, and I have a crippling gacha addiction. Just recently discovered about this game and im absolutely having a blast.Im a sucker for big robots beating the scrap out of other big robots, and as a fan of the armored core series since 3rd gen I need this game to scratch that itch in me.
My life in GBO2 is going swimmingly. Just discovered that the Phenex gundam has already been added to the game 2 months ago, and as a fan of the Unicorn sisters and the Phenex being my favorite out of the three I was overjoyed when the Phenex just got a rerun. Didnt expect to get her since I only have a few dabloons then BAM!, first ten pull I got 2 Phenexes, the first one made me howl and the second one just left me speachless.
Painted her in the color of the Adeptus Custodes (Emperor bless those glorious golden banana bois) and took her to rank matches after rank matches and OH MY GOD SHE HANDLES LIKE A DREAM. I did not know she was a "please nerf" kind of unit so I was shock about my preformance because I keep getting constant Ws and landing on the 1st and 5th places on each and every match and I suck mega balls in this game.
She carried me in her golden bossom to rank B- ground and rank C space. All is swell in the world, But I should have known that this level of luck and prosperity has a price to pay and the good times will soon come to an end.
I live in the Philippines . . . I dont have to explain to you about the internet situation in this God abandoned country. Oceans will dry out, stars shall dim, and humanity ascends to the sixth dimensional plane before we would find a solution to fix this country's internet problems.
Thats why I sometimes disconnect in lobbys, matchmaking, and in the middle of games. This infuriates me because it takes atleast 10 to 30 min for me to wait for a full lobby just to get kicked out and getting disconnected in the middle of matches when Im commiting warcrimes againts the enemy team. But atleast when this happened the game outright tells me that this will not effect my standing or whatever in the game so I thought I was fine, oh how naive I was.
Then a few days ago my Phenex decided to aimlessly drift and phase through debris in space then finaly decided to merge and become one with a rock. Welp another disconect I thought Woopty Doo!, but I should be fine because the game will not treat this as . . . . what do you mean I got a warning? I thought this kind of stuff was fine? Okay im having one of those bad internet days just gotta wait until I get good speed and get back on grinding that rank match.
The following day I got like 3 to 4 blue bars right beside my username and checked the ps4 test your internet thingy and saw that it was fast and good so I went to rank matches again with my phenex. Won 4 ground matches in the row and im close to reaching B rank ground. I decided to give it one more push before the 700 hundred cost match game gets sortied out (and yes ever since I got Phenex I only play 700 rank matches because I love her).
So I got into the Lobby, the lobby is filled with players, the players have picked their suits, and the cutscene of me climbing into my baby and launching plays, the screen goes black, the it suddenly disconnects me and gave me another warning. WTF! what do you mean? I furiously check the internet speed and with God as my witness it has the same numbers as before, so I checked the game and i still havs 4 blue bars.
Okay thats wierd maybe its just a one time hickup, so I went into a match again, then I SHIT YOU NOT IT HAPPENED AGAIN, the exact same sequence plays out and got booted after the cutscene. But this time the text is different, my eyes widend with fury as I read the RED BOLD TEXT . . . . Penalty 1. I just sat there with a thumb up my arse. Okay okay deep breaths deeeeep breaths, everything is gonna be find, a penalty? how bad can that be? It says i can remove it if I play rank matches and thats what i plan to do all day anyways, so let me just sortie into my next fight and THIRTY HOUR BAN!? PUTANG INA!? and thats for the first offence and seeing that it has a number 1 I theorized that there is a second ban, and since this one is a 30 hour ban I dred to imagine what Penalty 2 is like.
So I was like screw this im just gonna play custom matches since I plan to play this game all day anways and I reckon that you only get penalties on rank matches since its suppose to be competitive and custom matches are as casual as you can get even when compared to quick matches.
So i went into a 350 point match to get my mind off the ban, then in the middle of the game it disconnected me, a message pop out, and again in red text . . . . penalty 2. I checked how much time I need to serve this unjust sentence put opun me . . . . . 5 days. FIVE DAAAAAYYYYYSSSSsssssss. I put down the controler, turned off my ps4, went to the bathroom, and shit myself in anger. I cant even wrap my head around why penalties still happen in custom matches anyways since who gives a rat ass what happens in a custom match.
I went into the subreddits and read posts about this stupid penalty system, and from what I gather the devs implament this system due to people complaing aboit rage quiters in the past. Look okay I understand a punishment system like this to deter assholes from just quitting matches when shit goes slightly off their way needs to exist. But what about players like me who even with a good connection at that time get booted out because the game decided to not work at that time? They get penalized unjustly and have to suffer practice match hell in fear of getting worst punishments from disconnecting from even CUSTOM MATCHES.
And what if I got a slow internet speed and get disconnected from matches from time to time, the game needs an option for players like me who gets disconnected for a short time to get back into the same match. CUS MOMMA AINT RAISE NO QUITTER, enemy team got a 10,000 point lead, one teamate decides to bomb the enemy base at 50 seconds on the clock, the other goes on scuicidal charges, two are constantly team hitting, and im missing all my shots, do I quit? NO, CUS IM A WARRIOR BABY, I FIGHT TILL THE DYING OF THE LIGHT AND I LET IT RIDE, WHEN MY TEAM GOES DOWN I GO DOWN SWINGING, AWWOOO! AWWWWOOO!
But since this game runs on a peer to peer system (which by the way from what i researched, what kind of stupid decision is that to put an archaic system suck as PTP in a multiplayer game) instead of dedicated servers that cant happen, from my understanding atleast idk im not tech savy.
Since they dont want to put effort into fixing their network, why not instead of punishing disconnects by not letting them play (which is a imbasilic design, what kind of game that have a system that makes players unable to play the game) put players with low internet speeds and rage quiters into a seperate lobby and let them suffer hell together, and if they manage to finish a couple of games without disconnecting then they will be able to sortie back to normal lobbies. Sure it will suck but atleast players who disconnect unintentionaly will still be able to play and rage quiters will be stuck in this hell for a time till they fix their behaviour or just quit the game. Well atleast thats my half ass solution anyways im sure their are better opinions out their feel free to share.
So here I am waiting for my ban to drop so I can play again to play rank and clear my good name so I can be out of this penalty. This sucks because from what ive heard it will take atleast TWENTY matches to get out of penalty 2 to normal, and with my shoty internet connection if I disconnect just once I will be back in penalty hell. This thought alone makes me want to quit the game which is a bumber cause i was genuily having fun. Cant wait for Armored Core 6 to drop cause im thinking of dropping this game
First time posting and never in the life of me thought I would create a reddit post since I just like lurking around and watching the memes and discussions, I just really need to vent so bad, and Jesus christ this is a long as post so imma just put a
TLDR: Just started playing the game, got my favorite unit, having a blast, then got a penalty out of nowhere because the game decided to screw me over even with good connection. Got a second penalty again in custom matches, why on God's green earth does that exist? Rework the penalty system by having disconnecters in a different lobby and work their sentence till they get back to normal lobbies. Thinking about dropping the game.
submitted by
Wonderful-Ad-7303 to
GBO2 [link] [comments]