Free microsoft points code generator torrent

fortnite vbucks free tools

2018.03.18 01:38 lmaomitchs fortnite vbucks free tools

[link]


2008.07.02 00:01 lua

News and discussion for the Lua programming language.
[link]


2012.01.09 21:50 the4thaggie Fallout Equestria

The subreddit to discuss and post ponies from post-apocalyptic and wartime My Little Pony stories. Its main focus is the epic crossover fanfiction Fallout Equestria by Kkat and its derivative works.
[link]


2024.05.18 20:41 nik_stojanovski How I gained 1,100 subscribers in 14 days without spending a dime, and a 53% open rate

Hi everyone – I’ve recently been building a weekly business newsletter called Pulse of Progress and got my first 1,100 subscribers in just 14 days!
The best part? I used zero paid ads. All of my subs were completely free!
Here’s how I did it.
But first, let me provide some context…
For the last 6 months, I’ve been testing out different side hustle / business ideas. I have a running list of ideas that I test on forums like Reddit and Indie Hacker to get a pulse on what the public thinks. In my opinion, this is one of the best ways to validate an idea before investing any money or serious time into it. If it gets some traction or interest in the first few days, you know you have something. If not, its time to move on.
I start by generating some interest on social platforms and freelance websites (side note – I’ve come up with a method that helps me do this and get tangible results. So, if this is something you want to learn more about, let me know. I’ll make a post around this too). It’s an approach I’ve developed and tested over the last year with other ideas, so I just do the same with all other ideas I want to test / validate in the future. I want to see results fast, not waste time on non-value add activities.
Here are some of the business ideas I’ve tested:
1. Newsletter sponsorship marketplace – created a platform connecting newsletter businesses with potential advertisers. The marketplace allows the businesses to post their content and advertisers to find and book ad slots
2. AI based email marketing optimization tool – developed an AI tool that analyzes email marketing campaigns and provides optimization suggestions to improve open rates, click-through rates, and conversions
3. Remote language exchange facilitation – pair individuals looking to learn each other’s languages and facilitate their language exchange sessions online
I shut all of these down. I couldn’t get the momentum I wanted or hoped for to consider them a success. The AI based email marketing optimization tool went viral on Hacker News and Indie Hacker, but it was because I was able to generate some hype around it for a short period of time. But the hype faded fast…real fast. I had about 100 people sign up for the service. As for my other businesses, I had a few signups here and there but nothing worth keeping the business alive and investing more of my time into it.
Something I want to call out at this point: all of the businesses I tried starting in the past were bootstrapped. I never used money I made from the sale of my other businesses. I sold one business (a virtual event planning business that took off during the pandemic. We organized and managed virtual events, think webinars / workshops / conferences, for specific interest groups and professional communities). I never touched the proceeds from that sale to start the company I currently run. The reason I bring this up is because I think your business, regardless of what it is, needs to stand on its own. If it couldn’t, I knew it was time to move on. I didn’t want to give myself a false sense of hope that it would work by continuously throwing money at it.
The reason I started a business newsletter…
A newsletter was perfect. It was easy to start and required no money to get it up and running. The purpose behind the newsletter was centered around the idea of creating something that informed and educated people but was entertaining to read. Reading in general, news or not, can sometimes feel like a chore (at least for me). This was the opposite. This was something you genuinely looked forward to reading, the things that influence your world and the decisions you make on a daily basis.
The biggest issue I had with everything else out there was that the content was around things I didn’t care about. Not to mention it put me to sleep half the time. And that’s when it hit me – create a platform that genuinely helped people stay ahead in this information heavy world. Filter out the nonsense, deliver on high-value content.
The test phase…
I spent a couple hours looking up any Facebook group that was related to starting side hustles, escaping the 9-5 grind, online businesses etc. Once I came up with a small list of about 8-10 groups, I spent the next few days posting about the newsletter. One caveat for me when looking for which groups to post in: they needed to have more than 50K users. I wanted my posts to have some reach and didn’t want to waste my time in groups that were smaller and were barely active. I also designed some GIFs (I drew inspiration from the early Milk Road days when they posted funny GIFs / memes about their newsletter all over social media) but that didn’t work. Like at all. So, I shifted gears.
The first day, I posted about the newsletter in 8 different groups and got about 45 subscribers the next day. Over the next two weeks, I spent a couple of hours each day making similar posts within these groups and tried finding other groups I can post in. This proved to be successful. Making consistent posts got people engaged and subscribing to the newsletter. It was starting to gain some steam. And this is what lead to my first 1,100 subscribers in the first 14 days.
Why this worked…
1. Value creation: The best ideas appeal to what people want, and more importantly, need. It helps solve a problem. And in this case, people want high quality content that helps them make informed decisions, educates them along the way and is a joy to read.
2. Helps identify trends before they happen: Understanding emerging trends and market dynamics is crucial for staying ahead. This knowledge allows people to adapt quickly, innovate effectively, and capitalize on new market opportunities.
3. Sparks innovation and creativity: Exposure to different perspectives and new information sparks innovation and creative thinking. Staying informed about global trends, tech advancements, and industry breakthroughs inspires new ideas and approaches.
Things to keep in mind…
What I’ve realized is that you want your ideas to generate a “natural pull” from the world. It shouldn’t be something you “push” onto people. Trying to convince people they need something that doesn’t help improve their lives or satisfy a need is a waste of time. Listen to what people want. And build from there.
I’ve had multiple profitable businesses and the common theme between them all is that they cost me less than $100 to start and get product / market fit. I won’t lie, sometimes I let my ego get in the way when I put an idea out there and it got rejected. And trust me when I tell you, that’s happened more often than I’d like to admit. I spent way too much time and money putting something together even when I knew it wasn’t worth pursuing.
How does that saying go…the one about Thomas Edison and his attempt at building the first light bulb after trying and failing 1000 times. “I haven’t failed. I just found 1000 different ways how not to build a lightbulb.” And that’s just it…who cares if the idea didn’t work. Hate to break it to you, but most will. Instead, focus on the skills you’ve picked up and learned along the way while building this business and apply it to the next.
Anyways, I hope this post helps at least one person grow their business, subs count, social media presence. Now that I’ve grown my audience to over 10K subscribers organically, I’m looking into using paid ads to grow even more from here. The problem is I have no idea how to do that! So, if anyone has any tips or tricks, I’d love to hear them.
Good luck my friends.
submitted by nik_stojanovski to EntrepreneurRideAlong [link] [comments]


2024.05.18 20:40 setwocks ---> EASY SETUP FOR GRASS, GET STARTED HERE! <---

Easy Setup for Grass
Use this link to get signed up for free and get 5000 free points!
  1. Go to https://app.getgrass.io/registe?referralCode=EGtkfZ4rCSBIo4m
  2. Click Download Grass and add it to your chrome/opera extensions
  3. Go to your extension list and click the Grass icon
  4. Click Register with email. If you don't have a referral code already, use: EGtkfZ4rCSBIo4m
  5. Once you've signed up and the app has connected, you can open the dashboard and see how many points you've farmed and you'll have a referral link in the bottom right you can copy and send to your friends and family.
That's it. As long as you have a browser tab open, you'll be earning grass points. Welcome to Grass!
submitted by setwocks to Grass_io [link] [comments]


2024.05.18 20:40 Ecstatic_East_8491 Why do we need AI as a financial advisor?

Highlight the following benefits: This is my personal opinion, but you may disagree with me!
Budget Planning: AI analyzes your spending habits much more deeply than you might on your own. This leads to tailored recommendations and insights you wouldn't uncover manually. In addition, it can process massive amounts of financial data, like budget plans, spending analysis, and savings suggestions, in seconds.
On a separate note, I want to mention the fight against impulse buys. AI eliminates emotional spending triggers often associated with human budgeting. It sticks to the data, promoting financial discipline.
Here's a prompt you can use:
"Create a budget template that will work with my income and spending habits. I want something I can easily track and modify." 
Accounting and Tax Compliance : Modern platforms track changes in tax rules and legislation in real-time, alerting you to updates that could affect your life and work. This reduces the risk of non-compliance and potential penalties. If you set up your assistant intelligently, you may even be able to prevent problems in some cases.
And, unlike a real financial advisor, AI platforms are noticeably cheaper and available 24 hours a day, 7 days a week.
Here's a prompt you can use:
"Explain the key financial ratios and how to calculate them. Provide examples of how to use them to assess my business health." 
Investment Management: AI is increasingly important in trading, as financiers make trades using algorithms. And if the best experts are using it, why shouldn't we? AI platforms are trained on vast amounts of data, allowing us to identify patterns humans might miss. This helps ensure the integrity of financial data and reduces costly errors.
In addition, some platforms can assess risk tolerance, financial goals, and market conditions to generate customized portfolio management recommendations.
Here's a prompt you can use:
"Summarize the current economic climate. Highlight key indicators (e.g., inflation, interest rates, GDP) and their potential impact on my investment portfolio." 
These points add to a common conclusion regarding one fundamental advantage: data-driven automation. AI can quickly handle routine and time-consuming tasks, allowing us to make more educated decisions or free up time for more enjoyable activities.
submitted by Ecstatic_East_8491 to AIToolsInsider [link] [comments]


2024.05.18 20:30 roseohseven Long first time trip report 5/13-5/18!

