Binary subtraction using 2's complement calculator

Pokémon Showdown

2012.03.16 23:45 7thFullMoon Pokémon Showdown

Pokémon Showdown is a free, web-based battle simulator. It comes with many different servers and a plethora of features such as fan-made tiers and chatrooms to fit your style. Whether you use it to learn competitive battling, to practice, or just use it for recreation, you are welcome to this community.

2008.08.26 02:03 Pizza

The home of pizza on reddit. An educational community devoted to the art of pizza making.

2008.07.08 22:36 PlayStation Portable (PSP)

The gaming subreddit which fits in your pocket!

2023.05.31 04:52 GrowlDev Floating Point Numbers

In computer science, we often use floating-point numbers to represent real numbers, which can be both very large and very small values that might include a fractional component. The term "floating point" refers to the fact that the decimal point can "float" - that is, it can be placed anywhere relative to the significant digits of the number.
A floating-point number is typically represented in a computer in three parts: the sign, the exponent, and the significand (also known as the mantissa or the fraction). Let's break down each of these:
  1. Sign: This indicates whether the number is positive or negative.
  2. Exponent: This part represents the magnitude (scale) of the number. The exponent is a power of the base (which is typically 2 in binary systems), and it's used to scale up or down the significand.
  3. Significand (Mantissa): This is the actual significant digits of the number. It is treated as an integer or a fraction, depending on the representation.
The way these parts work together is similar to scientific notation in mathematics. In scientific notation, a number like 5.67e-8 represents 5.67 times 10 to the power of -8. Similarly, a floating point number is represented by the significand times the base raised to the power of the exponent, with the sign applied at the end.
The most commonly used floating-point standard is the IEEE 754. This standard defines several formats of floating point numbers, including 32-bit (single precision) and 64-bit (double precision) versions. Each format allows for different ranges of numbers and levels of precision.
The main thing to remember about floating-point numbers is that they can represent very large and very small numbers, but they do so with a limited precision. This means that some numbers can't be represented exactly, and calculations using floating-point numbers can therefore result in round-off errors.
Here is an example for the IEEE 754 32-bit floating point format, which is a very common format.
The 32 bits of the IEEE 754 single-precision floating-point format are allocated as follows:
The structure is as follows:
[sign bit] [exponent bits] [fraction bits] [ 1 ] [ 8 ] [ 23 ] 
Consider a 32-bit string as follows:
0 10000001 10110011001100110011000 
Here's what each part represents:
  1. Sign bit: The sign bit is 0 , which means the number is positive. If the sign bit was 1 , it would represent a negative number.
  2. Exponent: The exponent part is 10000001 (in binary), which equals 129 (in decimal). But the value is actually "biased" in the IEEE 754 format. For the 32-bit format, the bias is 127, which means we subtract 127 from the value to get the actual exponent, which is 129 - 127 = 2.
  3. Fraction: The fraction part is 10110011001100110011000 . This part represents the significant digits of the number. It is to be read as 1 + (1 * 2^-1) + (0 * 2^-2) + (1 * 2^-3) + (1 * 2^-4) + ... , which equals approximately 0.7 when calculated out.
Therefore, the floating point representation would be (-1)^(sign) * 1.(fraction) * 2^(exponent - bias), which is (-1)^0 * 1.7 * 2^2, which equals approximately 6.8 in decimal.
Note: This is an approximation. The exact number would depend on the precise values in the fraction field.
So this is how the floating point number is represented and calculated.
submitted by GrowlDev to innersight [link] [comments]

2023.05.31 03:52 whatisitthatis Help with Freq to Voltage conversion.

Hey guys I’m pretty new to PCB design but I have successfully made PCBs before that weren’t too complex, but I keep scratching my head about this one. Here is my use case.
I have a ethanol sensor that outputs a 50-150hz signal which corresponds to the ethanol level in fuel. 50hz=0% Ethanol 150hz=100% Ethanol.
The problem is my ECU isn’t able to take that input, and instead needs a linear 0-5V signal, I am not sure if analog or not matters but most people do this with an arduino and a DAC and in some cases they don’t use a DAC and I’m assuming the output is PMW so that will work.
What I want to accomplish is I want to ditch the Arduino and use a frequency to voltage converter. The only one I found was the LM2907. I read the data sheet over and over again and can’t figure out if this will work, my main issue is I don’t think this can swing its output to 0v and I can’t find calculate myself what the lowest possible voltage output can be on this chip.
I also had the idea to map the frequency to 2.5-7.5V then use a subtractor to subtract 2.5V but someone I know told me my supply voltage can not be higher than the reference voltage, which in this case doesn’t work as the supply voltage will go up to 7.5 and the reference voltage is 2.5. I know I can probably move these numbers around, but I’m sure most of you here will give me better advice. Thank you
submitted by whatisitthatis to AskElectronics [link] [comments]

2023.05.31 03:22 OutsideNewspaper7049 Necromancy debut reveals the true price of both MTX and RuneScape's ongoing identity crisis.