LOOOONG first time trip report! 5/13-5/18, stayed at Beach Club, visited all four parks, bought Genie+ every day, had the standard DDP. Family of 4, two girls 5 and 9. I learned so much from this group over the past year and especially loved trip reports, so hopefully this post will be helpful to someone!
💲BUDGET💲
-- I booked the trip a year out so I could break it up into 12 manageable payments. I opened the no fee Disney VISA, which gives you several months of no interest on charges made towards Disney travel packages, rewards dollars to use at Disney, and a couple other perks like character meet and greets and discounts.
-- I signed up for Disney Movie Insiders. This is what you're supposed to do with all those little codes that come in Disney DVDs/Blurays. You enter the codes in exchange for points, and at 1000 points, you can redeem for a $10 Disney gift card. You also get points for being subscribed to Disney+, seeing Disney movies in the theater, their social media accounts, and a whole bunch of other things. I got $50 in gift cards from this alone.
-- If you want Disney-themed luggage, try thinking outside the box to save money! I got plain luggage in Mickey colors--red and black--and Mickey luggage tags to make them Disney themed.
-- I tried to budget for souvenirs via gift cards... but I failed, lol. Everything is so expensive, $100 is gone in a second. Plushes are like $40, coffee cups are $20, etc. Whatever you're planning to spend, double it! I get what people say about most shops having the same stuff, but it's definitely not all of them, most of the ones post-ride have unique stuff. And honestly it's kind of nice most of them have the same stuff, if you want to get whatever your kid was asking for earlier, you don't have to walk all the way back to the one shop you saw it at.
-- We paid for Memory Maker and I'm on the fence about it. On the one hand, it's really nice to get all the ride photos and meet and greet photos and magic shots. It's also really nice for the whole family to be in a lot of pictures and not have to swap with the other adult or find someone willing to take your picture. On the other, we definitely didn't utilize it as much as I wanted to because a lot of the photographers had pretty long lines and I just didn't want to spend time waiting for a picture I could take myself. If we came across someone with a shortish or no line, we made sure to get it, but for anyone with a long line, we just stood around the same spot and took our own.
🗓️PLANNING🗓️
-- If you have kids and live within easy driving distance of another amusement park, highly recommend making a visit BEFORE going to Disney to get an idea of how they handle that kind of day/environment, especially if they have never been. I quickly discovered we would absolutely need a stroller and I would need to be militant with the kids about staying hydrated. Also to avoid face paint, as heat + tears + paint + eyes = bad day! I felt so much better making these discoveries beforehand and being able to prepare accordingly, rather than making them at Disney.
-- USE AN AGENT! An agent is free to you, so why not have the help? Ours was amazing, she gave us quotes, booked the package, rebooked as needed later when a better deal came out, made all the payments, dining and extra reservations, and was just all-around awesome to work with. It was such a load off to know I wasn't on my own with all this stuff.
-- Watch everything Ear Scouts. No one explains Genie+ better, and Rob and Erick's videos are just so positive and beautiful and well done.
-- I also enjoyed reading Disney Tourist Blog--lovingly snarky but super informative!--and Disney Food Blog for fun tips and news.
-- I didn't find any park to be a half day park, we filled our whole day in every one and still didn't see everything!
-- My kids did really well, whenever they were on the verge of cranky, we had one ride in the stroller for a while, bought a snack (usually ice cream or popcorn), and used the bubble wand, and/or gave them some ibuprofen, and everyone felt better pretty quick. We never tried to do fireworks, we were all done by 8 so always left after dinner. The only park we closed down was EPCOT because we didn't get out of dinner until after close, and that was a really cool experience, the park was so quiet and empty and beautiful!
-- You don't NEED a Magic Band... but man, was it convenient. We just had 1.0 Magic Bands though, we didn't bother with the 2.0s.
-- I guess moving through security fast is important to people rope dropping... but as someone who didn't, it added like maybe 30 seconds to a minute to the experience the couple times my bag got flagged, it's really not a big deal.
-- I'm not saying anyone's lying about bad experiences or exaggerating or anything, but try to remember that far more people go on the Internet to complain than they do to praise. I got so stressed about all the things that could go wrong, and we had a pretty much perfect trip. The only attraction that broke down on us was Muppetvision, of all things. The only "bad behavior" we witnessed was the morning we were leaving, we could hear a dad across the hall yelling at his family, I think they overslept and were going to miss their flight or something? We just turned the TV on so we didn't have to hear him. A couple times we forgot to take our stuff with us when we parked our stroller or forgot some food in it, and neither people nor animals bothered it. The only dicey thing that happened to us was me dropping my phone into the Dumbo moat, the cast members fished it out and it still worked, I sent them a cast compliment for all their help! All the cast members were great, I'm not really sure what people expect but IMO they all do amazing for having to be peppy and helpful all day in absolutely blazing heat, walking a ride conveyer belt nonstop, repeating the same spiels over and over, meeting person after person, etc. I wouldn't last a 2 hour shift let alone 8. Cast members, you rock!!!
✈️TRAVEL✈️
-- We flew Delta, flight there was flawless, flight home was delayed by an hour waiting for crew and was a little bumpy (which is not great for a nervous flyer like me) but otherwise fine.
-- Get TSA PreCheck! Good for a few years, if the adults have it the kids have it too. It made the whole experience so much easier. That said, even PreCheck still moves kind of slow at MCO, so definitely get there at least 2 hours early for your flight. Use curbside check-in for bags, way faster than the long line inside!
-- On our agent's recommendation, we used Away We Go for ground transport in Orlando. They communicate really well, both ways were flawless, no complaints!
-- We used Minnie Vans to get to Animal Kingdom + Sanaa and Magic Kingdom, what a wonderful service! Definitely pricey, but they had cartoons on in the car, booster seats they set up for you, and the drivers were so nice and friendly and had fun trivia to share. I never had any problem requesting one when I needed it.
⛱️BEACH CLUB⛱️
-- We knew we wanted an onsite hotel where you could walk to at least one park. This pretty much limits you to a handful of Deluxe hotels or the Swan and Dolphin. Beach Club won for us because it's "in the Disney bubble" and you can walk to 2/4 parks. Note that while you can technically walk to Hollywood Studios, it is a LOOOONG walk. The boat is a nice not crowded alternative! We did not make use of Early Entry or Extended Hours, we're just not built for either. Beach Club was lovely, we booked a resort view but I think we ended up with a water view, we were right by the quiet pool and could see the water beyond from our room. Stormalong Bay was a little crazy for us but we loved the quiet pool. Best thing about Beach Club though is the location, EPCOT is literally steps away!
🌳ANIMAL KINGDOM🌳
-- We had read that there's really no bad day to do AK, so we started there. We rode: Navi River Journey, Flight of Passage, Kali River Rapids, Everest, Kilimanjaro Safaris, Triceratops Spin, and Dinosaur--so pretty much everything! With Genie+ we walked onto all of them. We also met Moana, Pocahontas, and Russell! The only thing we didn't do here that we wanted to was the Gorilla Falls trail, but we just ran out of time before the park closed.
🌐EPCOT🌐
-- We had read to avoid EPCOT on Fridays and Saturdays, so we went on Wednesday. We rode: Grand Fiesta Tour, Living with the Land, Nemo, Spaceship Earth, Imagination with Figment, Frozen, Remy, and Guardians--everything we wanted! Again, with Genie+, we walked right onto everything! We also met Anna and Elsa! Tried a couple of Flower and Garden snacks: chicken and waffles, fruit and cheese strudel, and potato pancakes, all were delicious! Everyone had a different favorite day, but EPCOT was personally my favorite day, it felt like we were firing on all cylinders and the day just went really smoothly!
🏰MAGIC KINGDOM🏰
-- We had read that Wednesdays were the quietest days at MK, so we were originally going to try to do it that day, but we could only get a reservation for Cinderella's Royal Table on Thursday, so we switched it up. Definitely the most crowded of all the parks we visited, but I think that's just the norm for MK, everyone wants to go to the castle park with the most rides. We rode: Regal Carousel, Tomorrowland Speedway, Barnstormer, Magic Carpets, Mad Tea Party, People Mover, Dumbo, Small World, Little Mermaid, Pirates, Space Ranger Spin, Jungle Cruise, TRON, and Peter Pan. Again, with Genie+, we walked right onto everything! The only ride we missed at this park that we wanted to do was Pooh, I couldn't manage to get a return time that was earlier than we planned on leaving. Outside of our character meals (more on those in the dining section!) we also met Mirabel, Tiana, and Rapunzel! We had both the Rapunzel and Aurora ice creams, both so good and cute!
🎬HOLLYWOOD STUDIOS🎬
-- We had read that, like MK, it's better to do HS later in the week, so we went Friday. We rode: Slinky, Alien Saucers, Toy Story Mania, Rise, Smuggler's Run, Runaway Railway. Again, with Genie+, we walked right onto everything! The only ride we missed was Tower of Terror, again I couldn't manage to get a return time that was earlier than we planned on leaving. We also met Olaf, be aware Olaf doesn't sign stuff, they just give you a signature card. This park needs more shade IMO, especially Toy Story Land, I know it's supposed to be Andy's backyard, but I don't see why that means we can't have some shade from trees or something. 🤪 Blue milk from Galaxy's Edge was really good, the family was all fighting over it!
🍽️DINING🍽️
-- We almost certainly lost some money on the DDP, but I'm still glad we got it because it allowed us to do more table service meals and have less stress overall about expenses. We easily used up everything but child quick service credits, we had a few of those left over near the end.
Here's where we ate!
BOARDWALK DELI/PIZZA WINDOW: Pizza for the kids, sandwiches for the adults. Tasty and satisfying after our day of travel!
BEACHES AND CREAM: Got the kitchen sink for the experience, but honestly it's not great, all the ice cream and toppings melt together quick and you just end up with weird ice cream soup.
SAT'ULI CANTEEN: LOVED this place, everything was so yummy! Best quick service we had!
SANAA: Since Animal Kingdom closes so early, we thought we'd try to extend the experience by eating at Sanaa. What a great idea, we got seated right by a window and saw so many animals! The food was great too.
AKERSHUS: Our favorite princess meal! We met Aurora, Tiana, Snow White, Ariel, and Belle. They were all lovely, and the breakfast was really good too. Only 1 credit on the DDP!
GARDEN GRILL: Our kids really enjoyed getting to look down over Living with the Land and the fact that the restaurant spins. We met Farmer Mickey, Pluto, and Chip and Dale. They were fun and even came to our table more than once. Food was good!
SPACE 220: Not on the DDP, but wow, what a cool restaurant! Almost like a ride with the theming and the elevator up. Food was really good.
CINDERELLA'S ROYAL TABLE: You gotta eat in the castle! We paid for it OOP because we didn't want to use up 2 DDP credits here. You're really going for the location and the princesses, the food is kinda meh, not bad but not as good as other places. The restaurant is small and they have to turn tables quick, so it's very understandable to me that the princesses have to move fast. It's not that they rush you, they'll take all the pictures you ask for and sign whatever and answer your questions, but if you don't have much you need, they try to keep moving. Akershus is much bigger so they are able to be more relaxed there. The only small bummer is that we didn't see Merida (maybe she was on vacation too!) We did meet Cinderella, Ariel, Jasmine, and Aurora though!
CRYSTAL PALACE: We are not big on buffets but we enjoyed meeting Pooh, Piglet, Eeyore and Tigger! TOPOLINO'S: Maybe the best food of the trip, steak and eggs were so good! The character artist costunes are so cute too. It was fun to have an excuse to ride the Skyliner to get here from Beach Club too.
DOCKING BAY 7: The theming is great, but the food wasn't as good as Satuli Canteen IMO.
THE MARKET AT ALE & COMPASS: We had quick service credits we wanted to use up on the last day and we didn't want to leave the resort again, otherwise I would have gone somewhere else, food was meh.
✨EXTRAS✨
-- I originally wanted to book Bibbidi Bobbidi Boutique for my kids, but it's so expensive/competitive that I decided to didn't want the stress. Instead I booked Have Wand, Will Travel to come to our room and bought dresses from Presley Couture and Only Little Once. I chose Have Wand, Will Travel because they keep character throughout. Fairy Godmother Elyse was amazing and so much fun, my kids loved it and kept talking about it all day!
-- That same morning I ordered a Sammicakes breakfast box with beignets for us to eat. I also ordered a pretend letter from Tiana on Etsy to make it seem like the breakfast came from Tiana. My kids also loved this and had fun telling Tiana about it both times we met her. Sammicakes was good but a LOT of food, sadly we didn't end up eating half of it. It can last you at least 3 days!
-- Matching shirts and ear hats, all from Etsy! So many cool designs there, hardest part is choosing!
-- Got my kids a pin trading lanyard with some pins, they loooooved pin trading! It was like free souvenirs.
🧳PACKING🧳
-- Things the Internet Told Me to Pack That I Needed: Scissors, ziploc bags, ibuprofen (kids and adults), garbage bags.
-- Things the Internet Told Me to Pack that I Didn't Need: stainless steel straws (the paper straws are more like cardboard, they really don't break down unless your kid is gnawing on them or something), ponchos (it did rain some most days, but wearing a poncho was almost more miserable than not wearing one, it's so hot and humid to be walking around in a plastic bag! We did better taking shelter and using umbrellas.), wipes (obv you need them if your kid is younger, but mine were older and just never got messy enough to need them.), glow sticks (we never stayed anywhere long enough to use them.) Basically, the less you can get away carrying in the parks, the better. It's annoying to lug stuff around you don't end up needing or using!
🛞STROLLER🛞
-- I know it seems insane that your 5 year old and 9 year old will need a stroller, but mine definitely did. Once I accepted that I was going to have to get one, I tried to make the best of it, and actually got really into decorating it so we could always easily spot it in the sea (the decorations also later made nice wall decor for a gallery of our trip!) The Magic Spotter flag was the best investment, hardly anyone had them so it was easy to instantly spot our stroller anywhere we left it, even if it got moved. That said, I definitely didn't want to spend a lot on a stroller we were really only buying for this one trip, so I got a used Joovy Caboose on Facebook Marketplace for $50. It was very hard to handle with two older kids in it, and even with one it was hard to handle unless the kid was in the back seat. So we basically used it like a single stroller, glad I didn't spend a lot on it since it was so hard to drive!
☔WEATHER☔
-- We had mostly great weather, it rained some every day except Magic Kingdom day but it passed within an hour each time. We wore socks with Crocs so that if/when it rained, we could just take our wet socks off and walk in our Crocs, this worked great! Don't trust the weather reports though, two days it wasn't supposed to rain. One day it actually didn't, the other day it did and we had to walk in wet shoes because we didn't wear the Crocs that day. Just figure it might rain any day and be prepared! See above note RE: ponchos being not great and shelter + umbrellas being better. When it didn't rain, It. Was. Hot. 🥵 In the 90s but definitely felt hotter with the humidity making it so sticky. We felt there was plenty of shade at Animal Kingdom and EPCOT, but hardly any at Magic Kingdom and Hollywood Studios, which I would say slightly affected how much fun we had on those days comparatively.
Phew! That's about it, let me know if you have any questions!
submitted by roseohseven to WaltDisneyWorld [link] [comments]


2024.05.18 20:30 Wild_Cellist9861 Gamers Break Away [GBA]

My fellow gamers, for too long has our community suffered the indignation of an intolerable culture that has denigrated, besmirched, exploited, and has outright demonized our culture of unique individuals with a genuine love of a hobby that they see as profitable and progressive. They have taken beloved IP’s (Intellectual Properties) and twisted them into their own personal ideological crusade of undermining and humiliating the core aspects of characters they deemed as “Toxic” or “White Supremacy”. Through the guise and protection of DEI (Diversity, Equity, and Inclusivity) & ESG (Environmental, Social, and Governance) they have used our influence in the entertainment industry to push their narratives and agendas that have stigmatized our culture with numerous anti-consumer practices that they call “being progressive”. But the truth of the matter is they were never really looking to be a part of our community, they simply wanted to use our community as a tool of activism and propaganda in the entertainment industry as it was extremely profitable, and they wanted inclusion in that division. Ever since GamerGate & Female Frequency, we have had to endure the incursion of forced ideologies, xenophobic behaviors and inferior overpriced products that have never been in our best interest and have been flat out disgraceful towards foreign media.
Before Gaming had become a major source of entertainment, we were often categorized as anti-social or societies rejects where because we found more enjoyment in playing fictional characters and not spending as much time out and about, we never fully assimilated in society (which is a good thing if you ask me). From 1998 to 2007, at the height of innovation, creativity and production, Gaming had reached a golden age in which it had revolutionized society. Hollywood Execs who had ruined the movie industry turned their attention to video games as a source of income since video games had outperformed movies in terms of profit. No one was concerned about gaming, much less diversity or inclusivity until it became profitable. This makes people like SBI look extremely disingenuous as they were not interested in gamers as a community with its own culture. They simply wanted to use it as another weapon in identity politics.
Microtransactions; the hidden enemy to gamer progress and inducer to mental laziness of our community. Microtransactions have been around for a long time; however, it has never been more potent and apparent than in recent years. It has aided in the dismantling and segregation of players on the ideology of FOMO (Fear of Missing Out) and has created another sub-culture of gamers who have no real drive to be better outside of how much money they put into the game. This has degraded our culture as well as we have become “fat” off transactional gaming but at the same time we have been “starved” of purposeful gaming where our achievements were our sustenance. I am not saying that microtransactions are bad, but when they are exploitative and predatorial like they have been and don’t give gamers room to grow, we become lethargic and unwilling to improve ourselves as gamers. Oversaturated microtransactional games are one of the many reasons why we have become complacent and unwilling to fight against the exploitative tactics used by big brand game companies such EA, Ubisoft, ActivisionBlizzard, NaughtyDog and so many other western business model companies. Western style games were not like this in the past, they had much more depth and actual effort put into them with the gamer in mind. This has not been the case for over a decade and our connection to western developers has been whittled down to just being transactional. That is one of the reasons why you see so many remasters and remakes in today’s gamer community. They have lost their willingness to improve as developers of games and simply accept corporate/share holder rules.
Game journalists also do not have any real integrity or purpose outside of being funded for their involvement in promoting IPG (Identity Political Games) in a positive light to the public whether it’s positively received or not. They are not interested in what we have to say, they all support the same agenda and that is why they are a dying breed. Within the next couple of years, they will be out of the job and more than likely they will not be able to stay in the industry giving how they have responded to past articles that have clearly been scripted on the premise of diversity and racism. Not only that, but most of them are also extremely hostile to the community as they stereotype and defame the individuals that are a part of the community they are supposed to serve. We have been mentally liberated from their lies and coercive tactics as we tend to laugh at their obvious attempt at virtue signaling while hiding their misdoings so that they can play the victim.
My gamer brothers & sisters, I would not suggest the following action that we must take now without good cause. I have weighed our options and the best option for us now is this…...CULTURAL SECESSION. Naturally this is a form of segregation where they would more than likely claim they are being segregated by the dominant culture of the gaming community but that is incorrect. For years now we have been the ones who are often marginalized and ostracized for the smaller portion of our community. And when we aren’t, we’re exploited for more funds so that these companies can stay in business only to subject us to low quality products that coincide with the “WOKE Agenda” that are often huge expenses to these big brands i.e. AAA/AAAA games that will eventually flop for its obvious forced diversity and bug infested product which will undoubtedly piss off the consumer to the point of wanting a refund. Losing copious amounts of capital and stock in the process, not to mention their reputation is permanently marred.
We must separate on every cultural level in terms of entertainment and ideology. We must reject everything from the west that promotes toxic western beliefs, practices, and exclusion from other cultures (i.e. Southeastern Countries such as Japan and Korea). Japan & Korea have been the targets of unjust discrimination from Western Developers, Western Journalists, Western Localizers (The Wokelizers) and Western Society Prejudice regarding their sense of aesthetics as Westerners hate the aesthetic sense of these countries. The reason why they resort to such base tactics isn’t just because it weaponizes the ideal female form but it’s also because they have deep-seated insecurities about their own looks so when they see attractive female characters, they use terms such as “unrealistic” or “hypersexualized” to establish the moral high ground. But the truth is, they want to feel superior to that which is ideal, so they insult and dehumanize this figure that portrays natural female beauty because they see it as an insult to their own social superiority in what they believe is a hierarchy of them being at the top of all other women. Because of this and so many contributing factors, their movies flop harder than the Fat Chocobo landing on a group of enemies and their games seismically fail just as much if not more. We must sever our connection to Western Developers, Publishers, and ALL Western-Centric Entertainment for they seek to mentally enslave us to their Xenophobic ideology.
Let’s define Western Culture and its traits. Western Culture/Society is composed of more than several different ideologies that work in unison with one another to facilitate dominance over multiple aspects of society. Business, Social, Political, Technological, and sometimes even Global Affairs are affected by these ideologies that portray a specific mindset of Western beliefs. What are those ideologies you ask?
Official Wiki GamerGate Page)

Asmongold Clips.
https://youtu.be/Iq86DnmX2xY

@GeeksandGamers
https://youtu.be/1HbrTkqQFuM

@MugenLord
https://youtu.be/to5Uciy_yeg
@EndymionTv
https://youtu.be/7TPTR8-qmbk

https://rationalwiki.org/wiki/Gamergate#The_end_of_their_relevance

@TheTrentReport
https://youtu.be/bPIPSKruYRo
These traits are so nefarious and unconscionable that I have a hard time believing that anyone could harbor them. However, given the social, political, and economic climate that we are in, those in power who use their influence on controlling society most definitely possess these insidious traits. Everything that they do is all about control and since video games are the biggest market in the world, they want control over it and the communities built around it to accrue more wealth and to use that wealth to subjugate other cultures. Mainstream media is a tool as well as mainstream organizations and sites to help accomplish this goal.
The government recently announced its intentions towards what they believe is “GamerGate 2.0” and now even the ADL has made an official appearance, referring to gamers as “extremist’s”. We know EXACTLY what they are doing, and they aren’t even trying to hide it anymore because they don’t think we are aware of their motives. This is just a pretext for them to exert even more control and we know why, it’s because they want the influence we as a community have to must serve them. So here is what we do my fellow gamers-
“In light of recent events and years of mainstream stigma, we the members of the Global Gaming Community [GGC] must officially renounce ALL TIES to the corporate western video game market. We have been financially exploited through predatorial monetization schemes, pelted with numerous articles of disdain and intentional misrepresentation from game journalists, news outlets regarding us as dangerous individuals and, even subjected to inferior products not only riddled with bugs but also products meant to push political agendas. For the preservation of our community and its unique culture, apart from a few select game development studios we officially sever all connections to western owned video game companies & their mainstream affiliates. From this point onward, we will no longer support western corporate developers, journalists and publishers that do not coincide with the goals of our community.”
Naturally this is completely optional. If you are okay with the state of the gaming community as it is, feel free to ignore this. But if you wish for real change and a break away from oversaturated monetization in the games you play and the push for radical ideological reform, then you are in the right place. Lets sever these rotted miasmic ties once and for all so that our community can be preserved and made better for future gamers. If you agree with this, share it with whoever you think might be interested. The more gamers who get involved, the easier it will be for us to finally break free from mainstream game companies and their associates.
submitted by Wild_Cellist9861 to United_Gamer_Front [link] [comments]


2024.05.18 20:05 Hereibe Post Mortem Breakdown Of the Lore.Fm Debacle

Post Mortem Breakdown Of the Lore.Fm Debacle

People Involved

  • TikTok user unravel.me.now, face of Lore.fm and sole person appearing in all the official TikToks
  • WishRoll, the company behind Lore.fm that has previously made an AI-story-generating app, and was on Forbes 30 Under 30 for their music-sharing app Kiwi

Timeline

  • May 6 24 TikTok user unravel.me.now posted a TikTok titled "pov: you built a personal app for yourself that turns any ao3 fic into an audiobook but your mom is asking you what you're listening to when you're washing the dishes (it's a 90k word gojo x reader angsty slowburn).
  • From May 6 - May 16 the account continues to upload videos where the app allegedly goes from a personal project to a fully completed app called Lore.fm calling for Betas and eventually fully launching on May 16 2024 posting invite links & puzzle videos to guess the invite code of the day to generate buzz. The videos with the invite code puzzles have since been deleted since the screenshot below.
  • Throughout May 6 - May 18 (the time of posting for this write up) any negative comments or comments that expressed concerns were deleted by unravel.me.now. Any comments that contained polite questions deemed too difficult to answer were also deleted.
  • People with experience in creating and launching an app noticed that it is highly unlikely this was a simple personal project considering how fast it got everything together for launch. Later people began to research the creators of this app, but at this time any comments expressing suspicion this was a simple personal project striking lightning were deleted.
  • Each video marketed the app as "Audible for Ao3". Unlike Audible, which uses voice actors and gains full rights and permission from authors, Lore.fm used AI generated voices (created with voice actors who consented to their voices being used for AI) and did not ask for any permission.
  • The way the app was intended to work according to the Apple Store was that users could add any link they wanted and the app would generate an audiobook with the voice they selected. This data would be stored both locally and on Lore.fm's servers.
  • On TikTok, unravel.me.now was saying that eventually the app would have even more capabilities. Eventually the app developers wanted a "Spotify Wrapped" experience. They wanted a top charts list with most listened to fics on the platform.
  • In Lore.fm's TOS it explicitly bans using the app to circulate and disseminate various things like scams, solicitations, etc. This implies the app was always intended NOT to be only a personal library.
  • May 16 2024 officially launches in the Apple Store and the Google Play Store. It uses Archive of Our Own's urls in it's demo pictures. According to the opening paragraphs of the TOS there was no data scraping for AI learning nor was there any third party selling of data. According to Privacy Policy they work with third-party partners and services to obtain data about their users.
  • May 16 2024 The Privacy Policy on lore.fm confirmed that despite conflicting comments by unravel.me.now on TikTok, the app WOULD store a copy on the users device and on lore.fm's servers. Their policies stated that it was the users granting them permission, despite knowing for a fact their users would not be uploading material with a clear copyright in their name. "Information submitted to lore.fm will be transferred to, processed, and stored in the United States. When you use the Software on your computing device, User Content you save will be stored locally on that device and synced with our servers. If you post or transfer any Information to or through our App, Software, and/or Services, you are agreeing to such Information, including Personal Data and User Content, being hosted and accessed in the United States."
  • May 16 2024 u/totallymandy posts a reddit thread titled "Audible for Ao3 :/" which brings attention to this app from people who do not use TikTok.
  • Redditors find one of the rare times unravel.me.now answers a question, confirming that lore.fm cannot access locked fanfiction (fanfiction on Archive of Our Own that has been set to be viewable only by people who are logged into an AO3 account). See screenshot section below.
  • This quickly spirals into multiple threads all over Ao3, Tumblr, and Twitter. There were posts on Tumblr prior to this one, but the post that ended up traveling wildly through Tumblr was posted by creativitycache on May 16th
  • May 16-17 Authors begin massively flooding into the [team@lore.fm](mailto:team@lore.fm) email inbox to Opt Out. The team is unprepared for this, and begins responding with wildly unprofessional and guilt tripping responses. Eventually as the flood continued the responses became standardized. Ex 1, Ex 2, Ex 3
  • May 17 It became clear the lore.fm team is monitoring both Tumblr and Reddit, as they are linking directly to reddit threads in their replies and are addressing Tumblr posts in response to private dms. rivkae-winters on Tumblr got some of the first replies showing they were actively reading threads on other websites. It was just as unprofessional as you'd expect.
  • May 16 Users became aware that previously the team that worked on lore.fm produced a story-generating AI app that has gotten terrible reviews. This deepens the distrust that data uploaded to Lore.fm will not be later used for furthering AI stories, despite the current TOS. Redditors, Tumblrites, and whatever Twitter users call themselves now all began to speculate just how the app was planning on running. Where were they getting the funds? Where were funds projected to come from in the future?
  • May 17 A TikTok is posted by unravel.me.now stating they are pausing release of Lore.fm. This TikTok does NOT state they are shutting down entirely, but that they are considering it and are opening a discussion. They continue to delete any critical comments on their TikToks. Other users pointed out that this TikTok contains language accusing any detractors of ableism, not mentioning the main reasons people are upset/not actually addressing the concerns people have, calling other screen readers poor products, and using auto-generated captions that were not edited and have multiple errors in them despite touting themselves as an accessibility company.
  • May 18 lore.fm is finally pulled from the app stores. The main website remains online, as does their TikTok account.

Problems With The App

  • Copyright laws are a nightmare, and I'm not touching the legalese breakdown here. Just in general, that. AO3 doesn't have an official app for deliberate reasons, due to the app store's policies.
  • Using AO3 as a content-generator for an app. If it were a screen reader, or one of the other various apps that read things in a pleasant voice for accessibility reasons, there would be no problem. But this was a separate app that did not link back to AO3 or allow its users to give AO3 writers any interaction/feedback. This app essentially billed itself as a way to package free fan work provided to AO3 as content it controlled.
  • Suspicion of intent. How were the developers going to recoup their costs? Why wasn't the data encrypted? Why were they marketing this as specifically for AO3 instead of a general accessibility tool? Why were they not addressing any concerns brought to them before or after launch? Why were they marketing this as a small personal project that implied it was a fan-created app, instead of putting their company name big and bold on it? What were their intentions regarding their other story AI app?
  • Opt Out/Consent Since this app was in a legal quagmire, clearly not designed primarily as an accessibility tool, and was hiding all criticism, authors did not feel comfortable with their work being used for this app. They were especially furious that they had to reach out to the lore.fm team and ask to be taken off- they had nothing to do with this project and yet were being told it was their responsibility to refuse instead of lore.fm's responsibility to ask. Authors were also upset on behalf of all the works marked Anonymous, Orphaned Worked, works where the Author's didn't have a way of even hearing about this app's existence, and deceased Authors who never could have predicted an app like this.
Let me know if I missed anything!

Screenshots

https://preview.redd.it/ih6hlzjw081d1.png?width=2268&format=png&auto=webp&s=0292f5a62a756299f49580b72a20804ed2590de6
https://preview.redd.it/ngwoiwo8y71d1.png?width=829&format=png&auto=webp&s=de40598b9d3320013d6582b834ec6d212b4a066c
https://preview.redd.it/pbhgg0rnz71d1.png?width=1079&format=png&auto=webp&s=086effc0fe50654bdf54a09dcf485d5d9cf4538e
https://preview.redd.it/dqvu2wtq081d1.png?width=828&format=png&auto=webp&s=0860068738176c6b4284f8ad018b2f4aceedccb3
submitted by Hereibe to Lore_Fm [link] [comments]


2024.05.18 20:04 Key_Constant4544 pay someone to do my homework

If you are unable to pas your Online Exam, Assignment and couldn't handle online courses workload, get paid help from Online Helpers at Hiraedu!
Contact Details for Hiraedu Helper:
WhatsApp: +1 (213) 594-5657
Call: +1 727 456 9641
Website: hiraedu. com
Email: [info@hiraedu](mailto:info@hiraedu). com
AACADEMIC TASKS MY TEAM AND I CAN COMPLETE:
MY TEAM'S CLASSES OF EXPERTISE:
MY EDUCATIONAL SOFTWARE OF EXPERTISE:
TOP 20 REASONS WHY I'M THE MOST LEGIT EXAM, HW, ONLINE CLASS TUTOR ON REDDIT:
  1. Team of U.S. Academic Experts: I and my team of dedicated academic experts complete all types of academic coursework for students in most math, English, science, business, humanities, social Sciences, computer programming, and foreign language classes on a 24/7/365 full-time round-the-clock basis. This is not some part-time gig for me. It’s literally my primary source of income. I can regularly make myself available to help students with last-minute & same-day academic requests.
  2. Essay Writing Skills: I can write essays & research papers in native U.S. American English and fluent Canadian English using APA MLA Harvard Chicago Vancouver OSCOLA IEEE formatting & citations.
  3. 75+ Types of Academic Software: I am highly skilled & experienced in using over 75+ types of academic software and educational platforms including the following: ALEKS, Blackboard, Brightspace, Canvas, Cengage, WebAssign, ConnectMath, Crowdmark, D2L, Moodle, Pearson MyLab and Mastering, MyMathLab, MyStatLab, MyOpenMath, StraighterLine, WebWork, and Wiley.
  4. Can Change IP Address: I have multiple reliable VPN software including: NordVPN, SurfShark & ExpressVPN that allows me to successfully change my computer’s original New Jersey IP address to any major city in the U.S. & Canada to avoid raising red flags with students’ online class software.
  5. Proctored Exam Help: I have developed multiple highly effective methods of helping students with exams, tests, and quizzes that are proctored by software like: Respondus Lockdown Browser with Webcam, Honorlock, Examity, Proctorio, Proctor360, Proctortrack, and ProProctor using 3 highly effective proven methods.
  6. Option 1 - WhatsApp: I use WhatsApp to have the student discreetly text me photos of the exam questions outside of the webcam’s view and I text them the correct solutions to the exam questions.
  7. Option 2 - Screen Share: Using screen share software like Zoom to see the student’s screen displaying the exam questions and I text the correct solutions.
  8. Option 3 - Remote PC Access & Control: Using remote computer access software like to control the student’s mouse and keyboard from my own computer.
  9. Study Help Apps: I have over 15+ paid subscriptions to a wide range of study help apps, software, websites, and programs to help me solve exam & homework questions faster and more efficiently. Some of these resources include: Brainly, Chegg, CourseHero, Quizlet, SymboLab & WolframAlpha.
  10. Calculators & Math Software: I have access to a very sophisticated graphing calculator and various mathematical software that provides step-by-step solutions to complex mathematical problems within seconds, allowing me to provide exact solutions to the student in a timely manner.
  11. Test Taking Techniques: I have developed highly effective methods to determine the correct answers to questions that I’m not already familiar with including process of elimination, working backwards, quickly searching for similar questions online, and utilizing standardized test taking techniques taught only in elite standardized test prep tutoring programs.
  12. Handwriting & Scanning Apps: I have impeccable handwriting and a high-quality mobile scanner app that allows me to scan written solutions in very legible high-definition JPG, PNG, and PDF formats.
  13. Flexible Payment Methods: I offer negotiable rates, multiple payment methods (PayPal, Venmo, Cash App, Zelle, anonymous credit & debit card payments via online invoice), and flexible payment plans: weekly (most expensive), monthly, half-now / half-later, and all-up-front (least expensive).
  14. Money Back Guarantee: I have won multiple academic awards for my exceptional skills & expertise in math. I guarantee overall A & B grades for all coursework completed. Plus. I also offer a 50% refund for C+, C, and C- scores, and a full 100% refund for D+, D, D-, and F scores.
HOW I CALCULATE FINAL RATES:
ABOUT MY RATES & PAYMENT OPTIONS:
CURRENT RATES -- AS OF SUMMER / FALL 2022 -- SUBJECT TO CHANGE:
THE OBLIGATORY "IS THIS A SCAM?" QUESTION:
Considering the fact that you found my contact information online, it’s understandable to be skeptical regarding the legitimacy of my services. Therefore, I’m willing to do all of the following to help you feel more secure in trusting me with your academic needs:
MY REBUTTAL TO THE OBLIGATORY “IS THIS A SCAM?” QUESTION:
At the risk of sounding arrogant, I consider myself to be at least marginally more intelligent (both academically & socially) than the average person. Therefore, if I ever decided to suddenly risk prison time, risk my reputation, and risk enduring the wrath of modern-day “cancel culture” by scamming people out of their money:
CONCLUSION:
TAGS:
Accounting Exam Help Reddit, Best Online Test Takers Reddit, Best Ways to Cheat on a Test Reddit, Best Website to Pay for Homework Reddit, Bypass Respondus Lockdown Browser Reddit, Calculus Test Taker Reddit, Canvas Cheating Reddit, Cheating in Online Exam Reddit, Cheating on Pearson Mymathlab Reddit, Cheating on Proctortrack Reddit, Cheating on Zoom Proctored Exams Reddit, Cheating on a Test Reddit, College Algebra Mymathlab Reddit, Do Homework for Money Reddit, Do My Assignment Reddit, Do My Exam for Me Reddit, Do My Homework for Me Reddit, Do My Math Homework Reddit, Do My Math Homework for Me Reddit, Do My Test for Me Reddit, Doing Homework Reddit, Domyhomework Reddit, Exam Cheating Reddit, Exam Help Online Reddit, Examity Reddit, Finance Homework Help Reddit, Fiverr Exam Cheating Reddit, Gradeseekers Reddit, Hire Someone to Take My Online Exam Reddit, Hire Test Taker Reddit, Homework Help Reddit, Homework Sites Reddit, Reddit, Homeworkhelp Reddit, Honorlock Reddit, How Much Should I Pay Someone to Take My Exam Reddit, How to Beat Honorlock Reddit, How to Beat Lockdown Browser Reddit, How to Cheat Examity Reddit 2022, How to Cheat Honorlock Reddit, How to Cheat and Not Get Caught Reddit, How to Cheat in School Reddit, How to Cheat on Canvas Tests Reddit, How to Cheat on Examity Reddit, How to Cheat on Honorlock Reddit, How to Cheat on Math Test Reddit, How to Cheat on Mymathlab Reddit, How to Cheat on Online Exams Reddit, How to Cheat on Online Proctored Exams Reddit, How to Cheat on Zoom Exam Reddit, How to Cheat on Zoom Exams Reddit, How to Cheat on a Proctored Exam Reddit, How to Cheat with Proctorio 2020 Reddit, How to Cheat with Proctorio Reddit, How to Cheat with Respondus Monitor Reddit, How to Get Past Lockdown Browser Reddit, Hwforcash Discord, I Paid Someone to Write My Essay Reddit, Is Hwforcash Legit, Lockdown Browser Hack Reddit, Lockdown Browser How to Cheat Reddit, Math Homework Reddit, Monitoredu Reddit, Mymathlab Answer Key Reddit, Mymathlab Answers Reddit, Mymathlab Cheat Reddit, Mymathlab Proctored Test Reddit, Online Exam Help Reddit, Online Exam Proctor Reddit, Online Proctored Exam Reddit, Organic Chemistry Exam Help Reddit, Organic Chemistry Test Taker Reddit, Paper Writers Reddit, Pay Me to Do Your Homework Reddit, Pay Me to Do Your Homework Reviews Reddit, Pay Someone to Do Homework Reddit, Pay Someone to Do My Assignment Reddit, Pay Someone to Do My College Homework Reddit, Pay Someone to Do My Homework Reddit, Pay Someone to Do My Math Homework Reddit, Pay Someone to Do My Online Class Reddit, Pay Someone to Do My Online Math Class Reddit, Pay Someone to Do My Programming Homework Reddit, Pay Someone to Do Statistics Homework Reddit, Pay Someone to Take Exam Reddit, Pay Someone to Take Exam for Me Reddit, Pay Someone to Take My Calculus Exam Reddit, Pay Someone to Take My Chemistry Exam Reddit, Pay Someone to Take My Exam Reddit, Pay Someone to Take My Online Class Reddit, Pay Someone to Take My Online Exam Reddit, Pay Someone to Take My Proctored Exam Reddit, Pay Someone to Take My Test in Person Reddit, Pay Someone to Take Online Class for Me Reddit, Pay Someone to Take Online Test Reddit, Pay Someone to Take Your Online Class Reddit, Pay Someone to Write My Paper Reddit, Pay for Homework Reddit, Pay to Do Homework Reddit, Paying Someone to Do Your Homework Reddit, Paying Someone to Take My Online Class Reddit, Paying Someone to Take Online Class Reddit, Paysomeonetodo Reddit, Physics Test Taker Reddit, Proctored Exam Reddit, Reddit Do My Homework for Me, Reddit Domyhomework, Reddit Homework Cheat, Reddit Homework Help, Reddit Homework for Money, Reddit Honorlock Cheating, Reddit Mymathlab Hack, Reddit Mymathlab Homework Answers, Reddit Paid Homework, Reddit Pay Someone to Do Your Homework, Reddit Pay Someone to Take Online Test, Reddit Pay for Homework, Reddit Pay to Do Homework, Reddit Test Takers for Hire, Reddit Tutors, Should I Pay Someone to Take My Exam Reddit, Statistics Test Taker Reddit, Take My Calculus Exam Reddit, Take My Class Pro Reddit, Take My Class Pro Reviews Reddit, Take My Exam for Me Reddit, Take My Math Test for Me Reddit, Take My Online Class Reddit, Take My Online Class for Me Reddit, Take My Online Exam for Me Reddit, Take My Online Exams Reddit, Take My Online Exams Review Reddit, Take My Online Exams Reviews Reddit, Take My Online Test Reddit, Take My Online Test for Me Reddit, Take My Physics Exam for Me Reddit, Take My Proctored Exam for Me Reddit, Take My Statistics Exam for Me Reddit, Take My Test for Me Reddit, Takemyonlineexams Reddit, Test Taker Reddit, We Take Classes Reddit, Write My Exam for Me Reddi
submitted by Key_Constant4544 to Statisticshelpers_ [link] [comments]