Force-fed Irrelevancy With the reveal of Necromancy and a recent foray of mine into OSRS couple of things cleared up for me. RuneScape 3 has disenfranchised its playerbase so significantly that it cannot go unnoticed anymore. The constant bombardment from cookie-cutter, recycled money grabbing events in the game 'masked' as content without an appropriate attempt to at least conceal their true predatory nature has taken a great toll it seems. Just for a statistical significance I've attached a screenshot rounding up ALL the views from today's 'anticipated' reveal, RuneScape's 'biggest update to date'. I know it's taboo to bring OSRS into a RS3 discussion because they're so 'different' yet I'd argue that the main difference is the lack of any coherent, singular direction in the latter. Going back to the views, the content creators are not at fault here, the lack of any new meaningful content that is not repurposed assets and code for another 'different' yet absolutely mindless grind in both content and context - offers little to any content creator - and if there's nothing to talk about, no one will talk about it. You can judge how content-dry the community is by the similarity content from every creator.
What I noticed in several days of playing OSRS is that at any one point you have many more possibilities and ironically, for a game that's supposed to be grindier you get to play more of the game earlier with early-mid level content staying relevant for pretty much ever. (This used to be the case before the Linearization of RS3 which I will cover further down). It's astonishing then that RS3 is cluelessly called EZScape by the OSRS community, since at 60 stats in OSRS you can pretty much start getting into the fun stuff, that is about a week of moderate play, RS3 on the other hand you need a lot of gold that in many ways is harder to get than the OSRS equivalent and reach greater heights to start 'playing the game' - no wonder we need all the DXP events, just to try getting a portion of the playerbase into what someone at Jagex has decided is 'the game'.
All of this is a result, many years in the making as I'll explore further down, there will be no TL:DR so this is your final wall-o-text warning. :)
Also if I might sound bashful towards the developers that is not my intent, my critique is to whoever is steering the ship, as a developer you don't really have much freedom or power unless it's given to you, otherwise it's just a job you do. So the responsibility lies with whoever's steering the ship (sailing reference ha!) and has insisted on absolutely murdering this gem. ----------------------------------------------------------------------------------------------------------------------------------------------------
II. The Combat and what Necromancy really should have been (and it part is)
Just for context I'm at the point of the game where I've no more relevant skills to max, I've done all entry and mid-level and started getting into 'high-end' bossing, money is flowing in, there are no skill related money sinks so I've hundreds of millions of gold and 2b in gear - for any new to mid-game players this is not a brag just context and is 'barely even starting point for real PvM' as anyone who 'really' bosses will tell you what a broke scrub I must be. Maybe I've not progressed far enough into OSRS, but this inferiority complex seems to not exist there, everything is an achievement that is not devalued by an assumption that you're playing an 'easy game'.
All combat I do is also full manual, I've read the bossing github page a dozen times, I've made dynamic excel tables to determine best rotations taking into account average damage, effects and cooldowns of basics. Then I engaged with combat in OSRS and felt like I'd been slapped awake and understood why so many left when EoC came out and didn't settle for anything less than OSRS. I also immediately realized that for the past years I've lied to myself that the general game, awkward state of its visuals and the combat system work - just because I wanted to play RuneScape and not have to start from the ground up, disregarding all of my achievements, but most importantly memories. Apparently, I wasn't even having fun, I had just become really good at convincing myself I was.
To put Runescape 3 Combat in a single paragraph:
If you design a system to be complex for the sake of complexity, that is what you will achieve, if you design a system to be satisfying to use, learn and master that is what the system will be - a BYPRODUCT of that may be increased complexity (there are certain requirements for engagement that make something satisfying to 'operate') but you absolutely cannot simply copy the byproducts of a system and expect the same functionality.
EoC since its release and to this day is a system designed to be complex and not satisfying, replacing a system that was satisfying to use and had natural complexity (like all the gear and prayer switches) Just 'tab- target' combat was what was deemed fashionable at the time and without any regard for the game's actual needs was partially implemented (and still is, the tooltips for one are an absolute mess, the audio-visual feedback is...EoC for lack of a better curse-word) and cripples the game to this day.
The Good News about Necromancy - a step in the right direction, but on the wrong road. They seem to really want to FIX the core of the combat system, at least kind of, but this is the positive paragraph, so I'll stick to that theme. The devs spoke about completely redoing how crit chance/damage and splashing works - essentially changing how combat is calculated and regulating damage numbers so that it's never 'Not Fun' to hit i.e. you splash or hit the lower cap of an ability. Designing the system to be fun/satisfying at its core is great news. That means that some things that don't add anything, like the atrocious basics rotations can be done away with - they never really added anything but complexity - seen with the new Necromancer's Auto Attack that replaces all that mumbo-jumbo.
The Bad News about Necromancy (and what it should have been)
The problem with Necromancy, mainly is that it is an attempt to save a foreign limb, that's been badly grafted on and should've been cut off long ago with what amounts to fancy experimental surgery. What Necromancy should've been, is no Necromancy at all, but rather a complete rework of the EXISTING combat system and styles from the ground up. I won't go into the how and why, but you can search for RuneScape - Project Combat on YouTube, it touches on a tiny portion of the points that need to be addressed, however, in my opinion it's still about fixing what should be scrapped and redesigned completely.
My second problem with Necromancy is a thematical one, I don't see, especially since it also uses runes, so it follows diagetic logic of magic - why it isn't part of magic, but rather another grafted-in piece. It's a different type of power yet works in exactly the same way, similar to how in my opinion Divination could've/should've been a part of Prayer or vice versa and has no reason to be a separate skill. It also, and that might just be me, feels like a dilution of the 'runescapeness', like we're adding things just to add things, which is how I felt about Divination. Not to mention the new player experience when they have a separate skill to level, like 28/9 isn't enough. The casual player, Jagex Upper Management's wet dream, can't even fathom maxing one and will alt+f4 and uninstall faster than Jagex can claim selling gambling to addicts and Mental health awareness aren't mutually exclusive.
III. Lack of Direction
Gameplay and Genre /an intro
See, the moment you spend half an hour in OSRS you know, without a shadow of a doubt about what genre it is, a SANDBOX. There's little content in the game that is firmly locked behind a linear, pre-defined progression. Quests are fun and nice and give a lot of QoL, but you can max your account or amass a fortune without ever completing one. Bosses you can do or skip, so can any other content in the game - that does not mean they're not designed well to complement each another nicely. In fact, I consider the osrs F2P experience a disgrace to the game since so many synergistic skills are locked. Such as combat + slayer and herblore, camping woodcutting spots with a knife, never having to bank and amassing arrow shafts for both initial and future progression into fletching just to name a few and you never realize how disjointed your experience becomes until you start from scratch as a member. A level cap of 50 on all skills would've been a much more congruent way to do it, that allows you to transition nicely into members.
Know your Niche or Stop Trying to change what you are
Let's get back to that shoehorned in combat system for a moment, cursed upon us in a moment in time when WoW and WoW-like games were dominating the market. Now imagine the arrogance with which one assumes that by cramming a 'close enough' copy of a combat style of a LINEAR game into a well-defined Sandbox - you'll attract not only 'new' players but also most likely this very game's players. It's likely whoever took that decision banked on the latter, making it even more arrogant of an assumption - mainly because the MMORPG is a genre that requires enough of an investment that regular folk, i.e. the majority of any playerbase, can only afford to play one without letting their real-life responsibilities spiral out of control (and even one's a stretch).
Now do you see a problem? Imagine you magically poach the players of other games, games that are almost exclusively all Linear in nature, with a defined path, a story line, sequential quests and most importantly a CLEAR and LINEAR progression. They land in your beautiful Frankenstein and discover that (let's just imagine EoC is a decent, responsive system for the sake of the argument) besides the combat system, NOTHING else in the game is what they've grown to love and look for in an MMO.
The graphics and camera are weird, the quests seem rather strange and cryptic, after 100 hours you've not saved the world even once!?
So you start the...
REMAKING (mandatory Invincible title screen reference)
Now your game has to fit all their criteria because you can't seem to retain them. You have add saving the world, update the graphics and add cosmetics that will ultimately destroy any sense of immersion, but money is money. Now you need to make proper end-game... AAND we have a problem.
While MTX and Saving the world (a slight thematic oversight) are not entirely user-experience breaking, crammin an end-game into a sandbox designed to ...well... never end for most players is. For context someone had calculated the most optimal level to max would take 1800hrs(back in the day). If you play 10hrs a week, that is 180 weeks, that's 3.45 years of play -and- that is the most unrealistically optimal way to max disregarding the fact that you need to make the money for 'buyable' skills.
Well, you kill two birds with one stone, that's how. You have now manufactured a problem you can sell the solution to. You introduce new methods/rates of xp, new ways to get xp and ultimately just sell it straight up and host Double Xp. At the same time devaluing your core audience's achievements and also messing with the economy - since any economy is built on a sense of value that is interconnected with supply and demand.
Now even all these manipulations don't seem to prove effective, people still don't seem to want to all go into that linear path you keep digging and insisting it is where the real game is - while surrounded by the carcass of what is still mostly a sandbox.
What is interesting to note is that in this entire awkwardness a very human thing occurs. Some players find they're really good at this malformed embryo of mismatching ideas, maybe like myself they still share strong enough sentiment for the game that they've talked themselves into believing that it's actually okay, it's 'fun'. Maybe they don't realize they like the freedom and ability of the sandbox to set your own goals and complete them, a sandbox that's being quickly turned into a line with little to no meaningful horizontal progression - even Necromancy's bastardized 'talents' is conceptually just a straight line. There is no decision there you WILL get them ALL. There is no choice. There is little to no differentiation between one ranger and another, one melee fighter and the next. And while METAs are inevitable there is a difference between a META and fundamental lack of choice. There aren't multiple t95 ranged weapons to choose from, there is one, there aren't multiple relevant armor sets, there is one. Even the types are arbitrary - with few exceptions Tank and Hybrid armor might as well not exist. And while some might start to argue that RuneScape was never really a game of choice as you max everything anyway - I've two things to say - first of all I've seen much more variety and choice in OSRS in regard to equipment than I've ever seen in RS3 and second, but more importantly RuneScape is a sandbox, a genre fundamentally based on free choice.
Now these people are our content creators, our echo chamber - however bad something is, there will be someone who is good at it and/or likes it.
Meaning they might not enjoy the thing itself but enjoy that they're better at it than other people, which gives them certain opportunities and unfortunately is a driving force for the game's direction. They either can't or don't want to see the bigger picture, due to multitude of incentives and reasons and the solutions they propose are almost always iterative and not a complete scrapping of the system, less risk for their livelihood. With stakes that high, who can blame them, however, numbers don't lie and statistics show us few people like the state of the game to even watch it on Twitch.
Of course, iteration is not how we got here. EoC was not an incremental change and reverting to a completely different system one increment at a time is a fool's errand if not nigh impossible. And I'm not even going to start talking about forcing a system into an engine fundamentally made for another. I'm not saying bring back the old combat, I'm not against general changes in combat, however, they have to be well designed both in terms of user experience and the technical limitations. EoC is a hard pass in both regards.
Another issue with trying to cannibalize an existing product into something else that you're also unsure of is that other parts of the game start becoming incongruent with themselves and the whole such as:
Visuals and Art Direction
When you log into RuneScape 3 you're met with a literal manifestation of the aforementioned experimental limb attachment surgery. I have never seen 3 games from different generations crammed into one in such a grotesque fashion. We have remnants of OSRS, HD-Scape and different iterations of RS3. Now the first two are similar enough in style, what we'll simply call art direction things look a certain way, have a certain consistency and generally do not create noticeable contrast. Then we have the 'modern-look' and here I'll be a little harsher given that this is my professional domain.
Let us start from the technicalities. You don't roll-out a partial replacement of the world, EVER. Especially if it's essentially a different game. You either do it at once or you don't. (You can partially do it, if your goal is short-term engagement and profit and do not care for the long-term health of the product.) You decide on a direction that complements the content, gameplay and the fantasy you're selling - in the case of existing IPs - any expected/ associated visuals. (No one wants to buy call of duty and find out all characters are squishy plushies and they fight with tactical chocolate in Willy Wonka's factory... I think?) You also have to determine scope and viability, additionally if you are taking a new direction, you have to test it so you don't make the players feel like guests in their own home after implementing it. Hopefully then you can start planning the minimum viable product and from that a production pipeline for the assets (given your talent pool) and you plan it well enough, so that you work smart and not hard(because you'll have to work you ass off anyway) If in Design we say and practice Copy-Transform-Combine regarding ideas, in Production we do the same with Re-Use: we Copy(literally), we Combine and Transform existing assets into new ones. The goal is the most effect with the least effort. The point I'm making is that with proper management of your artists' time and skills you can make both Quality and Quantity. (here we can make the comment about the infamously low pay they offer their developers, so I can't blame anyone for not delivering either) If you deem scope impossible, you just don't do it and move on to the next pressing matter until you have the resources to do it. I'm not going to go into technicalities about the absolute lack of production standards that eff us right out of whatever little immersion we have left after the cosmetics ... do their thing.
The Art Direction. If we imagine for a moment that RuneScape has the 'modernized' homogenous visuals as is the plan, how does it compare to what was before and what we've come to expect. Now this is a tricky one, since (and I'll speculate a bit here) a lot of the appeal and "art direction" of RuneScape was determined by technical limitations, budget and inexperience (at the time) of the devs making it, therefore you can claim that a proper style was never developed, yet you can't deny the resulting look of the game. An argument can be made if the game was stylized/abstracted by necessity or by design. Now, semantics aside does the new 'modern' look work for RuneScape? I'm inclined to say no. On the one hand there's stylistic inconsistencies, so you can't really pin-point a well defined and executed style, but a large pattern in a lot of creatures and environment is what I'll call the "soft clay look" (also known as: we don't put enough money, nor do we give enough time for the art department to care) Look at the Hellhound model, Anachronia or any other 'new' terrain. It's bland, literally devoid of visual stimulation, the old ground detail and style was much better in that regard. Of the ridiculous things I've seen, the leaves of many new plants(especially in Anachronia) are my favorite as they look as if they're made of thick dinosaur leather, yet like many other new surfaces in the game are an undefined matte, neither an entirely 'shaded' material that derives its appearance from material characteristics reacting to light, nor fully hand-painted that have light 'painted in' - resulting in an especially confusing image. What is worse yet the scale is totally off in a lot of the content (in Anarchronia of course, you're meant to feel small, which doesn't excuse the uncharacteristically cartoonish proportions of trees and obsession with thickness leaves walls etc. things are just wonky.) It's a rather confusing problem of scale though - since in most places they are adequately proportionate to the character(excluding the thickness obession), what makes it weird is that you have massive objects with little detail. Object size, especially when we've no depth perception such as when perceiving it from a 2D screen is subconsciously determined by many things, one of which is detail. If the object is big relative to everything else we get a shift in the feeling of the setting from 'living-breathing adventurer in a living-breathing world' to 'a toy doll in a toy house'.
They've insisted on new light reworks and shiny materials AND hand-painted textures at SOME places. I'm not even going to mention how inconsistent MTX ties into that.
All in all it looks like the Gameplay and Visual Style of the game is the so called 'design by committee'. A committee of MBAs that pay, or rather don't pay enough for development, and should have no say in it in the first place.
Closing statement:
Personally, I believe that RS3 in its current iteration should be put on life support, ironically it feels like it is anyway, until someone, hopefully qualified, can decide what the game is and flesh out a direction both in gameplay and visual. I assume the accumulated technical debt and the absolute mess of an engine* are factors so detrimental that starting from scratch is a faster solution to most problems. i.e. New character models, responsive combat, trade limit.
I'll leave you with one last question, it's slightly philosophical, should the game be made anew, does it stick to its guns and force a fairly slow tick combat system - a relic of the past, but a relic that makes it what it is. Does it evolve and if it evolves is it RuneScape? How much can you change something before it's the same only in name?

(*I can't even imagine the borderline mysticism and arcana it is to maintain and expand on that)
PS - this is obviously a throwaway account
submitted by OutsideNewspaper7049 to runescape [link] [comments]

2023.05.30 23:27 Careful-Somewhere-63 Streak 256: Powers of two

Since today is my 256th post, I'll be writing about stuff that involves the incredible number two and its powers.
Of course, I cannot write this post and forgot to mention the incredible fact that a byte consists of eight bits and therefore it has 256 possible combinations of values. Is it a coincidence that I'm mentioning this fact in my 256th streak? I think not. I call this "the argument of the fine-tuning of my posts." There's clearly an intelligent force guiding me on all this.
But anyway, if I remember correctly, we have to use a binary system for our computers and smartphones because of something about electronics. voltage, current, and something about them that makes us have to use 0s and 1s. But then we have quantum computers, which changes all that because you know QUANTUM stuff.
Now changing the topic a little bit, when I was young, a silly method my cousins used to measure intelligence was to ask "What is 2+2" then "What is 4+4" and so on. Whoever was able to answer faster and correctly was the most intelligent. As you can see, this game consists of powers of two, basically. At that time, I was able to impress my older cousins because I was able to go deep into this game. But I actually didn't do any calculations most of the time, I just memorized the answers. Of course, when they asked me I acted like I was really struggling to find the answer when I actually knew it all along.
There's also a cool videogame involving the powers of two called "2048." It basically consists of a grid with some blocks. Each time you roll a block, the game gives you a new block of two and, on a few occasions, a block of four. You can merge the blocks together, but only if they are of the same value. For instance, you can join two blocks of eight together and that will give you a new block of sixteen. The goal is to reach a block with the value of 2048. When I first played this game I struggled a little bit to reach 2048 but eventually, I was able to do it. Then I found a simple method that guarantees you to always win. Like, you can reach 2048 in five minutes. The max I got was about 16,384 or 32,768 (I don't remember exactly) but since there was no more struggle it got boring and I stopped playing.
submitted by Careful-Somewhere-63 to WriteStreakEN [link] [comments]

2023.05.30 19:28 Theconfusedscientist Help with picking a statistical test and how to adjust for age and sex

Help with picking a statistical test and how to adjust for age and sex
Hi all. I'll try my best to explain my situation here but I am currently doing a very short internship and working on my thesis.
The study includes looking at proteins which are differentially expressed between three diagnostic groups (AC, KC and AC+KC). From over 300 proteins, 34 were found to be statistically significant overall. More specifically, 18 were found to be statistically differentially expressed when comparing AC with KC, 18 when comparing AC with AC+KC, and 8 when comparing KC with AC+KC. I did not do this analysis so I do not know the steps taken to figure this out, however I do know that multiple linear regression was used and the data was adjusted for age and sex.
The protein concentration values were given as NPX values, where a positive value indicates an higher protein concentration and vice versa. These values are Log 2 values, and I am currently obtaining the Log 2 fold change (Log2FC) values to compare the 3 diagnostic groups (AC v. KC, AC v. AC+KC, and KC v. AC+KC). This was simply done by averaging all the NPX values per group, per protein and then subtracting them (so mean of AC minus mean of KC for protein 1, and so on). However, I want to assess if these Log2FC values are statistically significant and preferably adjusted for age and sex, but I am having a really difficult time figuring out how to do this as I am dealing with a lot of variables (34 proteins, each containing 51 NPX values (17 for AC group, 17 for KC group, and 17 for AC+KC group) with different sex and age ranges per group).
I don't know if my question is clear but I have attached an image to show roughly what my data looks like. Any help would be appreciated and if more clarification is needed, please comment. Thank you!
Rough layout of my data on excel; the same applies for the remaining 33 proteins.EDIT: 1 = male and 0 = female
The Log2FC calculations (ignore the p-value, this was done using the Mann-Whitney U test without adjustment for age and sex)

submitted by Theconfusedscientist to spss [link] [comments]

2023.05.30 18:37 SpecificTemporary877 History of Axes, Part 10: Fire Emblem Radiant Dawn

Hello hello! Today we are going into the future of Tellius after Path of Radiance with it's sequel, Fire Emblem Radiant Dawn. After the very strong showing axes had in the previous game, will we see that same strength hold up after 3 years (in-game)?

The systems and mechanics implemented in FE9 were kept the same for FE10. The way Strength was used for weapon weight mitigation, 2RN Hit system, the weapon triangle bonuses and penalties, the Forge and Biorhythm (some slight differences here and there though for these two). The Forge still allowed you to improve basic-level weapons for Gold, but now you could get Coins to spend on Forge Cards, which can give you random special bonuses to your weapon. Biorhythm worked the same in that it gave bonuses and penalties when the BR was high or low. But now instead of just a minor Hit and Avo bonus/penalty, the numbers were bigger and would also affect Skill activation and finding hidden treasure. There were two things that I didn't mention before. Both FE9 and FE10 have skill scrolls which are 1-time-use items that give a unit a skill if they have the Capacity, which are these "skill points" that get expended and refunded if you attach or detach a skill to a unit. In FE9 if you remove a skill, it is lost forever, but in FE10 it still stays with you, so you can take and swap around skills all you want unless they are signature or Occult skills. The other thing is that in both games, all Axes deal effective damage against Doors, which is a really niche use case but a funny and nice bonus nonetheless.

Just like before, units have both Strength and Magic stats that raise independently, but unlike FE9 there are no magic axes so all the player needs to focus on is Strength. The damage calculation is Strength + (Wpn Might x Effectiveness), with the Effectiveness coefficient going back to 3 like in FE8, so now effective damage matters more since tripled Might is way better than doubled. Defense was still used for defensive calculations. The way to increase these stats were the permanent stat boosters of the Energy Drop and Dragonshield. Sanaki had an exclusive item called the Rudol Gem which boosts her Def by +10. And then these stats could be conditionally raised via support bonus with the proper affinities.

The weapon list of axes in FE10 was pretty much the same as FE9, but some weapons had their rank requirements and/or stats changed around, creating new shifts in power for certain weapons. There were also a set of brand new weapons in the Poleax subclass of axes, which were beefed up versions of the "basic weapon trio" of Iron, Steel, and Silver. The Hit rates for all axes were generally higher than before, so they hit more reliably at base. There was a new weapon rank in "SS-Rank" which were reserved for the true legendary weapons. But there is actually an SS-Rank axe available to the player, and it was the one that wasn't usable in FE9! The list of axes in FE10 are...
The Bronze Axe is a brand new level of basic weapon that has low Weight and Might, high Hit and durability, but cannot critical. It is also the only E-Rank weapon, so literally anyone can use if you need lower damage in certain cases. Iron-Steel-Silver worked the same way it did before, but unlike in FE9, Steel Axes are C-Rank so you have to do a bit of work before you get them. The I-S-S Poleaxe weapons were equivalent to the Blade type weapons we had seen from FE4-FE8, as they were stronger but heavier and more inaccurate versions of their base weapons. They were decent if you had them, but ultimately the normal I-S-S axes were better due to their more reliable stats and access to forging. The Venin Axe was statistically identical to the Iron Axe but with poison, but poison is still bad so if you want an Iron Axe but don't have one for whatever reason, use this instead. Hand Axes actually got stronger since they had better stats overall, and retained their ability to be forged, so they were still one of the best axes in the game. The Hammer was still a bit heavy and inaccurate, but it's no longer the heaviest axe available to the player and due to tripled might, is a lot better at dealing with armors. The Brave Axe was significantly buffed since it only required C-Rank to use, weighed 13 instead of 20 like it did before, had a reliable hit of 80%, and retained its normal Brave Effect, so it was a very valuable axe to have. The Killer Axe exchanged a bit of Might for some Hit, but it was still a great axe because of its high Crit. The Short Axe this time around WASN'T a straight upgrade from the Hand Axe since it had lower Hit, and it can't be forged like the Hand Axe, but it was still a decent weapon if you had it.
The Tomahawk was still the statistically strongest 1-2 range option, but it now required an S-Rank to use. The Urvan is the only SS-Rank axe available to the player, and while it didn't have 1-2 range, it was still an insanely strong axe. 50 uses, 17 Weight, the highest Might of all weapons at 22 (barring Crossbows, but they don't count since they don't take account the users Strength), an insane 110% Hit, and a +3 Res boost to the holder to boot! It was a very easy candidate to be blessed and taken into the endgame Tower. Finally there is the Tarvos, which is the signature weapon that Nolan gets in Part 3, and was a great axe overall. It has the second highest Might of all axes at 18, but only had 12 Weight, an astounding 100% Hit, 40 uses, and gave a +4 Defense boost when held.

The axe-wielding classes in FE10 work a bit differently than they did in FE9 due to the way these classes were reworked for this game. Paladins were mono-weapon classes, different Generals had different weapons available to them, and of course the biggest change was the introduction of Tier 3 classes that had higher stat caps, access to Occult Skills (for free, no longer needed a scroll), and access to new weapons. T3 classes also will "autolevel" secondary/tertiary weapon ranks if they are below a certain threshold. There are also a lot of these classes that are technically enemy-exclusive since some units join in their Tier 2 classes, so the Tier 1s are never used by the player. The list of axe-wielding classes in FE10 are...
Hero was a swordlocked class like it was in FE4, and is the exclusive class of Ike. It's promotion to Vanguard allowed it to wield Swords and Axes like GBA heroes, and it got the signature occult skill Aether, which was a mix of Luna and Sol. It was a very strong class that excelled in most stats aside from Resistance, and was befitting for the main character. Fighters were still the same as strong axe wielders. Warriors were still strong, but instead of wielding traditional bows, they got Crossbows. Crossbows were a subset of bows that required no weapon rank to use as long as the class could use bows at all, all had 100% Hit, and had insane Mights, but that was to make up for the fact that they didn't take into account the users Strength, so the Might you see is the damage you get before defenses. Reaver was the T3 class that had an even bigger emphasis on Strength, and acted as proto-Berserkers since they had an innate 5% crit bonus, and also since Berserkers were not in this game. Their Occult Skill was Colossus, but was much better since it no longer needed a Constitution check and now tripled Strength instead of 1.25, and only required a (Skill/2)% chance to proc. All of the T1 Knights had the same strengths, with Strength and Defense being their highest stats, and their only differences were the weapon they had (which frankly is a big difference). The General classes had some slight differences in stats but they were for the most part very similar and had the same strengths as before. Lance Generals had Lances and Axes, Sword Generals had Lances and Swords, and Axe Generals had Swords and Axes. However all of them promoted to the same T3 class, Marshall. Marshalls could use all 3 weapons, were very tanky and strong, and had access to the Occult Skill Luna. Luna had a (Skill/2)% chance to proc and could only activate in melee range, but on proc it would triple the user's Strength AND bypass Defense. Marshalls didn't have the best Skill stat, so the chance of proccing was rather low, but when it did it was very lethal. Axe Knights and Sword Knights also had similar stats and strengths, being great all-rounders that could provide mounted utility and high mobility, with the drawback of being locked to only one weapon type (how much of a drawback it was depended on the weapon type). Their respective promotions of Axe and Blade Paladins furthered these same strengths and weaknesses. Both of these class lines promoted into the same T3 class of Gold Knight. Gold Knights wielded Axes and Swords, while their counterpart of Silver Knight got Lances and Bows, and this was a weird way of having different weapon-wielding Paladins like they did in FE9. Gold Knight was a strong class due to their overall good stats, access to Axes, mounted utility, and their Occult Skill of Sol. Sol was available to both Gold and Silver Knights, had a (Skill/2)% chance to proc, but when it did it now tripled damage (effectively making it a "guaranteed" crit) in addition to healing the damage done, making it a "sort-of-but-not-really Aether". Wyvern Riders were renamed Dracoknights and created a brand new standard for the class, which is that they now wield Axes as their base weapon instead of Lances. This meant that in FE10, Dracoknights no longer had to wait until promotion to utilize forged axes, so their damage and utility increased a good amount. Also, this whole class line no longer had weaknesses to Bows, so they could easily facetank Archers and probably kill them back with Hand Axes. They were now only weak to Thunder Magic, which was heavily nerfed in FE10 and even if they took damage, that could be patched up via Pure Waters or Barriers, so the Dracoknight line had virtually no weaknesses. The T2 promotion to Dragonmaster gave them Lances as a secondary ability, and they retained their strengths of being strongy, tanky, and mobile. Finally the T3 promotion of Dragonlord helped raise their strengths and round out their other shortcomings, so they were kind of the best of all worlds. Their Occult Skill was Stun, which had a (Skill/2)% chance to proc, and would triple the damage dealt and lock an opponent's movement (but not lock up their other actions) for 1 turn instead of 2 like in FE9.
For the enemy-exclusive classes, Bandits were the only ones and they worked the same way they always did, but now they had no promotion since Berserkers are gone.

Unlike in FE9 where the unit quality was very clean and consistently good, the way that classes and the story worked, unit quality varied wildly in FE10. One could argue that since the way the game is structured, availability and the "context" these units are in matter even more than they usually do. There is one feature that I won't cover in the analyses, but in this pretext, and that is Transfer Bonuses. If you have an FE9 save on the same system as your FE10 save, and a unit from FE9 maxed out their level AND a stat, that same unit in FE10 will get a static bonus in that stat. An example would be if Ilyana capped Skill and Resistance as a Level 20 Sage in FE9, she would get a +2 Skill and Res bonus to her bases in FE10. The same will go for weapon ranks as depending on a units weapon rank in FE9, it will give a WEXP bonus to them in FE10. Transfers can really help a unit are almost always beneficial, but I won't be mentioning them here since it'll make for a cleaner analysis. The axe unit roster in FE10 are...

There are 5 items that benefit axe users in FE10. There are the permanent stat boosters of the Energy Drop (+2 Strength), the Dragonshield (+2 Defense), and the Arms Scroll (+1 Weapon Level up). Then there are the promotion items of the Master Seal to promote T1 classes into T2, and then the Master Crown which promotes T2 classes into T3.

FE10 really kept the high momentum Axes had in FE9 going. The buffs that many axes had in terms of Hit or Weapon Rank requirements, the Tier 3 classes being quite strong, the Forge system, and the many axe-wielding units that were some of the best characters in the game like Haar and Ike. For the past 4 games, Axes have had such an amazing streak and were considered almost the "meta" of these games. But as we finally leave Tellius and go back to Archanea, will axes go back to being the trash weapon meant for ruffians like it was before?

Thank you guys for reading! Radiant Dawn is always such an essay to write because of the sheer amount of content that is in this game. It's insane, but its also a lot of fun! Any comments and critiques are more than welcome, and it may or may not be tomorrow, but Part 11 will come out soon. Thanks guys, have a great day!
submitted by SpecificTemporary877 to fireemblem [link] [comments]

2023.05.30 18:11 T0TALfps Battlefield Briefing - Development Update, May 2023

Battlefield Briefing - Development Update, May 2023
It’s a New Dawn.
Today we invite you to join us for our latest Development Update where we give you an overview of everything new in Season 5: New Dawn for Battlefield™ 2042*.
Let’s take a look
If you’d like to read along instead, then we also got you covered below.
New Map: Reclaimed
In 2048, war descends upon an abandoned industrial facility slowly being retaken by nature in Czechia with the battle taking place over a secret train route.
The Crash Site, featuring the derailed train, is designed primarily as a vehicle combat area, with the Landing Zone an area of forest providing a circular area that will enable close-quarters combat and new sightlines opening up when trees are destroyed.
You may see the inspiration we’ve taken for the Abandoned Turbine and Military Warehouse. The indoor space of the Abandoned Turbine will enable crossfires due to its verticality and cover. While the Military Warehouse’s floors will no doubt attract snipers and a range of gunplay experiences due to the narrow layout.
Hidden inside the nearby mountain lies The Bunker, forgotten and made up of a central room whose linear space will bring intense, short-range, close-quarters combat. In comparison to this, The Silos is another outdoor area set up for vehicle combat with its generous roads perfect for tank battles. Easy to spot due to its four towers rising up from the ground, The Silos also provides plenty of elevated areas for infantry to get a shot at vehicles dominating the ground.
Map Rework: Hourglass
Since Season 1 we’ve brought you re-worked versions of all our launch maps. Our commitment with these re-works was to address your feedback to improve the distance to travel between flags, the intensity of combat, sight lines, paths towards objectives, and cover.
Later in Season 5 we’ll bring you the final re-worked map: Hourglass.
New Weapons: XCE Bar, GEW-46, BFP.50
The weapons arsenal is expanding this Season with not only new weapons, but also further much community requested improvements to Vault Weapons.
The XCE Bar is a high-precision bolt action rifle. It has expanded attachment capability to accompany its stopping power, allowing you to quickly swap through attachment options to engage the enemy at various distances.
The GEW-46 assault rifle offers high stability with short-burst fire. Great for the medium-range environments that you’ll experience across the Reclaimed map.
The BFP.50 is a powerful hand cannon, giving you another sidearm that dishes out heavy damage at close range. We know it’s been highly popular due to its size, sound and power and we just know you’re going to love this updated version for The World of 2042!
Evolving Vault Weapons
We will be adapting Vault Weapons for use with All-Out Warfare attachments during Season 5. To start, we’ll focus on Assault Rifles and Sniper Rifles with attachments for the M16A3, A-91, M416, MTAR-21, AEK-971 and the GOL Sniper Magnum.
We’ll continue to roll out All-Out Warfare attachments for all other remaining Vault Weapons during the Season.
We are also addressing your feedback to customize the skins of your Vault Weapons. As part of Season 5, all Universal Skins such as Forest Multi-terrain (Unlocked at Rank 0) and Desert Technical (Unlocked at Rank 19) will be extended towards all Vault Weapons. As an added bonus, Universal Skins will also be available within Battlefield Portal, allowing you to show off your flair as you venture back in time.
Tune in to our Inside Battlefield Podcast, or read our latest Dev Notes blog for full details.
New Gadgets: Spring Grenade, Anti-Tank Grenade, Mini Grenade
With this Season we’re also expanding our arsenal of grenades, which will help you push the objective or flush out the enemy.
Spring grenade
An old familiar projectile behavior as seen before in the form of the S-Mine or Bouncing Betty. It operates through a spring-activated thruster to reach head-height altitude before imminent explosive detonation.
Pro tip: going prone will make you take less damage from this grenade.
Anti-tank Grenade
Detonates on impact against vehicles while dealing substantial damage.
Mini Grenade
An anti-personnel grenade that can be thrown a longer distance, and after a short delay explodes across a small area.
A returning fan-favorite from Battlefield 3 is making its way into All-Out Warfare.
Reworking Vehicle Loadouts
We’re restructuring vehicle loadouts to ensure their combat roles are clearly defined. This will also add further readability on the battlefield to ensure you know what to expect from vehicles when you encounter them.
The restructuring of loadouts primarily focuses on our ground vehicles, and we’ll both remove and add weapons to each available vehicle loadout. For example, explosives will no longer be an option for all vehicles, and overall you’ll find more choice through a larger selection of weapons available to you.
Let’s use the LATV4 Recon as an example of what that looks like.
The LATV4 Recon is one of the most used vehicles in the game, and having explosive weaponry readily available pushed it outside of its intended role as a transport. We’re removing all its explosives, such as the 30mm, 50mm and Grenade Launcher, and will replace them with anti-infantry weaponry instead.
Tune in to our Inside Battlefield Podcast, or read our latest Dev Notes blog for full details.
Specialist Improvements
Dozer and Irish will receive improvements to ensure they provide similar gameplay experiences as others within their class.
For Dozer we will be enhancing his movement and animations when using the SOB-8 Ballistic Shield. You will now be able to strafe, rotate and pitch with your shield more quickly than previously, as well as being able to traverse ziplines with your shield equipped! Lastly, we’ll also be including two new XP Events to reward further acts of teamplay when playing with Dozer.
On the receiving end when firing at his shield, we will be increasing its spread and introducing more bullet trajectory upon hitting his shield. This will ensure that during these encounters you still have a fighting chance, and at the very least, won’t be as impacted by your own bullets as before.
IrishIrish will receive a balancing pass to the capabilities of his APS-36 Shootdown Sentinel. We’re doing that by having it cycle through new intercept and recharge states alongside an added short cooldown, versus its previous always-on state.
We’ve also improved its audio, alongside adding new colors to help you identify which state the APS-36 is currently in.
Tune in to our Inside Battlefield Podcast, or read our latest Dev Notes blog for full details.
Squad Management Improvements
Alongside the Season update we’re also adding improvements to the current Squad functionality.
Squads and Players
The Squad Menu is now separated to give you a full overview of all squads on your team. In this menu you can make someone else the leader, and see how many players or friends are in a squad. It also shows class icons so you know how to best complement a squad before joining it. And to add some personal flavor, leaders can also show off their Player Card Tag as the squad icon.
We also worked with the narrative team to come up with code names for each squad for that additional personal touch. One of our personal favorites is Gravedigger -- surely the Gravediggers know how to PTFO. We definitely don’t mess with that squad!
Create and Join
At any time you’ll be able to create or join a new squad directly via the Squad Menu. Previously you could only switch to a random squad, and only from the deploy screen. If you create a new squad then we’ve also added a short waiting period before other players can matchmake into your squad to ensure you can play together with your friends.
Easy navigation
The Squad Menu was created to make it easier and faster to manage and navigate through squads on your team. While before it was unclear when and how to change squads, you’ll now be able to do that at any time and with only a few clicks.
We hope that with this new improved Squad Management experience you feel that you have the control over who you’d like to play with during a match. Once this is in your hands, please stay in touch and give us your feedback about how you feel about it!
Later during Season 5 we’ll also add Squad Orders functionality which allows you to work together as a squad to receive increased XP rewards. In short, PTFO - and get rewarded!
Tune in to our Inside Battlefield Podcast, or read our latest Dev Notes blog for full details.

New Battle Pass
Season 5 brings with it two factions - one that’s cutting-edge, calculating and professional versus a more survivalist group who are savage, independent and ruthless.
You’ll see this in the cosmetics available as you play through the Battle Pass, some of the best we feel we’ve ever brought to Battlefield! From Falck’s ‘Regenerator’ Skin at Tier 0, to Dozer’s ‘Overthrower’ Skin at Tier 100.
There’s a whole load of items to unlock across 100 tiers of the Free and Premium Battle Pass including cosmetics, XP boosters, and the new premium Seasonal Booster! Additionally, those that were Year 1 pass holders will also receive an Epic Skin and XP booster during the first two weeks of Season 5, as a thanks for continuing to play.Lastly, we’re continuing to work on the game beyond Season 5. We are committed to continuing the Battlefield 2042 journey and are working through the best ways to bring new content and experiences for you all. Expect to hear more from us on what’s planned later in Season 5.
And that’s all we have for you today! Season 5: New Dawn becomes available for play on June 7, and we’re excited to start this new journey with you.
//The Battlefield Team
This announcement may change as we listen to community feedback and continue developing and evolving our Live Service & Content. We will always strive to keep our community as informed as possible.
*\Requires Battlefield 2042 (sold s)*eparately and all game updates.)
submitted by T0TALfps to battlefield2042 [link] [comments]