2024.05.18 20:01 The-Hot-Shame Lore Theory: Why Miquella planted the Haligtree [potential spoilers for the story of Elden Ring, obviously]

Apologies if this seems a bit messy, this is my first time writing out a FromSoft lore theory and I copied and pasted this from a google doc that I had this all written in. I wasn't sure if I was going to post the theory on here, or make a YouTube video. In the end, I decided to post it here since this would be the first, and probably only video that I would have made.
As a point of note, throughout this theory you will hear me refer to the DLC area as both the Land of Shadow and the Realm of Shadow. To clarify, what I mean by this is that we know that the DLC area once existed alongside the Lands Between, until something happened that separated it from the mainland. A character in the trailer calls the DLC area the ‘Realm of Shadow’. Simply put, I believe the Land of Shadow became the Realm of Shadow once it was veiled and obscured by Marika.
The Haligtree in Elden Ring, is an optional area within the game, created by the Empyrean Miquella. Miquella seemed pretty keen on the successful growth of this tree, going as far as watering it with his own blood when it was a sapling and even placing his own body inside it, only for Mohg to steal him away. However, something that is never explained is exactly why Miquella decided to grow the Haligtree in the first place. I mean, Miquella’s main goal has been to cure Malenia of her Rot. He even abandon’s Fundamentalism, something he was deeply involved with along with his father, all because it could do nothing to cure Malenia of her rot. I believe I have figured out why Miquella grew the tree and it all starts on ‘The Night of the Black Knives’.
The Night of the Black Knives
The night of the black knives is a major event in the history of Elden Ring, where the black knife assassin’s stole a piece of the rune of death, and used it to slay the demigod Godwyn the Golden. Making him ‘the first of the demigods to die’. However, Godwyn did not die a ‘true death’. He was slain in soul alone, while his body remained intact. Due to Godwyn’s condition, deathroot started to spread and any who came in contact with it was cursed to live in death. This is because, at the same time Godwyn was slain with the rune of death, Ranni (Godwyn's half sister) was also slain. However, Ranni’s body was slain, but her soul remained intact, later being housed in the four-armed puppet that we meet her in in the game.
Miquella was clearly affected by what happened to Godwyn. We know that Miquella helped in the creation of the Golden Epitaph sword as it was he that spoke the prayer ‘O brother, Lord brother, please die a true death’. We can also see a statue in Loretta’s arena of the twin empyreans being embraced by a third, older figure. This individual is believed to be Godwyn, which would make sense given Miquella’s involvement in aiding those of the Golden Order that hunt those that live in death.
Ranni tells us that she orchestrated the whole thing, in order to free herself from the control of the two fingers. She says the following:
“I was once an Empyrean.
Of the demigods, only I, Miquella, and Malenia could claim that title.”
“I stole the Rune of Death,
slew mine own Empyrean flesh,
casting it away.
I would not be controlled by that thing.”
These lines of dialogue tells us that Empyreans are, somehow, controlled by the two fingers and the only way to free oneself from their control is to rid yourself of your ‘Empyrean Flesh’.
Ranni also calls it a ‘fearsome rite’, I think we can infer from this that everything that happened during the night of the Black Knives had to happen the way it did in order for fulfil some kind of ritual that allowed Ranni to cast away her empyrean flesh.
Divesting of Flesh
So Ranni learned of this ‘fearsome rite’ to rid herself of her Empyrean flesh and it was necessary for her to do so in order to chase her own goals, that of the dark path. The Two Fingers obviously would not have allowed her to do this and thus, Ranni went ahead with this ‘fearsome rite’.
Miquella, as we learned from the interview with Miyazaki after the trailer dropped, has ‘divested himself of his flesh’ in order to travel to the realm of shadow. We know that the Land of Shadow is the first place the Goddess Marika stepped. I think it’s a safe assumption to make that Miquella is trying to learn what Marika did here in the Land of Shadow. We know that Miquella is a scholar at heart. He devoted so much of his time to research and study many things. Gowry calls his golden needle a “work of a true artisan”, Miquella also created two incantations, Discus and triple rings of light, Miquella founded the Unalloyed Gold ideology and even managed to find a way to stave off the presence of outer gods. It could also be argued that Miquella created the pulley weapons which, if true, further adds to the point of him being scholarly.
I believe that, through Miquella’s research of trying to cure Melania’s scarlet rot, learned of the Land of Shadow, learned that that is where Marika became a Goddess and that she ultimately hid something deep within the Realm of Shadow. We know that Marika was hiding the Rune of Death in Faram Azula, so it stands to reason that the Realm of Shadow is hiding yet another one of Marika’s secrets.
However, I don’t think that Miquella’s Two Fingers would have allowed him to travel to the Land of Shadow. As for why, it’s unclear, perhaps that reason could be the very secret Marika is trying to keep secret.
Melina is ‘burned and bodiless’ and is still seemingly able to retrieve Torrent from Miquella, phase in and out from the Lands Between and also take us to the Roundtable Hold, which I believe lies in the Land of Shadow. That would explain the existence of two Roundtable Holds (the one with the Two Fingers and the Fortified Manor in Leyndell). Considering all this, I believe the Realm of Shadow is a place that only spirits can access freely. This would makes sense since when a spirit, or soul, passes into the afterlife, they are said to have ‘passed through the veil’. We know that veils are used to hide things in Elden Ring. The Mimic’s veil transforms us into something else and the Black Knife Assassins use veils to become invisible. I believe that the Realm of Shadow is also being obscured by a large veil.
I think that, because the Two Fingers wouldn’t allow for Miquella to travel there, Miquella sought the need to divest himself of his flesh as well, similarly to Ranni, but didn’t want to perform the same rite as Ranni as Miquella was very clearly upset about what happened to Godwyn. Afterall, we can see a prayer that he spoke on the Golden Epitaph, which reads ‘O brother, Lord brother, please die a true death’. This would lead Miquella to seek out another way to ‘divest himself of his flesh’ and, being the genius scholar that he is, I think he found it.
Planting the Haligtree
I believe that Miquella discovered another rite. I believe that this rite involves the planting of a Haligtree seed, watering it with the blood of the one who wishes to divest themselves of their flesh and then, finally, placing their body inside it once it has grown large enough. I don’t think that the cocoon would develop around anyone else if they placed themselves in the Haligtree, only Miquella. As it was with his blood that the Haligtree ‘was raised on’ and so it would need his blood to fully mature. That would explain why the Haligtree started to die when Mohg ripped his cocoon from the Haligtree.
While it’s unclear where exactly Miquella got the Haligtree seed from, I do think that we can make some good estimations based on some clues given to us in the game.
The first clue is that Erdtree Avatars have emerged to defend the Haligtree, along with Ulcerated Tree Spirits. We know that Erdtree Avatars emerge to protect the offspring of the Erdtree, the minor Erdtrees, as we fight them at most, if not every, Minor Erdtree that we visit.. This suggests that the Haligtree is a form of offspring to the Erdtree, however it’s likely a different kind of offspring to the Minor Erdtrees. The reason I think this is because the Haligtree was planted before the shattering. The symbol of the Haligtree appears when using the Golden Epitaph’s weapon skill, which implies that Miquella helped craft weapons that would aid the Golden Order in the hunt of those that live in death. The only way this could be possible is if the Haligtree was planted before the Golden Epitaph weapon was created. At this time, it was considered impossible for the Erdtree to produce seeds or offspring, as it was thought that the Erdtree was eternal.
The second clue we get regarding the origin of the Haligtree is a voice line from Gowry:
“The work of a true artisan…a meticulous, bold craftsman who grasps the essence of life.”
From this, we learn that Miquella is not only a ‘true artisan’ but also was able to ‘grasp the essence of life’, and I think this is important. I think that, because Miquella ‘grasped the essence of life’ he was able to procure the Haligtree seed from the Erdtree, even when everyone else thought it impossible.
The Plan
I think Miquella wanted to go into the Realm of Shadow to mainly learn how Marika became a Goddess. Afterall it did once exist alongside the Lands Between before ‘something’ separated it. I think it’s pretty clear that Marika obscured the Realm of Shadow, and if Marika obscured it, then it must contain something that Marika wants to keep a secret. I believe Miquella came to the same conclusion and decided to travel there. However, due to how it exists, only spirits can ‘pass through the veil’ that obscures it from the Lands Between. So, Miquella sought to ‘divest himself of his flesh’ so that he could exist in soul alone to travel through the veil and investigate the Realm of Shadow.
The reason I think Mesmer is sealed within the Realm of Shadow, but is still fiercely loyal to Marika is because he was either chosen, or volunteered himself to protect whatever secret Marika is trying to keep hidden. Just like how Maliketh was protecting the Rune of Death, I believe Marika had Mesmer protect Marika’s secret. Afterall, nobody who would be following the grace of gold would be lead to the Realm of Shadow to begin with, so all who enter would be fair game for Mesmer to ‘impale’ or ‘embrace Mesmer’s flame’
Additional Thoughts/Theories
Perhaps the reason Miquella needs his ‘promised lord’ is so that he could fuse with them. Afterall, we don’t know exactly how Marika and Radagon became one individual. Perhaps Radagon was a native to the Land of Shadow and, once it had become veiled, he and Marika were able to fuse and form a ‘two souls-one body’ situation. Thus, Miquella might need to do the same, where an individual with an intact body might be offered to Miquella to house his soul. This individual, I believe, is his ‘promised lord’ that he is waiting for in the Realm of Shadow. Perhaps Miquella’s original plan was to wait for the eclipse, in which the residents of Castle Sol would be able to send Miquella his ‘comrade’, making Miquella the living soul to the comrade’s soulless body. This would explain why the residents of Castle Sol lament at how Miquella’s ‘comrade remains soulless’. Perhaps this line was never referencing Godwyn. Afterall, we do know that Miquella wanted Godwyn to ‘die a true death’ and, the line ‘your comrade remains soulless’ almost implies a resurrection of some sort. This sounds almost too hypercritical if Miquella wants Godwyn to ‘die a true death’ but also wants to revive him.
It also never sat quite right with me how, Miquella was taken from the Haligtree and Malenia is doing… nothing about it. I know she was wounded in her fight with Radahn, but I don’t think that her waking up for her boss fight is the first time she awoke since being carried back to the Haligtree by Finlay. It would make sense, however, if the reason Malenia isn’t looking for Miquella is because she knows that the body that was taken is no longer important. Yes Miquella will fulfil his promise and return, but he won’t return to his previous body.
Conclusion
In conclusion, I believe that the reason Miquella planted the Haligtree was specifically to divest himself of his flesh in order to escape the control of his Two Fingers. Then, travel to the Realm of Shadow in order to learn what Marika did to become a God, where he would then await his promised lord that would be delivered to him during the eclipse. Then, together, they would follow Marika’s footsteps and ascend to Godhood where they could then bring an end to Malenia’s rot (and potentially give Godwyn a true death?).
submitted by The-Hot-Shame to Eldenring [link] [comments]


2024.05.18 20:00 Inner_Lengthiness697 $133k/m selling Nextjs boiler plates

Nationality — French Age — 32 Top Product(s)ShipFa.st Current MRR — ~$141K
Today, I want to share with you the inspiring story of Marc Lou, a 32-year-old French entrepreneur who is one of the highest grossing Indie Hackers with a super smart product.
Marc’s journey began when he graduated from Université de Technologie de Troyes. He began his career as a full-stack developer and started a couple of ventures. After facing a series of failures and setbacks, including being fired by Tai Lopez in November 2021, Marc discovered the build-in-public community on Twitter, which changed his life.
In just under three years, Marc launched an impressive 21 products, grew his newsletter to 20,000+ readers, amassed a Twitter following of 95,000, and reached an astounding $141,000 per month in revenue with a 91% margin.
Marc’s entrepreneurial journey was not without its challenges. It took him two years to make his first dollar online, and he even grew a SaaS to $3,000 MRR before feeling like a failure after four years of hard work. Depression set in, causing him to quit entrepreneurship temporarily.
However, after being fired by Tai Lopez, Marc found inspiration in his role models on Twitter, such as Pieter Levels and Danny Postma. These solopreneurs were working on their projects from anywhere in the world, enjoying the freedom and financial success that Marc craved.
Living in Bali with his Korean wife and $20,000 in the bank, Marc set out to build his own path to freedom. He started with a simple project called Mood2Movie, a movie recommendation app based on the user’s mood. This project kickstarted his build-in-public journey, and he continued to launch projects for fun, learning valuable skills along the way.
In August 2022, Marc went all-in on his gamified habit tracker, Habits Garden, which was making ~$200/month. He utilized side-project marketing, launching free tools to promote his paid product, and created engaging launch videos that went viral. By January 2023, Habits Garden had reached 10,000 users.
Marc continued to ship startups like a madman, applying new rules: no free plans, only painkiller products, and moving on quickly if there was no product-market fit. In July 2023, he was making ~$3,000/month.
A turning point came when Marc realized he needed to build a business for customers he truly cared about. He sold his AI landing page generator for $35,000 and his habit tracker for $10,000, giving him the time and clarity to focus on products he would use himself.
On September 1st 2023, Marc launched ShipFast, a NextJS boilerplate to help others ship startups quickly. To his surprise, ShipFast made $40,000 by the end of the month, and as of April 2024, it is at an impressive run rate of $133K.
Marc’s success has bought him peace of mind and the ability to speak to a broader audience. However, his life hasn’t changed dramatically. He still surfs, writes, and codes every day, finding happiness in creating rather than consuming..
I hope Marc’s journey inspires you as much as it has inspired me. Remember, your path to success may be unique, but consistency and perseverance are the key!
To read more such tips and stories around building on the Internet, consider subscribing to our free Newsletter BuilderOS :)
submitted by Inner_Lengthiness697 to u/Inner_Lengthiness697 [link] [comments]


2024.05.18 19:59 StaticOTI The Guess Who ~ Running Back Thru Canada Live in Winnipeg

The Guess Who - Running Back Thru Canada Live in Winnipeg June 30, 2000 Canwest Global Park Winnipeg MB CA *** Enjoy the full concert FREE @ https://bit.ly/guesswhorunningbackthrucanada *** A Hometown Throwdown Live in the Heart of the Nation by R. Dale Roth 2024-05-18
At the end of June in the summer of 2000, Canadian rock royalty, The Guess Who, stopped Running Back Thru Canada smack dab in the middle of the nation, just long enough to unleash a massive sonic super storm on the band's hometown of Winnipeg.
Under a prairie sky ablaze with the setting sun, Winnipeg's favorite sons, The Guess Who, returned to the heart of their homeland for a concert that resonated with the pride and passion of a nation. Canwest Global Park, a baseball diamond transformed into a rock 'n' roll cathedral, became the epicenter of a musical pilgrimage for fans who had followed the band's journey from local heroes to international icons.
The air crackled with anticipation as the stadium lights illuminated the stage, revealing a backdrop steeped in history: vintage amps that had witnessed countless jam sessions, a drum kit weathered by years on the road, and an unmistakable sense of homecoming. The crowd, a sea of red and white, erupted in a chorus of cheers as the band emerged, their faces beaming with the joy of playing for their hometown faithful.
From the opening chords, it was clear that this was no ordinary concert. It was a communion between a band and its people, a celebration of shared memories and a testament to the enduring power of music to connect and inspire. Burton Cummings, his voice as strong and soulful as ever, poured his heart into every lyric, his every gesture a tribute to the city that had nurtured his talent.
Original guitarist Randy Bachman, a hometown hero in his own right, unleashed a torrent of electrifying riffs, his fingers dancing across the fretboard with the ease and confidence of a seasoned veteran. The rhythm section, a well-oiled machine, provided the driving beat that propelled the music forward, while the keyboards added a touch of psychedelic magic.
As the night unfolded, The Guess Who revisited their greatest hits, each song a cherished memory brought to life. The crowd sang along with every word, their voices blending in a harmonious chorus that echoed throughout the stadium. Cummings, visibly moved by the outpouring of affection, shared anecdotes and reflections on his lifelong love affair with Winnipeg, his words resonating with the deep sense of belonging that permeated the atmosphere.
The stage setup, while simple, was imbued with a sense of history and authenticity. The lighting, a kaleidoscope of colors and patterns, transformed the stage into a living canvas, enhancing the emotional impact of each song. The sound, crisp and powerful, ensured that every note reached every corner of the stadium, creating an immersive experience that transcended the physical space.
As the concert reached its crescendo, The Guess Who unleashed a barrage of their most beloved anthems, the crowd responding with an outpouring of unbridled enthusiasm. The final encore, a heartfelt rendition of a song that has become synonymous with Canadian identity, brought tears to many eyes, a testament to the power of music to evoke deep emotions and forge lasting bonds.
The Guess Who's homecoming concert was more than just a performance; it was a celebration of the unbreakable ties that bind a band to its roots, a reminder that home is where the heart is, and that the music born from that connection has the power to transcend time and touch the souls of generations to come.
Song by song:
1. "Runnin' Back To Saskatoon": The opening chords of this prairie anthem resonated with the crowd, setting the tone for a night of hometown pride and musical nostalgia. Cummings' vocals, infused with a sense of longing and belonging, captured the essence of the Canadian experience.
2. "Rain Dance": The band's signature blend of rock and psychedelia was on full display in this swirling, hypnotic number. Bachman's guitar work, a blend of bluesy riffs and soaring solos, transported the audience to another dimension.
3. "Glamour Boy": This hard-rocking track showcased the band's raw energy and rebellious spirit. Cummings' snarling vocals and Bachman's blistering guitar solos ignited the crowd, sparking a wave of headbanging and fist-pumping.
4. "These Eyes": One of the band's most beloved ballads, this song evoked a bittersweet sense of longing and regret. Cummings' emotive vocals, accompanied by a delicate piano melody, touched the hearts of everyone in the stadium.
5. "Lookin' Out for #1": This self-affirming anthem, with its driving rhythm and catchy chorus, had the crowd singing along at the top of their lungs. The song's message of self-reliance and determination resonated with the independent spirit of the Canadian people.
6. "No Sugar Tonight/New Mother Nature": This medley of two classic hits showcased the band's versatility, seamlessly blending hard rock with acoustic folk. Cummings' dynamic vocals and Bachman's intricate guitar work kept the audience on the edge of their seats.
7. "Let It Ride": This bluesy rocker, with its swaggering groove and suggestive lyrics, injected a dose of raw sensuality into the set. Cummings' playful vocals and Bachman's searing guitar solos fueled the crowd's passion.
8. "Undun": This haunting ballad, with its melancholic melody and poetic lyrics, showcased the band's introspective side. Cummings' plaintive vocals, backed by a sparse arrangement, created a moment of quiet reflection.
9. "American Woman": The band's most iconic anthem, this song exploded with an energy that shook the stadium to its foundations. Cummings' defiant vocals and Bachman's iconic riff ignited a frenzy of national pride.
10. "Albert Flasher": This quirky, tongue-in-cheek number, with its playful lyrics and infectious rhythm, brought a smile to everyone's face. Cummings' mischievous vocals and the band's lighthearted performance created a moment of pure fun.
11. "Takin' Care of Business": This high-octane rocker, with its driving beat and motivational lyrics, had the crowd on their feet and singing along. The song's message of hard work and perseverance resonated with the Canadian work ethic.
12. "Laughing": This introspective ballad, with its melancholic melody and poignant lyrics, explored the darker side of human emotions. Cummings' vulnerable vocals and the band's understated performance created a moment of shared empathy.
13. "Bus Rider": This funky, groove-laden track, with its catchy chorus and danceable rhythm, injected a dose of soulful energy into the set. Cummings' playful vocals and the band's tight interplay had the crowd moving to the beat.
14. "No Time": This hard-rocking anthem, with its driving rhythm and rebellious lyrics, unleashed a wave of raw energy. Cummings' powerful vocals and Bachman's blistering guitar solos ignited the crowd's passion.
15. "Share The Land": The concert culminated with this iconic anthem, a rallying cry for unity and compassion. Cummings' heartfelt vocals and the band's soaring performance brought the crowd together in a shared moment of national pride.
Featuring: The Guess Who
Burton Cummings - lead vocals, piano, harmonica, flute, guitar
Randy Bachman - vocals, guitar
Don McDougall - vocals, guitar
Bill Wallace - bass, vocals
Garry Peterson - drums, percussion, vocals
Please Comment, Like, Share & Follow.
Enjoy this, & more complete concerts FREE @ StaticContentCreations.com
Thanks for watching. D♠️R
https://reddit.com/link/1cv34ye/video/irqspvxb481d1/player
submitted by StaticOTI to GreatLiveConcerts [link] [comments]


2024.05.18 19:56 HotEntranceTrain Get Started with AI-Powered Real-Time Trading Alerts

Real-time trading alerts powered by AI can provide valuable insights and signals to help you make informed decisions in the fast-paced world of trading. In this post, we'll walk you through a step-by-step guide to setting up AI-driven trading alerts using free data and simple code examples.
Choose the right tools: To begin with, you need to select the right tools for AI-based real-time trading alerts. Some popular free and open-source tools are:
Obtain free real-time financial data: To set up real-time trading alerts, you need access to real-time financial data. Some free sources of real-time financial data include:
  1. Read and preprocess data: Use Pandas to read and preprocess the real-time financial data obtained from the APIs. For example, to fetch real-time stock prices from Alpha Vantage:

import pandas as pd import requests api_key = "YOUR_API_KEY" symbol = "MSFT" url = f"https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval=1min&apikey={api_key}" response = requests.get(url) data = response.json() prices = pd.DataFrame(data['Time Series (1min)']).T prices.head() 
Create trading indicators: To set up trading alerts, you need to create trading indicators that signal potential opportunities. Common trading indicators include:
For example, to calculate the 5-minute SMA using Python and Pandas:

prices['sma_5'] = prices['4. close'].rolling(window=5).mean() 
Develop an AI-based trading strategy: Once you have the trading indicators, you can develop an AI-based trading strategy. For example, you can create a simple moving average crossover strategy:

def generate_signals(prices): signals = [] for i in range(1, len(prices)): if prices['sma_5'][i] > prices['sma_20'][i] and prices['sma_5'][i - 1] <= prices['sma_20'][i - 1]: signals.append("Buy") elif prices['sma_5'][i] < prices['sma_20'][i] and prices['sma_5'][i - 1] >= prices['sma_20'][i - 1]: signals.append("Sell") else: signals.append("Hold") return signals prices['signal'] = generate_signals(prices) 
Set up real-time trading alerts: Now that you have the AI-based trading strategy, you can set up real-time trading alerts. To do this, you can monitor the real-time data and trigger alerts based on the strategy:

def check_alerts(prices, symbol): latest_signal = prices['signal'].iloc[-1] if latest_signal == "Buy": print(f"AI Alert: Buy {symbol}") elif latest_signal == "Sell": print 
submitted by HotEntranceTrain to AItradingOpportunity [link] [comments]


2024.05.18 19:51 ciuckis587 I made some landing pages to promote Grass

I made GrassPromo.com, a website that generates landing pages to promote Grass.
No registration necessary - just enter your Grass referral ID and copy your generated link. Or manually append your referral ID to the end of the landing page URL like so:
https://grasspromo.com/1/your_referral_id
https://grasspromo.com/2/your_referral_id
https://grasspromo.com/3/your_referral_id
When you add a valid ID, the links and buttons on the landing page automatically become yours.
There's also a rotator that loads a random page each time so you can promote several pages with one link and keep things fresh:
https://grasspromo.com/your_referral_id
In the future I plan on adding a slightly longer article-style landing page too.
These pages are intended mostly for advertising on PTC sites where you can't send people directly to a signup form. For example, I gained over 1M points in the previous epoch thanks to some cheap advertising. It doesn't make sense to use them on reddit because here you can tell people about Grass before sending them to signup. But feel free to use them in any legal, non-spammy manner.
This is brand new so tell me if you encounter any issues. In particular, I'm making a big assumption that all IDs are exactly 15 characters because I haven't seen any shorter or longer, but that might be wrong.
submitted by ciuckis587 to Grass_io [link] [comments]


2024.05.18 19:49 afterandalasia Oxventure Overall: The Good and the Bad (Spoilers for the whole run!)

So, I'm seeing some mixed reactions to the last season, and honestly I'm feeling them myself as well, so I decided to sit down and sort of breakdown and analyse some of what happened over the course of Oxventure, what seemed to go well and what didn't, and maybe try to get into some litcrit of the whole thing.
Warning: I'm not always nice in this write up, though I have done my best to be fair and honest throughout in what I think the potential pitfalls were and how I hope they might be better addressed in future campaigns.
I've played D&D myself for a few years, listened to other Actual Play series (notably NADDPOD and some D20 at one end of the competency-of-players scale, and Dragon Friends and Dungeons and Drongos at the other), and write... a lot. Including over 250k of fanfic specifically for Oxventure, which started off as an excuse for smut but ended up being a lot of worldbuilding.

System & Setting

Johnny has made no secret that they're not a huge fan of D&D, indicating that they feel it overshadows other systems, and given that the Spicy Rat Caper was meant to be a one-off but fans loved it perhaps they felt a little trapped in the system. This did lead to some funny moments (Faire Trial and Max commenting that they sometimes felt "like a big dice rolling around a tray" sticks with me) but sometimes felt a bit mean-spirited ("Crawl Me Maybe" and the heavy 'lol dungeon crawling is so ridiculous' comes to mind).
It was also clear that at times, none of the group seemed to know the game and the rules super well. From Mike not knowing his movement speed ("30 what? Miles an hour?") to Merilwen not using her animal forms or changing out her spells until level 8, to the underpowering of most of the classes, it became more of an issue as time when on in some ways.
It's easy enough to understand why, live on stage and starry-eyed at Harry McEntire as Aubrey, Johnny missed that in the combat Aubrey cast two levelled spells in the same round (against the rules) as well as using two sorcery spell modifiers in the same round (also against the rules, and they mentioned this on the podcast). Sorcerer was also a new class to everyone, and dealing with a new class is always going to be difficult, especially dropping them in at a higher level rather than starting from level 1 and building up.
However, bluntly, most of the guild weren't using their class/subclass abilities to the fullest. Rules lawyer Andy did the best, so he gets a pass here, and Ellen got sharper with Merilwen over time to stuff like knowing her spell components, tracking her spell slots, and preparing her spells. However, the concept of Egbert as "a paladin who doesn't do paladin things" (quote from the post-Deadlands discussion) was ultimately really limiting not just for Egbert (Mike commented in one podcast episode that he felt he'd trapped himself in only using Egbert's abilities in ways that were funny) but for the entire concept of paladins - Max might as well have been a fighter in the fight in Gnome Alone that they took part in, and we never saw Shattershield fight at all. There were references to combat offscreen in Out of Order, but... that was it. (Additionally, while paladins can be poisoned, as poison and disease are different in 5e rules, paladins can pump out a LOT of healing, and a citadel full of them should have a lot of magical reserves to draw on as a result.)
And Egbert isn't the only one who was limited. One of the biggest features of Great Old One warlocks (which Prudence is, with Cthulhu), is that from level one they have telepathy within 30ft ("Awakened Mind"). Prudence went the entire campaign without using this. Although Johnny allowed the Message cantrip to be treated like this, allowing people to reply to it when RAW it is one-way only, this meant that Dob also essentially gained Prudence's power because he also had Message. Merilwen was limited in her animal forms and the spells that she knew up until level 8, and it was noticeable how everyone was shocked at her power once she had full RAW druid range. Corazón, on the other hand, not only had Andy keeping on top of all of his class and subclass features, but got two subclasses, leaving him about on par or slightly overpowered for the level he should have been looking overpowered because the others didn't use their abilities so well. Meanwhile, Dob was given access to full bardic abilities, but only used bardic inspiration in some of their level 1 adventures and then not much again until the final season.
The counterpart to this under-utilisation of class potential was the amount of 'rule of cool' or 'rule of funny' which sometimes worked well (Merilwen befriending the owlbear in Quiet Riot, or the reflavouring of Thunder Wave to do lightning damage instead based on their initial misunderstanding) and sometimes ended up breaking the game (the "everyone can cast Moonbeam" joke that escalated to the scrolls of Moonbeam that made the finale kind of laughable). Sometimes this seemed to be the time and audience pressure of live shows (allowing Prudence to use the hammer to wheel her way through the skeletons in Stop Hammer Time), but other times it was just letting them do things that went outside the rules (Egbert body-slamming six(?) Otherberts at once in Bad Altitude, or Dob casting all his spells at once in Corpse and Robbers) seemingly preferring the immediate humour or "yes and" over the potential internal logic or end implications.
The contrast between this permissiveness, sometimes to the point of breaking logical immersion, honestly seemed sharper to me when it was laid against Andy's GMing in Deadlands. Whether it was reminding people that there were snipers on the rooftops in Dead Man's Worth or refusing to yes-and a chandelier in More Wonders Than, he made it more difficult for the players and in doing so made them work harder within their skillsets and the setting, making the victories feel harder-won as a result. I'm aware that some people didn't like Andy's GMing specifically because he was less permissive, but I believe that his intention - and the outcome - was a stronger narrative that made the characters feel active and not just lucky. (Liliana lampshaded this in Frenemy at the Gates when she asked whether things often just fell into their laps, like with knowing Binbag, and it almost felt like a spiteful comment so it surprised me to hear it from Johnny.)
What I hope: It has been indicated that Johnny has created the new setting for the next game, so hopefully they have put things more to their liking at the beginning and will not end up seeming to dunk on the premise of their own series. I'm also hoping for everyone to either use more standardised rules, or at least establish in-game standards at the beginning so that all of the characters, and players, feel like they're on a level playing field from the off. Johnny seemed to much more enjoy the systems of Blades in the Dark and Deadlands (which were designed to be less superhero-level) and even the lower levels of Oxventure (especially Tier 1) where the characters were just people who were skilled but not particularly out of the range of normality; I'd be interested to see whether they lean more in that direction and keep the characters lower-powered as a result.

Characters & Character Arcs