2023.05.30 17:54 Ang3r Top 5 HR Hitters Martingale

Top 5 HR Hitters Martingale
Now that we are around 2 months into the MLB season, I figured that I would try this experiment that I have been thinking of. It goes without saying that I am NOT an expert, and you should only bet within your limits, but I figured I would throw this out there and see if my thinking is sound. Sorry in advance as this is fairly lengthy. I suggest you be familiar with the Martingale strategy before reading this as I will not be explaining it.

I started betting HR parlays with the infamous Teodor87 parlay but wanted something more consistent. This led me to start betting on the top 3-5 HR hitters of the year individually and in a parlay, with modest success and a parlay hit on 5/19, but I figured this could be optimized more. This is where the Martingale comes in. Since HR props are a plus odds bet, this seems like the perfect type of bet to employ Martingale on as your potential profits increase with each miss on the individual hitter.

Let's use Aaron Judge as an example. He consistently seems to have pretty mediocre odds for his HR prop (+180 today, +200 yesterday, +300 5/26, +235 5/25). Let's set his odds at +200 for a low yield and simplicity in the math. Start betting on day 1 since last HR and at 1U.

In order to calculate Profit we need to subtract our Return and our Total Risk. Return is easy. At +200, we will receive 3U back for every 1U bet (2U in profit + 1U original bet back). This starts us off with Profit = (3 x Units) - total risk. Total risk can be tallied fairly easily by addition, but what is the fun in that. Our cumulative risk goes up in the pattern of 1 on day 1, 3 on day 2, 7 on day 3, 15 on day 4...infinity. This can be represented as (2n - 1) where n = days bet since last HR starting at n = 1. This turns our final equation to Profit = (3 x Units) - (2n - 1).

Now let's apply this to Aaron Judge at +200 odds. If he hits a HR on the first day, we are up 2U: (3 x 1U) - (21 - 1). If he misses day one and hits on the second day, we are up 3U: (3 x 2U) - (22 - 1). If he misses day one and two and hits on the third day, we are up 5U: (3 x 4U) - (23 - 1). You see where this is going. In addition to the Martingale, I figure, why not throw 1U every day on a parlay of all the participating players for fun.

The players I will be using for this strategy will be Pete Alonso (NYM), Aaron Judge (NYY), Max Muncy (LAD), Matt Olson (ATL), and Jorge Soler (MIA).

Spreadsheet I will be using to track results
5/30 HR parlay
5/19 Parlay hit
Teodor Parlay hit
submitted by Ang3r to sportsbetting [link] [comments]

2023.05.30 17:01 ajshell1 Tips for improving your input shaping that I've picked up over the last few weeks

This is meant as a companion to the official Klipper documentation, so I won't cover everything discussed there. Rather, I'm going to discuss things I've experienced and how I went from crappy input shaping to really good input shaping. Also, since I own a bedslinger (a Neptune 2S), I will be writing from the perspective of a bedslinger.


Mounting location makes a HUGE difference in your results. You don't want the ADXL345 to wiggle or wobble, you want it to be stiff RIGID, or you'll get bad results. Likewise, location is a huge factor. You want it to vibrate like the nozzle/part on the bed will be vibrating, if you want your input shaper to compensate for the right thing. So let's go over various locations from best to worst:

X axis

Directly mounted to the nozzle: Since you'll ultimately want to measure the resonance as it occurs at the nozzle, Provok3d's nozzle mounted ADXL345 should give you exactly what you want. Just remember to take it off before you print. For normal ADXL345s, you could design/find something that would allow you to mount your ADXL345 to your nozzle or heatblock.
Directly mounted to the X gantry: Assuming your hotend is mounted firmly to your gantry, this should give you almost as good results, assuming your mount is good. This is the mount I'm currently using, and I'm getting really good results with it. Notice that this one screws into existing holes for really good rigidity. You'll probably get worse results with something like this.
Directly mounted to the shroud: This depends on where you mount it on your shroud. The Hero Me Gen 7 system with the hotend that attaches to the shroud and has the ADXL345 mounted low (lower is better) gave me what I thought were [good results] at the time. On the other hand, mounting it on the top of a substantially modified version of this shroud gave me results that ranged from awful to decent to almost good.

Y Axis

This is a bit trickier than the X axis, which is a shame because bedslingers will inevitably be limited by the Y axis when determining your max acceleration. Again, from best to worst:
Screwed into print: This one has drawbacks but it should give you the best results because it's basically the only way to get it mounted into the middle of the bed. You print a file like this (thanks to Fruitz on the Klipper discord!) with screw holes for the ADXL345, with a brim if needed, but change the gcode so that you don't turn off your motors or cool the bed after printing. Right angle dupont headers are ideal for this mount. Then run the test. The downside is that you'll waste filament each time you want to mount it again. However, I swear by the results. A possible alternative is a version that uses magnets, like this, but I haven't tested it.
Clamped onto the bed: This has the downside of only being able to get measurements from the edge of the bed, which isn't ideal. Just be sure to only use clamps that have a block that prevents the screw from going into the bed. In other words, if you must use a clamp, use this, and not this one.

Klipper config