Again, it's worth noting that the characters were initially conceived as being for a one-off game, so the initial concepts did not necessarily need planned arcs. However, the rockiness of some of the arcs overall may have contributed to issues with the series, especially as it stretched out over so many years. I'll go through the PCs alphabetically, then Liliana, then mention any other NPCs. There are two elements here - in-character goals, and character arc goals, which both play into things.
Corazón - in my opinion, Corazón had one of the stronger character arcs, which may reflect Andy's interest in writing (and now being published!), going from the coward pirate-wannabe who abandoned his crew to the curse, to the person who threw himself in front of a spell meant for Merilwen. This was highlighted in his reply to Them in Prism Break, even before the Power Word Kill spell. In fact, the Power Word Kill brought a level of pathos to the fact that he had told Them that he was not even done growing as a person. Andy commented on the podcast at some point that he had expected at the beginning to be one of the more morally shady characters (as a pirate), but found himself playing a line of being immoral regarding money but caring deeply about physical hurt or harm to people. Corazón also had two layers of in-character goals - to break the curse (limited) and to become a betterichereal pirate (more open-ended) and find his own identity which allowed him to carry character development over the years even when the curse was ignored for extended periods. Goals: clear and stepped, with the curse as a plot-hook; arc: good and perfectly timed for the finale.
What I hope for: More of the same, really.
Dob - Dob came in early with a clearly defined goal (to find his sister) - but this was done in Brawl of the Wild and Dob has been sort of... undefined ever since. It absolutely makes sense that he would have floundered for a while, but Dob has gone several years without settling on new goal, and Luke also didn't seem to settle on a character arc (the romance subplot in Orbpocalypse Saga through Bride or Die seemed to be almost a character arc, but never got full payoff?) which left Dob feeling... well, at times it almost seemed like Luke wanted to get rid of him to play someone else instead. This was unfortunately also highlighted in conversation with Them, as the response that Dob gave was about him being a "mote of chaos". I obviously couldn't speak for others, but I found this underwhelming and unconvincing as an answer, as it didn't give me any sense of why a powerful celestial being would consider this an argument - if Dob had developed the argument to be that chaos is generative and creative in a way that pure order cannot be, and/or that the free will and agency of sapience demand that they be allowed to act and to try even if they make mistakes or fail, I think there might have been something there, but he didn't really seem to. Goals: had one which formed a good plot-hook, then went without; arc: unclear.
What I hope for: Luke to determine more of a character arc, or series of shorter arcs, perhaps drawing from his Blades in the Dark DMing experience, and to either pick a more open-ended goal or to move along a series of goals over time.
Egbert - Egbert came in with the vaguer goal of "atonement", which gave him more wiggle room, but unfortunately didn't seem to actively pursue it a lot of the time. In Legacy of Dragons it was revealed that he was searching for atonement for the deaths of two Dragon D'Or members - but by this time, so many people around the Oxventurers had died, including innocent bystanders, that the deaths of two other paladins felt like nothing. (Mike commented, again on the podcast, that he agreed with the commenters at the time who agreed that they knew it was his backstory from the beginning because only two paladins had died. The two figure paled next to the collateral damage that the party later caused.) Mike also commented on the podcast that during lockdown, he had made a conscious change with Egbert in to try to avoid combat as much as possible, and to avoid fatal attacks if in combat, but it wasn't clear how long that lasted. It may have been trying to avoid being the annoying/preachy paladin that stopped him from trying to influence the rest of the party or to save lives around them, but unfortunately it meant that it was difficult to see a real sense of wanting to atone in Egbert's arc. Letting innocents die around him isn't exactly less culpable than killing them himself. (Notable incidents included Mule Be Sorry, Wrangle in the Tangle, Hag Reflex, and Squid Pro Quo.) In terms of character arcs, there was definitely an element of going from seeking approval from Dragon D'Or to seeking that of his friends, but that was just a switching of approval-seeking rather than a significant change. Goals: had one, but didn't seem to actively pursue it; arc: moved from pursuing the morals of Dragon D'Or to pursuing the morals of the Oxventurers.
What I hope for: Mike to come back with a character who seeks to pursue their own goals more directly (see Barnaby and Silas, who both felt much stronger in this sense).
Merilwen - Merilwen was supposed to be about balance and protecting nature, but didn't always heavily engage with this point of view, even when the actions of the other Oxventurers should have absolutely led to discussions or disagreements between them. Many people commented on Andy being dickish about shooting seabirds in Legacy of Dragons, but there are other incidents, including the Wrangle in the Tangle (again), Eldritch or Die Trying (where it would have been interesting to see Merilwen's preference for nature clash with the need for the crystal) and the Extinction season which seemed to veer between being set up to be about Merilwen, then swapping to Dob-centric, then cleaning up Corazon's curse. In terms of character arc, I think there might be an element that can be teased out about her not fitting in with elf society and fitting in better with the faster-paced, more chaotic world of shorter-lived peoples, but this feels like speculation on my part more than something intended. Naturally, a character of around 100 is not going to feel as suited to a coming-of-age story as younger ones, but characters of all ages should be able to have character arcs. (Even if they might be slower in longer-lived people like elves - an example I can go to here is Galadriel, from Tolkien, who in her youth was proud and refused a pardon that would have allowed her to return to Valinor, but at the end of LOTR is humble enough to accept and go there. It took millennia for her, but it was a character arc all the same!) In Merilwen's conversation with Them, her uncertainty seemed to talk to this - a lack of clarity about where her characterisation was supposed to have gone over the last few years. I think there was a real opportunity here to explore Merilwen's relationship with morality and the difference between neutrality and passiveness, which unfortunately was missed. Goals: was supposed to be about nature but didn't push for it; arc: [speculation] seeking a non-elven community that she matched better with.
What I hope for: Ellen to have a character with more defined goals or arc, or gaps still to be filled in, rather than a static momentary sketch of personality/character that doesn't feel designed to be changed over time. Again, Lilith with her secrets/looking into the paranormal, and Edie with her goal to help people in a world in which monsters aren't going away, felt stronger as characters with goals and arcs, and I'd be happy to see more of that.
Prudence - Ambitious from the off, Prudence never actually struggled for goals - power, knowledge, magic, influence. The open-endedness of these goals once again served Prudence pretty well for carrying her through individual adventures/games and over the course of the whole canon, even if she didn't come in with clearly-defined (plot hook) goals like Corazón's curse. For the first few years, it felt that her character arc wasn't hugely significant, although there was certainly an element of found family over selfishness that played into it, but Jane also discussed (again, in the podcast) how the werebear element was really quite exciting for her as it allowed her to begin to explore the clash between werebear Lawful Good status and Prudence's usual Chaotic Evil desires. Eldritch or Die Trying explored this in a somewhat exaggerated way, with Cthulhu offering power in exchange for the destruction of the others (I suspect in Prudence's question about specifying people, she was trying to figure out whether she could kill just Liliana) which was a somewhat blatant nod to the character arc but did underline it. (Unlike the others, this also established Prudence's character arc before Them.) Goals: open-ended in a way that leaves them technically incomplete even now but which were stably useful throughout canon; arc: de-isolation and alignment shifting (in a way that should have been ripe for playing off against Liliana's) which played out well.
What I hope for: A character with perhaps some more specific or plot-hook goals as well as broader life goals. Prudence's character arc played out more subtly than Corazón's and sometimes perhaps got lost behind the louder personalities of some of the others, but I do think was well done. A less obvious way to explore or demonstrate it would have been nice.
Liliana - So. Here we go. Liliana was essentially a DMPC for the last season, but was a recurring character before that, with a stated goal of subjecting part or all of G'eth and broader goals (indicated or stated in Prism Break and the finale season generally) of academic/scholarly improvement, arcane knowledge, and the notion of making people appreciate what they have by threatening to take it from them. As a villain, she was threatening, and the layering of goals once again worked here, even with the abrupt movement to 'save G'eth' in the last season because, well, you can't rule what no longer exists. However, I am honestly confused as to what her character arc was supposed to be - whether her stated change of heart in front of Them was real, or whether that was a lie that Them somehow did not call out or challenge. Considering in Frenemy at the Gates, Liliana says that Prudence is the most like her, there was a potential here to play against Prudence's character arc of coming to trust others, even appreciate others, and facing the consequences of suffering making her realise her own flawed logic. I really do not know whether her betrayal of the guild was planned from the beginning (in which case, her talking to Them feels like it was overplayed, and Them should have challenged her on it) or whether Johnny added it because the fight against the giant was over more quickly than anticipated (compare to Dine Hard where the chef was the one person they did not stat up because they didn't expect the guild to fight him). Goals: logical, stepped, and worked for a villain; arc: ????? was there an arc? Was it fake? Was it desperation? Why did she, on 1 hitpoint, try to Power Word Kill Prudence instead of Teleporting away?
What I hope for: I don't know, with this one, really. Liliana's weird arc feels more related to the odd pacing of the last season than an underlying characterisation issue, for me, so I think it's more related to pacing/wanting Oxventure campaign 1 to close out.

Player Etiquette

...okay, this one is going to be a little bit harsh, perhaps. But the main campaign, more than either Blades in the Dark or Deadlands, really suffered from certain players having a bout of Main Character Syndrome.
I say specifically players here, because it was entirely in-character for certain characters (largely Corazón) to think of themselves as the main character and behave as such. However, even if the characters think that, is generally considered good etiquette for the players to treat each other as equals, let each other take turns in the spotlight, and have their Moments.
Good examples would be the group letting Merilwen be the main character in Peak Performance, Prudence explore her sundered relationship with Cthulhu during the Orbpocalypse Saga, or Dob showing off his acting bard chops in Dine Harder.
However, at various times, various people have overstepped. Sometimes in live shows where the audience response and excitement probably played a role (Rolling in the Deep) it's more understandable, but it also happened elsewhere. Mike got some flack for picking up the eyepatch at the end of Cursed Case Scenario and 'ruining' Corazón's moment, but even Johnny called Andy out for muscling in on Dob's subplot in Court in the Act, and Life Finds a Dob was almost uncomfortable at times. There was also something of a trend of Dob deliberately acting against the party for unclear reasons (possibly meant to be humour?) - either running away from them in Life Finds a Dob, refusing to 'share' Corazon's body in Portal Combat, or his contrary behaviour in Hunter Pressure in not wanting to fight the hunters/murderers they were facing.
I'm not sure whether this trend of contrariness fed into the unclear character arc that I mentioned above, or the other way around, or whether the two just fed into each other.
The most extreme example of this was, undoubtedly, Dob jumping in on the shoot-off between Liliana and Prudence right at the end of Portal Combat. Liliana approached Prudence in Frenemy at the Gates because they were the most alike. Prudence was the one with the first kill of the whole campaign, using Eldritch Blast, against the party's wishes and Corazón's protests specifically - how appropriate would it have been for her to get the last kill of the campaign, with Eldritch Blast, in defense of herself and her party and as retribution for Corazón? But instead, Luke inserted Dob into the standoff and Johnny played into it, even to the absurd extent of letting the skeletons use Time Stop (a 9th Level spell) just to explain why Dob's whole conversation with them could take place faster than Prudence could fire off an eldritch blast. Corazón's self-sacrifice and Merilwen's reveal of her Reincarnation spell was therefore also partially overshadowed by Dob sacrificing his magic for one more hitpoint of damage on Liliana rather than letting Prudence have her moment.
What I hope for: some of the lessons learned from other campaigns to lead the players to be better at taking turns, both in terms of people not trying to be the Main Character at inappropriate moments, players stepping up and into the leading role when it is appropriate for them to do so, and Johnny more actively monitoring the balance between the players and shutting down some of the more egregious behaviour

Morality

This... isn't actually going to be complaining about characters behaving immorally or even being evil. Prudence is honestly a great example of how to play an evil character in a way that doesn't break a party, while Corazón works as being immoral about money but moral about hurting people (at least most of the time). I've also thoroughly enjoyed some other games in which the characters have been far from moral (NADDPOD's Trinyvale series is a good example of this - the characters are scam artists, grifters and egotists, and the DM commented that "character growth doesn't have to be positive!"; they complain the entire time while saving the world).
But it's consistency that is more of a sticking point, as well as the player treatment of the moral positions of the party. It's hard to know how to treat the morals of the party when they vary from letting a town burn for being slightly annoying (Mule Be Sorry) to most of the team being ready to forgive a hag who used to eat human(oid) children (Hag Reflex). This isn't just the players either - Stop Hammer Time used the murder of children as a joke, and marked a change in tone for the treatment of NPCs and civilians as not mattering compared to the preferences or comfort of the main characters. The skeletons killing the children wasn't even some sort of monkey's paw scenario about asking for there to be no more orphans in the town, either - it was just nasty shock value, in many ways. And playing this sort of thing for humour makes it quite hard to handle some of the rest of the series as a result.
There also felt like a dissonance, at times, between the objective morality of the characters and how the players seemed to want them to be treated. Prudence never claimed to be anything other than evil, from shooting someone with eldritch blast during the Spicy Rat Caper to enjoying Hammerdahl's necromancy in Extinction - Jane even indicated that she wanted to explore shifting Prudence's alignment post-Fast and the Furriest, which can be seen as Prudence is much less interested in random acts of destruction and seems quite happy to get her kicks scaring or torturing people (Silent Knight) or watching the gruesome spectacle at the end of Knight Shift. So Jane's plans matched Prudence's behaviour - a softening of her deliberately evil acts, but still happy to let others be evil.
For the others, though, it didn't always match. Merilwen's "True Neutral" label often felt more like passively letting her party members be evil, rather than actively seeking balance, Egbert was supposed to be on the search for atonement but regularly allowed or took part in atrocities, and Dob seemed more inclined to act on what the audience or Luke thought was funny (or even deliberately seeking to be contrary) rather than following a consistent attitude to morality. His vaguely annoyed "Skeletons!" and hands on hips in return to "It's orphans, boss" was clearly played for laughs, and in Mule Be Sorry he turns on the town easily, which then makes it feel strange when in Hag Reflex he objects to letting the hag live. Dob's infatuation with Liliana and Katie Pearlhead, both of whom have killed or caused the deaths of great numbers of people, also makes it harder to take his claims to morality at all seriously. The potential moral issues of Merilwen killing the Otherberts to prevent them from taking a message to Liliana (Bad Altitude) is turned into accusing her of "war crimes", but it is absurd in the face of how many other innocent bystanders the guild had killed or caused to die in other stories (from as early as Quiet Riot, in which the paladins were annoying but killing them was honestly overboard, to as late as Squid Pro Quo where Dob seemed to forget that five people had died and then brushed off the deaths).
NPCs also got hit by this at times, from the town mayor in Mule Be Sorry (again) who put his townsfolk on spike growth just to cross it, to the chef in Dine Harder who was abruptly made a cannibal to get a fight going, to the decay of morally Good characters like Captain Shattershield turning away from the Upside Down Mistmire when in his first appearance he had been willing to fight Death itself for being on Mistmire's grounds. It's hard to take seriously moral questions about keeping the Dragon Under Mistmire in its shelter, and the accidentally-caused deaths of two paladins, when the guild has been responsible for much worse.
What I hope for: an approach to morality that does not prioritise momentary humour over consistency; evil behaviour to be acknowledged as evil and owned rather than treated as protagonist-centric; a moral balance which makes it possible to really explore moral issues and concerns rather than extreme behaviour which then makes it impossible to treat conflict seriously. Legacy of Dragons, as a standalone arc seeking Egbert's redemption, exploring the protection vs freedom of the gold dragon, and considering how to improve vs break systems, had some really great potential - but because of extreme 'rule of funny' behaviour in the past, it was impossible to really feel that it had the moral gravitas and weight that it deserved. When the skeletons go from murdering a dozen innocent children (Stop Hammer Time) to giving Merilwen a bad haircut (Mean Gulls) and this is almost treated as somehow consistent in evilness, it makes it harder to respect the characters or the expectation of moral standards.
The Good: The humour, the quick-wittedness, the variety of stories. Roleplaying moments such as Egbert and Shattershield in Legacy of Dragons, Corazón putting his old self behind him at the Curse Hole, or Merilwen saying "I'll make you" to Vex.
The Bad: Unclear character arcs, inconsistent moralities, underpowered classes but at the same time game-breakingly permissive DMing, and some Main Character Syndrome moments.
The Hope: Learning from teething issues and setting up a game system that the DM doesn't resent so much, to better enable people to balance and play off each other in a less jarring and more consistent way.
submitted by afterandalasia to TheOxventure [link] [comments]


2024.05.18 19:49 Johnny_Sh $20 H2O Wireless Referral Code

Here is the referral link:
https://h2oraf.com/dWhucTdi
Click the referral link to get your "one-time use" coupon code. Copy and Paste your ‘one-time use’ coupon code at checkout on h2owireless.
You will get: ✔ Free H2O Wireless SIM\* ✔ Free Standard Shipping\* ✔ $20 H2O Rewards Credit*\*
* When you purchase a plan or phone ** Credit is added on your rewards account at the time of activation/port in
P/S: Don't buy H2O SIM card from Best Buy or another places, you only get the points if you get the free SIM card through the link.
submitted by Johnny_Sh to ReferPeople [link] [comments]


2024.05.18 19:49 Johnny_Sh $20 H2O Wireless Referral Code

Here is the referral link:
https://h2oraf.com/dWhucTdi
Click the referral link to get your "one-time use" coupon code. Copy and Paste your ‘one-time use’ coupon code at checkout on h2owireless.
You will get: ✔ Free H2O Wireless SIM\* ✔ Free Standard Shipping\* ✔ $20 H2O Rewards Credit*\*
* When you purchase a plan or phone ** Credit is added on your rewards account at the time of activation/port in
P/S: Don't buy H2O SIM card from Best Buy or another places, you only get the points if you get the free SIM card through the link.
submitted by Johnny_Sh to DiscountCodeShare [link] [comments]


2024.05.18 19:49 Johnny_Sh $20 H2O Wireless Referral Code

Here is the referral link:
https://h2oraf.com/dWhucTdi
Click the referral link to get your "one-time use" coupon code. Copy and Paste your ‘one-time use’ coupon code at checkout on h2owireless.
You will get: ✔ Free H2O Wireless SIM\* ✔ Free Standard Shipping\* ✔ $20 H2O Rewards Credit*\*
* When you purchase a plan or phone ** Credit is added on your rewards account at the time of activation/port in
P/S: Don't buy H2O SIM card from Best Buy or another places, you only get the points if you get the free SIM card through the link.
submitted by Johnny_Sh to referralcodes [link] [comments]


2024.05.18 19:43 freespin7770 coin master 400 spin link

coin master 400 spin link
Free Spins
Need coin master spins, and wore out on glancing through clarifications on the web like coin master free spin, coin master free spins, coin master free spin interface 2021, coin master free spin 50, 5 spin coin master free spin progress code, coin master free spin, coin master free spin pointlessness today. For any situation, meanwhile, you are not getting free spins rapidly. Seeing the surge of coin master, Mosttechs are drawing in the coin master free spin and coin update on this page contiuously and perseveringly all through the beyond three years.
In this spin opening game, nearby assault and attack, you other than need to make game-level towns. expecting you are a working player of this game, you really need free spin and coin links. free spins and coins links increase the standard outcomes to finish the town level and occasion. To get free spin links rapidly or are looking on the web then, stop your arrangements since this is a coin master interface fan base page. The coin master free spins interface list given under is to convey the spin of your game and at whatever point the game spins are over then you can utilize these spins and continue to play the game.
Get pet master free spins.
Here are that saw as the different take links of today. of late, and past days. Reliably coin master free spins and coins have been placed on this page. Coin master game updates continually 10 to 25, 50, 60,70, and 100 spins, and we will put them on this page rapidly. For the solace of the player, we have in this way given the date the free spins with the objective that the player can guarantee his coin master free spins rapidly and save his time. Coin master free spins extra are given below.Bookmark this page for next new rewards links.
Coin Master Spin and coin gift
The game's menu has a gift choice. Through which you can gift unendingly coin master spin and coin to your game associates. With this choice, you can gift 100 spins to your 100 embellishments never-endingly.
submitted by freespin7770 to freespinlink [link] [comments]


2024.05.18 19:39 Molniato Week 5, Speller does not compile (double free detected in tcache2 ) and check50 shows weird results...

I'm back! It's much easier when you understand what to do XD I suppose the error is in the unload function? It seems to me that I'm just moving forward my temporary pointer and freeing the value left behind in "eraser"!
Anyway when I compile I only get the phrase "MISSPELLED WORDS" and then the error "free( ):double free detected in tcache2 and aborted (core dumped)"
This is my code and the check50 results:
https://preview.redd.it/so2ihrez081d1.png?width=1012&format=png&auto=webp&s=a047ab1da3506eca704686ac6e478aa2a2f0eb86
// Implements a dictionary's functionality #include  #include  #include  #include  #include  #include  #include "dictionary.h" // Represents a node in a hash table typedef struct node { char word[LENGTH + 1]; struct node *next; } node; // TODO: Choose number of buckets in hash table const unsigned int N = 26; // Hash table node *table[N]; // Global variable to be used in the Size function unsigned int counter=0; // Returns true if word is in dictionary, else false bool check(const char *word) { // TODO node* cursor; int hashed=hash(word); // cursor is now pointing at the same address of table cursor=table[hashed]; while (cursor!=NULL){ //or cursor->next //If there is a corrispondence the function will return "true" immediately if(strcasecmp (cursor->word,word) == 0) { return true; } //otherwise go forward in the list and try again else{ cursor = cursor->next; } }//end while return false; } // Hashes word to a number unsigned int hash(const char *word) { // TODO: Improve this hash function int hashresult=0; hashresult=strlen(word); hashresult=(hashresult * hashresult) + hashresult; hashresult%=N; return hashresult; } // Loads dictionary into memory, returning true if successful, else false bool load(const char *dictionary) { // TODO //open in "read" mode FILE* dict= fopen(dictionary,"r"); if (dict==NULL){ printf("Error, file cannot be opened.\n"); return false; } char buff[LENGTH+1]; node* nodolist = NULL; //Initializing to NULL every index of the hash table for(int i=0; iword, buff); nodolist->next=NULL; counter++; int hashed=hash(buff); //filling hash table if(table[hashed]==NULL){ table[hashed] = nodolist; } //Else if that bucket is not empty else{ nodolist->next = table[hashed]; table[hashed] = nodolist; } }// end while if(fscanf(dict,"%s",buff)==EOF){ fclose(dict); } return true; }//end load // Returns number of words in dictionary if loaded, else 0 if not yet loaded unsigned int size(void) { // TODO return counter; } // Unloads dictionary from memory, returning true if successful, else false bool unload(void) { // TODO node* eraser; node* cursor; //loop to iterate through every bucket of the hash table, starting from table[0] for(int i=0; inext; //erase the memory from the previous node free(eraser); } }//end while table }// end for return true; } 
submitted by Molniato to cs50 [link] [comments]


2024.05.18 19:32 Past-Statistician358 Get 1,000 Fee-Free Dollars with My Plastiq Referral Link

Pay any bill by credit card with Plastiq. Use my referral code & pay $2500 worth of bills to get 1000 fee-free dollars: https://plastiq.com/invite/u9q5civ
This is great for getting massive sign up bonuses on credit cards like the 100,000+ points offered by amex/chase lately that need $5000 or more spend in 3 months. May be hard to do with normal purchases that take amex, but with your everyday bills, like rent, insurance, taxes, etc, its very easy. And yes you can pay ANYONE, ANY business.
Basically they charge your CC, +2.9% and they send whoever you like a check. They also support ACH and wire though if you need faster service. The referral removes that fee after the first $1000 spend.
And you can also get unlimited fee-free spend if you pay this month via mastercard and masterpass. (Sadly not amex or visa)
They are not flagged as cash advances so you also get your regular credit cards points on top of that.
Works for both USA and Canada.
https://plastiq.com/invite/u9q5civ
submitted by Past-Statistician358 to referralcodes [link] [comments]


2024.05.18 19:24 OsamaNA_dev Stuck with a 2FA issue in ASP.NET web api + react project

This is my first time working with ASP.NET web api, im using jwt authentication with a react frontend. The backend and the frontend use different origins.
I'm facing an issue with the 2FA for a while now and can't find the issue, but I suppose it's a cookies problem.
Trying to login and making a 2FA post request using postman it works fine, but when im making the request from my react frontend it's not working without any specific error.
I'll provide the the code for program.cs file, login and 2FA authentication controllers, and the frontend side code, I would appreciate it if someone could help me figure out the way to do it.
Program.cs:
using API.Data.Models;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Tokens;
using Microsoft.OpenApi.Models;
using System.Text;
using API.Services.Models;
using API.Services.Services;
using API.Data.Context;
var builder = WebApplication.CreateBuilder(args);
// Entity framework configuration
var configuration = builder.Configuration;
var dbConnectionString = configuration.GetConnectionString("Db");
builder.Services.AddDbContext(options => options.UseSqlServer(dbConnectionString));
// Identity configuration
builder.Services.AddIdentity(options =>
{
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireUppercase = true;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
// Email confirmation
builder.Services.Configure(options => options.SignIn.RequireConfirmedEmail = true);
// Generated tokens life span
builder.Services.Configure(options => options.TokenLifespan = TimeSpan.FromHours(24));
// Adding authentication
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.SaveToken = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ClockSkew = TimeSpan.Zero,
ValidAudience = configuration["JWT:ValidAudience"],
ValidIssuer = configuration["JWT:ValidIssuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["JWT:Secret"]))
};
});
// Add email configuration
var emailConfiguration = configuration.GetSection("EmailConfiguration")
.Get();
builder.Services.AddSingleton(emailConfiguration);
builder.Services.AddScoped();
builder.Services.AddScoped();
// Add CORS configuration
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowFrontendDomain", builder =>
{
builder.WithOrigins(configuration["Domains:Frontend"])
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
// Add services to the container.
builder.Services.AddControllers();
// Configure SwaggeOpenAPI
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(option =>
{
option.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Auth API", Version = "v1" });
// Define security definition for JWT bearer tokens
option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
In = ParameterLocation.Header,
Description = "Please enter a valid token",
Name = "Authorization",
Type = SecuritySchemeType.Http,
BearerFormat = "JWT",
Scheme = "Bearer"
});
// Define security requirement for JWT bearer tokens
option.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[]{}
}
});
});
// Build the application
var app = builder.Build();
// Enable HTTPS redirection
app.UseHttpsRedirection();
// Use Swagger UI and CORS based on environment
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseCors("AllowFrontendDomain");
// Enable authentication and authorization
app.UseAuthentication();
app.UseAuthorization();
// Map controllers
app.MapControllers();
app.Run();
Authentication Controllers:
  • Login:
[HttpPost]
[Route("login")]
public async Task Login([FromBody] LoginModel login)
{
// Find user
var user = await _userManager.FindByNameAsync(login.Username);
if (user == null)
{
return StatusCode(StatusCodes.Status404NotFound, new ApiResponse
{
Status = 404,
Success = false,
Message = "No user found with the provided username",
Errors = new List { "No user found with the provided username" }
});
}
// Check email confirmation
if (!user.EmailConfirmed)
{
return StatusCode(StatusCodes.Status403Forbidden, new ApiResponse
{
Success = false,
Status = 403,
Message = "Email confirmation required for login. Please confirm your email address.",
Errors = new List { "Email confirmation required for login." }
});
}
// Default login
if (!user.TwoFactorEnabled)
{
if (await _userManager.CheckPasswordAsync(user, login.Password))
{
var jwtToken = await _auth.GetJwtTokens(user);
if (!jwtToken.Success)
{
return StatusCode(jwtToken.Status, new ApiResponse
{
Status = jwtToken.Status,
Success = false,
Message = jwtToken.Message,
Errors = jwtToken.Errors
});
}
return Ok(jwtToken);
}
return StatusCode(StatusCodes.Status400BadRequest, new ApiResponse
{
Status = 400,
Success = false,
Message = "Password does not match",
Errors = new List { "Password does not match" }
});
}
// Login with 2FA
var LoginWithTwoFactorAuthenticationResult = await _auth.LoginWithTwoFactorAuthentication(user, login.Password!);
if (!LoginWithTwoFactorAuthenticationResult.Success)
{
return StatusCode(LoginWithTwoFactorAuthenticationResult.Status, new ApiResponse
{
Success = LoginWithTwoFactorAuthenticationResult.Success,
Status = LoginWithTwoFactorAuthenticationResult.Status,
Message = LoginWithTwoFactorAuthenticationResult.Message,
Errors = LoginWithTwoFactorAuthenticationResult.Errors
});
}
// Send 2FA token to user email
var token = LoginWithTwoFactorAuthenticationResult.Data;
var message = new EmailMessage(new string[] { user.Email! }, "Two-Factor Authentication Code for Ixora CMS Login", token!);
_emailService.SendEmail(message);
return StatusCode(StatusCodes.Status200OK, new ApiResponse
{
Success = true,
Status = 200,
Message = $"OTP code has been sent to {user.Email}",
Data = new UserToken
{
Token = token,
User = user,
}
});
}
  • 2FA Controller:
[HttpPost]
[Route("two-factor-authentication")]
public async Task Login2FA([FromBody] TwoFactorAuthenticationModel twoFactorAuthentication)
{
var jwtTokenResult = await _auth.TwoFactorAuthentication(twoFactorAuthentication);
if (!jwtTokenResult.Success)
{
return StatusCode(jwtTokenResult.Status, new ApiResponse
{
Status = jwtTokenResult.Status,
Message = jwtTokenResult.Message,
Success = jwtTokenResult.Success,
Errors = jwtTokenResult.Errors
});
}
return Ok(jwtTokenResult);
}
Services:
- LoginWithTwoFactorAuthentication
public async Task> LoginWithTwoFactorAuthentication(User user, string password)
{
// Generate 2FA token
var token = await _userManager.GenerateTwoFactorTokenAsync(user, "Email");
if (token == null)
{
return new ApiResponse
{
Success = false,
Status = 500,
Message = "Failed to generate 2FA token",
Errors = new List { "Failed to generate 2FA token" }
};
}
// Login
await _signInManager.SignOutAsync();
var signIn = await _signInManager.PasswordSignInAsync(user, password, false, true);
if (signIn.RequiresTwoFactor)
{
return new ApiResponse
{
Data = token,
Success = true,
Status = 200,
Message = "2FA token generated successfully",
};
}
return new ApiResponse
{
Success = false,
Status = 400,
Message = "Password doesn't match",
Errors = new List { "Password doesn't match" }
};
}
  • TwoFactorAuthentication