A basic config with an RPi looks like this
[mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 117.5, 117.5, 20 # an example 
As the Klipper config says, "It is advised to start with 1 probe point, in the middle of the print bed, slightly above it.". Yes, I measured X resonances at various Z heights, and it makes a difference.
However, you may need to add an "axes_map" section to adxl345, depending on your mount. Your ADXl345 should have arrows on it, pointing in X and Y (plus a point indicating Z, but it can't be drawn properly from this perspective). As long as those arrows point in the right directions, you don't have to do anything. Otherwise, you can change it with that line. Check the docs for more, but in my case, I used axes_map: "y, z, x" for my X axis mount.

Running the test

Other people have covered running "TEST_RESONANCES AXIS=X" and generating the graph, so I'll just skip this section except for one detail. Your fans should be running at speeds that they'd normally run during prints. So your hotend fan should be on, and your cooling fans should be at the speeds they run at most of the time.

Establishing good results

This is the part I want to talk about the most. Input shaping can do a lot, but it can work even better if you give it a better environment to work with.
Here are my golden rules I've established after lots of testing and discussion with other people:
  1. The most ideal graph for the axis being tested is a very tall and narrow spike at a certain frequency (I call this "the big spike"). No other spikes should be present, as they will reduce the effectiveness of input shaping.
  2. The other two axes should stay as close to zero as possible.
  3. All else being equal, a big spike with a higher peak power spectral density (i.e. a "taller" big spike) is better than one with a lower peak.
  4. All else being equal, a big spike with a higher frequency peak is better than one with a lower frequency peak. This is because it is easier to compensate for a higher frequency.
I don't have a large enough sample size to back this up, but it seems that the peak of the big spike correlates with the frequency suggested for ZV and MZV, assuming your big spike is clean.
This here is an example of a good graph.
And this is a bad graph.

Improving your results

So, let's say you have a bad graph. What can you do? It turns out that the answer is "a lot of things".
First of all, your enemy is looseness and wobbling, and you must defeat it. All your screws must be tight. ALL of them (except your bed level screws). Your frame must be rigid. You should not be able to wobble your bed up and down if you have v-roller wheels. Your printer should be on a flat surface and not wobble on it, and if it's on a table, that table shouldn't wobble either. Your filament spool shouldn't wobble either if it's mounted on the printer. Here's a before and after I took my full spool off my printer.
Thirdly, belt tension is important. Belt tension is an even deeper rabbit hole than input shaping, so all I'll say is that your graph will suffer if it's too loose, and that your motors and belt will suffer if it's too tight.
EDIT: Here's an example of low tension during a period of testing, and higher tension. I don't know if this is too high, or how to tell if the tension is too high. That's another thing to work out.


Once you have a good result, pick either the recommended shaper, or pick MZV for reasons specified in this video:
Then, it's time to tune your acceleration. I'd imagine that CoreXY users would want to make sure that they can actually reliably handle those accelerations (Ellis's guide has a Klipper Macro for testing that), but Bedslingers are going to be limited by the Y axis. Just run a ringing tower test with input shaper enabled. In my experience, if you set your max acceleration to the value suggested by the Y axis test, you won't get any X axis ringing but you'll see some Y axis artifacts.
And once you do set your max acceleration, you can use it with the acceleration calculator here to see how long you can maintain a certain speed with that acceleration and your bed size. This is useful for setting a max velocity and travel speed in your slicer.
Unfortunately, Klipper doesn't allow you to set separate max X and Y accelerations. Piezo's Limited_cartesian allows you to do this, but he includes this warning:
Note that there are print quality concerns with anisotropic accelerations and velocities. Extruder pressure and lengths of accelerating segments will depends on the orientation. In theory this could lead to dimensional discrepancies. This was the main argument for rejecting previous similar PRs.
Let me know if you can find any mistakes in my work or can make any suggestions.
Edit: I've also discovered that increasing the amperage to your motors results in a higher spike. This test had 0.8, while this test used 0.6. Of course, bad things will happen if you increase it too high.
Edit 2: LH from the Klipper discord has suggested the following topics:
-The bed can have a big impact on the X axis (yes, the bed, and the wheels tension)
-stepper modes and tuning affect resonance testing and can produce different results
-adxl noise in proximity to steppers
-damping_ratio has a big effect on IS result
-accel_per_hz and hz_per_sec can be used to produce more accurate results
-frame support dampening is very important for the Y axis on a bed slinger
I'll discuss those at some point, but I don't completely understand all of them yet.
EDIT 3: He explained what he meant in further detail.
  1. According to him wedging something between the bottom of the bed and the frame so it's stationary can give better results, and y wheels can also make a difference.
  2. Generally, Spreadcycle mode gives better results than Stealtchop, at the cost of extra noise: 1 2 3
  3. Electromagnetic interference from the stepper motors. Why the Klipper guide recommends shielded ethernet cables.
  4., and LH also wrote this:
  5. You can get more accurate results by adjusting the accel_per_hz and hz_per_sec values in the Klipper config.
  6. I said that I was under the impression that you'd need to design specific parts to optimize your dampening setup, as you want to dampen the correct frequencies. He says that he's done a lot of work in designing and tuning his setup, and this is his Ender 3's Y axis:
submitted by ajshell1 to klippers [link] [comments]

2023.05.30 16:21 boxesgen Shipping Boxes Dimensions Guide for Efficient Packaging


Shipping boxes play a crucial role in ensuring the safe transport of products from one place to another. However, their dimensions are often overlooked, resulting in inefficient use of space, increased shipping costs, and potential damage to the contents. In this comprehensive guide, we will delve into the significance of shipping box dimensions and explore how selecting the right size can optimize packaging, reduce expenses, and enhance customer satisfaction. Whether you are a business owner, an e-commerce enthusiast, or an individual shipping personal items, understanding box dimensions is key to successful shipping operations.

Section 1: Importance of Shipping Boxes

Shipping boxes serve as the primary protective layer for products during transit. They shield the contents from external elements, impact, and mishandling. However, to ensure maximum protection, it is crucial to understand the significance of proper box dimensions. Boxes that are too large or too small can lead to a host of issues, including:
Inefficient use of space: Oversized boxes waste precious shipping space, leading to increased shipping costs and carbon footprint. Conversely, undersized boxes may compromise the product's safety.
Increased shipping expenses: Oversized boxes result in dimensional weight charges, where shipping costs are determined by the package's size rather than its actual weight. This can significantly impact shipping budgets.
Insufficient protection: Using boxes that are too small may cause products to be cramped, increasing the risk of damage during transit. Adequate space within the box is essential to accommodate appropriate cushioning materials.

Section 2: Understanding Box Dimensions

To make informed decisions about shipping boxes, it is essential to grasp the key elements of box dimensions. Here are the three main dimensions to consider:
Length: The length of a shipping box refers to the measurement of the longest side when the box is sealed. It determines the size of the items that can fit inside.
Width: The width represents the measurement of the second-longest side of the box when sealed. It complements the length and helps determine the overall capacity.
Height: The height of the box is the measurement from the base to the top when sealed. It plays a crucial role in accommodating taller or bulkier items.
In addition to these dimensions, it is also important to consider the wall thickness, which contributes to the overall strength and durability of the box.
Custom Sizes: In addition to standard sizes, many manufacturers offer custom box dimensions tailored to specific needs. This option provides flexibility for businesses with unique product requirements.
When choosing box dimensions, it is important to remember that these sizes can vary across different manufacturers and suppliers. Always verify the exact dimensions and select the most appropriate option for your specific shipping needs. By carefully selecting the right box dimensions, businesses and individuals can enjoy numerous benefits:
Cost savings: Using appropriately sized boxes reduces shipping costs, as dimensional weight charges can be avoided. Efficient use of space also allows.

Section 3: Common Shipping Box Dimensions

Shipping boxes come in a wide range of sizes to accommodate various products and shipping requirements. Here are some common box dimensions frequently used in the industry:
Small Box: Typically measures around 8" x 6" x 4" (L x W x H). Suitable for small items, such as jewelry, electronics accessories, or cosmetics.
Medium Box: Often measures approximately 14" x 10" x 4" (L x W x H). Ideal for slightly larger items, including clothing, books, or small household goods.
Large Box: Typically measures around 18" x 14" x 8" (L x W x H). Suitable for bulkier items like shoes, kitchen appliances, or multiple smaller products.
Extra-Large Box: Often measures approximately 24" x 18" x 18" (L x W x H). Ideal for larger and heavier items, such as large electronics, home decor, or multiple items combined.

Section 4: Benefits of Optimal Box Dimensions

Cost savings: Using appropriately sized boxes reduces shipping costs, as dimensional weight charges can be avoided. Efficient use of space also allows for more items to be shipped in a single shipment, reducing overall shipping expenses.
Improved protection: By selecting the right box dimensions, you can provide adequate space for protective cushioning materials. This ensures that your products are well-protected during transit, minimizing the risk of damage or breakage.
Enhanced sustainability: Optimal box dimensions contribute to a more sustainable shipping process. By reducing the size of shipping boxes, you minimize waste and use fewer resources, leading to a smaller environmental footprint.
Streamlined operations: Consistently using the right box dimensions simplifies the packaging process. It saves time and effort by eliminating the need to search for or modify boxes to fit specific products. This improves operational efficiency, particularly for businesses that handle a high volume of shipments.

Section 5: Selecting the Right Box Dimensions

Choosing the appropriate box dimensions for your specific shipping needs can have a significant impact on the overall packaging process and shipping costs. Consider the following factors when selecting shipping box dimensions:
Size of the product: Ensure that the box dimensions provide enough space for the product to fit comfortably, leaving room for protective cushioning.
Weight of the product: Consider the weight of the contents to determine the appropriate box strength and avoid overloading.
The fragility of the product: If the items being shipped are fragile or delicate, extra padding and space within the box are crucial to prevent breakage.
Packaging materials: Take into account the thickness of the packaging materials, such as bubble wrap or foam, when calculating the required box dimensions.
Shipping method: Different shipping carriers may have specific guidelines and dimensional weight calculations. Familiarize yourself with their requirements to optimize costs.


Optimizing shipping box dimensions is a vital aspect of efficient packaging and cost-effective shipping. By understanding the importance of box dimensions, selecting the right size, and considering factors like product size, weight, and fragility, businesses and individuals can enjoy benefits such as cost savings, improved product protection, sustainability, and streamlined operations. Whether you're shipping small parcels or bulkier items, taking the time to choose the right shipping box dimensions will contribute to a smoother shipping process, customer satisfaction, and a more sustainable approach to packaging and logistics.
Read More: Unlocking the Secrets of Shipping Boxes Dimensions
submitted by boxesgen to AskPackaging [link] [comments]

2023.05.30 14:48 tinyDrunkElf Data correction for Splivvy, and other refining. 2.29B GME net-short shares have accumulated, daily_short minus daily_long, since January 2019. Shorted at weighted average price of $20.57. 2.29B shares is NOT short interest, it is the aggregation of each day's net short volume.

Data correction for Splivvy, and other refining. 2.29B GME net-short shares have accumulated, daily_short minus daily_long, since January 2019. Shorted at weighted average price of $20.57. 2.29B shares is NOT short interest, it is the aggregation of each day's net short volume.

Why the correction?

The SPLIVVY! I'm terribly sorry. I always forget some mundane detail...
However, I like these numbers even more!
The splivvy snafu was pointed out to me quickly, and I wanted to get this update out sooner, but have been busy and while under-estimating is bad, avoid over-estimating would be worse!

The problem?

I have two sets of data, one from chart exchange for short volume, one from nasdaq for the close price.
VOLUME: Chart exchange data doesn't account for the split as a dividend. I needed to multiply chart exchange shares by 4 through July 21, 2022.
 July 21, 2022 per chart exchange = 1926119 July 21, 2022 adjustment = 4 x 1926119 = 7704476 July 21, 2022 from nasdaq = 9277796 
Not all volume is reported to chart exchange, so it seems some disparity exists between chart exchange and nasdaq.
Any other splits?
  • sources
  • 'ex arr tee'? Sep. 11, 2015, outside of this data range, no accomodation needed
  • 'eye J H'? June 09, 2005, outside of this data range, no accomodation needed
  • 'ee W em sea'? None found, no accomodation needed
  • 'arr ee tee el'? Three
    • April 23, 2020. 1:10 reverse split
    • January 11, 2021. 5:1 split
    • October 25, 2021. 5:1 split
  • 'towel'? Yes, 4 splits
    • most recent was in 2000, outside of this data range, no accomodation needed
  • 'popcorn'? None found, no accomodation needed

Top chart has price action
  • blue line should be familiar, it's the price action
  • purple line is the weighted average price of all shorts made since January 2019
    • Sure seems like GME price flirts with that line.
Bottom chart has volume
  • bar is volume divided by shares outstanding
  • blue dots are short volume percentage of daily volume
    • blue dots are biggest and darkest when daily volume is 10% or more
  • orange line is 12-day simple moving average (SMA) of blue dots
  • purple line is total net shorts divided by shares outstanding
Summary of data:
  • 13.34B shares of GME have been sold short since January 2019, with weighted average price of $20.57
  • 11.04B shares of GME have been sold long since January 2019, with weighted average price of $19.77
  • 2.29B more shares sold short than long
  • NORMALIZED using outstanding shares, this gives a dimensionless number which is useful for comparison against other stocks
    • 2.29B / 304.68M = 7.52


TICKER net-short_aggregate / outstanding total net-short minus net-long total daily net-short shares total daily net-long shares net-short w-avg net-long w-avg outstanding d start d end total volume total-short volume total-short w-average total-long volume total-long w-average
GME 7.52 2.29B 3.52B 1.23B $19.92 $11.54 304.68M 1/2/2019 5/26/2023 24.38B 13.34B $20.57 11.04B $19.77
'ex arr tee' 213.86 1.32B 1.35B 31.63M $56.2 $72.2 6.15M 1/2/2019 5/26/2023 3.84B 2.58B $58.62 1.26B $61.54
'eye J H' 0.43 114.03M 193.65M 79.62M $232.72 $187.84 267.05M 1/2/2019 5/26/2023 1.15B 630.43M $224.38 516.4M $215.62
'ee W em sea' -0.08 177.73K 2.17M 2.34M $83.82 $70.86 2.17M 1/2/2019 5/26/2023 7.45M 3.63M $80.88 3.81M $73.05
'arr ee tee el' -2.67 18.33M 26.38M 44.72M $10.81 $20.96 6.87M 1/2/2019 5/26/2023 301.5M 141.59M $16.18 159.92M $18.4
'towel' 11.69 1.06B 1.65B 586.11M $8.25 $12.21 90.71M 1/2/2019 5/2/2023 15.58B 8.32B $7.87 7.26B $8.13
'popcorn' 1.24 645.33M 3.58B 2.94B $11.12 $15.4 519.19M 1/2/2019 5/26/2023 38.24B 19.44B $13.5 18.8B $14.25

What this is:

  • this IS : an aggregate (or, summation, tally) of the daily net short volume
  • this IS NOT: short interest
    • Short interest is reported to FINRA, there are specific rules for the values reported.
    • This could possibly considered as 'maximum theoretical short interest', with the huge limitation that from just these two simple datasets, we cannot infer a lot about when shorts are closed. Only the generous assumption that any time long-volume > short-volume, shorts are closing.
    • Stop telling me it isn't short iterest. I know it, you know it, they know it, everyone knows it.
  • this IS : data starting from January 2019
  • this IS NOT: data before January 2019

Why these tickers?

  • 'ex arr tee'
    • often appears in GME discussions, mainly because of the official high short interest. There are ~100 ETFs that hold GME, 'ex arr tee' is the largest "equal" strategy ETF holding GME. Other ETFs hold GME but follow different strategies.
  • 'eye J H'
    • the ETF with the most GME shares
  • 'ee W em sea'
    • another "equal" strategy ETF holding GME, significantly less shares than 'ex arr tee'
  • 'arr ee tee el'
    • another "equal" strategy ETF holding GME, significantly less shares than 'ex arr tee'
  • 'towel'
    • often appears in discussions, potentially a good example of cellar boxing, potential analysis could be done here to estimate how much profit was made with outstanding shares and weighted short price
  • 'popcorn'
    • sometimes called swapcorn and often appears in discussions

"Shorts closed" (I don't think so)

Someone's going to have to spin out theories on this, this post is going to be too long already. I'll be happy to post more data and charts around specific dates, but will take a first shot at this. Let us examine some dates, then.

Feb 24, 2021, assume no shorts prior to this date

GME sneeze and massive dip, then run-up again.
Around this time, many trading platforms had issues. Feb 1 to now, many main news outlets reporting that shorts were covering. Maybe they were, but not all the way, and they seemed to have opened up a ton of new shorts at that same time.
Looks more like new shorts were created.
  • 1.55B net-short shares
  • weighted average short price of $40.11
  • weighted average long price of $40.59.
TICKER net-short_aggregate / outstanding total net-short minus net-long total daily net-short shares total daily net-long shares net-short w-avg net-long w-avg outstanding d start d end total volume total-short volume total-short w-average total-long volume total-long w-average
GME 5.09 1.55B 1.61B 64.55M $38.99 $37.59 304.68M 1/2/2019 5/26/2023 8.48B 5.02B $40.11 3.47B $40.59

August 23, 2021, assume no shorts prior to this date

GME runs a bit. SEC Counsel for enforcement retires; of course, other events around this time. I don't have the time here to justify this other than GME ran.
Looks like more new shorts were created.
  • 741.51M (heee heee, bonus 741!!!?!) net-short shares
  • weighted average short price of $34.22
  • weighted average long price of $34.83.
TICKER net-short_aggregate / outstanding total net-short minus net-long total daily net-short shares total daily net-long shares net-short w-avg net-long w-avg outstanding d start d end total volume total-short volume total-short w-average total-long volume total-long w-average
GME 2.43 741.51M 760.85M 19.34M $33.05 $31.56 304.68M 1/2/2019 5/26/2023 3.52B 2.13B $34.22 1.39B $34.83

May 19, 2022, assume no shorts prior to this date

Timeframe when K.G. had the interview and talked about GME being a bad comedy joke.
Starting the tally from this date, looks like still over 100% of shares outstanding have accumulated as net-short (remember "day_short - day_long") on the public feed.
Still, more shorts created
  • 323.42M net-short shares
  • weighted average short price of $27.92
  • weighted average long of $29
TICKER net-short_aggregate / outstanding total net-short minus net-long total daily net-short shares total daily net-long shares net-short w-avg net-long w-avg outstanding d start d end total volume total-short volume total-short w-average total-long volume total-long w-average
GME 1.06 323.42M 332.83M 9.41M $26.47 $31.5 304.68M 1/2/2019 5/26/2023 1.28B 804.17M $27.92 480.75M $29


None of these center quite so nicely as one the 2.29B short and $20.57 avg weighted price.
If these average prices are to be believed, why don't shorts close their already vastly profitable shorts?
I'm not going to post charts for all tickers in the table, this post is getting long enough. I'll post those separately in case the post is flagged for brigading or whatever.
But 'towel' seems relevant as it was recently de-listed and RC has been involved. This is what I think cellar-boxing looks like, and what shorts would like to have happened to GME.


'this is not short interest'

No, it is not. It is the summation of daily net short volume (each day can have a positive or negative impact on the running tally).

'does it relate to short interest?'

I think it does, I'm not sure how to interpret it. This theory needs refining...
If shorts DID close in private trades, what proportion of these trades were private? 18.94% short interest is what we have, 752% (7.52 above times 100) is what this calculation predicts. If this 752% didn't "solidify" as sustained shorts, they would have been closed privately leaving 18.94% as the net short interest. So we subtract it from the 752% expected.
(752 - 18.94) / 752 = 0.97412, or 97.48% shorts resolved/closed privately.
Leaving 2.52% of long orders for GME make it to the lit (public) exchanges.
I'm considering this 752% as a theoretical maximum as we don't have any insight into when and at what price shorts close. Please read the '75% example' below to see how this 2.29B or 7.52 number does not track with short interest. (thank you [redacted] for sticking with me in the last post to get this 75% scenario to sink in)
Please note, this is speculation. I'm sure there are better ideas out there of how this should be used and interpreted. Please voice those ideas!

'not just long volume can be used to cover a short'

Can short volume be used to transfer a short?
It was pointed out to me that there is potential for short volume to be used by market maker in potentially transferring a short postition between two firms. This is very interesting. I have provided an example of how this would skew the data, see the '75% short; example below. hot potato? shuffling chairs on the titanic?
If anyone have more insight on firms transferring short positions and would that in fact be reported as short volume please share. It seems like it would show up in short volume.

Why is 'ex arr tee' so weird? Answer: it's an equal weight ETF
As the term implies, equal weight means assigning the same weights to each component in a particular index. For example, a hypothetical exchange-traded fund (ETF) that equally weights its 100 holdings would assign a weight of 1% to each at the time the fund rebalances.
The theory for shorting an ETF is that if a fund wanted to short a particular stock without outright shorting it, they could short the ETF to create a short position on all the contents of the ETF. Then, to negate some of that short, they buy long only the securities they don't want short. One burger, hold the pickles.
An equal weight ETF has predictable proportions of it's contents, making maintaining the balance of short-through-the-ETF and long-individual securities easier.
Any ETF could be used this way, but it seems it would be easier to maintain the balance over a long time period with the equal weight ETF.

'short volume cannot be used this way'

That's what FINRA seems to say as well.
And to those who say this, I have questions:
  • What should this short volume data be used for?
  • What does it mean, if not some sort of sentiment of bullishness or bearishness?
  • We can infer something from each daily short volume individually, but not an aggregate of the daily short volume? And, the difference between total long volume and total short volume, meaningless?
    • if it is meaningless because shorts can close off-exchange... that right there seems to be the problem, dark pools, unlit trading: public sell, private buy. It may not be price manipulation (legally), but it sure smells like price manipulation.


Example 1: 50% short volume

day FirmA intent FirmB intent FirmC intent FirmA EOD net FirmB EOD net FirmC EOD net TOTAL EOD net short EOD aggregate of theory EOD held by others in market
0 n/a n/a n/a 0 0 0 0 0 1000
1 sell 100 buy 100 buy 100 -100 100 100 100 0 900
2 buy 100 sell 200 buy 100 0 -100 200 100 0 900
3 buy 100 sell 100 buy 100 100 -200 300 200 0 800
  • day1:
    • short volume is 100, FirmA short-sells 100 to FirmB
    • long volume is 100, others sell 100 owned shares to FirmC
    • this theory net short? short - long = 100 - 100 = 0
    • this theory is not aware of the short position created by FirmA
  • day2:
    • short volume is 100, FirmB short-sells 100 to FirmA
    • long volume is 100, FirmB sells 100 owned shares to FirmC
    • this theory net short? short - long = 100 - 100 = 0
    • this theory is not aware of the short position closed by FirmA, nor the new position created by FirmB
  • day3:
    • short volume is 100, FirmB short-sells 100 more shares short to FirmA
    • long volume is 100, others sell 100 owned shares to FirmC
    • this theory net short? short - long = 100 - 100 = 0
    • this theory is not aware of the increasing short position of FirmB

Example 2: 75% short volume

day FirmA intent FirmB intent FirmC intent FirmA EOD net FirmB EOD net FirmC EOD net TOTAL EOD net short EOD aggregate of theory EOD held by others in market
0 n/a n/a n/a -300 0 0 300 0 300
1 buy 300 sell 300 buy 100 0 -300 100 300 200 200
2 sell 300 buy 300 buy 100 -300 0 200 300 400 100
3 buy 300 sell 300 buy 100 0 -300 300 300 600 0
  • day1:
    • short volume is 300, FirmB short-sells 300 to FirmA
    • long volume is 100, others sell 100 owned shares to FirmC
    • this theory net short? short - long = 300 - 200 = 200 added
    • this theory is not aware of FirmA closing their short, and treats it as net new shares short, when it is a transfer of the short position
  • day2:
    • short volume is 300, FirmA short-sells 300 to FirmB
    • long volume is 100, others sell 100 owned shares to FirmC
    • this theory net short? short - long = 300 - 100 = 200 added
    • this theory is not aware of FirmB closing their short, and treats it as net new shares short, when it is a transfer of the short position
  • day3:
    • short volume is 300, FirmB short-sells 300 to FirmA
    • long volume is 100, others sell 100 owned shares to FirmC
    • this theory net short? short - long = 300 - 100 = 0
    • this theory is not aware of FirmA closing their short, and treats it as net new shares short, when it is a transfer of the short position

Example 3: The coiled spring

What happens when we're sitting at repeated 75% short volume and the liquidity dries up? To contain the price, and provide liQuIdIty, they must create ever larger short positions.
day FirmA intent FirmB intent FirmC intent FirmA EOD net FirmB EOD net FirmC EOD net TOTAL EOD net short EOD aggregate of theory EOD held by others in market
0 n/a n/a n/a -300 0 500 300 0 100
1 buy 300 sell 300 buy 100 0 -300 600 300 200 0
2 sell 400 buy 300 buy 100 -400 0 700 300 600 0
3 buy 400 sell 500 buy 100 0 -500 800 300 1000 0
  • day1 (75% short volume):
    • short volume is 300, FirmB short-sells 300 to FirmA
    • long volume is 100, others sell 100 owned shares to FirmC
    • this theory net short? short - long = 300 - 200 = 200 added
    • this theory is not aware of FirmA closing their short, and treats it as net new shares short, when it is a transfer of the short position
  • day2 (100% s- $19.92 is the weighted average price where the 3.52B total net-short volume shares were traded at, for days when: short volume was greater than long volume
    • (speculation) if shorts were opening here, this would be their price for these 3.52B shares
  • $11.54 is the weighted average price where the 1.23B total net-long volume shares were traded at, for days when: short volume was less than long volume.
    • (speculation) if shorts were covering here, this would be their price for these 1.23B shareshort volume, uh-oh):
    • short volume is 400, FirmA short-sells 300 to FirmB, and 100 to FirmC
    • long volume is 0
    • this theory net short? short - long = 400 - 0 = 400 added
    • this theory is not aware of effects of FirmB closing their short, and treats it as net new shares short, when it is a transfer of the short position
    • this theory is aware of effects of FirmA increasing it's short position
  • day3 (100% short volume, oh, crap):
    • short volume is 500, FirmB short-sells 400 to FirmA, and 100 to FirmC
    • long volume is 0
    • this theory net short? short - long = 500 - 0 = 500 added
    • this theory is not aware of FirmA closing their short, and treats it as net new shares short, when it is a transfer of the short position
    • this theory is aware of effects of FirmB increasing it's short position
There should be a spectrum from 75% short on day 1 and 100% short on day 2, it wouldn't be immediate as in this example.
However, if short volume began approaching 100% short, shorts would have to get creative with hiding their shorts, and potentially generate themselves a synthetic long position. Perhaps by shorting an ETF to borrow shares from within it? What else? Swaps? Get everyone else to agree to stop buying in the lit exchange?
Of course, all that would just be kicking the can. Those shorts need to be bought back. They knew it when they entered the position, two sides to a position. Sell first and buy later, or buy first and sell later. Did they get tricked into opening the short position? Foul play? Company was not supposed to remain in business? Peterffy lives rent free in my mind "GME needs to go to zero".
They chose to sell first. Now buy.


Update Due to Splivvy data neglection
Updating to add further explanation, charts, and examples.
$20.57 is the weighted average short open price for the total 13.34B short shares since January 2019. This can be thought of as representing bearish sentinment.
$19.77 is the weighted average long open price for the total 11.04B total long shares since January 2019. This can be thought of as representing bullish sentiment.
2.29B net shares shorted have accumulated on the public feed since January 2019. This is the "short minus long"
  • this is important, this 2.29B number is NOT short interest
  • this 2.29B number is simply the accumulated net short volume since January 2019, it is not short interest
  • this 2.29B number is an artifact:
    • a: short sellers shuffling their existing shorts around (one closing and someone else opening)
    • b: new shorts being made
    • c: market makers providing liquidity
  • the current reported short interest of GME is 57.7097M, or 18.94% percent (57.7097M is short interest, I should have been more clear in my first post, the 2.29B is not short interest)
    • 57.7097 / 304.68 = 0.1894, or 18.94%
  • If the reported short interest is accurate, it implies that only 2.52% of GME shorts are closed on the lit (public) exchanges or in reported trades. Calculation: "1 - ((752 - 18.94)/752)"
Sure looks like shorts never closed (well, technically they closed a portion in early 2021, but re-opened the same amount and more).
Just looks like they've worked hard to get their shorts averaged up, so that the damn margin phone stops ringing nonstop.
submitted by tinyDrunkElf to Superstonk [link] [comments]

2023.05.30 13:36 Yurikirii E4 Qingque Autarky Probability per Skill uses

E4 Qingque Autarky Probability per Skill uses
Hi! To add to the post made by u/Hinaran, I have calculated the probability of Qingque's E4 (Autarky) proccing given a set amount of skill uses based on the description of Qingque's E4 so please do reach out if there are any special things about her E4 that I failed to take into account. I also ran a simulation (code included) to verify that my probabilities were correct.
Qingque E4 description:
Eidolon Four: Right on the Tiles
After this character's Skill is used, there is a 24% fixed chance to gain Autarky, which lasts until the end of the current turn. With Autarky, using Basic Attack or Enhanced Basic Attack immediately launches one follow-up attack on the same target, dealing Quantum Damage equal to 100% of the previous Basic Attack (or Enhanced Basic Attack)'s Damage.

Figure 1. Qingque E4 proccing probability per set amount of Skill Use
The success probabilities in Figure 1 were calculated by getting the likelihood of Autarky not triggering after n skill uses and subtracting that from 100% to get the likelihood of one trigger within n skill uses as shown in Figure 2.

Figure 2. The formula used for getting the probability of Autarky trigger
I also ran some JS code where in I simulated 1,000,000,000 runs to verify if my probability calculations were correct and the results are found below. The source code that I made for this can be found in this Pastebin link.
{ '1': '24.0%', '2': '42.2%', '3': '56.1%', '4': '66.6%', '5': '74.6%', '-1': '25.4%' // Simply the probability of needing more than 5 skill points } Runtime: 1:43.100 (m:ss.mmm) 
Hopefully you guys found this helpful and do leave me questions or clarifications if needed. Thanks for your time and happy mindless gamba!
submitted by Yurikirii to QingqueHSR [link] [comments]

2023.05.30 10:33 vikas_agrawal77 How to measure your brand equity? 6 time-tested approaches.

Brand equity is the value that a brand name adds to a product or service, beyond its functional benefits. It reflects how consumers perceive, feel, and behave towards a brand, and how loyal they are to it. Brand equity can be a source of competitive advantage, as it can influence customer satisfaction, retention, and advocacy.
There are different ways to measure brand equity, depending on the purpose and perspective of the measurement. Some of the common methods are:
Consumer perception surveys- These surveys ask consumers a series of questions about their awareness, recognition, recall, associations, preferences, and attitudes towards a brand. The answers can be analyzed to calculate metrics such as brand awareness, brand image, brand loyalty, and brand preference. These metrics can indicate how strong and favorable a brand’s position is in the minds of consumers.
Market research- This method involves collecting and analyzing data from the market to measure the actual behavior and outcomes of consumers towards a brand. The data can include sales volume, market share, price premiums, customer lifetime value, customer satisfaction, customer retention, customer referrals, customer advocacy, and word-of-mouth. These data can reveal how well a brand is performing in terms of attracting, satisfying, and retaining customers.
Brand awareness research- This technique specifically measures how well your customers know and recognize your brand name and logo, and how easily they can recall them when prompted by using market research techniques.
Financial analysis- This method involves estimating the financial value of a brand based on its expected future earnings and cash flows. The value can be calculated by using various approaches, such as the cost-based approach, the market-based approach, or the income-based approach. The value can also be compared to the value of similar brands or products in the market to assess the relative strength and performance of a brand.
Brand audits- Brand audits involve conducting a comprehensive and systematic evaluation of your brand’s identity, strategy, assets, communication, and performance across all touchpoints and channels.
Conversational brand analytics- This method uses artificial intelligence and natural language processing to measure and optimize your brand’s presence and engagement on conversational platforms, such as chatbots, voice assistants, and messaging apps.
Each method has its own advantages and limitations, and they can complement each other to provide a comprehensive picture of brand equity. However, measuring brand equity is not a one-time exercise; it requires continuous monitoring and evaluation to track changes over time and across different segments and markets.
By measuring brand equity regularly, marketers can identify the sources and drivers of brand value, as well as the opportunities and challenges for improving it. Do have any points to add?
Includes AI-supported research
submitted by vikas_agrawal77 to branding [link] [comments]

2023.05.30 08:53 jforrest1980 Easy Question about Cash: Why multiply each coin by its face value?

In main, when each coin is defined using the Calculate_CoinType, why is the coin multiplied by its own face value?
int quarters = calculate_quarters(cents); cents = cents - quarters * 25; 
I am thinking when the code runs, it is taking the quarter count. We will just say that change was 100, so 4 quarters owed.
So the code would run 4*25, then subtract 100 from cents. Is this just to reset cents back to zero, so we can calculate dimes next?
submitted by jforrest1980 to cs50 [link] [comments]

2023.05.30 06:02 whyEven_Try_676 Manifesto of the Communist party

The history of all hitherto existing society is the history of class struggles.
Freeman and slave, patrician and plebeian, lord and serf, guild-master and journeyman, in a word, oppressor and oppressed, stood in constant opposition to one another, carried on an uninterrupted, now hidden, now open fight, a fight that each time ended, either in a revolutionary reconstitution of society at large, or in the common ruin of the contending classes.
In the earlier epochs of history, we find almost everywhere a complicated arrangement of society into various orders, a manifold gradation of social rank. In ancient Rome we have patricians, knights, plebeians, slaves; in the Middle Ages, feudal lords, vassals, guild-masters, journeymen, apprentices, serfs; in almost all of these classes, again, subordinate gradations.
The modern bourgeois society that has sprouted from the ruins of feudal society has not done away with class antagonisms. It has but established new classes, new conditions of oppression, new forms of struggle in place of the old ones.
Our epoch, the epoch of the bourgeoisie, possesses, however, this distinct feature: it has simplified class antagonisms. Society as a whole is more and more splitting up into two great hostile camps, into two great classes directly facing each other — Bourgeoisie and Proletariat.
From the serfs of the Middle Ages sprang the chartered burghers of the earliest towns. From these burgesses the first elements of the bourgeoisie were developed.
The discovery of America, the rounding of the Cape, opened up fresh ground for the rising bourgeoisie. The East-Indian and Chinese markets, the colonisation of America, trade with the colonies, the increase in the means of exchange and in commodities generally, gave to commerce, to navigation, to industry, an impulse never before known, and thereby, to the revolutionary element in the tottering feudal society, a rapid development.
The feudal system of industry, in which industrial production was monopolised by closed guilds, now no longer sufficed for the growing wants of the new markets. The manufacturing system took its place. The guild-masters were pushed on one side by the manufacturing middle class; division of labour between the different corporate guilds vanished in the face of division of labour in each single workshop.
Meantime the markets kept ever growing, the demand ever rising. Even manufacturer no longer sufficed. Thereupon, steam and machinery revolutionised industrial production. The place of manufacture was taken by the giant, Modern Industry; the place of the industrial middle class by industrial millionaires, the leaders of the whole industrial armies, the modern bourgeois.
Modern industry has established the world market, for which the discovery of America paved the way. This market has given an immense development to commerce, to navigation, to communication by land. This development has, in its turn, reacted on the extension of industry; and in proportion as industry, commerce, navigation, railways extended, in the same proportion the bourgeoisie developed, increased its capital, and pushed into the background every class handed down from the Middle Ages.
We see, therefore, how the modern bourgeoisie is itself the product of a long course of development, of a series of revolutions in the modes of production and of exchange.
Each step in the development of the bourgeoisie was accompanied by a corresponding political advance of that class. An oppressed class under the sway of the feudal nobility, an armed and self-governing association in the medieval commune(4): here independent urban republic (as in Italy and Germany); there taxable “third estate” of the monarchy (as in France); afterwards, in the period of manufacturing proper, serving either the semi-feudal or the absolute monarchy as a counterpoise against the nobility, and, in fact, cornerstone of the great monarchies in general, the bourgeoisie has at last, since the establishment of Modern Industry and of the world market, conquered for itself, in the modern representative State, exclusive political sway. The executive of the modern state is but a committee for managing the common affairs of the whole bourgeoisie.
The bourgeoisie, historically, has played a most revolutionary part.
The bourgeoisie, wherever it has got the upper hand, has put an end to all feudal, patriarchal, idyllic relations. It has pitilessly torn asunder the motley feudal ties that bound man to his “natural superiors”, and has left remaining no other nexus between man and man than naked self-interest, than callous “cash payment”. It has drowned the most heavenly ecstasies of religious fervour, of chivalrous enthusiasm, of philistine sentimentalism, in the icy water of egotistical calculation. It has resolved personal worth into exchange value, and in place of the numberless indefeasible chartered freedoms, has set up that single, unconscionable freedom — Free Trade. In one word, for exploitation, veiled by religious and political illusions, it has substituted naked, shameless, direct, brutal exploitation.
The bourgeoisie has stripped of its halo every occupation hitherto honoured and looked up to with reverent awe. It has converted the physician, the lawyer, the priest, the poet, the man of science, into its paid wage labourers.
The bourgeoisie has torn away from the family its sentimental veil, and has reduced the family relation to a mere money relation.
The bourgeoisie has disclosed how it came to pass that the brutal display of vigour in the Middle Ages, which reactionaries so much admire, found its fitting complement in the most slothful indolence. It has been the first to show what man’s activity can bring about. It has accomplished wonders far surpassing Egyptian pyramids, Roman aqueducts, and Gothic cathedrals; it has conducted expeditions that put in the shade all former Exoduses of nations and crusades.
The bourgeoisie cannot exist without constantly revolutionising the instruments of production, and thereby the relations of production, and with them the whole relations of society. Conservation of the old modes of production in unaltered form, was, on the contrary, the first condition of existence for all earlier industrial classes. Constant revolutionising of production, uninterrupted disturbance of all social conditions, everlasting uncertainty and agitation distinguish the bourgeois epoch from all earlier ones. All fixed, fast-frozen relations, with their train of ancient and venerable prejudices and opinions, are swept away, all new-formed ones become antiquated before they can ossify. All that is solid melts into air, all that is holy is profaned, and man is at last compelled to face with sober senses his real conditions of life, and his relations with his kind.
The need of a constantly expanding market for its products chases the bourgeoisie over the entire surface of the globe. It must nestle everywhere, settle everywhere, establish connexions everywhere.
The bourgeoisie has through its exploitation of the world market given a cosmopolitan character to production and consumption in every country. To the great chagrin of Reactionists, it has drawn from under the feet of industry the national ground on which it stood. All old-established national industries have been destroyed or are daily being destroyed. They are dislodged by new industries, whose introduction becomes a life and death question for all civilised nations, by industries that no longer work up indigenous raw material, but raw material drawn from the remotest zones; industries whose products are consumed, not only at home, but in every quarter of the globe. In place of the old wants, satisfied by the production of the country, we find new wants, requiring for their satisfaction the products of distant lands and climes. In place of the old local and national seclusion and self-sufficiency, we have intercourse in every direction, universal inter-dependence of nations. And as in material, so also in intellectual production. The intellectual creations of individual nations become common property. National one-sidedness and narrow-mindedness become more and more impossible, and from the numerous national and local literatures, there arises a world literature.
The bourgeoisie, by the rapid improvement of all instruments of production, by the immensely facilitated means of communication, draws all, even the most barbarian, nations into civilisation. The cheap prices of commodities are the heavy artillery with which it batters down all Chinese walls, with which it forces the barbarians’ intensely obstinate hatred of foreigners to capitulate. It compels all nations, on pain of extinction, to adopt the bourgeois mode of production; it compels them to introduce what it calls civilisation into their midst, i.e., to become bourgeois themselves. In one word, it creates a world after its own image.
The bourgeoisie has subjected the country to the rule of the towns. It has created enormous cities, has greatly increased the urban population as compared with the rural, and has thus rescued a considerable part of the population from the idiocy of rural life. Just as it has made the country dependent on the towns, so it has made barbarian and semi-barbarian countries dependent on the civilised ones, nations of peasants on nations of bourgeois, the East on the West.
The bourgeoisie keeps more and more doing away with the scattered state of the population, of the means of production, and of property. It has agglomerated population, centralised the means of production, and has concentrated property in a few hands. The necessary consequence of this was political centralisation. Independent, or but loosely connected provinces, with separate interests, laws, governments, and systems of taxation, became lumped together into one nation, with one government, one code of laws, one national class-interest, one frontier, and one customs-tariff.
The bourgeoisie, during its rule of scarce one hundred years, has created more massive and more colossal productive forces than have all preceding generations together. Subjection of Nature’s forces to man, machinery, application of chemistry to industry and agriculture, steam-navigation, railways, electric telegraphs, clearing of whole continents for cultivation, canalisation of rivers, whole populations conjured out of the ground — what earlier century had even a presentiment that such productive forces slumbered in the lap of social labour?
We see then: the means of production and of exchange, on whose foundation the bourgeoisie built itself up, were generated in feudal society. At a certain stage in the development of these means of production and of exchange, the conditions under which feudal society produced and exchanged, the feudal organisation of agriculture and manufacturing industry, in one word, the feudal relations of property became no longer compatible with the already developed productive forces; they became so many fetters. They had to be burst asunder; they were burst asunder.
Into their place stepped free competition, accompanied by a social and political constitution adapted in it, and the economic and political sway of the bourgeois class.
A similar movement is going on before our own eyes. Modern bourgeois society, with its relations of production, of exchange and of property, a society that has conjured up such gigantic means of production and of exchange, is like the sorcerer who is no longer able to control the powers of the nether world whom he has called up by his spells. For many a decade past the history of industry and commerce is but the history of the revolt of modern productive forces against modern conditions of production, against the property relations that are the conditions for the existence of the bourgeois and of its rule. It is enough to mention the commercial crises that by their periodical return put the existence of the entire bourgeois society on its trial, each time more threateningly. In these crises, a great part not only of the existing products, but also of the previously created productive forces, are periodically destroyed. In these crises, there breaks out an epidemic that, in all earlier epochs, would have seemed an absurdity — the epidemic of over-production. Society suddenly finds itself put back into a state of momentary barbarism; it appears as if a famine, a universal war of devastation, had cut off the supply of every means of subsistence; industry and commerce seem to be destroyed; and why? Because there is too much civilisation, too much means of subsistence, too much industry, too much commerce. The productive forces at the disposal of society no longer tend to further the development of the conditions of bourgeois property; on the contrary, they have become too powerful for these conditions, by which they are fettered, and so soon as they overcome these fetters, they bring disorder into the whole of bourgeois society, endanger the existence of bourgeois property. The conditions of bourgeois society are too narrow to comprise the wealth created by them. And how does the bourgeoisie get over these crises? On the one hand by enforced destruction of a mass of productive forces; on the other, by the conquest of new markets, and by the more thorough exploitation of the old ones. That is to say, by paving the way for more extensive and more destructive crises, and by diminishing the means whereby crises are prevented.
The weapons with which the bourgeoisie felled feudalism to the ground are now turned against the bourgeoisie itself.
But not only has the bourgeoisie forged the weapons that bring death to itself; it has also called into existence the men who are to wield those weapons — the modern working class — the proletarians.
In proportion as the bourgeoisie, i.e., capital, is developed, in the same proportion is the proletariat, the modern working class, developed — a class of labourers, who live only so long as they find work, and who find work only so long as their labour increases capital. These labourers, who must sell themselves piecemeal, are a commodity, like every other article of commerce, and are consequently exposed to all the vicissitudes of competition, to all the fluctuations of the market.
Owing to the extensive use of machinery, and to the division of labour, the work of the proletarians has lost all individual character, and, consequently, all charm for the workman. He becomes an appendage of the machine, and it is only the most simple, most monotonous, and most easily acquired knack, that is required of him. Hence, the cost of production of a workman is restricted, almost entirely, to the means of subsistence that he requires for maintenance, and for the propagation of his race. But the price of a commodity, and therefore also of labour, is equal to its cost of production. In proportion, therefore, as the repulsiveness of the work increases, the wage decreases. Nay more, in proportion as the use of machinery and division of labour increases, in the same proportion the burden of toil also increases, whether by prolongation of the working hours, by the increase of the work exacted in a given time or by increased speed of machinery, etc.
Modern Industry has converted the little workshop of the patriarchal master into the great factory of the industrial capitalist. Masses of labourers, crowded into the factory, are organised like soldiers. As privates of the industrial army they are placed under the command of a perfect hierarchy of officers and sergeants. Not only are they slaves of the bourgeois class, and of the bourgeois State; they are daily and hourly enslaved by the machine, by the overlooker, and, above all, by the individual bourgeois manufacturer himself. The more openly this despotism proclaims gain to be its end and aim, the more petty, the more hateful and the more embittering it is.
The less the skill and exertion of strength implied in manual labour, in other words, the more modern industry becomes developed, the more is the labour of men superseded by that of women. Differences of age and sex have no longer any distinctive social validity for the working class. All are instruments of labour, more or less expensive to use, according to their age and sex.
No sooner is the exploitation of the labourer by the manufacturer, so far, at an end, that he receives his wages in cash, than he is set upon by the other portions of the bourgeoisie, the landlord, the shopkeeper, the pawnbroker, etc.
The lower strata of the middle class — the small tradespeople, shopkeepers, and retired tradesmen generally, the handicraftsmen and peasants — all these sink gradually into the proletariat, partly because their diminutive capital does not suffice for the scale on which Modern Industry is carried on, and is swamped in the competition with the large capitalists, partly because their specialised skill is rendered worthless by new methods of production. Thus the proletariat is recruited from all classes of the population.
The proletariat goes through various stages of development. With its birth begins its struggle with the bourgeoisie. At first the contest is carried on by individual labourers, then by the workpeople of a factory, then by the operative of one trade, in one locality, against the individual bourgeois who directly exploits them. They direct their attacks not against the bourgeois conditions of production, but against the instruments of production themselves; they destroy imported wares that compete with their labour, they smash to pieces machinery, they set factories ablaze, they seek to restore by force the vanished status of the workman of the Middle Ages.
At this stage, the labourers still form an incoherent mass scattered over the whole country, and broken up by their mutual competition. If anywhere they unite to form more compact bodies, this is not yet the consequence of their own active union, but of the union of the bourgeoisie, which class, in order to attain its own political ends, is compelled to set the whole proletariat in motion, and is moreover yet, for a time, able to do so. At this stage, therefore, the proletarians do not fight their enemies, but the enemies of their enemies, the remnants of absolute monarchy, the landowners, the non-industrial bourgeois, the petty bourgeois. Thus, the whole historical movement is concentrated in the hands of the bourgeoisie; every victory so obtained is a victory for the bourgeoisie.
But with the development of industry, the proletariat not only increases in number; it becomes concentrated in greater masses, its strength grows, and it feels that strength more. The various interests and conditions of life within the ranks of the proletariat are more and more equalised, in proportion as machinery obliterates all distinctions of labour, and nearly everywhere reduces wages to the same low level. The growing competition among the bourgeois, and the resulting commercial crises, make the wages of the workers ever more fluctuating. The increasing improvement of machinery, ever more rapidly developing, makes their livelihood more and more precarious; the collisions between individual workmen and individual bourgeois take more and more the character of collisions between two classes. Thereupon, the workers begin to form combinations (Trades’ Unions) against the bourgeois; they club together in order to keep up the rate of wages; they found permanent associations in order to make provision beforehand for these occasional revolts. Here and there, the contest breaks out into riots.
Now and then the workers are victorious, but only for a time. The real fruit of their battles lies, not in the immediate result, but in the ever expanding union of the workers. This union is helped on by the improved means of communication that are created by modern industry, and that place the workers of different localities in contact with one another. It was just this contact that was needed to centralise the numerous local struggles, all of the same character, into one national struggle between classes. But every class struggle is a political struggle. And that union, to attain which the burghers of the Middle Ages, with their miserable highways, required centuries, the modern proletarian, thanks to railways, achieve in a few years.
This organisation of the proletarians into a class, and, consequently into a political party, is continually being upset again by the competition between the workers themselves. But it ever rises up again, stronger, firmer, mightier. It compels legislative recognition of particular interests of the workers, by taking advantage of the divisions among the bourgeoisie itself. Thus, the ten-hours’ bill in England was carried.
Altogether collisions between the classes of the old society further, in many ways, the course of development of the proletariat. The bourgeoisie finds itself involved in a constant battle. At first with the aristocracy; later on, with those portions of the bourgeoisie itself, whose interests have become antagonistic to the progress of industry; at all time with the bourgeoisie of foreign countries. In all these battles, it sees itself compelled to appeal to the proletariat, to ask for help, and thus, to drag it into the political arena. The bourgeoisie itself, therefore, supplies the proletariat with its own elements of political and general education, in other words, it furnishes the proletariat with weapons for fighting the bourgeoisie.
Further, as we have already seen, entire sections of the ruling class are, by the advance of industry, precipitated into the proletariat, or are at least threatened in their conditions of existence. These also supply the proletariat with fresh elements of enlightenment and progress.
Finally, in times when the class struggle nears the decisive hour, the progress of dissolution going on within the ruling class, in fact within the whole range of old society, assumes such a violent, glaring character, that a small section of the ruling class cuts itself adrift, and joins the revolutionary class, the class that holds the future in its hands. Just as, therefore, at an earlier period, a section of the nobility went over to the bourgeoisie, so now a portion of the bourgeoisie goes over to the proletariat, and in particular, a portion of the bourgeois ideologists, who have raised themselves to the level of comprehending theoretically the historical movement as a whole.
Of all the classes that stand face to face with the bourgeoisie today, the proletariat alone is a really revolutionary class. The other classes decay and finally disappear in the face of Modern Industry; the proletariat is its special and essential product.
The lower middle class, the small manufacturer, the shopkeeper, the artisan, the peasant, all these fight against the bourgeoisie, to save from extinction their existence as fractions of the middle class. They are therefore not revolutionary, but conservative. Nay more, they are reactionary, for they try to roll back the wheel of history. If by chance, they are revolutionary, they are only so in view of their impending transfer into the proletariat; they thus defend not their present, but their future interests, they desert their own standpoint to place themselves at that of the proletariat.
The “dangerous class”, [lumpenproletariat] the social scum, that passively rotting mass thrown off by the lowest layers of the old society, may, here and there, be swept into the movement by a proletarian revolution; its conditions of life, however, prepare it far more for the part of a bribed tool of reactionary intrigue.
In the condition of the proletariat, those of old society at large are already virtually swamped. The proletarian is without property; his relation to his wife and children has no longer anything in common with the bourgeois family relations; modern industry labour, modern subjection to capital, the same in England as in France, in America as in Germany, has stripped him of every trace of national character. Law, morality, religion, are to him so many bourgeois prejudices, behind which lurk in ambush just as many bourgeois interests.
All the preceding classes that got the upper hand sought to fortify their already acquired status by subjecting society at large to their conditions of appropriation. The proletarians cannot become masters of the productive forces of society, except by abolishing their own previous mode of appropriation, and thereby also every other previous mode of appropriation. They have nothing of their own to secure and to fortify; their mission is to destroy all previous securities for, and insurances of, individual property.
All previous historical movements were movements of minorities, or in the interest of minorities. The proletarian movement is the self-conscious, independent movement of the immense majority, in the interest of the immense majority. The proletariat, the lowest stratum of our present society, cannot stir, cannot raise itself up, without the whole superincumbent strata of official society being sprung into the air.
Though not in substance, yet in form, the struggle of the proletariat with the bourgeoisie is at first a national struggle. The proletariat of each country must, of course, first of all settle matters with its own bourgeoisie.
In depicting the most general phases of the development of the proletariat, we traced the more or less veiled civil war, raging within existing society, up to the point where that war breaks out into open revolution, and where the violent overthrow of the bourgeoisie lays the foundation for the sway of the proletariat.
Hitherto, every form of society has been based, as we have already seen, on the antagonism of oppressing and oppressed classes. But in order to oppress a class, certain conditions must be assured to it under which it can, at least, continue its slavish existence. The serf, in the period of serfdom, raised himself to membership in the commune, just as the petty bourgeois, under the yoke of the feudal absolutism, managed to develop into a bourgeois. The modern labourer, on the contrary, instead of rising with the process of industry, sinks deeper and deeper below the conditions of existence of his own class. He becomes a pauper, and pauperism develops more rapidly than population and wealth. And here it becomes evident, that the bourgeoisie is unfit any longer to be the ruling class in society, and to impose its conditions of existence upon society as an over-riding law. It is unfit to rule because it is incompetent to assure an existence to its slave within his slavery, because it cannot help letting him sink into such a state, that it has to feed him, instead of being fed by him. Society can no longer live under this bourgeoisie, in other words, its existence is no longer compatible with society.
The essential conditions for the existence and for the sway of the bourgeois class is the formation and augmentation of capital; the condition for capital is wage-labour. Wage-labour rests exclusively on competition between the labourers. The advance of industry, whose involuntary promoter is the bourgeoisie, replaces the isolation of the labourers, due to competition, by the revolutionary combination, due to association. The development of Modern Industry, therefore, cuts from under its feet the very foundation on which the bourgeoisie produces and appropriates products. What the bourgeoisie therefore produces, above all, are its own grave-diggers. Its fall and the victory of the proletariat are equally inevitable.
submitted by whyEven_Try_676 to ussr [link] [comments]

2023.05.30 02:28 CatharticSnickers How to calculate the velocity of an object after t seconds of an opposing force?

tldr: I'm trying to do an object in motion problem with air drag without using calculus.
So if force = mass * acceleration, I calculated the acceleration of the opposing force by dividing the force by the mass of the object. Then I multiplied the acceleration by the time to get the velocity of the opposing force for that increment of time. Can I not then just subtract this from the initial velocity to find the new velocity after t seconds?
Edit: Does the acceleration need to be multiplied by 1/2? I don't understand why that is in many equations.

My equation:
v - 0.5 * (F/M) * t = Final Velocity
v - initial velocity
F/M - acceleration
t - time
submitted by CatharticSnickers to AskPhysics [link] [comments]

2023.05.30 01:00 georgewoodall82 does anyone know what is wrong with my chip-8 emulator?

i followed this guide to get started making a chip-8 emulator:
but not all opcodes work.
i ran the test rom and it said all opcodes are good except for 8XY1 - 8XY5.
i couldn't figure out why they wouldnt work so i copied the code from the guide a lot and still couldnt get it to work.
all my opcodes from 8xy1 - 8xy5 look completely correct to me so i think it might be a problem somewhere else in the code, maybe with a different opcode.
i would appreciate it if someone had any idea what is wrong
here is my code:
#include  #include "chip8.h" #include  using namespace std; chip8 myChip8; int main() { //debug main myChip8.initialize(); myChip8.loadGame("test_opcode.ch8"); myChip8.debugRender(); while (true) { getchar(); myChip8.emulateCycle(); myChip8.debugRender(); cout << "0x" << hex << myChip8.opcode << endl; } } 
#include  #include  #include "chip8.h" using namespace std; void chip8::initialize() { pc = 0x200; // Program counter starts at 0x200 opcode = 0; // Reset current opcode I = 0; // Reset index register sp = 0; // Reset stack pointer // Clear display for (int i = 0; i < 2048; ++i) { gfx[i] = 0; } // Clear stack for (int i = 0; i < 16; ++i) { stack[i] = 0; } for (int i = 0; i < 16; ++i) { key[i] = V[i] = 0; } //Clear Memory for (int i = 0; i < 4096; ++i) { memory[i] = 0; } //load fonts into memory for (int i = 0; i < 80; ++i) { memory[i] = chip8_fontset[i]; } delay_timer = 0; sound_timer = 0; drawFlag = true; srand(time(NULL)); } void chip8::loadGame(const char * filename) { FILE *file = fopen(filename, "rb"); if (!file) { cerr << "Error opening file" << endl; return; } fseek(file, 0, SEEK_END); long bufferSize = ftell(file); fseek(file, 0, SEEK_SET); char * buffer = (char*)malloc(sizeof(char) * bufferSize); if (!buffer) { cerr << "Error allocating memory for buffer" << endl; fclose(file); return; } fread(buffer, 1, bufferSize, file); if ((4096-512) > bufferSize) { for (int i = 0; i < bufferSize; ++i) { memory[i + 512] = buffer[i]; } } fclose(file); free(buffer); } void chip8::emulateCycle() { unsigned char x; drawFlag = false; // Fetch Opcode opcode = memory[pc] << 8 memory[pc + 1]; //cout << hex << opcode << endl; // Decode Opcode switch (opcode & 0xF000) { case 0x0000: switch (opcode & 0x000F) { case 0x0000: //clears the screen for (int i = 0; i < 2048; ++i) { gfx[i] = false; } pc += 2; break; case 0x000E: //returns from subroutine sp--; pc = stack[sp]; pc += 2; break; } break; case 0xE000: switch (opcode & 0x00FF) { case 0x009E: //(EX9E) Skips the next instruction if the key stored in VX is pressed (usually the next instruction is a jump to skip a code block). if (key[V[(opcode & 0x0F00) >> 8]] != 0) { pc += 4; } else { pc += 2; } break; case 0x00A1: //(EXA1) Skips the next instruction if the key stored in VX is not pressed (usually the next instruction is a jump to skip a code block). if (key[V[(opcode & 0x0F00) >> 8]] == 0) { pc += 4; } else { pc += 2; } break; } break; case 0xF000: switch (opcode & 0x00FF) { case 0x0007: //(FX07) Sets VX to the value of the delay timer. V[(opcode & 0x0F00) >> 8] = delay_timer; pc += 2; break; case 0x000A: //(FX0A) A key press is awaited, and then stored in VX (blocking operation, all instruction halted until next key event). keyPress = false; for (int i = 0; i < 16; ++i) { if (key[i] != 0) { V[(opcode & 0x0F00) >> 8] = i; keyPress = true; } } if (!keyPress) { return; } pc += 2; break; case 0x0015: //(FX15) Sets the delay timer to VX. delay_timer = V[(opcode & 0x0F00) >> 8]; pc += 2; break; case 0x0018: //(FX18) Sets the sound timer to VX. sound_timer = V[(opcode & 0x0F00) >> 8]; pc += 2; break; case 0x001E: //(FX1E) Adds VX to I. if (I + V[(opcode & 0x0F00) >> 8] > 0xFFF) { V[0xF] = 1; } else { V[0xF] = 0; } I += V[(opcode & 0x0F00) >> 8]; pc += 2; break; case 0x0029: //(FX29) Sets I to the location of the sprite for the character in VX. Characters 0-F (in hexadecimal) are represented by a 4x5 font. I = V[(opcode & 0x0F00) >> 8] * 0x5; pc += 2; break; case 0x0033: //Stores the binary-coded decimal representation of VX, with the hundreds digit in memory at location in I, the tens digit at location I+1, and the ones digit at location I+2. memory[I] = V[(opcode & 0x0F00) >> 8] / 100; memory[I + 1] = (V[(opcode & 0x0F00) >> 8] / 10) % 10; memory[I + 2] = (V[(opcode & 0x0F00) >> 8] % 100) % 10; pc += 2; break; case 0x0055: //(FX55) Stores from V0 to VX (including VX) in memory, starting at address I. The offset from I is increased by 1 for each value written, but I itself is left unmodified. for (int i = 0; i <= ((opcode & 0x0F00) >> 8); ++i) { memory[I + i] = V[i]; } I += ((opcode & 0x0F00) >> 8) + 1; pc += 2; break; case 0x0065: //(FX65) Fills from V0 to VX (including VX) with values from memory, starting at address I. The offset from I is increased by 1 for each value read, but I itself is left unmodified. for (int i = 0; i <= ((opcode & 0x0F00) >> 8); ++i) { V[i] = memory[I + i]; } I += ((opcode & 0x0F00) >> 8) + 1; pc += 2; break; } break; case 0xA000: //Sets I to the address NNN. I = opcode & 0x0FFF; pc += 2; break; case 0x2000: //Calls subroutine at NNN. stack[sp] = pc; sp++; pc = opcode & 0x0FFF; break; case 0x1000: //(1NNN) Jumps to NNN pc = opcode & 0x0FFF; break; case 0x3000: //(3XNN) Skips the next instruction if VX == NN. if (V[(opcode & 0x0F00) >> 8] == (opcode & 0x00FF)) { pc += 4; } else { pc += 2; } break; case 0x4000: //(4XNN) Skips the next instruction if VX != NN. if (V[(opcode & 0x0F00) >> 8] != (opcode & 0x00FF)) { pc += 4; } else { pc += 2; } break; case 0x5000: //(5XY0) Skips the next instruction if VX == VY. if (V[(opcode & 0x0F00) >> 8] == V[(opcode & 0x00F0) >> 4]) { pc += 4; } else { pc += 2; } break; case 0x6000: //(6XNN) Sets VX to NN. V[(opcode & 0x0F00) >> 8] = opcode & 0x00FF; pc += 2; break; case 0x7000: //(7XNN) Adds NN to VX. V[(opcode & 0x0F00) >> 8] += opcode & 0x00FF; pc += 2; break; case 0x8000: switch (opcode & 0x000F) { case 0x0000: //(8XY0) Sets VX to VY. V[(opcode & 0x0F00) >> 8] = V[(opcode & 0x00F0) >> 4]; pc += 2; break; case 0x0001: //(8XY1) Sets VX to VX or VY. V[(opcode & 0x0F00) >> 8] = V[(opcode & 0x00F0) >> 4]; pc += 2; break; case 0x0002: //(8XY2) Sets VX to VX and VY. V[(opcode & 0x0F00) >> 8] &= V[(opcode & 0x00F0) >> 4]; pc += 2; break; case 0x0003: //(8XY3) Sets VX to VX xor VY. V[(opcode & 0x0F00) >> 8] ^= V[(opcode & 0x00F0) >> 4]; pc += 2; break; case 0x0004: //(8XY4) Adds VY to VX. VF is set to 1 when there's a carry, and to 0 when there is not. if (V[(opcode & 0x00F0) >> 4] > (0xFF - V[(opcode & 0x0F00) >> 8])) { V[0xF] = 1; //carry } else { V[0xF] = 0; } V[(opcode & 0x0F00) >> 8] += V[(opcode & 0x00F0) >> 4]; pc += 2; break; case 0x0005: //(8XY5) VY is subtracted from VX. VF is set to 0 when there's a borrow, and to 1 when there is not. if(V[(opcode & 0x00F0) >> 4] > V[(opcode & 0x0F00) >> 8]) { V[0xF] = 0; } else { V[0xF] = 1; } V[(opcode & 0x0F00) >> 8] -= V[(opcode & 0x00F0) >> 4]; pc += 2; break; case 0x0006: //(8XY6) Stores the least significant bit of VX in VF and then shifts VX to the right by 1. V[0xF] = V[(opcode & 0x0F00) >> 8] & 0x1; V[(opcode & 0x0F00) >> 8] >>= 1; pc += 2; break; case 0x0007: //(8XY7) Sets VX to VY minus VX. VF is set to 0 when there's a borrow, and 1 when there is not. if (V[(opcode & 0x0F00) >> 8] > V[(opcode & 0x00F0) >> 4]) { V[0xF] = 0; } else { V[0xF] = 1; } V[(opcode & 0x0F00) >> 8] = V[(opcode & 0x00F0) >> 4] - V[(opcode & 0x0F00) >> 8]; pc += 2; break; case 0x000E: //(8XYE) Stores the most significant bit of VX in VF and then shifts VX to the left by 1. V[0xF] = V[(opcode & 0x0F00) >> 8] >> 7; V[(opcode & 0x0F00) >> 8] <<= 1; pc += 2; break; break; } case 0x9000: //(9XY0) Skips the next instruction if VX does not equal VY. (Usually the next instruction is a jump to skip a code block); if (V[(opcode & 0x0F00) >> 8] != V[(opcode & 0x00F0) >> 4]) { pc += 4; } else { pc += 2; } break; case 0xB000: //(BNNN) Jumps to the address NNN plus V0. pc = (opcode & 0x0FFF) + V[0]; break; case 0xC000: //(CXNN) Sets VX to the result of a bitwise and operation on a random number (Typically: 0 to 255) and NN. V[(opcode & 0x0F00) >> 8] = (rand() % 0xFF) & (opcode & 0x00FF); pc += 2; break; case 0xD000: //(DXYN) Draws a sprite at coordinate (VX, VY) that has a width of 8 pixels and a height of N pixels. Each row of 8 pixels is read as bit-coded starting from memory location I; I value does not change after the execution of this instruction. As described above, VF is set to 1 if any screen pixels are flipped from set to unset when the sprite is drawn, and to 0 if that does not happen. unsigned short x = V[(opcode & 0x0F00) >> 8]; unsigned short y = V[(opcode & 0x00F0) >> 4]; unsigned short height = opcode & 0x000F; unsigned short pixel; V[0xF] = 0; for (int yline = 0; yline < height; yline++) { pixel = memory[I + yline]; for (int xline = 0; xline < 8; xline++) { if ((pixel & (0x80 >> xline)) != 0) { //cout << 5 << endl; if ((y+yline) *64 + x + xline > 2048) { cout << "out of bounds" << endl; return; } if(gfx[(x + xline + ((y + yline) * 64))] == 1) { V[0xF] = 1; } gfx[x + xline + ((y + yline) * 64)] ^= 1; } } } drawFlag = true; pc += 2; break; } // Update timers if(delay_timer > 0) { --delay_timer; } if(sound_timer > 0) { if (sound_timer == 1) { printf("BEEP!\n"); } --sound_timer; } } void chip8::debugRender() { // Draw for(int y = 0; y < 32; ++y) { for(int x = 0; x < 64; ++x) { if(gfx[(y*64) + x] == 0) printf("██"); else printf(" "); } printf("\n"); } printf("\n"); } 
#include  class chip8 { public: unsigned short opcode; unsigned char memory[4096]; unsigned char V[16]; unsigned short I; unsigned short pc; bool gfx[64 * 32]; unsigned char delay_timer; unsigned char sound_timer; unsigned short stack[16]; unsigned short sp; bool key[16]; unsigned char chip8_fontset[80] = { 0xF0, 0x90, 0x90, 0x90, 0xF0, // 0 0x20, 0x60, 0x20, 0x20, 0x70, // 1 0xF0, 0x10, 0xF0, 0x80, 0xF0, // 2 0xF0, 0x10, 0xF0, 0x10, 0xF0, // 3 0x90, 0x90, 0xF0, 0x10, 0x10, // 4 0xF0, 0x80, 0xF0, 0x10, 0xF0, // 5 0xF0, 0x80, 0xF0, 0x90, 0xF0, // 6 0xF0, 0x10, 0x20, 0x40, 0x40, // 7 0xF0, 0x90, 0xF0, 0x90, 0xF0, // 8 0xF0, 0x90, 0xF0, 0x10, 0xF0, // 9 0xF0, 0x90, 0xF0, 0x90, 0x90, // A 0xE0, 0x90, 0xE0, 0x90, 0xE0, // B 0xF0, 0x80, 0x80, 0x80, 0xF0, // C 0xE0, 0x90, 0x90, 0x90, 0xE0, // D 0xF0, 0x80, 0xF0, 0x80, 0xF0, // E 0xF0, 0x80, 0xF0, 0x80, 0x80 // F }; void initialize(); void emulateCycle(); void loadGame(const char * filename); void debugRender(); bool drawFlag; bool keyPress; }; 
submitted by georgewoodall82 to EmuDev [link] [comments]

2023.05.29 21:37 Bklynghost Need help converting Uno code to Mega

Trying to get a project going based on this tutorial .
I'm using an Arduino Mega controller and having trouble moving the rotary encoder to pins 10,11,12 (which should work as interrupts). The guy decided to use binary addresses, which I am having a huge brain fart with. Otherwise, I've gotten the lcd and the6675 working on different pins. Anybody has a quick opinion on what values I should change?
Here is the code that I have so far (my modified version)
/* Max6675 Module ==> Arduino * CS ==> D10 * SO ==> D12 * SCK ==> D13 * Vcc ==> Vcc (5v) * Gnd ==> Gnd */ #include  //LCD config #include  #include  LiquidCrystal_I2C lcd(0x27,20,4); //sometimes the adress is not 0x3f. Change to 0x27 if it dosn't work. /* i2c LCD Module ==> Arduino * SCL ==> A5 * SDA ==> A4 * Vcc ==> Vcc (5v) * Gnd ==> Gnd */ //I/O int PWM_pin = 3; //Pin for PWM signal to the MOSFET driver (the BJT npn with pullup) int clk = 10; //Pin 1 from rotary encoder int data = 11; //Pin 2 from rotary encoder //Variables float set_temperature = 0; //Default temperature setpoint. Leave it 0 and control it with rotary encoder float temperature_read = 0.0; float PID_error = 0; float previous_error = 0; float elapsedTime, Time, timePrev; float PID_value = 0; int button_pressed = 0; int menu_activated=0; float last_set_temperature = 0; //Vraiables for rotary encoder state detection int clk_State; int Last_State; bool dt_State; //PID constants ////////////////////////////////////////////////////////// int kp = 90; int ki = 30; int kd = 80; ////////////////////////////////////////////////////////// int PID_p = 0; int PID_i = 0; int PID_d = 0; float last_kp = 0; float last_ki = 0; float last_kd = 0; int PID_values_fixed =0; //Pins for the SPI with MAX6675 #define MAX6675_CS 9 #define MAX6675_SO 8 #define MAX6675_SCK 7 void setup() { pinMode(PWM_pin,OUTPUT); TCCR2B = TCCR2B & B11111000 0x03; // pin 3 and 11 PWM frequency of 928.5 Hz Time = millis(); Last_State = (PINB & B00000001); //Detect first state of the encoder PCICR = (1 << PCIE0); //enable PCMSK0 scan PCMSK0 = (1 << PCINT6); //Set pin D8 trigger an interrupt on state change. PCMSK0 = (1 << PCINT5); //Set pin D9 trigger an interrupt on state change. PCMSK0 = (1 << PCINT4); //Set pin D11 trigger an interrupt on state change. pinMode(10,INPUT); pinMode(11,INPUT); pinMode(12,INPUT); lcd.init(); lcd.backlight(); } void loop() { if(menu_activated==0) { // First we read the real value of temperature temperature_read = readThermocouple(); //Next we calculate the error between the setpoint and the real value PID_error = set_temperature - temperature_read + 3; //Calculate the P value PID_p = 0.01*kp * PID_error; //Calculate the I value in a range on +-3 PID_i = 0.01*PID_i + (ki * PID_error); //For derivative we need real time to calculate speed change rate timePrev = Time; // the previous time is stored before the actual time read Time = millis(); // actual time read elapsedTime = (Time - timePrev) / 1000; //Now we can calculate the D calue PID_d = 0.01*kd*((PID_error - previous_error)/elapsedTime); //Final total PID value is the sum of P + I + D PID_value = PID_p + PID_i + PID_d; //We define PWM range between 0 and 255 if(PID_value < 0) { PID_value = 0; } if(PID_value > 255) { PID_value = 255; } //Now we can write the PWM signal to the mosfet on digital pin D3 //Since we activate the MOSFET with a 0 to the base of the BJT, we write 255-PID value (inverted) analogWrite(PWM_pin,255-PID_value); previous_error = PID_error; //Remember to store the previous error for next loop. delay(250); //Refresh rate + delay of LCD print //lcd.clear(); lcd.setCursor(0,0); lcd.print("PID TEMP control"); lcd.setCursor(0,1); lcd.print("S:"); lcd.setCursor(2,1); lcd.print(set_temperature,1); lcd.setCursor(9,1); lcd.print("R:"); lcd.setCursor(11,1); lcd.print(temperature_read,1); }//end of menu 0 (PID control) //First page of menu (temp setpoint) if(menu_activated == 1) { analogWrite(PWM_pin,255); if(set_temperature != last_set_temperature) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Set temperature"); lcd.setCursor(0,1); lcd.print(set_temperature); } last_set_temperature = set_temperature; }//end of menu 1 //Second page of menu (P set) if(menu_activated == 2) { if(kp != last_kp) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Set P value "); lcd.setCursor(0,1); lcd.print(kp); } last_kp = kp; }//end of menu 2 //Third page of menu (I set) if(menu_activated == 3) { if(ki != last_ki) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Set I value "); lcd.setCursor(0,1); lcd.print(ki); } last_ki = ki; }//end of menu 3 //Forth page of menu (D set) if(menu_activated == 4) { if(kd != last_kd) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Set D value "); lcd.setCursor(0,1); lcd.print(kd); } last_kd = kd; }//end of menu 4 }//Loop end //The function that reads the SPI data from MAX6675 double readThermocouple() { uint16_t v; pinMode(MAX6675_CS, OUTPUT); pinMode(MAX6675_SO, INPUT); pinMode(MAX6675_SCK, OUTPUT); digitalWrite(MAX6675_CS, LOW); delay(1); // Read in 16 bits, // 15 = 0 always // 14..2 = 0.25 degree counts MSB First // 2 = 1 if thermocouple is open circuit // 1..0 = uninteresting status v = shiftIn(MAX6675_SO, MAX6675_SCK, MSBFIRST); v <<= 8; v = shiftIn(MAX6675_SO, MAX6675_SCK, MSBFIRST); digitalWrite(MAX6675_CS, HIGH); if (v & 0x4) { // Bit 2 indicates if the thermocouple is disconnected return NAN; } // The lower three bits (0,1,2) are discarded status bits v >>= 3; // The remaining bits are the number of 0.25 degree (C) counts return v*0.25; } //The interruption vector for push button and rotary encoder ISR(PCINT4_vect){ if(menu_activated==1) { clk_State = (PINB & B00000001); //pin 8 state? It is HIGH? dt_State = (PINB & B00000010); if (clk_State != Last_State){ // If the data state is different to the clock state, that means the encoder is rotating clockwise if (dt_State != clk_State) { set_temperature = set_temperature+0.5 ; } else { set_temperature = set_temperature-0.5; } } Last_State = clk_State; // Updates the previous state of the clock with the current state } if(menu_activated==2) { clk_State = (PINB & B00000001); //pin 8 state? dt_State = (PINB & B00000010); if (clk_State != Last_State){ // If the data state is different to the clock state, that means the encoder is rotating clockwise if (dt_State != clk_State) { kp = kp+1 ; } else { kp = kp-1; } } Last_State = clk_State; // Updates the previous state of the clock with the current state } if(menu_activated==3) { clk_State = (PINB & B00000001); //pin 8 state? dt_State = (PINB & B00000010); if (clk_State != Last_State){ // If the data state is different to the clock state, that means the encoder is rotating clockwise if (dt_State != clk_State) { ki = ki+1 ; } else { ki = ki-1; } } Last_State = clk_State; // Updates the previous state of the clock with the current state } if(menu_activated==4) { clk_State = (PINB & B00000001); //pin 8 state? dt_State = (PINB & B00000010); if (clk_State != Last_State){ // If the data state is different to the clock state, that means the encoder is rotating clockwise if (dt_State != clk_State) { kd = kd+1 ; } else { kd = kd-1; } } Last_State = clk_State; // Updates the previous state of the clock with the current state } //Push button was pressed! if (PINB & B00001000) //Pin D11 is HIGH? { button_pressed = 1; } //We navigate through the 4 menus with each button pressed else if(button_pressed == 1) { if(menu_activated==4) { menu_activated = 0; PID_values_fixed=1; button_pressed=0; delay(1000); } if(menu_activated==3) { menu_activated = menu_activated + 1; button_pressed=0; kd = kd + 1; delay(1000); } if(menu_activated==2) { menu_activated = menu_activated + 1; button_pressed=0; ki = ki + 1; delay(1000); } if(menu_activated==1) { menu_activated = menu_activated + 1; button_pressed=0; kp = kp + 1; delay(1000); } if(menu_activated==0 && PID_values_fixed != 1) { menu_activated = menu_activated + 1; button_pressed=0; set_temperature = set_temperature+1; delay(1000); } PID_values_fixed = 0; } } 
submitted by Bklynghost to arduino [link] [comments]

2023.05.29 14:36 SpecificTemporary877 History of Axes, Part 9: Fire Emblem Path of Radiance

Welcome back! Today we are leaving the GBA era and entering a new one with Fire Emblem 9, Path of Radiance. How will we see this power shift axes have had in the past 2 games exist in this game, and what aspects will change and stay the same in a game that seems to blend old and new?

Starting off with general gameplay changes, the Weapon Triangle worked the same way, but reverted back to a -+10 Hit penalty/bonus like it was in FE6, rather than the 15 we saw in the previous two games, but the -+1 damage stayed the same. A big change was the mechanics of weapon weight. Constitution was still in the game, but weapon weight was now mitigated with the Strength stat. Each point of Strength would negate one weapon weight. While this was a bit of an annoyance for magic users as they still had to have a bit of Strength to use magic tomes with no penalties, it was very convenient for physical damage dealers since the higher Strength meant lower Speed penalties and higher damage, making it a "win-win" situation. Finally, the 2RN hit system stayed the same, so hit rates were higher than displayed if >51%, or lower if hit rates were displayed <50%.

Returning from its absence after its last appearance in Thracia, units now have both Strength and Magic stats and grow independently of each other, and for the first time, the Magic stat can actually matter for axe users! Strength + (Weapon Might x Effectiveness), with the Effectiveness coefficient going back to 2 like it was in FE7 (aka, doubling Might) instead of 3. Defense was still used for defensive calculations. Strength and Defense could permanently be raised via the Energy Drop and Dracoshield Stat boosters. Certain classes could conditionally boost their Defense via the Knight Ward item. Finally there were the held Band items that would boost certain growths, but they could only be attained on a second playthrough if you have a first playthrough finished and saved.

We didn't really see any new weapons in the axe arsenal in FE9, as there are actually only 3 new axes that were added. On top of that, unlike every other weapon type, there is no S-Rank Axe that is available to the player, as the only one is the Urvan, which we only see in a cutscene once in Chapter 7. Also Axes generally had lower Hit rates like they did in FE6, ranging around the 50-65s on average. The list of axes in FE9 are...
The Iron-Steel-Silver progression is the same; Iron being the weakest but lightest, Steel being heavy but stronger, and Silver being lighter AND stronger than Steel. Based purely on stats, the Silver Axe is actually the best axe in the game due to it having the highest Might of all axes at 16, the second highest Hit at 70%, and a very manageable Weight of 14, which many of the axe wielding units in this game can mitigate w/ virtually no problem. BUT in actual usage, Steel Axes were better since they could be forged to have their Weight reduced, and only required E-RANK, so literally anybody could use them, especially Paladins since they only get E-Rank in their secondary weapons. Hand Axes retained their high status even though their stats didn't seem stellar on paper, and that was because of a new mechanic; the Forging system. The Forge allowed for I-S-S and Hand Axes to be forged, allowing you to raise or lower any of its stats in exchange for Gold. Putting a bit of Gold into a Hand Axe to increase just its Hit could make it much more deadly, especially in the hands of someone like Boyd or Titania. This is the first time the Devil Axe is completely unattainable by the player, but is still in the games code. If forced into the game, the backfire effect doesn't work properly and can even cause your character to glitch and be stuck, but only if you have animations on. The Venin Axe retains its trash status as before since it is just a worse Iron Axe with Poison built into it, which isn't a status effect players should worry about. The Hammer is in a bit of a tricky spot since they weigh a lot, are inaccurate, and only have 20 Might when fighting armors, which on higher difficulties where the enemy defenses are higher, can nullify the usefulness the Hammer provides. Same situation with the Poleax but slightly less so since it has a smidge more accuracy, weighs a bit less, and you won't be dealing with as much bulk with mounted units like you will with armors. The Short Axe was a brand new weapon and is meant to be an in-between the Hand Axe and Tomahawk. It is a straight upgrade from the Hand Axe stat wise, but it has less uses and doesn't have the advantage of being Forgeable. The Killer Axe remains as a simple but powerful weapon with its relatively reliable Hit, Weight, and Might, as well as its bonus 30% Crit. The Laguz Axe is a new weapon that deals effective damage against all Laguz enemies. Unless you're dealing with bulky Tigers or are playing on Maniac, it can do some solid work against every type of Laguz enemy you fight. The Bolt Axe is also a brand new weapon and is special since it is the very first magical axe to exist in the entire series. It used the users Magic stat, which wasn't great since most axe units don't have high Magic, but it had 1-2 range and dealt Thunder damage, making it effective against Dragon Laguz. The Brave Axe was still great due to its double-attack effect, even though it is still quite heavy like it was in the GBA games. Finally there is the Tomahawk, the strongest but heaviest ranged axe options. It's a great option for 1-2 range if you have it, but like the Short Axe it suffers from lower uses and non-Forgeability.

Due to the lack of branched promotions and reworks to some classes, the number of axe-wielding classes in FE9 were significantly lower than before. But the aforementioned reworks gave some new strengths to these classes, including something that was present in FE7 but lost in FE8; axe-wielding Paladins. Also every T2 class had a brand new ultimate skill called Occult Skills that can be unlocked if they use an Occult Scroll. The list of axe-wielding classes in FE9 are...
Fighters were like their past incarnations, emphasizing Strength and a bit on Speed and Skill. Warriors took from the latter two stats to emphasize even more on Strength, gained access to Bows (making them arguably the strongest Archers), and got Colossus as an Occult Skill. It was an okay skill, but with a lot of setup required; if the users Con exceeds the enemy's Con, it has a Skill% chance to multiply the user's Strength by 1.25 or 25%. FE9 brought back the FE4/5 trend of having individual cavalier classes for each of the physical weapon types, but instead of having individual promotions, they all promote to Paladin. Paladins have a unique quirk in this game where instead of having preset weapons, you can actually choose their secondary weapon, so it is possible for all of your non-pre-promote Paladins to wield all Axes or Swords, whatever the player prefers. Cavaliers and Paladins are still just as good, if not better, than their FE counterparts. They are good all-rounders, can provide mounted utility such as rescuing, and can move fast. I forgot to mention this in previous entries, but most mounted and/or flying units have an ability called Canto, which allows them to use up their remaining movement after taking an action (what action that is depends on the game), and is a big asset as to why they are so useful. The Paladins Occult Skill is Sol, which just restores HP equal to damage dealt on activation. Wyvern Riders continued to use Lances and had their same boons in Strength and Defense like in the GBA era, but their promotion to Wyvern Lord got a new change; instead of getting Swords, they could now use Axes. This change was actually very beneficial since it allowed them to use 1-2 range axes in addition to their 1-2 range spears, and the high Might of axes complemented their high Strength. And with Forging, being inaccurate is no longer really an issue (to a degree). Their Occult Skill is Stun, which when procced on a (Skill/2)% chance, locked up the enemy's movement (but not their other actions) for 2 turns. This wasn't really a good skill, had far too niche of a use. The final axe class was the Berserker, and they worked the same way as they did before, as they were high Strength glass cannons that can crit a lot due to their innate Crit bonuses. Their Occult Skill was also Colossus.

Onto the enemy-exclusive classes, there is only one that actually uses axes. The Bandit is the classic ruffian/thug axe-wielding class and worked/appeared the same way they have for the past 8 games. Finally there is the King Daein class, which is the class exclusive to the final boss Ashnard, and is sort of like a beefed up version of the Wyvern Lord class, but uses Swords and Axes instead of Lances and Axes. The funny thing is that in the boss fight, he only uses his signature sword Gurgurant and doesn't use axes at all. But if you use Ashnard in the Trial Maps, you can equip him with an axe there. The King Daein class also doesn't come with any Occult Skill.

The axe user roster in FE9, while it is smaller than recent games (excluding Trial characters), more than makes up for it in quality as many of the characters in this list are either considered to be good, really good, or lauded to be some of the best characters in the game. The other good thing is that the player will get a lot of these good units in the early-to-midgame, allowing them to use these units more and get more out of them. The axe users in FE9 are...

To round things off, there are 9 items that affect axe users in FE9. There are the permanent stat boosters of the Energy Drop and Dracoshield, which boost Strength and Defense by +2 respectively. The Arms Scroll is a special stat booster that raises weapon rank by one level. All classes in this game use Master Seals to promote, so no more individual promo items. Then there are the held accessories; the famous Knight Ward and all of the second-playthrough Bands that affect growths. The ones that affect Strength and/or Defense growths are the Soldier, Fighter, Knight, and Wyvern Bands.

FE9 was a great continuation of the axe being such a good weapon type, especially with the forge mechanic, the changes to weapon weight mitigation, and the unit quality of all potential axe users being so good. There isn't really much else to say besides that FE9 was very kind to axe users, arguably almost to the same degree that Thracia was. But will we see this great reign continue as we venture into the later years of Tellius?

Thank you so much for reading this! I think I'm going to be taking my time with these so that I can get you guys some good content, I've been going through a lot but I don't want my work to suffer because of it. Comments and critiques are always welcome, and have an amazing day!
submitted by SpecificTemporary877 to fireemblem [link] [comments]

2023.05.29 12:52 GNAUniversitymba How to Become a Successful Entrepreneur?

Becoming a successful entrepreneur requires a combination of skills, mindset, hard work, and determination. To become a successful entrepreneur you must firstly become eligible to the field. Choose the best course to enhance your marketing skills. GNA University delivers the most efficient business courses in Punjab. While there is no magic strategy for success, there are some characteristics and principles to consider:
Identify a workable business idea: Look for opportunities in the market and identify a problem you can solve. Research your target audience, competition, and potential demand for your product or service.
Develop a business plan: Create a complete business plan that outlines your goals, target market, marketing strategy, financial projections, and operational details.
Acquire relevant knowledge and skills: Continuously expand your knowledge and skills related to your industry and entrepreneurship. Attend workshops, seminars, and conferences, read books, and network with experienced entrepreneurs to learn from their experiences.
Build a strong network: Surround yourself with a supportive network of mentors, advisors, and like-minded individuals. Networking can provide valuable insights, connections, and potential partnerships.
Secure adequate funding: Determine the financial requirements of your business and explore various funding options, such as personal savings, loans, grants, angel investors, venture capitalists platforms. Create a solid financial plan to manage your resources effectively.
Take calculated risks: Entrepreneurship inherently involves taking risks. Evaluate the potential risks and rewards before making decisions, and be prepared to step out of your comfort zone. Learn from failures and use them as opportunities for growth.
Stay focused and adaptable: Be open to feedback, continuously evaluate your business strategies, and make necessary adjustments along the way. Successful entrepreneurs stay focused on their goals and adapt to changing market dynamics.
Build a strong team: Surround yourself with talented individuals who complement your skills and share your vision. Delegate tasks effectively and foster a positive work culture that encourages innovation, collaboration, and growth.
Embrace innovation and creativity: Stay ahead of the competition by adopting innovation and seeking out new chances. Encourage your team's creative thinking and constantly look for ways to improve your products, services, and processes.
Stay motivated and persistent: Entrepreneurship can be challenging, so it's crucial to maintain motivation and persistence. Believe in yourself, stay positive, learn from setbacks, and celebrate small victories along the way.
If you want to become a successful entrepreneur, start with your education, enroll with us. We provide the best management courses in Punjab. Remember, success as an entrepreneur is a journey, and it may take time to achieve your goals. Learn from both successes and failures, adapt to changing circumstances, and never stop learning and growing as an entrepreneur.
submitted by GNAUniversitymba to u/GNAUniversitymba [link] [comments]

2023.05.29 04:07 pavlokandyba NIBIRU IN THE NEW TESTAMENT

Zecharia Sitchin did an amazing job, but it is surprising that he left the New Testament texts without much attention. The information contained in them, after some amendments, significantly complements the hypothesis of the planet Nibiru and makes it more reasonable. The New Zavaet contains some astronomical details and sheds a lot of light on past and future events. The considerations that will be discussed contradict some of Sitchin's statements, but this does not pose much of a problem. I managed to find the contacts of Zecharia Sitchin's brother, who helped him with astronomical calculations and will share his ideas. He briefly thanked me for the information and said that such changes could well be made. This is not surprising because even modern astronomers, using advanced computer models, are faced with a lack of data for accurate long-term forecasts. The very first New Testament evidence of Nibiru, from which the New Testament actually begins, is the Star of Bethlehem. To date, there are several hypotheses about the appearance of the Star of Bethlehem. It is assumed that it was an unknown comet or a supernova explosion, but these versions do not have sufficient confirmation. Nevertheless, Vallaam's "star prophecy" from the Old Testament book of numbers foreshadows the event: "I see Him, but not yet; I see Him, but not close. A star rises from Jacob." What is known about the Star of Bethlehem from the New Testament? When Jesus was born in Bethlehem of Judea in the days of King Herod, magicians from the east came to Jerusalem and said: Where is the King of the Jews who has been born? for we have seen his star in the east and have come to worship him—Matt. 2:1-2 They, having listened to the king, went. And behold, the star that they saw in the east went before them, until at last it came and stood over the place where the Child was. — Mf. 2:9-11 It is also known that having fulfilled its purpose, the star disappeared from the sky when the Magi came to Jerusalem so that Herod could not see it, and then returned again. Some apocryphal texts contain astronomical details not found in the canonical gospel. Usually, the Star of Bethlehem is spoken of briefly, but the First Gospel of James describes it this way: “His star rose bright, and it so surpassed all other stars in heaven in its brightness that they were no longer visible.” In addition, the star also had other unusual features, because of which St. John Chrysostom and Blessed Theophylact of Bulgaria considered it to be a divine power: When you hear about a star, do not think that it was one of the ones we see: no, it was a divine and angelic power that appeared in the form of a star. Since the Magi were engaged in the science of the stars, the Lord led them with this, for them a familiar sign, just like Peter the fisherman, amazing with many fish, attracted to Christ. And that the star was the power of an angel is evident from the fact that it shone brightly during the day, walked when the Magi walked, shone when they did not walk: especially from the fact that it walked from the north, where Persia, to the south, where Jerusalem: but the stars never travel from north to south. - Theophylact of Bulgaria To summarize: the star appeared in the east, was unusually bright so that it was visible during daylight hours and moved from north to south. For a while she disappeared from the sky but then reappeared. Now let's put aside this information for a while and consider another astronomical phenomenon from the New Testament - a solar eclipse during the crucifixion of Christ, which occurred according to the scripture in 33 AD. Most of the texts only briefly say that darkness has come. The Gospel of Nicodemus reports the following details: “It was the sixth hour and darkness descended on the earth, even until the ninth hour. The sun darkened, and now the veil in the temple was torn into two parts from top to bottom. In the Gospel of Peter it is written as follows: "It was noon, and darkness found over all Judea, Many went out with lamps, thinking that night had come... And at that moment the veil of the temple of Jerusalem was torn in two. And they took the nails out of the hands of the Lord and laid Him on the ground, and the earth shook, and there was great fear. And the sun shone again, and it turned out that it was already the ninth hour." And Pilate, interrogating the Jews, said to them: “Did you see what happened?” And they answered the ruler: "The sun is eclipsed as it usually happens." Thanks to the astronomical calculations carried out by scientists, it is reliably known that at that time a solar eclipse by the Moon could not have occurred. But at the same time, the New Testament claims that it happened and at the same time was unusually long. Now we already have two evidence of unusual astronomical events, which have not yet been confirmed explanation. How do these events relate to Zecharia Sitchin's speculation about Nibiru's orbit? According to Sitchin, Nibiru has a retrograde (counterclockwise) elongated orbit at an angle to the plane of the eclipticti. At the same time, Nibiru appears in the northern hemisphere, and, crossing the plane of the orbits of the solar system, moves away in the southern. Considering that, according to the New Offset, the Star of Bethlehem was visible in the light time of day, then we can conclude that Nibiru appeared in the solar system from the direction of the sun relative to the Earth and, having a retrograde orbit, moved towards the Earth. Then given the Earth's rotation, it should have become visible from about the wee hours of rising in the east! With sufficient brightness, it could be seen after dawn, then became invisible due to sunlight and went beyond the western horizon. After that, at dawn, it again rose in the east. And moving from the northern hemisphere to the southern one, each time it gradually shifted from north to south. Now about the eclipse - could it happen due to the fact that Nibiru passed between the Sun and the Earth? According to the hypothesis of Zecharia Sitchin, Nibiru crosses the solar system in the asteroid belt beyond the orbit of Mars. This makes it impossible for the eclipse of the Sun by the planet Nibiru. Based on the previously proposed model, Nibiru, having appeared from the direction of the Sun, should, after its appearance, go around the earth and become visible at night throughout its stay in the solar system, which, according to Sitchin, lasts about 30 years. But there is another possible option. In order for it to be possible, it is necessary to slightly correct the hypothesis of the collision of Nibiru with Tiamat and the formation of the Earth. The initial conditions remain the same. In place of the asteroid belt beyond the orbit of Mars was the large water planet Tiamat, in the current orbit of the Earth was the Moon. Nibiru burst into the solar system along an elongated retrograde orbit at an angle to the plane of the ecliptic and passed next to Tiamat, driving its satellites into it - 4 vortices from the Sumara poem about the creation of the world. Because of this, one part of Tiamat broke off and became an asteroid belt, and the other received a huge depression in the place of the Pacific Ocean and was thrown into the orbit of the Moon, where it is now becoming the Earth.
The correction that should be made to this theory concerns the orbit of Nibiru. The Earth's orbit is quite natural - having received a counter blow, it lost speed and began to fall into a lower orbit around the Sun. On the way, she was picked up by the Moon and she remained in the same orbit with her. As for Nibiru, as a result of the collision, she also received an impulse and her orbit also had to change and no longer pass through the asteroid belt. Instead, it may have, like the Earth, lost speed and switched to a lower orbit, approaching in its perihelion closer to the Sun than the Earth picked up by the Moon. Thus, there is a possibility that Nibiru can pass between the Earth and the Sun and cause an eclipse. Prophet Amos: "And it shall come to pass in that day, says the Lord God, that I will make the sun go down at noon, and darken the earth in the midst of the bright day." Prophet Zechariah: "And it will be in that day: there will be no light, the luminaries will be removed. This day will be the only one known only to the Lord: neither day or night; only in the evening will light come." Now the question arises - how close can a giant planet come to Earth for a long solar eclipse to occur and not cause a catastrophe? The Bible does not speak of any catastrophic events other than the torn veil of the temple. They are also not mentioned in history, although it is known about earthquakes in Israel before and after these events with an interval of several centuries, but not during them. Only favorable and non-catastrophic floods in the Nile are known from 30 BC. e. and until 155 At the same time, the distance at which Nibiru should approach the Earth so that its apparent size is equal to the size of the Sun and closes it is about 7,000,000 km. This is much more than the distance to the Moon of 384,400 km, but still such a proximity to the giant planet raises serious concerns. Doubting my assumptions, I asked this question to various people somehow connected with astronomy and their opinions were very divided. Most, of course, supported the opinion that the appearance of Nibiru in the solar system is catastrophic in itself. In fact, this question is not unambiguous. According to some estimates, in order for a planet the size of Nibiru to pass between the sun and the Earth without consequences, it could be between Venus and Mercury (this is about 50,000,000 km). Most likely, this would only cause the acceleration and deceleration of the Earth, the same as when it approached with the giant planets Jupiter and Saturn, which is almost imperceptible to us. The only problem is that at this distance, Nibiru will cover only a very small part of the Sun and this eclipse will be almost invisible. This does not at all coincide with the biblical text, which says that darkness enveloped the earth from noon to the ninth hour. This is much longer than the two hour duration of a normal eclipse and means that Nibiru must have passed very close.
Another opinion is that passing from the Earth at a distance of 7,000,000 km, Nibiru will not cause any catastrophic consequences. The fact that Nibiru moves in a retrograde orbit opposite to the Earth significantly reduces the time spent by the planets close to each other. This reduces the interaction time of gravitational forces. If the planets were moving towards a meeting fast enough , they could simply slip through each other by inertia. If you take a magnet and move it quickly past another magnet, the attraction you feel will be short-lived and not at all the same as if you do it slowly. Of course, this will cause some deviations in the speed and orbit of the planets. The orbit of the Earth will become a little closer to the Sun, this will only affect as a warming of the climate with consequences like floods in the Nile and no more. It looks like this assumption will be the subject of endless criticism, but it gives something else. First, it removes the controversy from Sitchin's flood hypothesis. He wrote that the Flood was caused by the approach of the Earth to Nibiru, which caused the glaciers to split. Such an approach would not be possible if Nibiru crossed the solar system in the asteroid belt, much further than the safe distance. It is quite another matter when Nibiru almost crosses the orbit of the Earth. Secondly, it gives a different chronology for the appearance of Nibiru in the solar system, which roughly coincides with some significant events. Moreover, this version differs from Stchin's chronology by only about 500 years. This may well be explained by Nibiru's high-altitude years, which average 3600 years, or by a gradual change in its orbit. Such a disparity could well have developed over a long period of time. If we take the year 0 of the birth of Christ as the starting point and count back two periods of 3600 years, we get an interesting coincidence. Around 7500 B.C. (a difference of 200 years) climate changes have occurred on Earth, which are associated with a global cataclysm. In 7220 BC. e. there was an eruption of Mount Edgecumb volcano in Alaska and a large outflow of fresh water from the Black Sea into the Aegean Sea, which could be the result of the approach of Nibiru. And the greatest cataclysm occurred in 7640 BC. e. There is a theory that Tolman's hypothetical comet hit the Earth, but little is known about this. 3879 years after that, in 3761 BC. e., according to the Bible, the creation of the world took place. After 3761 years, year 0 has come - a new starting point has been assigned. These intervals differ from the period of 3600 years by a couple of centuries, which may have different explanations. One way or another, the next appearance of Nibiru should occur around the year 3600. This is not the only information from the New Testament texts. They contain other interesting records that can shed light not only on the past of human civilization, but also on the future. Indeed, in this case, the New Testament is the message of the Anunnaki specifically to us, people living today. This is exactly what its name implies.
submitted by pavlokandyba to AncientAliens [link] [comments]

2023.05.29 02:35 Craig5728 Blender 3.5 Crashes every time I open it.

Every time I open Blender 3.5, it just crashes. Help would be very appreciated

Blender Debug Output:

INFO (gpu.debug): Notification : Successfully hooked OpenGL debug callback using KHR_debug extension
INFO (gpu.debug): Notification : Successfully hooked OpenGL debug callback using KHR_debug extension
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 1, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 2, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 3, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 4, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 5, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 6, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 7, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 8, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 9, "FBO-&framebuffer.fb", already bound.
WARN (gpu.debug): SPACE_OUTLINER > ARegion : Vertex shader recompiled due to state change.
WARN (gpu.debug): SPACE_OUTLINER > ARegion : Vertex shader recompiled due to state change.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 10, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 11, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 12, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 13, "FBO-&framebuffer.fb", already bound.
INFO (gpu.debug): Notification : Redundant state change in glBindFramebuffer API call, FBO 14, "FBO-&framebuffer.fb", already bound.
ERROR (gpu.shader): overlay_motion_path_point VertShader:
Error: '&' : wrong operand types no operation '&' exists that takes a left-hand operand of type 'attribute uint' and a right operand of type 'const bool' (or there is no acceptable conversion)
Error: '{' : syntax error syntax error

Address : 0x00007FF626442C90
Module : blender.exe
Thread : 000020f8
Switching to fully guarded memory allocator.
Blender 3.5.1
Build: 2023-04-24 23:56:35 Windows release
argv[0] = C:\Program Files\Blender Foundation\Blender 3.5\\blender
argv[1] = --debug
argv[2] = --debug-gpu
argv[3] = --debug-gpu-force-workarounds
argv[4] = --python-expr
argv[5] = import bpy; bpy.ops.wm.sysinfo(filepath=r'C:\Users\ELIJAH~1\AppData\Local\Temp\blender\debug_logs\blender_system_info.txt')

GL: Forcing workaround usage and disabling extensions.
OpenGL identification strings
vendor: Intel
renderer: Intel(R) HD Graphics 2500
version: 4.0.0 - Build

Writing: C:\Users\ELIJAH~1\AppData\Local\Temp\blender.crash.txt

Blender System info:

= Blender 3.5.1 System Information =


version: 3.5.1, branch: blender-v3.5-release, commit date: 2023-04-24 18:11, hash: e1ccd9d4a1d3, type: release
build date: 2023-04-24, 23:56:35
platform: 'Windows-10-10.0.22621-SP0'
binary path: 'C:\\Program Files\\Blender Foundation\\Blender 3.5\\blender.exe'
build cflags: /W3 /w34062 /w34115 /w34189 /w35038 /wd4018 /wd4146 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /wd4828 /wd4996 /wd4661 /wd4848 /we4013 /we4133 /we4431 /we4033 /DWIN32 /D_WINDOWS /W3 /nologo /J /Gd /MP /bigobj /Zc:inline -openmp
build cxxflags: /W3 /w34062 /w34115 /w34189 /w35038 /wd4018 /wd4146 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /wd4828 /wd4996 /wd4661 /wd4848 /we4013 /we4133 /we4431 /we4033 /DWIN32 /D_WINDOWS /W3 /EHsc /nologo /J /Gd /MP /EHsc /bigobj /Zc:inline /permissive- /Zc:twoPhase- -openmp /Zc:__cplusplus
build linkflags: /MACHINE:X64 /SUBSYSTEM:CONSOLE /STACK:2097152 /ignore:4049 /ignore:4217 /ignore:4221
build system: CMake


version: 3.10.9 (main, Dec 8 2022, 14:09:03) [MSC v.1928 64 bit (AMD64)]
file system encoding: utf-8:surrogatepass
'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts\\\\startup' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts\\\\modules' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\[](' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\python\\\\DLLs' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\python\\\\lib' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\python\\\\bin' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\python' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\python\\\\lib\\\\site-packages' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts\\\\freestyle\\\\modules' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts\\\\addons\\\\modules' 'C:\\\\Users\\\\Elijah Paredes\\\\AppData\\\\Roaming\\\\Blender Foundation\\\\Blender\\\\3.5\\\\scripts\\\\addons\\\\modules' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts\\\\addons' 'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts\\\\addons\_contrib' 

Python (External Binary):

binary path: 'C:\\Program Files\\Blender Foundation\\Blender 3.5\\3.5\\python\\bin\\python.exe'
version: Python 3.10.9


'C:\\\\Program Files\\\\Blender Foundation\\\\Blender 3.5\\\\3.5\\\\scripts' 
user scripts: 'C:\\Users\\Elijah Paredes\\AppData\\Roaming\\Blender Foundation\\Blender\\3.5\\scripts'
pref scripts: None
datafiles: 'C:\\Users\\Elijah Paredes\\AppData\\Roaming\\Blender Foundation\\Blender\\3.5\\datafiles'
config: 'C:\\Users\\Elijah Paredes\\AppData\\Roaming\\Blender Foundation\\Blender\\3.5\\config'
scripts : 'C:\\Users\\Elijah Paredes\\AppData\\Roaming\\Blender Foundation\\Blender\\3.5\\scripts'
autosave: 'C:\\Users\\Elijah Paredes\\AppData\\Roaming\\Blender Foundation\\Blender\\3.5\\autosave'
tempdir: 'C:\\Users\\ELIJAH~1\\AppData\\Local\\Temp\\blender_a08440\\'


avcodec: '59, 37, 100'
avdevice: '59, 7, 100'
avformat: '59, 27, 100'
avutil: '57, 28, 100'
swscale: ' 6, 7, 100'


Version: 2.0.20
Loading method: linked (WITH_SDL_DYNLOAD=OFF)

Other Libraries:

OpenColorIO: 2, 2, 0
OpenImageIO: 2, 4, 9
OpenShadingLanguage: 1, 13, 0
OpenSubdiv: 3, 5, 0
OpenVDB: 10, 0, 0
Alembic: 1, 8, 3
USD: 0, 22, 11


renderer: 'Intel(R) HD Graphics 2500'
vendor: 'Intel'
version: '4.0.0 - Build'
device type: 'INTEL'
backend type: 'OPENGL'
GL\_3DFX\_texture\_compression\_FXT1 GL\_ARB\_ES2\_compatibility GL\_ARB\_ES3\_compatibility GL\_ARB\_arrays\_of\_arrays GL\_ARB\_base\_instance GL\_ARB\_blend\_func\_extended GL\_ARB\_buffer\_storage GL\_ARB\_color\_buffer\_float GL\_ARB\_compatibility GL\_ARB\_compressed\_texture\_pixel\_storage GL\_ARB\_conservative\_depth GL\_ARB\_copy\_buffer GL\_ARB\_debug\_output GL\_ARB\_depth\_buffer\_float GL\_ARB\_depth\_clamp GL\_ARB\_depth\_texture GL\_ARB\_draw\_buffers GL\_ARB\_draw\_buffers\_blend GL\_ARB\_draw\_elements\_base\_vertex GL\_ARB\_draw\_indirect GL\_ARB\_draw\_instanced GL\_ARB\_explicit\_attrib\_location GL\_ARB\_fragment\_coord\_conventions GL\_ARB\_fragment\_program GL\_ARB\_fragment\_program\_shadow GL\_ARB\_fragment\_shader GL\_ARB\_framebuffer\_no\_attachments GL\_ARB\_framebuffer\_object GL\_ARB\_framebuffer\_sRGB GL\_ARB\_geometry\_shader4 GL\_ARB\_get\_program\_binary GL\_ARB\_gpu\_shader5 GL\_ARB\_gpu\_shader\_fp64 GL\_ARB\_half\_float\_pixel GL\_ARB\_half\_float\_vertex GL\_ARB\_instanced\_arrays GL\_ARB\_internalformat\_query GL\_ARB\_internalformat\_query2 GL\_ARB\_map\_buffer\_alignment GL\_ARB\_map\_buffer\_range GL\_ARB\_multi\_draw\_indirect GL\_ARB\_multisample GL\_ARB\_multitexture GL\_ARB\_occlusion\_query GL\_ARB\_occlusion\_query2 GL\_ARB\_pixel\_buffer\_object GL\_ARB\_point\_parameters GL\_ARB\_point\_sprite GL\_ARB\_program\_interface\_query GL\_ARB\_provoking\_vertex GL\_ARB\_robustness GL\_ARB\_sample\_shading GL\_ARB\_sampler\_objects GL\_ARB\_seamless\_cube\_map GL\_ARB\_separate\_shader\_objects GL\_ARB\_shader\_atomic\_counters GL\_ARB\_shader\_bit\_encoding GL\_ARB\_shader\_objects GL\_ARB\_shader\_precision GL\_ARB\_shader\_subroutine GL\_ARB\_shading\_language\_100 GL\_ARB\_shading\_language\_420pack GL\_ARB\_shading\_language\_packing GL\_ARB\_shadow GL\_ARB\_stencil\_texturing GL\_ARB\_sync GL\_ARB\_tessellation\_shader GL\_ARB\_texture\_border\_clamp GL\_ARB\_texture\_buffer\_object\_rgb32 GL\_ARB\_texture\_buffer\_range GL\_ARB\_texture\_compression GL\_ARB\_texture\_compression\_bptc GL\_ARB\_texture\_compression\_rgtc GL\_ARB\_texture\_cube\_map GL\_ARB\_texture\_cube\_map\_array GL\_ARB\_texture\_env\_add GL\_ARB\_texture\_env\_combine GL\_ARB\_texture\_env\_crossbar GL\_ARB\_texture\_env\_dot3 GL\_ARB\_texture\_float GL\_ARB\_texture\_gather GL\_ARB\_texture\_multisample GL\_ARB\_texture\_non\_power\_of\_two GL\_ARB\_texture\_query\_lod GL\_ARB\_texture\_rectangle GL\_ARB\_texture\_rg GL\_ARB\_texture\_rgb10\_a2ui GL\_ARB\_texture\_storage GL\_ARB\_texture\_storage\_multisample GL\_ARB\_texture\_swizzle GL\_ARB\_timer\_query GL\_ARB\_transform\_feedback2 GL\_ARB\_transform\_feedback3 GL\_ARB\_transform\_feedback\_instanced GL\_ARB\_transpose\_matrix GL\_ARB\_uniform\_buffer\_object GL\_ARB\_vertex\_array\_bgra GL\_ARB\_vertex\_array\_object GL\_ARB\_vertex\_attrib\_64bit GL\_ARB\_vertex\_attrib\_binding GL\_ARB\_vertex\_buffer\_object GL\_ARB\_vertex\_program GL\_ARB\_vertex\_shader GL\_ARB\_vertex\_type\_2\_10\_10\_10\_rev GL\_ARB\_viewport\_array GL\_ARB\_window\_pos GL\_ATI\_separate\_stencil GL\_EXT\_abgr GL\_EXT\_bgra GL\_EXT\_blend\_color GL\_EXT\_blend\_equation\_separate GL\_EXT\_blend\_func\_separate GL\_EXT\_blend\_minmax GL\_EXT\_blend\_subtract GL\_EXT\_clip\_volume\_hint GL\_EXT\_compiled\_vertex\_array GL\_EXT\_draw\_buffers2 GL\_EXT\_draw\_range\_elements GL\_EXT\_fog\_coord GL\_EXT\_framebuffer\_blit GL\_EXT\_framebuffer\_multisample GL\_EXT\_framebuffer\_object GL\_EXT\_geometry\_shader4 GL\_EXT\_gpu\_program\_parameters GL\_EXT\_gpu\_shader4 GL\_EXT\_multi\_draw\_arrays GL\_EXT\_packed\_depth\_stencil GL\_EXT\_packed\_float GL\_EXT\_packed\_pixels GL\_EXT\_rescale\_normal GL\_EXT\_secondary\_color GL\_EXT\_separate\_specular\_color GL\_EXT\_shader\_integer\_mix GL\_EXT\_shadow\_funcs GL\_EXT\_stencil\_two\_side GL\_EXT\_stencil\_wrap GL\_EXT\_texture3D GL\_EXT\_texture\_array GL\_EXT\_texture\_buffer GL\_EXT\_texture\_compression\_s3tc GL\_EXT\_texture\_edge\_clamp GL\_EXT\_texture\_env\_add GL\_EXT\_texture\_env\_combine GL\_EXT\_texture\_filter\_anisotropic GL\_EXT\_texture\_integer GL\_EXT\_texture\_lod\_bias GL\_EXT\_texture\_rectangle GL\_EXT\_texture\_sRGB GL\_EXT\_texture\_sRGB\_decode GL\_EXT\_texture\_shared\_exponent GL\_EXT\_texture\_snorm GL\_EXT\_texture\_storage GL\_EXT\_texture\_swizzle GL\_EXT\_transform\_feedback GL\_IBM\_texture\_mirrored\_repeat GL\_INTEL\_map\_texture GL\_INTEL\_performance\_queries GL\_INTEL\_performance\_query GL\_KHR\_blend\_equation\_advanced GL\_KHR\_debug GL\_NV\_blend\_square GL\_NV\_conditional\_render GL\_NV\_primitive\_restart GL\_NV\_texgen\_reflection GL\_SGIS\_generate\_mipmap GL\_SGIS\_texture\_edge\_clamp GL\_SGIS\_texture\_lod GL\_SUN\_multi\_draw\_arrays GL\_WIN\_swap\_hint WGL\_ARB\_buffer\_region WGL\_ARB\_create\_context WGL\_ARB\_create\_context\_profile WGL\_ARB\_create\_context\_robustness WGL\_ARB\_extensions\_string WGL\_ARB\_framebuffer\_sRGB WGL\_ARB\_make\_current\_read WGL\_ARB\_multisample WGL\_ARB\_pbuffer WGL\_ARB\_pixel\_format WGL\_ARB\_pixel\_format\_float WGL\_EXT\_create\_context\_es2\_profile WGL\_EXT\_create\_context\_es\_profile WGL\_EXT\_depth\_float WGL\_EXT\_extensions\_string WGL\_EXT\_pixel\_format\_packed\_float WGL\_EXT\_swap\_control WGL\_EXT\_swap\_control\_tear WGL\_NV\_DX\_interop 

Implementation Dependent GPU Limits:

Maximum Batch Vertices: 1048576
Maximum Batch Indices: 1048576

Maximum Varying Floats: 64
Maximum Vertex Attributes: 16
Maximum Vertex Uniform Components: 4096
Maximum Fragment Uniform Components: 4096
Maximum Vertex Image Units: 16
Maximum Fragment Image Units: 16
Maximum Pipeline Image Units: 96

Compute Shader Support: 0
Shader Storage Buffer Objects Support: 0
Image Load/Store Support: 0


CPU device capabilities: SSE2 SSE41

oneAPI device capabilities:

Enabled add-ons:

io_anim_bvh (version: (1, 0, 1), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_anim_bvh\
io_curve_svg (version: UNKNOWN, path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_curve_svg\
io_mesh_ply (version: (2, 2, 0), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_mesh_ply\
io_mesh_stl (version: (1, 1, 3), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_mesh_stl\
io_mesh_uv_layout (version: (1, 1, 5), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_mesh_uv_layout\
io_scene_fbx (version: (4, 37, 5), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_scene_fbx\
io_scene_gltf2 (version: (3, 5, 30), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_scene_gltf2\
io_scene_obj (version: (3, 9, 0), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_scene_obj\
io_scene_x3d (version: (2, 3, 1), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\io_scene_x3d\
cycles (version: UNKNOWN, path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\cycles\
pose_library (version: (2, 0), path: C:\Program Files\Blender Foundation\Blender 3.5\3.5\scripts\addons\pose_library\
submitted by Craig5728 to blenderhelp [link] [comments]