public async Task> TwoFactorAuthentication(TwoFactorAuthenticationModel twoFactorAuthentication)
{
// Find user
var user = await _userManager.FindByNameAsync(twoFactorAuthentication.Username);
if (user == null)
{
return new ApiResponse
{
Success = false,
Status = 404,
Message = "User not found",
Errors = new List { "User not found" }
};
}
// Sign in with 2FA
var signIn = await _signInManager.TwoFactorSignInAsync("Email", twoFactorAuthentication.Code, false, false);
if (signIn.Succeeded)
{
return await GetJwtTokens(user);
}
return new ApiResponse
{
Success = false,
Status = 400,
Message = "Invalid code: two-factor authentication failed",
Errors = new List { "Invalid code: two-factor authentication failed" }
- GetJwtTokens:
public async Task> GetJwtTokens(User user)
{
// Create claimlist
var claimlist = new List {
new Claim(ClaimTypes.Name, user.UserName),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
};
// Add roles to claimlist
var roles = await _userManager.GetRolesAsync(user);
foreach (var role in roles)
{
claimlist.Add(new Claim(ClaimTypes.Role, role));
}
// Generate access token with the claims
var authenticationSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"]!));
_ = int.TryParse(_configuration["JWT:TokenValidityInMinutes"], out int tokenValidityInMinutes);
var expirationTimeUtc = DateTime.UtcNow.AddMinutes(tokenValidityInMinutes);
var localTimeZone = TimeZoneInfo.Local;
var expirationTimeInLocalTimeZone = TimeZoneInfo.ConvertTimeFromUtc(expirationTimeUtc, localTimeZone);
var token = new JwtSecurityToken(
issuer: _configuration["JWT:ValidIssuer"],
audience: _configuration["JWT:ValidAudience"],
expires: expirationTimeInLocalTimeZone,
claims: claimlist,
signingCredentials: new SigningCredentials(authenticationSigningKey, SecurityAlgorithms.HmacSha256)
);
// Generate refresh token
var refreshToken = GenerateRefreshToken();
_ = int.TryParse(_configuration["JWT:RefreshTokenValidityInDays"], out int refreshTokenValidity);
user.RefreshToken = refreshToken;
user.RefreshTokenExpiry = DateTime.UtcNow.AddDays(refreshTokenValidity);
// Update user with generated JWT tokens
var userUpdateResult = await _userManager.UpdateAsync(user);
if (!userUpdateResult.Succeeded)
{
return new ApiResponse
{
Success = false,
Status = 500,
Message = "Failed to update user with generated JWT tokens",
Errors = new List { "Failed to update user with generated JWT tokens" }
};
}
return new ApiResponse
{
Success = true,
Status = 200,
Data = new SignedUser()
{
User = user,
JwtTokens = new JwtTokens
{
AccessToken = new TokenModel()
{
Token = new JwtSecurityTokenHandler().WriteToken(token),
ExpiryTokenDate = token.ValidTo
},
RefreshToken = new TokenModel()
{
Token = user.RefreshToken,
ExpiryTokenDate = user.RefreshTokenExpiry
}
}
},
Message = "JWT token successfully generated"
};
}
React Side functions:
- login:
const login = async e => {
e.preventDefault()
// Validate input
const {username, password} = input
if(!username !password){
setRequestError('Please fill in your username and password')
return
}
setLoading(true)
setRequestError('')
try{
// Login request
const apiUrl = \${process.env.REACT_APP_API_URL}/cms/authentication/login``
const loginResponse = await loginPost(apiUrl, input)
if(loginResponse.data.success){
// Store user
const {user, token} = loginResponse.data.data
setUser({
...user,
twoFactorOtpToken: token,
unhashedPassword: input.password
})
console.log(loginResponse)
// Redirect to 2FA page
navigate('/cms/two-factor-authentication')
}
}catch(error){
if(!error.response?.data.message){
setErrorTabMessage(\Error: ${error.message}`)`
setShowErrorTab(true)
setLoading(false)
return
}
setRequestError(error.response.data.message)
}
setInput(defaultInput)
setLoading(false)
}
- validateTwoFactorAuthenticationCode:
const validateTwoFactorAuthenticationCode = async e => {
e.preventDefault()
// Validate code
if(!code){
setInputError('Please fill in the otp code sent to your email')
return
}
if(code !== user.twoFactorOtpToken){
setInputError('Invalid code. Please try again.')
return
}
setLoading(true)
console.log(user)
// Get signed-user tokens from 2FA controller
try{
const TwoFactorAuthenticationResponse = await loginPost(\${apiUrl}/two-factor-authentication`, {`
username: user.userName,
code
})
console.log(TwoFactorAuthenticationResponse)
if(TwoFactorAuthenticationResponse.data.success){
console.log(TwoFactorAuthenticationResponse)
// navigate('/cms/dashboard')
}else{
setInputError(TwoFactorAuthenticationResponse.message)
}
}catch(error){
error.response.data.message ?
setErrorMessage(\${error.response.data.message}`) :`
setErrorMessage(\Error: ${error.message}`)`
setShowErrorTab(true)
}
setLoading(false)
}
- post:
export const loginPost = async (url, formData) => {
const response = await axios.post(url, formData, {
headers: { 'Content-Type': 'application/json' },
withCredentials: true
});
return response
}
submitted by OsamaNA_dev to AskProgramming [link] [comments]


2024.05.18 19:23 JamesSwartzVedanta Enlightenment in a Nutshell

Negation is the first stage of self inquiry. Affirmation is the final stage.
Here is the knowledge that you need to complete the final stage and stop thinking about who or what you are so you can get on with happily living the life you have been given, your most valuable asset. Once the affirmation has removed the negation, you are completely satisfied because the dualistic state of mind that generates dissatisfaction is negated and you are neither satisfied or dissatisfied. You are as you are, which is always good in so far as just being is bliss. You can't argue that you don't exist.
You wouldn't be asking me if you were perfectly satisfied with yourself as you conceive of it, so the answer is to follow this train of thought, accept it, and gain perfect satisfaction. Vedanta's definition of enlightenment is tripti, which means perfect satisfaction with yourself as you conceive it at any moment and perfect satisfaction with the world as you conceive of it at any moment. You are qualified to ask that question because you know that the world and yourself are only thoughts in your mind over which you can exercise enough control to gain the satisfaction beyond the mind.
So the question is why aren't you satisfied? And the answer is because you think it is not up to you to be satisfied with the thought of yourself and the world, both of which have been given to you. You cannot say that you created either yourself or the world which reduces everything that exists to thoughts. The answer is because you don't accept the fact that both yourself and the world are created by something other than the dissatisfied self. So, knowledge of that factor is the key to freedom and non-dual love.
Vedanta says that everyone is only satisfied with a pleased self. So if you want to be satisfied with yourself, you need to accept what you have been given by the creator of all things, which you know reduces to thought itself. If you know that what you are dissatisfied with is not your doing, then what use is dissatisfaction? To say it another way, why do you take responsiblity for something for which you are not responsible? It doesn't make sense, when you can just as well be satisfied with what you have been given.
Vedanta calls this fact surrender to the creator (Ishwara). It was Ramana's definition too. Did God create the dissatisfied self? God didn't create it in the sense that the dissatisfied self is God because reality is non-dual. And God also didn't create it because God isn't a big person with likes and dislikes. That person is created by ignorance of God's ever-satisfied nature. If reality is non-dual, then God's nature and your nature are non-different. If reality is non-dual, then dissatisfaction is non-different from satisfaction in the sense that it is up to you to decide if you want to be satisfied or dissatisfied. Making this choice is an appropriate use of your free will.
If you choose not to make it, you do so because it pleases you to do so and if you choose to make it, you do so because it pleases you to do so, insofar as no one is putting a gun to your head and forcing a choice on you. This means that at every moment you unconditionally love yourself more than anything. If you think something is forcing you to make either choice it is because it pleases you to think that thought, which means that you are free to begin with. So when you understand that you are free to choose and that the choices (thoughts) that are available are limited, the only rational choice is to leave the whole question of choice to Isvara and do what feels best, which is to accept yourself and the world as they are. Choosing to get rid of the world feels good because you think the world is a cause of suffering but removing a particular thought as real is not the same as removing thought itself as real. Afterall, negation and affirmation are just thoughts.
As you say in the first sentence, "it all makes sense to me." You will make the choice to be satisfied with yourself as you are at any and all moments if you understand Vedanta's sensible logic. I am always satisfied because I accepted this knowledge (the unexamined logic of our experience is created by knowledge) after listening to this teaching for a couple of years. It's not that I had to wait a couple of years to see if the knowledge of reality worked. I was perfectly satisfied every time I accepted it, until the tendency to think otherwise born of 29 years of wordly thought produced a sense of dissatisfaction. At some point I realized that I didn't realize that dissatisfaction is a dismissable thought and at that point I stopped taking satisfaction and dissatisfaction seriously. Neither one is real because they depend on each other. Reality is what stands on its own. No support.
So, in a sense all you need to do is to monitor your mind for dissatisfaction, which dismisses it, leaving the mind satisfied. That much you can do for the mind. But what can you do for yourself?
Once I figured that out, then the world, meaning my mind stopped and everything fell silent. It never started again because the knowledge of reality was permanent. Permanent in this case, is not the opposite of impermanent. It is the Permanent that is neither permanent or impermanent. It is the bliss of being. It is the knowledge "I am" with no adjectives or adverbs clinging to it. It is Satisfaction beyond satisfaction and dissatisfaction. A good word is Isness. I am.
And when I realized this, there was no longer anyone or anything looking over my shoulder.
I shine and the world shines after me.
All the teachings of Vedanta prove that the knowledge of the self-shining I am is Perfect Satisfaction. Nobody can say that they don't exist so it is possible for qualified people to be perfectly satisfied.
This satsang is all a qualified person really needs. It is simple but every train of thought is packed with power. Go over it again and again until you see how all the parts are connected to each other and establish the irreplaceable vision of non-duality.
Love, James
submitted by JamesSwartzVedanta to nonduality [link] [comments]


2024.05.18 19:21 OsamaNA_dev Stuck with a 2FA issue in ASP.NET web api + react project

This is my first time working with ASP.NET web api, im using jwt authentication with a react frontend. The backend and the frontend use different origins.
I'm facing an issue with the 2FA for a while now and can't find the issue, but I suppose it's a cookies problem.
Trying to login and making a 2FA post request using postman it works fine, but when im making the request from my react frontend it's not working without any specific error.
I'll provide the the code for program.cs file, login and 2FA authentication controllers, and the frontend side code, I would appreciate it if someone could help me figure out the way to do it.
Program.cs:
using API.Data.Models;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Tokens;
using Microsoft.OpenApi.Models;
using System.Text;
using API.Services.Models;
using API.Services.Services;
using API.Data.Context;
var builder = WebApplication.CreateBuilder(args);
// Entity framework configuration
var configuration = builder.Configuration;
var dbConnectionString = configuration.GetConnectionString("Db");
builder.Services.AddDbContext(options => options.UseSqlServer(dbConnectionString));
// Identity configuration
builder.Services.AddIdentity(options =>
{
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireUppercase = true;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
// Email confirmation
builder.Services.Configure(options => options.SignIn.RequireConfirmedEmail = true);
// Generated tokens life span
builder.Services.Configure(options => options.TokenLifespan = TimeSpan.FromHours(24));
// Adding authentication
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.SaveToken = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ClockSkew = TimeSpan.Zero,
ValidAudience = configuration["JWT:ValidAudience"],
ValidIssuer = configuration["JWT:ValidIssuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["JWT:Secret"]))
};
});
// Add email configuration
var emailConfiguration = configuration.GetSection("EmailConfiguration")
.Get();
builder.Services.AddSingleton(emailConfiguration);
builder.Services.AddScoped();
builder.Services.AddScoped();
// Add CORS configuration
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowFrontendDomain", builder =>
{
builder.WithOrigins(configuration["Domains:Frontend"])
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
// Add services to the container.
builder.Services.AddControllers();
// Configure SwaggeOpenAPI
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(option =>
{
option.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Auth API", Version = "v1" });
// Define security definition for JWT bearer tokens
option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
In = ParameterLocation.Header,
Description = "Please enter a valid token",
Name = "Authorization",
Type = SecuritySchemeType.Http,
BearerFormat = "JWT",
Scheme = "Bearer"
});
// Define security requirement for JWT bearer tokens
option.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[]{}
}
});
});
// Build the application
var app = builder.Build();
// Enable HTTPS redirection
app.UseHttpsRedirection();
// Use Swagger UI and CORS based on environment
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseCors("AllowFrontendDomain");
// Enable authentication and authorization
app.UseAuthentication();
app.UseAuthorization();
// Map controllers
app.MapControllers();
app.Run();
Authentication Controllers:
  • Login:
[HttpPost]
[Route("login")]
public async Task Login([FromBody] LoginModel login)
{
// Find user
var user = await _userManager.FindByNameAsync(login.Username);
if (user == null)
{
return StatusCode(StatusCodes.Status404NotFound, new ApiResponse
{
Status = 404,
Success = false,
Message = "No user found with the provided username",
Errors = new List { "No user found with the provided username" }
});
}
// Check email confirmation
if (!user.EmailConfirmed)
{
return StatusCode(StatusCodes.Status403Forbidden, new ApiResponse
{
Success = false,
Status = 403,
Message = "Email confirmation required for login. Please confirm your email address.",
Errors = new List { "Email confirmation required for login." }
});
}
// Default login
if (!user.TwoFactorEnabled)
{
if (await _userManager.CheckPasswordAsync(user, login.Password))
{
var jwtToken = await _auth.GetJwtTokens(user);
if (!jwtToken.Success)
{
return StatusCode(jwtToken.Status, new ApiResponse
{
Status = jwtToken.Status,
Success = false,
Message = jwtToken.Message,
Errors = jwtToken.Errors
});
}
return Ok(jwtToken);
}
return StatusCode(StatusCodes.Status400BadRequest, new ApiResponse
{
Status = 400,
Success = false,
Message = "Password does not match",
Errors = new List { "Password does not match" }
});
}
// Login with 2FA
var LoginWithTwoFactorAuthenticationResult = await _auth.LoginWithTwoFactorAuthentication(user, login.Password!);
if (!LoginWithTwoFactorAuthenticationResult.Success)
{
return StatusCode(LoginWithTwoFactorAuthenticationResult.Status, new ApiResponse
{
Success = LoginWithTwoFactorAuthenticationResult.Success,
Status = LoginWithTwoFactorAuthenticationResult.Status,
Message = LoginWithTwoFactorAuthenticationResult.Message,
Errors = LoginWithTwoFactorAuthenticationResult.Errors
});
}
// Send 2FA token to user email
var token = LoginWithTwoFactorAuthenticationResult.Data;
var message = new EmailMessage(new string[] { user.Email! }, "Two-Factor Authentication Code for Ixora CMS Login", token!);
_emailService.SendEmail(message);
return StatusCode(StatusCodes.Status200OK, new ApiResponse
{
Success = true,
Status = 200,
Message = $"OTP code has been sent to {user.Email}",
Data = new UserToken
{
Token = token,
User = user,
}
});
}
  • 2FA Controller:
[HttpPost]
[Route("two-factor-authentication")]
public async Task Login2FA([FromBody] TwoFactorAuthenticationModel twoFactorAuthentication)
{
var jwtTokenResult = await _auth.TwoFactorAuthentication(twoFactorAuthentication);
if (!jwtTokenResult.Success)
{
return StatusCode(jwtTokenResult.Status, new ApiResponse
{
Status = jwtTokenResult.Status,
Message = jwtTokenResult.Message,
Success = jwtTokenResult.Success,
Errors = jwtTokenResult.Errors
});
}
return Ok(jwtTokenResult);
}
Services:
- LoginWithTwoFactorAuthentication
public async Task> LoginWithTwoFactorAuthentication(User user, string password)
{
// Generate 2FA token
var token = await _userManager.GenerateTwoFactorTokenAsync(user, "Email");
if (token == null)
{
return new ApiResponse
{
Success = false,
Status = 500,
Message = "Failed to generate 2FA token",
Errors = new List { "Failed to generate 2FA token" }
};
}
// Login
await _signInManager.SignOutAsync();
var signIn = await _signInManager.PasswordSignInAsync(user, password, false, true);
if (signIn.RequiresTwoFactor)
{
return new ApiResponse
{
Data = token,
Success = true,
Status = 200,
Message = "2FA token generated successfully",
};
}
return new ApiResponse
{
Success = false,
Status = 400,
Message = "Password doesn't match",
Errors = new List { "Password doesn't match" }
};
}
  • TwoFactorAuthentication
public async Task> TwoFactorAuthentication(TwoFactorAuthenticationModel twoFactorAuthentication)
{
// Find user
var user = await _userManager.FindByNameAsync(twoFactorAuthentication.Username);
if (user == null)
{
return new ApiResponse
{
Success = false,
Status = 404,
Message = "User not found",
Errors = new List { "User not found" }
};
}
// Sign in with 2FA
var signIn = await _signInManager.TwoFactorSignInAsync("Email", twoFactorAuthentication.Code, false, false);
if (signIn.Succeeded)
{
return await GetJwtTokens(user);
}
return new ApiResponse
{
Success = false,
Status = 400,
Message = "Invalid code: two-factor authentication failed",
Errors = new List { "Invalid code: two-factor authentication failed" }
- GetJwtTokens:
public async Task> GetJwtTokens(User user)
{
// Create claimlist
var claimlist = new List {
new Claim(ClaimTypes.Name, user.UserName),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
};
// Add roles to claimlist
var roles = await _userManager.GetRolesAsync(user);
foreach (var role in roles)
{
claimlist.Add(new Claim(ClaimTypes.Role, role));
}
// Generate access token with the claims
var authenticationSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"]!));
_ = int.TryParse(_configuration["JWT:TokenValidityInMinutes"], out int tokenValidityInMinutes);
var expirationTimeUtc = DateTime.UtcNow.AddMinutes(tokenValidityInMinutes);
var localTimeZone = TimeZoneInfo.Local;
var expirationTimeInLocalTimeZone = TimeZoneInfo.ConvertTimeFromUtc(expirationTimeUtc, localTimeZone);
var token = new JwtSecurityToken(
issuer: _configuration["JWT:ValidIssuer"],
audience: _configuration["JWT:ValidAudience"],
expires: expirationTimeInLocalTimeZone,
claims: claimlist,
signingCredentials: new SigningCredentials(authenticationSigningKey, SecurityAlgorithms.HmacSha256)
);
// Generate refresh token
var refreshToken = GenerateRefreshToken();
_ = int.TryParse(_configuration["JWT:RefreshTokenValidityInDays"], out int refreshTokenValidity);
user.RefreshToken = refreshToken;
user.RefreshTokenExpiry = DateTime.UtcNow.AddDays(refreshTokenValidity);
// Update user with generated JWT tokens
var userUpdateResult = await _userManager.UpdateAsync(user);
if (!userUpdateResult.Succeeded)
{
return new ApiResponse
{
Success = false,
Status = 500,
Message = "Failed to update user with generated JWT tokens",
Errors = new List { "Failed to update user with generated JWT tokens" }
};
}
return new ApiResponse
{
Success = true,
Status = 200,
Data = new SignedUser()
{
User = user,
JwtTokens = new JwtTokens
{
AccessToken = new TokenModel()
{
Token = new JwtSecurityTokenHandler().WriteToken(token),
ExpiryTokenDate = token.ValidTo
},
RefreshToken = new TokenModel()
{
Token = user.RefreshToken,
ExpiryTokenDate = user.RefreshTokenExpiry
}
}
},
Message = "JWT token successfully generated"
};
}
React Side functions:
- login:
const login = async e => {
e.preventDefault()
// Validate input
const {username, password} = input
if(!username !password){
setRequestError('Please fill in your username and password')
return
}
setLoading(true)
setRequestError('')
try{
// Login request
const apiUrl = \${process.env.REACT_APP_API_URL}/cms/authentication/login``
const loginResponse = await loginPost(apiUrl, input)
if(loginResponse.data.success){
// Store user
const {user, token} = loginResponse.data.data
setUser({
...user,
twoFactorOtpToken: token,
unhashedPassword: input.password
})
console.log(loginResponse)
// Redirect to 2FA page
navigate('/cms/two-factor-authentication')
}
}catch(error){
if(!error.response?.data.message){
setErrorTabMessage(\Error: ${error.message}`)`
setShowErrorTab(true)
setLoading(false)
return
}
setRequestError(error.response.data.message)
}
setInput(defaultInput)
setLoading(false)
}
- validateTwoFactorAuthenticationCode:
const validateTwoFactorAuthenticationCode = async e => {
e.preventDefault()
// Validate code
if(!code){
setInputError('Please fill in the otp code sent to your email')
return
}
if(code !== user.twoFactorOtpToken){
setInputError('Invalid code. Please try again.')
return
}
setLoading(true)
console.log(user)
// Get signed-user tokens from 2FA controller
try{
const TwoFactorAuthenticationResponse = await loginPost(\${apiUrl}/two-factor-authentication`, {`
username: user.userName,
code
})
console.log(TwoFactorAuthenticationResponse)
if(TwoFactorAuthenticationResponse.data.success){
console.log(TwoFactorAuthenticationResponse)
// navigate('/cms/dashboard')
}else{
setInputError(TwoFactorAuthenticationResponse.message)
}
}catch(error){
error.response.data.message ?
setErrorMessage(\${error.response.data.message}`) :`
setErrorMessage(\Error: ${error.message}`)`
setShowErrorTab(true)
}
setLoading(false)
}
- post:
export const loginPost = async (url, formData) => {
const response = await axios.post(url, formData, {
headers: { 'Content-Type': 'application/json' },
withCredentials: true
});
return response
}
submitted by OsamaNA_dev to aspnetcore [link] [comments]


http://swiebodzin.info