How to Use Binary Options Graphs - 6 Steps Every Trader ...

BITCOIN BINARY OPTIONS PLATFORM BTCLEVELS RELAUNCHES WITH NEW EXCHANGE RATE GRAPH AND USER INTERFACES

Established September 2013, BTClevels was the first dedicated Bitcoin binary options trading platform: enabling anyone worldwide to open long or short positions, speculate and potentially profit on Bitcoin’s volatile price movements. The Bitcoin binary options service has now relaunched with a new exchange rate graph and user interface, and the removal of limits on the size of positions which can be opened. The live Bitcoin exchange rate is now pulled direct fromHitbtc.
BTCLevels also has a new method of distributing Bitcoin to those who correctly predict future Bitcoin price movements. After users have made a correct prediction on the future Bitcoin price, they will share the total Bitcoin of the losing side with the other participants who also made the correct prognosis. The size of the Bitcoin reward received depends on the size of the player’s original position. The earlier users made the correct prediction – the more Bitcoin they will receive. BTCLevels’ new design includes no Bitcoin limits on the size of positions which can be opened; meaning potential Bitcoin profits for punters are also unlimited.
Taking its listings and Bitcoin prices directly from Hitbtc in real time, BTCLevels ensures users get an absolutely fair opportunity to make the smartest trade possible. Binary option expiration times are flexible and can be chosen by users on a newly designed rolling graph; with the average expiry time being 1440 minutes. For those who like to trade on the news, the new BTCLevels’design also includes an integrated live news feed of the latest news in the Bitcoin space: enabling traders to make decisions on the future Bitcoin exchange value based on cutting edge Bitcoin news.
Designed to be as intuitive and easy to use as possible, opening positions on BTCLevels is done in two clicks and requires no registration. Although registration is available to those users who seek facilitated functionality and a better user experience.
With their new user friendly design, exchange rate graph, enhanced functionality, and removal of Bitcoin limits on the size of positions which can be opened, BTCLevels has shown that the original Bitcoin binary options platform is here to stay.
To open a position or for more information visit: btclevels.com
To learn more please contact via feedback form: btclevels.com/contacts
submitted by BTClevels to BitcoinMarkets [link] [comments]

NEWSCANADA PLUS: Bitcoin Binary Options Platform BTCLevels Relaunches With New Exchange Rate Graph And User Interfaces

NEWSCANADA PLUS: Bitcoin Binary Options Platform BTCLevels Relaunches With New Exchange Rate Graph And User Interfaces submitted by BTClevels to Bitcoin [link] [comments]

AMZN Trade Retrospective: Collecting a $.37 Credit for the Potential to Make Another $50

AMZN Trade Retrospective: Collecting a $.37 Credit for the Potential to Make Another $50
There are different ways to trade in a choppy environment. Here’s a deep dive on how I attempted to use weekly options to trade a potential bounce in AMZN, and collected $.37 initially, for the possibility of making $50 more, even though the trade ended up being only an $.81 winner.

The Entry

Last Thursday, 9/24, when $AMZN was trading at about $3000 a share, I was looking for a cheap way to play a bounce in the stock. During that time, my bias in the markets had begun to shift to a more bullish stance after seeing how the market had difficulty grinding lower. With that in mind, I wanted to play a potential bounce in tech. But I knew I didn’t want to pay a debit at all to play for a bounce that might not even happen, given how uncertain and choppy the markets had been, but I still wanted to set myself up to capture some large gains if AMZN did indeed bounce. Therefore, the strategy that made the most sense to me, was a Call broken wing butterfly.
Given that I’m a very short-term options trader who loves trading weeklies, I was trying to look for a cheap butterfly for the upcoming week that I could put on for a net credit. After exploring the options chain, I came across the +1/-2/+1 3300/3350/3450 call broken wing butterfly for the Oct 2 series. This fly, at the time (on Sept 24), was trading for a total of $.37 credit. Meaning, by putting on that butterfly, I would get paid $.37, and the following scenarios could happen:
  1. If AMZN decided to tank or hang out sideways and never get up close enough to the butterfly to expand the spread in my favor, then I’d walk away pocketing the $.37 credit
  2. If AMZN slowly crept up to reach exactly 3350 by expiration, I’d not only get to keep the credit, but also be able to sell the butterfly back out for $50. Of course, it doesn’t need to reach exactly 3350 by expiration. If AMZN slowly worked its way up to near 3300, then the butterfly would expand very nicely as well.
  3. If AMZN blew past 3400 by expiration, I’d see a loss, up to a maximum of $50 / spread (if $AMZN moves past 3450). That’s because the 3300/3350 long call vertical of the fly provides 50 points of coverage before I essentially start losing money from the 3350/3450 short vertical, up until that 3450 kicks in to cap off further upside losses.
So that is a rough outline of the potential scenarios that would happen with this trade.
Given the choppy market conditions, I was ok with risking $50/spread (point #3), in order to not lose money if I’m wrong on direction (point #1), while at the same time, keeping myself open to the possibility of the butterfly expanding in my favor (point #2) for some potentially very large gains.
But satisfying point #3 is tricky. I needed more data points suggesting that $AMZN wouldn’t surge higher early on in the trade. Because if $AMZN did surge higher early on in the trade, then while the 3300 long call would rise in value, those two 3350 short calls would also rise in value, and because there’d still be some time value left, they could be very juiced up and eat away at the profits of that 3300 long call, so much so that the 3450 long call won’t even be able to offset those losses, especially given how far out of the money that 3450 call is.

AMZN on 9/24, daily timeframe
Looking at the chart above on 9/24, we can see that AMZN was trading at around $3000/share. In order to reach $3300 (where the first long call of the broken wing butterfly is), the stock would need to
  1. Breach the 38% fib retracement (~AMZN=3131) of the move from the 9/2 high to the 9/21 low,
  2. Breach the 20MA and 50MA
  3. Breach the 50% fib retracement (~AMZN=3211)
  4. Breach the 61.8% fib retracement (~AMZN=3292)
before finally reaching the 3300 long call. All of these levels, I felt, should provide some resistance for AMZN to have to chew thru over the following week, before it even gets to the long call. And by that time, if AMZN did reach 3300, then the 3300 long call would still have a lot of extrinsic value left (somewhere around $20 on the last day), while the 3350 short calls would be very cheap (each around $5), so the entire spread could be roughly worth $10. Which would be great, because that means I’d be getting paid $.37 to make another $10.
So with all of the above considered, I chose to take on that upside risk, for a chance to make potentially $50 (realistically I try to aim for just half of the max profit: $25, and start harvesting profits and peeling off the flies at around $5-$10), and that day on 9/24, entered the Oct2 3300/3350/3450 call broken wing butterfly for a $.37 credit.
After entry, on Friday 9/25 and Monday 9/28, AMZN made steady progress upwards, from 3000 to 3175, breaching the 31.8% retracement and tagging the 20MA and 50MA from below.

AMZN on 9/28, daily timeframe
but this move wasn’t large and fast enough to expand the value of the 3350 short calls. In fact, theta did a great job draining those short calls, while the 3300 long call did a good job retaining its premium, so the butterfly had already expanded a bit in my favor, and I was sitting at about a small $1.00 profit.

The Adjustment

However, on Tuesday and Wednesday, AMZN began to stall out. By the end of Wednesday 9/30, when it looked like AMZN was putting in a topping tail, I decided that AMZN might not be able to make it near 3300 by expiration Friday, so I wanted to take in a bit more credit while I still could, before theta drained more of that 3300 long call. At the time, the spread was trading for almost $2.
That’s when I made a slight adjustment to the spread and sold the 3300/3310 call vertical.

AMZN on 9/30, daily timeframe
This essentially rolled the 3300 long call up to 3310, and I was able to collect a small $.44 credit for it. However, this adjustment did open me up to an additional $10 of risk to the upside, because now, the long call vertical portion of the butterfly is only $40 wide (instead of $50). Still, with only 2 days left for AMZN to go higher, I felt comfortable taking on a bit more upside risk knowing that theta is going to be working hard to drain those 3350 short calls if AMZN did decide to surge higher. And at that moment, I actually wanted AMZN to move more towards my fly. My deltas were still positive, and the risk graph showed that a move towards the short strikes of the fly would expand it by another $4-5 by Thursday.
So after this adjustment, the trade stood at a $.81 credit, and the profit potential on the fly was now $40 instead of $50. Which is still pretty good.

The Tease

On Thursday, AMZN showed some strength and closed above the 50% fib (3211), which meant that if on Friday, AMZN worked its way up to around 3300, the fly could potentially be worth $5-10. Things were looking good (on any continued bullishness, the next target for AMZN was the 61.8% fib retracement at ~3300). So I left the trade alone without making any more adjustments.

AMZN on 10/1, daily timeframe

The Flop

Unfortunately, on Thursday night, news broke out that Trump was diagnosed with Coronavirus, and the market fell lower. By the open, AMZN was already trading at around 3150, roughly 150 points below the fly. The spread had instantly lost all of its value, so I basically let it expire worthless and walked away pocketing the $.81 credit.

https://preview.redd.it/mpwrkjpk6xq51.png?width=4096&format=png&auto=webp&s=8dd7f4da7b000b2266ab57a3c23c1863f9423704
While the trade did not work out as well as I had liked, the important thing to note is that I was able to get paid even when the trade didn’t go in my favor. With options, there are ways to trade an underlying to a certain target without ponying up a debit, albeit at the cost of introducing tail risk, while offering the possibility of very large upside. This may be a style of trading that one can consider employing when the outlook of the markets is uncertain, as long as the trader is willing to make the necessary adjustments to control risk.
Which leads me to the following section:

FAQ

What if AMZN decided to surge very early on during the trade? What if AMZN had surged to 3300 with 4-5 DTE, hence juicing up the short calls and causing the butterfly to take on large negative deltas?
Even though the position would be very theta positive, I would pony up the debit to cap off the upside risk by buying the 3400/3450 call vertical, hence turning the 3300/3350/3450 broken wing butterfly into the 3300/3350/3400 balanced butterfly. From there on out until expiration, I would look for ways to reduce the debit incurred from that adjustment.

But what if AMZN tanked afterwards? You could end up getting whipsawed.
I’d rather be safe than sorry and make the necessary adjustments to avoid getting run over, because I don’t like playing the hope card. I could always undo the adjustment and look for ways to collect back more credit (at the cost of introducing risk elsewhere), depending on my new directional bias on AMZN at the time.

Your maximum loss is so large, $5000. I’d never make that bet, I would never risk $5000 to make $5000.
This style of trading is not for everyone. There are different ways to perceive risk. I don't really think of risk as binary as “max gain vs max loss”. If the trade goes against me, I’m not going to open myself up to the possibility of eating the maximum loss. I’m going to manage that risk and make sure that I don’t lose any money at all on the trade. Basically, I’m not going to just put on the trade, walk away to the prayer room, and come back at expiration and hope that AMZN expired at 3350.

Why not just join thetagang and slap on iron condors / credit spreads in this environment? You could’ve collected more credit by selling a 50 point wide put vertical with your bounce thesis.
Different traders have different styles. I personally don’t like pure premium selling strategies. I’d rather have long options in front of the shorts to open myself up for some large upside and convexity in the P/L curve, rather than limit myself to the concavity of pure premium selling strategies. Having long options in front of the shorts also helps me sleep better at night.

It’s hard to read this. Is there a more visual explanation?
Here’s a video on it: https://www.youtube.com/watch?v=8uq76fZ3EME

TL;DR - I used weekly options to trade a potential bounce in AMZN, and got paid $.37 initially to do so, for the possibility of making $50 more. While the trade did not pan out, I walked away pocketing $.81 for being wrong.
submitted by OptionsBrewers to options [link] [comments]

RESULTS of the State of the Game Survey: September 2020

Hi all,

It’s time for the results!

Thank you to everyone who took the time to respond - we had over 1,750 responses, which is great! These insights wouldn’t be possible without your time and support.

As always, neither myself nor this survey are associated with Intelligent Systems or Nintendo in any way. Please direct feedback about the game itself to the official channels.

Now let’s get into it!
 
Previous Survey Results:
April_2020_State_of_the_Game_Survey

~ Demographics ~

53.8% began playing FE:H in February 2017, with 20.0% more joining during the first year of the game. 12.0% of respondents joined during the second year, 8.7% joined during the third, and 4.0% joined during the fourth year (the last ~7 months).

The age range breakdown of respondents is as follows:

75.8% of respondents identified as Male, 18.4% as Female, and 3.0% as Non-binary.

24.6% of respondents have never missed a daily login, while a further 38.8% have missed less than a month’s worth of logins, 11.7% missed 1-2 months, 9.9% missed 3-6 months, 5.8% missed 7-12 months, and 4.7% missed over a year’s worth.

33.5% report being F2P, while 28.7% have spent less than $100, 18.3% spent between $100 - $499, 7.3% spent between $500 - $999, and 8.7% have spent over $1000.

46.6% last spent money on FE:H during the fourth year of the game (the last 3 months), while 6.6% last spent money during the third year of the game, 5.8% last spent during the second year of the game, and 5.1% last spent money during the first year of the game.

~ Summoning ~

“Which of the following banners have you used orbs on at least once?”
  • (86.8%) A New Future (CYL 4)
  • (60.2%) Overseas Memories (3H Summer)
  • (59.8%) Dark Burdens (Fallen Heroes)
  • (57.9%) Legendary Heroes: Edelgard
  • (55.2%) Legendary Heroes: Corrin
  • (53.1%) Book IV Mid: Mirabilis and More
  • (52.9%) Hero Fest
  • (52.2%) Pirate’s Pride
  • (44.5%) Mythic Heroes: Hel
  • (44.2%) Mythic Heroes: Mila
  • (43.7%) Bridal Beloveds
  • (39.6%) Summer Passing (Sacred Stones Summer (mostly))
  • (37.5%) Legendary Heroes: Seliph
  • (31.1%) Light and Shadow (New Mystery)

“Which of the following banners did you use the most orbs on?”
  • (44.8%) A New Future (CYL 4)
  • (8.6%) Overseas Memories (3H Summer)
  • (5.9%) Legendary Heroes: Corrin
  • (5.8%) Dark Burdens (Fallen Heroes)
  • (5.5%) Pirate’s Pride
  • (4.9%) Legendary Heroes: Edelgard
  • (4.5%) Hero Fest
  • (3.5%) Mythic Heroes: Hel
  • (3.0%) Bridal Beloveds
  • (2.8%) Book IV Mid: Mirabilis and More
  • (2.5%) Summer Passing (Sacred Stones Summer (mostly))
  • (2.5%) Legendary Heroes: Seliph
  • (2.3%) Mythic Heroes: Mila
  • (1.7%) Light and Shadow (New Mystery)

“What was your favorite banner?”
  • (37.4%) A New Future (CYL 4)
  • (10.9%) Dark Burdens (Fallen Heroes)
  • (8.9%) Pirate’s Pride
  • (8.5%) Overseas Memories (3H Summer)
  • (5.7%) Hero Fest
  • (5.4%) Legendary Heroes: Corrin
  • (3.3%) Legendary Heroes: Edelgard
  • (2.9%) Legendary Heroes: Seliph
  • (2.6%) Book IV Mid: Mirabilis and More
  • (2.6%) Bridal Beloveds
  • (2.5%) Summer Passing (Sacred Stones Summer (mostly))
  • (2.3%) Light and Shadow (New Mystery)
  • (1.5%) Mythic Heroes: Hel
  • (1.4%) Mythic Heroes: Mila

“Did you spend money specifically to summon on any of the banners below?”
  • (17.6%) A New Future (CYL 4)
  • (10.3%) Overseas Memories (3H Summer)
  • (8.9%) Legendary Heroes: Corrin
  • (6.8%) Dark Burdens (Fallen Heroes)
  • (6.6%) Pirate’s Pride
  • (6.5%) Legendary Heroes: Edelgard
  • (5.8%) Hero Fest
  • (5.1%) Bridal Beloveds
  • (4.9%) Mythic Heroes: Hel
  • (4.8%) Book IV Mid: Mirabilis and More
  • (4.8%) Mythic Heroes: Mila
  • (4.8%) Summer Passing (Sacred Stones Summer (mostly))
  • (3.4%) Light and Shadow (New Mystery)
  • (3.3%) Legendary Heroes: Seliph

~ Summoning Mechanics ~

33.7% spent orbs on the Hero Fest banner AFTER Intelligent Systems announced how they would be compensating players for the Hero Fest banner glitch, compared to 61.7% who did not.

30.5% say that knowing about the compensation for the Hero Fest banner glitch caused them to spend more orbs on the banner than they would have otherwise, compared to 41.5% who say it did not. 28.0% did not spend orbs on the Hero Fest banner.

34.3% feel positively or very positively about the quality of 4* focuses on regular banners, compared to 26.9% who feel negatively or very negatively.

69.7% feel positively or very positively about the quality of 4* focuses on seasonal banners, compared to 7.8% who feel negatively or very negatively.

53.8% report that the system guaranteeing a free 5* after 40 summons generally makes them summon more, while 5.4% report that it generally makes them summon less and 36.1% report no change in their summoning habits on New Heroes banners.

“If all New Heroes Banners used the permanent 40-summons-for-a-guaranteed-5* system that CYL4 used, how would your orb-spending habits on New Heroes banners change?”
  • (1.8%) I would spend fewer orbs than I did before
  • (22.3%) I would spend the same amount of orbs I usually do
  • (10.3%) I would spend more orbs than I did before
  • (62.2%) My spending would depend more on the Heroes offered

~ Choose Your Legends IV ~

“Which CYL4 Brave Heroes have you summoned, whether from the guaranteed choice banner or the regular banner?”
  • (78.0%) Dimitri
  • (73.4%) Claude
  • (65.7%) Edelgard
  • (56.6%) Lysithea

Of the summoning milestones on the CYL4 banner:
  • (20.2%) did not reach any of these summoning milestones
  • (79.7%) reached 40 summons
  • (41.0%) reached 80 summons
  • (19.8%) reached 120 summons
  • (11.1%) reached 160 summons

45.7% say that the free 5* hero at 40, 80, 120 and 160 summons caused them to spend more on CYL4 than they would have otherwise, while 50.3% say it did not.

22.8% say that the potential use of a new Brave Hero in future F2P Guides for content such as Hero Battles influenced their Brave Heroes summons, compared to 74.0% who say it did not.

“If you could only get ONE of the new Brave Heroes, which one would you choose?”
  • (36.8%) Dimitri
  • (28.9%) Edelgard
  • (22.9%) Claude
  • (7.8%) Lysithea

“Which Brave Hero do you believe is the overall strongest?”
  • (60.7%) Edelgard
  • (21.9%) Dimitri
  • (7.9%) Claude
  • (1.2%) Lysithea

“Which Brave Hero do you believe is the overall weakest?”
  • (61.2%) Lysithea
  • (13.7%) Claude
  • (7.0%) Dimitri
  • (1.7%) Edelgard

“Which Brave Hero do you believe has the best art?”
  • (32.9%) Claude
  • (27.3%) Dimitri
  • (20.1%) Lysithea
  • (13.3%) Edelgard

“Which set of Brave Heroes is your favorite overall?”
  • (24.2%) 1st CYL (Ike, Lucina, Lyn, Roy)
  • (19.4%) 2nd CYL (Ephraim, Celica, Hector, Veronica)
  • (11.2%) 3rd CYL (Alm, Camilla, Eliwood, Micaiah)
  • (39.9%) 4th CYL (Claude, Dimitri, Edelgard, Lysithea)

23.6% feel positively or very positively about the addition of Jorge as the CYL4 GHB hero, compared to 33.0% who feel negatively or very negatively.

86.3% believe CYL5 should add further protections against vote botting, compared to 4.4% who do not.

70.1% believe CYL5 should require Nintendo Account sign-in to vote, compared to 12.6% who do not.

~ Feh Pass and Resplendent Heroes ~

41.2% feel negatively about the addition of the Feh Pass (down 15.8% from the last survey), compared to 11.6% who feel positively (up 1.5% from the last survey). 46.1% are neutral (up 14.3% from the last survey).

40.2% have purchased the Feh Pass, compared to 59.8% who have not. This is a 9.5% increase compared to the last survey, following a 6.7% increase before that.

Of those who have subscribed to Feh Pass, 17.4% have purchased Resplendent Heroes separately (up 12.9% from the last survey), compared to 82.6% who have not.

“Which Resplendent Hero has your favorite art?”
  • (13.4%) Cordelia
  • (12.8%) Eliwood
  • (8.7%) Eirika
  • (8.4%) Olwen
  • (7.5%) Sophia
  • (7.3%) Minerva
  • (6.0%) Azura
  • (5.7%) Lyn
  • (5.2%) Ike
  • (4.1%) Sanaki
  • (4.0%) Roy
  • (3.7%) M!Robin
  • (2.3%) Hector
  • (1.6%) Linde
  • (1.3%) Alm

“Which Resplendent outfit theme is your favorite?”
  • (16.3%) Muspell
  • (15.0%) Askr
  • (14.8%) Nifl
  • (11.5%) Embla
  • (11.5%) Hel
  • (10.3%) Ljosalfheimr

~ Miscellaneous ~

15.8% feel positively about the introduction of Harmonized Heroes, compared to 31.3% who feel negatively.

29.5% have a Harmonized Hero, compared to 70.1% who do not.

14.6% feel positively or very positively about the Resonant Battles game mode, compared to 51.5% who feel negatively or very negatively.

4.6% say that the Resonant Battles game mode influenced them to pull for Harmonized Heroes, compared to 94.5% who say it has not.

34.8% believe the new Arena maps are better than the maps they replaced, while 7.4% believe they are worse, and 36.7% believe they are about the same.

“How often do you use Auto Dispatch in Aether Raids?”
  • (34.3%) All of them, always
  • (0.2%) All of them, in Light Season
  • (3.6%) All of them, in Astra season
  • (24.3%) Only sometimes
  • (37.6%) I never use it

“IV Mango” is the preferred term for Trait Fruit according to 32.2% of respondents, followed by “IVcado” at 28.9%, “Fruit” at 7.6%, and “Dragonfruit” at 6.6%. The remaining 24.7% prefer to just call them Trait Fruit.

39.3% say they will use their first Trait Fruits on a Heroic Grails unit, while 32.9% say they will use them on a Summonable unit, and 1.3% say they will use them on an Askr unit.

58.7% prefer Stat Boosts for Legendary Heroes, compared to 26.3% who prefer Pair-Up.

56.5% generally prefer Regular Duo Heroes, compared to 8.8% who prefer Harmonized Duo Heroes.

1.8% say that the update that raised the minimum hardware/software required to play the game affected their ability to play FE:H, compared to 95.8% who say it did not.

~ Recurring Miscellaneous ~

“Which game do you want a New Heroes banner from the most?”
  • (26.0%) Three Houses (-1.9%)
  • (9.7%) Radiant Dawn (+0.5%)
  • (7.7%) Sacred Stones (+0.2%)
  • (7.5%) Awakening (-3.1%)
  • (6.4%) Genealogy of the Holy War (-1.3%)
  • (6.1%) Path of Radiance (-0.9%)
  • (6.0%) Gaiden / Shadows of Valentia (+2.7%)
  • (5.9%) TMS #FE (+1.9%)
  • (5.4%) Blazing Blade (+1.3%)
  • (5.0%) Fates (+1.0%)
  • (4.2%) Thracia 776 (+0.8%)
  • (2.4%) Binding Blade (+0.6%)
  • (0.8%) Shadow Dragon and the Blade of Light / Shadow Dragon (-1.0%)
  • (0.8%) Mystery of the Emblem / New Mystery of the Emblem (-1.1%)

“How much do you care about your rank in the following modes?”
  • (2.90/5.00 average) Arena
  • (2.82/5.00 average) Aether Raids
  • (2.48/5.00 average) PvE game modes with player ranking boards
  • (1.82/5.00 average) Arena Assault

“How have recent changes to FE:H changed your opinion on the game as a whole?”
  • (39.3%) My opinion was positive and has stayed positive
  • (5.7%) My opinion used to be negative, but has turned positive
  • (40.1%) Neutral
  • (9.9%) My opinion used to be positive, but has turned negative
  • (5.1%) My opinion was negative and has stayed negative

~ Intelligent Systems Approval Ratings ~

The approval ratings are calculated by the proportion of Approve responses compared to the number of both Approve and Disapprove responses.

Percent who approve of the way Intelligent Systems is handling:
  • 74.6% - The addition of new heroes / characters to the game (+11.9)
  • 69.4% - The gacha mechanics and summoning banners (+5.5)
  • 59.2% - The story/plot (+9.4)
  • 85.2% - Unranked PvE game modes (Hero Battles, Forging Bonds, Tactics Drills, Lost Lore, Hall of Forms) (-1.2)
  • 50.7% - Ranked PvE game modes (Voting Gauntlets, Tempest Trials, Grand Conquest, Allegiance Battles, Rokkr Sieges, Mjolnir's Strike) (-2.6)
  • 34.6% - Arena (-6.2)
  • 48.0% - Arena Assault (+6.7)
  • 45.8% - Aether Raids (+12.7)

40.5% believe Intelligent Systems cares about its Free to Play userbase (up 10.1% from the last survey), while 34.7% do not. This continues the upward trend from the previous survey, bringing us to 8.8% down from where we were before the February drop).

42.9% approve of the way Intelligent Systems is handling Fire Emblem: Heroes as a whole (up 14.8% from the last survey), while 16.9% disapprove. This continues the upward trend from the previous survey, bringing us to only 2.5% down from where we were before the February drop).

A NOTE ABOUT METHODOLOGY: The overall approval ratings question above has traditionally been the exact percent of Approve responses, as a proportion with both Neutral and Disapprove responses. Note that this is different than the way approval is calculated for individual modes (the proportion of Approve responses compared to the number of both Approve and Disapprove responses), where Neutral responses are excluded. The difference in calculation has continued this way in order to maintain comparability with previous survey results.
For comparisons sake, the overall approval rating trend going by raw Approval percentage over the last 4 surveys is: 50.6% (Dec) -> 22.9% (Feb) -> 28.1% (Apr) -> 42.9% (Sept)
Whereas the overall approval rating trend going by proportion of Approve/Disapprove with the Neutrals excluded over the last 4 surveys is: 82.2% (Dec) -> 41.0% (Feb) -> 51.3% (Apr) -> 71.7% (Sept).

~ Bonus Questions ~

“Who is your Favorite Hero added since the last survey?”
  • Dimitri (Brave) is the winner, followed by Edelgard (Brave), then Claude (Brave).
  • Full results here: [Graph]

“Who is your Most Wanted Hero added since the last survey?”
  • Tibarn (Pirate) is the winner, followed by Corrin (F, Legendary), then Micaiah (Duo, Bridal).
  • Full results here: [Graph].

“What would be the best Harmonized Hero (a pair of two heroes from different games) and why?”:

Rather than selecting a subset of responses this time, the link below is to a google sheet of almost all unique responses. I cleaned it up a little bit to remove “idk” type answers, duplicates, and partial string duplicates, so don’t worry if you don’t see your exact response in it.

[Full Responses].

~ Feedback ~

As always, I received lots of great feedback, both in your survey responses and in the thread itself. A heartfelt thank you to all participants for your encouragements and criticisms - these surveys wouldn’t be where they are without your feedback. But it’s not all serious; feedback messages also included:

  • #FloofMomGang #GiveLeoAGoodFuckingAltForOnce #NowiRefineWhen #TelliusNewHeroesPlz #ElinciaResplendentWhen #JusticeForDedue #PleaseRemoveLChromInstysIAmBeggingYouICantLiveLikeThisAnymore
  • “There once was a CYL4 banner / That hit my orbs hard like a hammer / The very next day / FloomMom Duo came our way / Now I'm stuck bartering with a loan planner”
  • bonk, go to survey jail”
  • “Am I also allowed to put in "Norne and Azura" for a Harmonized Hero pair? No reason.”
  • “Brace yourself. Winter (armours) are coming!” “Brave Hector's refine has made me so very happy with it's inclusion. Go shove your bow up your butt Legendary Chrom.”
  • “Give me villager alts or give me death”
  • “I expect the next survey to come with +12 to attack, null follow up, and special cooldown reduction.”
  • “The true best Harmonized Hero would be Azura and Roy since it would make me uninstall the game and never want to play a gacha ever again”
  • “My headcanon for the dream storyline is that the evil fairies have the Summoner off picking up pebbles that look like orbs. Fredrickson would be proud.”
  • “Where's the most wanted unit to add to the game question so I can shout my want for Seteth into the void?”
  • “I no longer dab, for Legendary Seliph has finally appeared.”
  • And greetings from Argentina, the Bahamas, Brazil, Chile, Colombia, Finland, Germany, Greece, Hong Kong, Ireland, Russia, South Korea, Sweden, the UK, Vietnam, the Pacific Northwest, Alaska, Toronto, and St. Louis, as well as from many fictional locations!
And some personal/meta comments:
  • “Any chance we end up seeing another Super Serious Survey in the not-so-distant future?” -> I could not believe it’s been over a year since the last one! We’ll have to do one soon!
  • “Feels like the end of an era, not having to count all my five stars” -> I know, right? I may have it return in a side survey for the most hardcore of respondents at some point, since some people are asking about it and it would be good to get data on it every once in a while.
  • “I was looking through your Nornes skills and saw you haven't given her live for bounty yet! It's the best skill for her, what are you doing!?” -> I am a fraud :( I have given her Live for Honor though :P
  • “What do you hope for in FEH?” -> Norne alt, Resplendent Jaffar, and Shamir
  • Multiple people mentioned that they had returned after a long break and were surprised to see Norne instead of Azura! Welcome back!
  • I also missed a bunch of other possible Trait Fruit nicknames, which I knew would inevitably happen. Sorry!

Note: Please don’t ask me to feature your feedback comment; it’s the only guaranteed way to not have your comment added!

Finally, the suggestion to have separate options for serious vs non-serious feedback was a good idea, I’ll try that out on the next survey!

~ Closing Remarks ~

If you missed out on responding to this survey when it was available, consider subscribing to FEHSurveys. This subreddit serves as a place to organize FE:H-related surveys, make new releases more visible, and make it easier for users to see when surveys are active.

Thanks again to everyone who participated! I hope you find the results interesting, and if there’s anything else you think can be discovered from the data, let me know and I’ll do my best to oblige!
 
 
Weekly/Important Megathreads:
Weekly Discussion Megathread
Tempest Trials+: Dancing Affinity Megathread
Forging Bonds: Beyond Blood Rebout Megathread
Limited Hero Battles Megathread
submitted by ShiningSolarSword to FireEmblemHeroes [link] [comments]

/r/reddevils 2020 Census Results

Thank you for taking part of the 2020 edition of /reddevils' census! We had 3,459 responses over the course of several days, and increase of .
Here are the results!
Age
With a year passing, it's understandable that our user base has also aged. What is interesting is that while last year 59.5% of the userbase indicated that they were 25 and younger, only 46.1% did so this year. Given that there was also a large increase in respondents for the "26-30" age group, it seems that we had a lot of 25 year old folks responding last year. Here is a chart showing the break out by age group and also an age distribution graph. I've included also a year-over-year comparison this year. These do not represent percent change but rather simple subtraction. For example, the 4.1% increase seen in the "26-30" age group comes from this year's "26-30" being 29.17% of this years census responses vs. only being 25.07% last year.
Conclusion? We're getting old folks.
Gender
As with every census we've run, /reddevils is overwhelmingly male. 96.2% of respondents indicated that they were male which translates to 3,328 out of the 3,459 responses. The number of ladies here increased greatly compared to last year with 72, up from 28 in 2019. 18 respondents declined to specify their gender while 41 responded with another gender.
Our resident Wookiees have increased in number to 3, up from 1 last year and in the 2012 census. 2 respondents responded as being Non-binary as well as 2 indicated that they were Olesexual. Each of the following received one response apiece: Coca Cola Can, Lockheed Martin F-35 Lightning II, Cube, Moderator, Divine Enlightened Energy Being, Two-Horned Rainbow Unicorn, Earthworm, Bisexual Leprechaun (who, surprisingly was not from Ireland but rather the Land Down Under), Absolute Chad, Anti-Virus, Attack Titan, Neymar, Ole-Wan Keaneobi, Parrot Lord, Frank Lampard, Optimus Prime, Potato, Slightly Under Ripe Kumquat, Gek (Geek?), Twin Engine Rafale Fighter Jet, Gender Is A Construct, Vulcan, Washing Machine, Wolfbrother, Juggernaut, Woolly Mammoth, Luke Shaw's Masculine Bottom, and Mail. There was also one respondent who deigned to use the "Other" option here to leave me a very rude message. Guess you can't please everyone.
Employment
Most of the reds are employed (75.3% across the Employed, Student Employed, and Self Employed categories), up from last years' 71.5%. Given the current state of the world, it is nice to see that most are still employed. Our student population has gone down, understadably, from 37.4% across the two student categories to 30.0%. A full breakdown of the year-over-year changes can be seen here. Our retirees increased in number from 1 last year to 11 this. Enjoy retirement sirs/madams.
Residence
As expected, the majority of /reddevils is UK or US based (25.85% and 25.93%, respectively). We have seen major changes this year, particularly in relation to Scandinavia, which saw the largest increase in percentage points year-over-year. I wonder what happened there.
If we're breaking it down by the regions I arbitrarily put into the census form, UK (England) is the clear winner for a second year running with 569 members reporting living in England and another 184 specifically saying they are in Manchester.
I received some feedback about covering large areas with a single region. This was largely driven by how few responses had come from these these regions historically. I'll include a few more next year but please do not expect me to list every one of the the 195 countries in the world. I've also received some feedback about not allowing any options for folks with family ties or had grown up in England/Manchester and had moved away. This will also be included in next years census.
Season TicketholdeMatches Attended
Overwhelmingly, most of us here are not season ticketholders (97.95%). We did see an increase in those who are, though it is fairly minor.
Most folks are unable to attend games as well. The number of fans who do go to many games (16+ per season) more than tripled from last year. You all are the real MVPs.
How long have you been following football/Manchester United?
Understandably, we don't have a whole lot of new fans. Interestingly enough though, we've had a large increase in folks who have started following football regularly in the last 1-3 years despite having followed United for longer than that. Putting on my tin foil hat, that at least makes me think we're more fun to watch these days.
How long have you been a subscriber to /reddevils and how do you usually access Reddit?
There are a lot of new-ish users with 63.6% reporting they have subscribed here for less than 3 years. We have a decent number of /reddevils veterans however, 154 users indicated that they had been subscribed for more than 8 years. It's good to see the old guard still around.
Unsurprisingly, Reddit apps are the most popular method to access Reddit by far. This is followed by Old Reddit users on Desktop, users of the Mobile Reddit website, and then New Reddit users coming in dead last. Long live old Reddit.
Favorite Current Player
The mood around this question was incredibly different than last year. Last year, many were vocal indicating that they had a hard time choosing due to our squad being shit. Victor Lindelof ended up being the by and large favorite with around a quarter of the votes, followed by Paul Pogba and Marcus Rashford.
This year, it appeared that there were no such issues. Only 1 response in the survey indicated that they couldn't choose because our squad was shit while the vast majority either selected a player or indicated that they loved them all. Prime Minister Doctor Sir Marcus Rashford overwhelmingly came in first place with an almost 300 vote lead over second placed Anthony Martial. Bruno Fernandes and Mason Greenwood were neck and neck for a while, eventually settling into third and fourth respectively.
Former crowd favorites Victor Lindelof and Paul Pogba fell down the rankings with Lindelof ending in 8th place and Pogba in 5th.
Favorite All Time Player
Wayne Rooney continued to the be the king of /reddevils amassing nearly double the votes of second placed Paul Scholes. Cristiano Ronaldo came in third after a very tight race with Scholes. Beckham came in fourth followed by fifth placed Cantona and sixth placed Giggsy.
Here is a year-over-year comparison purely on recorded responses. Most players received just about the same share of the votes as they did last year. The biggest changes came from Wayne Rooney (up) and David Beckham (down). The way the numbers land, it almost looks like Wazza was stealing votes from Becks! Ole Gunnar Solskjaer had more of the proverbial pie, again I wonder whats happened there.
My man Park Ji Sung came in 11th place, good to see that there are at least 58 Park lovers out there!
Now for a bit of fun. Someone asked in the Census thread how many of George Best's votes came from Northern Ireland. One user suggested it was all of them, the data on the other hand says otherwise. Only 10 of Best's 29 votes came from Northern Ireland. George Best tied for favorite player there with Wayne Rooney with Paul Scholes and Cristiano Ronaldo tying for 3rd place with 8 votes apiece.
I did this same exercise with a few other players. Here are the results:
  • While Scandinavians votes were joint-most for Ole Gunnar Solskjaer (tied with the UK), he was not the most popular player among respondents living in Scandinavia. He came in second behind Wayne Rooney.
  • Roy Keane both received the most votes from the Republic of Ireland and was also the most popular player among Irish respondents.
  • Eric Cantona was not voted heavily by the French. The British, on the other hand, love him with 82 of his 218 votes coming from the United Kingdom. The majority of Cantona voters are older, with 134/218 being over 30 years of age.
  • Park Ji Sung received the most votes from the US (21) followed by the UK (19) and Southeast Asia (4).
  • Among respondents from the United Kingdom, Wayne Rooney was the most popular followed by Scholes, Ronaldo, and Cantona.
  • Among respondents from the United States, South Asia, and Southeast Asia, Wayne Rooney was the most popular. Scholes and Ronaldo alternated in popularity in second and third place. Beckham placed fourth in all three regions.
Thank you all again for your participation. We'll run one next year and see how things have changed!
submitted by zSolaris to reddevils [link] [comments]

ESP8266 development on OpenBSD with platformio

Hi,
I got platformio running on OpenBSD-current (it should work with older releases, too) and was able to compile a firmware for my ESP8266 NodeMCUv2. I haven't uploaded it to the board, yet, since it's still somewhere in the attic. Will test this soon and update this post. I guess it'll just work.

setup

You have to install the packages arduino-esp8266 and py3-pip:
# pkg_add arduino-esp8266 py3-pip 
And install platformio via pip:
# pip install platformio 

create project

The next steps were done as non-root user.
Now, create your project folder:
$ mkdir -p ~/code/myproject $ cd ~/code/myproject 
and initialize a platformio project:
$ pio init 
It should look something like this:
$ ls -la total 64 drwxr-xr-x 6 lotherk lotherk 512 Nov 1 09:02 . drwxr-xr-x 28 lotherk lotherk 1536 Nov 1 09:02 .. -rw-r--r-- 1 lotherk lotherk 5 Nov 1 09:02 .gitignore drwxr-xr-x 2 lotherk lotherk 512 Nov 1 09:02 include drwxr-xr-x 2 lotherk lotherk 512 Nov 1 09:02 lib -rw-r--r-- 1 lotherk lotherk 364 Nov 1 09:02 platformio.ini drwxr-xr-x 2 lotherk lotherk 512 Nov 1 09:02 src drwxr-xr-x 2 lotherk lotherk 512 Nov 1 09:02 test 
Now start writing code in src/main.cpp:
#include  #include  void setup() { } void loop() { } 
And edit platformio.ini:
[platformio] default_envs = nodemcuv2 [env:nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2 
Please see the official Documention for which platform, framework or board you might need. Remember, this is all for esp8266 chips.

first build

It's now time for the first build, which will very likely fail:
$ pio run 
This will give you:
Processing nodemcuv2 (platform: espressif8266; framework: arduino; board: nodemcuv2) -------------------------------------------------------------------------------- Tool Manager: Installing toolchain-xtensa @ ~2.40802.191122 Error: Could not find the package with 'toolchain-xtensa @ ~2.40802.191122' requirements for your system 'openbsd_amd64' 
Researching this error led me to https://github.com/trombik/platformio-freebsd-toolchain-xtensa/. What @trombik did was creating a fake platformio package with symlinks to the right files on the system. In his case it was FreeBSD but I tried it anyway. It mostly worked out of the box, I just had to symlink the xtensa-lx106-elf-* binaries from /uslocal/bin into the package. I created my own fake package for OpenBSD at https://github.com/lotherk/platformio-openbsd-toolchain-xtensa.
Clone the repository and place it to ~/.platformio/packages/toolchain-xtensa. It is important to name the folder toolchain-xtensa! Ensure that xtensa is installed, but it should come with the arduino-esp8266 package:
$ pkg_info |grep xtensa xtensa-lx106-elf-binutils-2.32 binutils for xtensa-lx106-elf cross-development xtensa-lx106-elf-gcc-5.2.0 gcc for xtensa-lx106-elf cross-development xtensa-lx106-elf-newlib-2.1.0p0 newlib for xtensa-lx106-elf cross-development 
Now change to the directory and run init.sh, which will create all the symlinks you need.
$ cd ~/.platformio/packages/toolchain-xtensa/ $ ./init.sh 
Back to our project and re-run pio:
$ cd ~/code/myproject $ pio run 
This time it does a lot more, but now fails complaining it can't find tools-esptool:
Processing nodemcuv2 (platform: espressif8266; framework: arduino; board: nodemcuv2) ----------------------------------------------------------------------------------- Tool Manager: Installing framework-arduinoespressif8266 @ ~3.20704.0 Tool Manager: Warning! More than one package has been found by framework-arduinoespressif8266 @ ~3.20704.0 requirements: - platformio/framework-arduinoespressif8266 @ 3.20704.0 - jason2866/framework-arduinoespressif8266 @ 2.7.4.1 - tasmota/framework-arduinoespressif8266 @ 2.7.4.3 Tool Manager: Please specify detailed REQUIREMENTS using package owner and version (showed above) to avoid name conflicts Unpacking [####################################] 100% Tool Manager: framework-arduinoespressif8266 @ 3.20704.0 has been installed! Tool Manager: Installing tool-esptool @ <2 Tool Manager: Warning! More than one package has been found by tool-esptool @ <2 requirements: - platformio/tool-esptool @ 1.413.0 - volcas/tool-esptool @ 1.413.1 Tool Manager: Please specify detailed REQUIREMENTS using package owner and version (showed above) to avoid name conflicts Error: Could not find the package with 'tool-esptool @ <2' requirements for your system 'openbsd_amd64' 
Fortunately this is as easy as fixing toolchain-xtensa. I've created a fake package for esptool aswell. esptool must be installed, tho. Which it already should be because of the arduino-esp8266 package. Clone https://github.com/lotherk/platformio-openbsd-tool-esptool to ~/.platformio/packages/tool-esptool (naming is important...) and run init.sh as you've done with the toolchain-xtensa package.
Rerun pio and it should compile now:
$ cd ~/code/myproject $ pio run Processing nodemcuv2 (platform: espressif8266; framework: arduino; board: nodemcuv2) -------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html PLATFORM: Espressif 8266 (2.6.2) > NodeMCU 1.0 (ESP-12E Module) HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash PACKAGES: - framework-arduinoespressif8266 3.20704.0 (2.7.4) - tool-esptool 0.1.0 - tool-esptoolpy 1.20800.0 (2.8.0) - toolchain-xtensa 2.40802.191122 (4.8.2) LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 29 compatible libraries Scanning dependencies... Dependency Graph |--  1.0 Building in release mode Compiling .pio/build/nodemcuv2/src/main.cpp.o Generating LD script .pio/build/nodemcuv2/ld/local.eagle.app.v6.common.ld Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/BearSSLHelpers.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/CertStoreBearSSL.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFi.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiAP.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiMulti.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiSTA.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/ESP8266WiFiScan.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiClient.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiServer.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiServerSecureAxTLS.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o Compiling .pio/build/nodemcuv2/lib74a/ESP8266WiFi/WiFiUdp.cpp.o Archiving .pio/build/nodemcuv2/libFrameworkArduinoVariant.a Indexing .pio/build/nodemcuv2/libFrameworkArduinoVariant.a Compiling .pio/build/nodemcuv2/FrameworkArduino/Crypto.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Esp-frag.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Esp-version.cpp.o Archiving .pio/build/nodemcuv2/lib74a/libESP8266WiFi.a Indexing .pio/build/nodemcuv2/lib74a/libESP8266WiFi.a Compiling .pio/build/nodemcuv2/FrameworkArduino/Esp.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/FS.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/FSnoop.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/FunctionalInterrupt.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/HardwareSerial.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/IPAddress.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/MD5Builder.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Print.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Schedule.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/StackThunk.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Stream.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/StreamString.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Tone.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/TypeConversion.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/Updater.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/WMath.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/WString.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/abi.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/base64.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/cbuf.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/cont.S.o Compiling .pio/build/nodemcuv2/FrameworkArduino/cont_util.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_app_entry_noextra4k.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_eboot_command.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_features.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_flash_quirks.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_flash_utils.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_i2s.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_main.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_noniso.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_phy.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_postmortem.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_si2c.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_sigma_delta.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_spi_utils.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_timer.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_waveform.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_analog.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_digital.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pulse.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pwm.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_shift.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/crc32.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/debug.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/flash_hal.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/gdb_hooks.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/heap.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/libb64/cdecode.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/libb64/cencode.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/libc_replacements.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/sntp-lwip2.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_cache.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_check.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_gc.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_hydrogen.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_nucleus.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/spiffs_api.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/sqrt32.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/time.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/uart.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_info.c.o Compiling .pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_integrity.c.o Compiling .pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_local.c.o Compiling .pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_malloc.cpp.o Compiling .pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_poison.c.o Archiving .pio/build/nodemcuv2/libFrameworkArduino.a Indexing .pio/build/nodemcuv2/libFrameworkArduino.a Linking .pio/build/nodemcuv2/firmware.elf Retrieving maximum program size .pio/build/nodemcuv2/firmware.elf Checking size .pio/build/nodemcuv2/firmware.elf Building .pio/build/nodemcuv2/firmware.bin Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" RAM: [=== ] 32.7% (used 26776 bytes from 81920 bytes) Flash: [== ] 24.6% (used 256780 bytes from 1044464 bytes) Creating BIN file ".pio/build/nodemcuv2/firmware.bin" using "/home/lotherk/.platformio/packages/framework-arduinoespressif8266/bootloaders/eboot/eboot.elf" and ========================= [SUCCESS] Took 70.35 seconds ========================= 
Et voila, you've compiled a firmware for your esp8266 chip on OpenBSD.
Uploading the firmware should only be a matter of configuring the right serial port in platformio.ini. As soon as I get mine from the attic, I will try it and update this post.

Edit: spelling
submitted by lotherk to openbsd [link] [comments]

Retard Bot Update 2: What is there to show for six months of work?

Retard Bot Update 2: What is there to show for six months of work?
What is there to show? Not shit, that's why I made this pretty 4K desktop background instead:
4K
On the real: I've been developing this project like 6 months now, what's up? Where's that video update I promised, showing off the Bot Builder? Is an end in sight?
Yes sort of. I back-tested 6 months of data at over 21% on a net SPY-neutral, six month span of time (with similar results on a 16 year span) including 2 bear, 2 bull, 2 crab months. But that's not good enough to be sure / reliable. I had gotten so focused on keeping the project pretty and making a video update that I was putting off major, breaking changes that I needed to make. The best quant fund ever made, the Medallion fund, was once capable of roughly 60% per year consistently, but in Retard Bot's case 1.5% compounded weekly. "But I make 60% on one yolo" sure whatever, can you do it again every year, with 100% of your capital, where failure means losing everything? If you could, you'd be loading your Lambo onto your Yacht right now instead of reading this autistic shit.

The End Goal

1.5% compounded weekly average is $25K -> $57M in 10 years, securing a fairly comfortable retirement for your wife's boyfriend. It's a stupidly ambitious goal. My strategy to pull it off is actually pretty simple. If you look at charts for the best performing stocks over the past 10 years, you'll find that good companies move in the same general trajectory more often than they don't. This means the stock market moves with momentum. I developed a simple equation to conservatively predict good companies movements one week into the future by hand, and made 100%+ returns 3 weeks in a row. Doing the math took time, and I realized a computer could do much more complex math, on every stock, much more efficiently, so I developed a bot and it did 100% for 3 consecutive weeks, buying calls in a bull-market.
See the problem there? The returns were good but they were based on a biased model. The model would pick the most efficient plays on the market if it didn't take a severe downturn. But if it did, the strategy would stop working. I needed to extrapolate my strategy into a multi-model approach that could profit on momentum during all different types of market movement. And so I bought 16 years of option chain data and started studying the concept of momentum based quantitative analysis. As I spent more and more weeks thinking about it, I identified more aspects of the problem and more ways to solve it. But no matter how I might think to design algorithms to fundamentally achieve a quantitative approach, I knew that my arbitrary weights and variables and values and decisions could not possibly be the best ones.

Why Retard Bot Might Work

So I approached the problem from all angles, every conceivable way to glean reliably useful quantitative information about a stock's movement and combine it all into a single outcome of trade decisions, and every variable, every decision, every model was a fluid variable that machine learning, via the process of Evolution could randomly mutate until perfection. And in doing so, I had to fundamentally avoid any method of testing my results that could be based on a bias. For example, just because a strategy back-tests at 40% consistent yearly returns on the past 16 years of market movement doesn't mean it would do so for the next 16 years, since the market could completely end its bull-run and spend the next 16 years falling. Improbable, but for a strategy outcome that can be trusted to perform consistently, we have to assume nothing.
So that's how Retard Bot works. It assumes absolutely nothing about anything that can't be proven as a fundamental, statistical truth. It uses rigorous machine learning to develop fundamental concepts into reliable, fine tuned decision layers that make models which are controlled by a market-environment-aware Genius layer that allocates resources accordingly, and ultimately through a very complex 18 step process of iterative ML produces a top contender through the process of Evolution, avoiding all possible bias. And then it starts over and does it again, and again, continuing for eternity, recording improved models when it discovers them.

The Current Development Phase

Or... That's how it would work, in theory, if my program wasn't severely limited by the inadequate infrastructure I built it with. When I bought 16 years of data, 2TB compressed to its most efficient binary representation, I thought I could use a traditional database like MongoDB to store and load the option chains. It's way too slow. So here's where I've ended up this past week:
It was time to rip off the bandaid and rebuild some performance infrastructure (the database and decision stack) that was seriously holding me back from testing the project properly. Using MongoDB, which has to pack and unpack data up and down the 7 layer OSI model, it took an hour to test one model for one year. I need to test millions of models for 16 years, thousands of times over.
I knew how to do that, so instead of focusing on keeping things stable so I could show you guys some pretty graphs n shit, I broke down the beast and started rebuilding with a pure memory caching approach that will load the options chains thousands of times faster than MongoDB queries. And instead of running one model, one decision layer at a time on the CPU, the new GPU accelerated decision stack design will let me run hundreds of decision layers on millions of models in a handful of milliseconds. Many, many orders of magnitude better performance, and I can finally make the project as powerful as it was supposed to be.
I'm confident that with these upgrades, I'll be able to hit the goal of 60% consistent returns per year. I'll work this goddamn problem for a year if I have to. I have, in the process of trying to become an entrepreneur, planned project after project and given up half way through when it got too hard, or a partner quit, or someone else launched something better. I will not give up on this one, if it takes the rest of the year or five more.
But I don't think it'll come to that. Even with the 20% I've already achieved, if I can demonstrate that in live trading, that's already really good, so there's not really any risk of real failure at this point. But I will, regardless, finish developing the vision I have for Retard Bot and Bidrate Renaissance before I'm satisfied.

Tl;Dr

https://preview.redd.it/0plnnpkw5um51.png?width=3840&format=png&auto=webp&s=338edc893f4faadffabb5418772c9b250f488336
submitted by o_ohi to retard_bot [link] [comments]

A very long, very indepth attempt at analizing Teemo

Warning, this is extremely long. Like 12 pages on a google doc long. You have been warned.

So there has been a lot of discussion about Teemo recently, from what his iconic skills are(all of them), to what items he can build(all of them), to what position he can be played in(... all of them), and it’s kinda went nowhere fast as Teemo, and by extension his player base, is just too flexible to be defined in any of these ways.
So what actually makes Teemo unique?
His playstyle.
Teemo is an old style of champion. I'm not talking about his art, or his kit(though both of these are technically also true), I'm talking about how Teemo’s goal isn’t to all in and combo his opponent down on their first mistake and snowball from there, but rather to create a lead from dozens of small victories. Your goal isn’t necessarily kill your opponent (though that’s always good) but to force them back, causing them to miss cs and xp repeatedly, or waste their time smashing blindly into a bush. And later in the game, while, again, killing people is now the goal, forcing them to have to back after tripping a few shrooms, or leading them on a fruitless chase through the jungle after splitpushing are just as useful to Teemo. If I had to describe Teemo's playstyle, it would be
Attritional, Rapid Force, Psycologically Manipulative, War Mastermind of Breakdown
I'm only half joking, as even though this is from a Spongebob theory video on Plankton, it actually describes Teemo to some degree.
As The Theorizer(the guy who made the video Im referencing) put it:
Attritional, someone who engages in attrition warfare. Rapid force, very fast, very hard attacks. Psychologically manipulative, basically, very good at trickery and getting people to do what you want. War mastermind, well duh, someone who is good with war. Breakdown, to break something down.
Only instead of getting a burger recipe, we are getting our enemies to tilt.
But with every new release Teemo has gotten more and more outclassed, as his opponents get more and more mobility that a small 10-52% movespeed boost can’t escape from. We all recognize that Teemo needs a rework, a Morgana/Ezreal level rework that modernizes Teemo’s kit without changing its functionality that much, but a rework nonetheless.
Last year u/RiotJag attempted to do a mini rework on Teemo, starting with this:
Base Mana Regen increased from 1.92 to 2.5
Mana Regen per level increased from 0.09 to 0.15
Mana/lvl up increased from 20 to 25
Toxic Shot (Passive)
Teemo’s basic attacks now deal 10-50 bonus magic damage and leave a Poison DoT that deals 24-192 magic damage over 4 seconds.
Toxic Shot damage (both the on-hit and the DoT) is amped by 50% whenever there are other Poison debuffs on the target
Blinding Dart (Q)
Base damage lowered from 80/125/170/215/260 to 80/115/150/185/220
AP Ratio lowered from 0.8 to 0.6
Now is a Poison Debuff
Move Quick (W)
No longer breaks stealth
Guerilla Warfare (E)
[New Active] After a 1 second delay, Teemo enters Camouflage for 3-5 seconds. Teemo is slowed by 25/22.5/20/17.5/15% during this effect, and gains 20/30/40/50/60% Attack Speed for 3 seconds when it ends. Camouflage does not tick down while Teemo is in a brush or is standing still.
Noxious Trap (R)
Base Damage lowered from 200/325/450 to 150/250/350
AP ratio lowered from 0.5 to 0.4
Mushrooms health increased from from [6 at all ranks] to [6/8/10]
Mushroom max ammo count up from [3 at all ranks] to [3/4/5]
And then after a few iterations it ended up like this
Base Mana Regen increased from 1.92 to 2.5
Mana Regen per level increased from 0.09 to 0.15
Mana/lvl up increased from 20 to 25
Base damage lowered from 54 to 51
Attack speed per level lowered from 3.38 to 2
Toxic Shot (Passive)
Teemo’s basic attacks now deal 8-50 bonus magic damage and leave a Poison DoT that deals 24-180 magic damage over 4 seconds.
Toxic Shot damage (both the on-hit and the DoT) is amped by 50% whenever there are other Poison debuffs on the target
Blinding Dart (Q)
Base damage lowered from 80/125/170/215/260 to 70/105/140/175/210
mana cost increased from 70/75/80/85/90 to 80/85/90/95/100
AP Ratio lowered from 0.8 to 0.6
Now is a Poison Debuff
Move Quick (W)
No longer breaks stealth
Guerilla Warfare (E)
Cooldown: 40/37/34/31/28
[New] "After a 1 second delay, Teemo becomes Invisible indefinitely if standing still or in brush, and can move up to 7/7.5/8/8.5/9 Teemos while out of brush, but any non-periodic damage from champions will break him out. Teemo can see 25% farther while stealthed. Upon breaking Guerilla Warfare, Teemo gains 20/30/40/50/60% Attack Speed for 3 seconds. While on cooldown, standing in brush will tick down guerilla Warfare's cooldown faster."
Stealth duration while moving: 2/2.25/2.5/2.75/3
>Noxious Trap (R)
Base Damage lowered from 200/325/450 to 150/250/350
AP ratio lowered from 0.5 to 0.4
Mushroom max ammo count up from [3 at all ranks] to [3/4/5]
Traps now become invisible after 1 second
Traps can continue to bounce on other traps
Additionally there were these prospective changes that were scrapped due to the community’s disinterest in the rework direction.
"Most recent version in testing was pretty E focused as follows (differences all versus previous prototype version, not versus live Teemo):
- No longer granted extra sight range
- CD didn't tick down faster in brush
- Distance while invisible up a bit
- CD lower
- Standing in brush slowly replenished distance Teemo could move while invisible
Haven't heard how playtesting with that went though. Expect this will likely continue as a slow burn project rather than something that gets released or killed quickly, especially given it's the secondary priority of the designer working on it."
After it was scrapped we got the quality of life buffs that we have now.
But lets discuss the rework.
I honestly thing that the _concept_ is the best shot at reworking Teemo. The numbers and exact implementation are debatable, but switching e and passive is a great idea as, after the shrooms, Teemo’s on hit poision is his most iconic ability. Not to mention it freed Teemo up to be able to max his abilities depending on what he needed for his matchup, rather than e max always, and then either q or w depending on choice.
The things people didn’t like about it though were:
The shrooms being nerfed damage wise.
I understand this one, Doomshroom Teemo is my favorite build, but his shrooms are problematic in their current state as they take up a large amount of Teemo's power budget, but also can amount to nothing as the enemy gets 5 sweepers and clears all of them. Not to mention how they synergize so well with Liandrie’s that its a core item for Teemo, despite the fact that his q, the only other ability that can proc it, does not utilize it all that well due to being a medium cooldown, single target spell that can only proc it once. And this is going to be a problem, as in the item update Liandries will be a mythic item, and Teemo builds Liandries [77.5% of the time!](https://www.leagueofgraphs.com/champions/items/teemo) To put this into perspective, Nashors tooth is only bought 61.5% of the time. An item that gives Teemo every stat he wants regardless of build(ignoring Tankmo) and reinforces Teemo's main damage outlet(basically increases e's on-hit damage by 150-30% depending on e rank, and the on-hit scaling from .3 to .45 AP), is bought 16.5% less often than an item that only synergizes with one skill. If this continues after the update, which it likely will as Liandries increases Shroom damage by 20-200%(depending on when it's bought, the target hit, and other items bought. The 200% would be lvl 1 ult, no other ap, and an 1000 health target with 50 mr) and its being _buffed_ via the mythic item stat bonus, that will be above the threshold that will cause Teemo to be changed due to [hardbinding](https://na.leagueoflegends.com/en-us/news/dev/dev-updated-approach-to-item-balancing/). Unless Zyra and Brand also buy it at the same rates after the update(as that would trigger the “nerf item” option), but unlike Teemo the item actually synergizes with their entire kit(plants and blaze, which utilize every ability) rather than just one ability.
It didn’t improve the w
This was a major hole in the rework, as while switching e and p is great, it wouldn’t be awful if they stayed the same. Meanwhile Teemo’s w is supposed to put the “swift” in his title of Swift Scout, and it does so… barely. Exactly what should happen with it is, as always, up to debate, but it needs changing to be on par with current LoL as the current w is supposed to help Teemo kite, yet even if you dodge everything thrown at you it can get disabled by a ludens proc hitting an ally.
The camo stealth makes him a worse Twitch.
This is half true. The first one, yes absolutely. But it didn’t stay as a camouflage ability. Sure, both are marksmen that can go invisible, but Twitch’s is for long distances and to keep him safe while he positions to obliterate the enemy team from 800 range, while Teemo’s is restricted range wise, and is more useful to dodge enemy's notice or wait for them to come to you rather than you going to them. At that point, they only share the fact that they both come out of stealth to surprise people(and a DOT, if 30 damage after 6 attacks at lvl 18 deserves to be called one), which every camoflage user does
And my own complaint about both proposed rework and live Teemo:
His kit has limited synergy.
Each part of Teemo's kit doesn't help the other parts very much. Over the years Teemo players have worked the separate parts of his kit into a cohesive playstyle, but each part of his kit just does it's own thing. Like for instance, in theory his blind should support keeping his w up, but in reality every champ, even Udyr, has a non auto attack way of hitting Teemo(Udyr typically has smite and he always can rush up to you with Bear and activate Phoenix stance), and many have attacks that are undodgable(unless you count not being in range to be targeted as dodging it, which for many champs is just being outside Teemo's attack range).
So, where should we go from here?

Well, we should discuss the purpose of his abilities.

If every part of his kit is iconic, and replacing them completely would change Teemo in a way that the playerbase wouldn’t like, then we should decide what role each of his abilities plays in his playstyle, and how they could be changed to better fit them.

Toxic Shot
This is the base of Teemo’s kit. Doing DOT damage after autoing someone is key to Teemo's attritional playstyle in lane, and hit and run/kiting playstyle later in the game. It has a decent base damage and a great scaling, and is just as useful for pure AP builds as on hit ones.
It does exactly what it needs to, nothing about it needs to be changed.
Blinding Dart
Teemo's reactive defense in a fight. On one hand, it's extremely powerful as can completely shut down the main damage of auto reliant champions(Yi, Udyr, some ADC's) for up to 2.5 seconds, provided they don't have on hit effects that ignore the blind and hit anyway. On the other hand, it's completely useless against every other type of champ(mages, assassins, tanks, spellslinger ADC's, most Juggernauts). Its not healthy for Teemo's main defensive tool to be useless(or of limited use, as I counted champs like Nunu who auto attack, but don't rely on it to do their job as part of it being useless) against 70% of the champion roster.
As people have talked about, Teemo _needs_ this in order to stay safe, yet in most of his matchups(regardless of role) it can't do anything to protect him, let alone later in the game when he has to face the other 4 enemy champs. And that's not counting the fact that ranged auto's that are in transit before the blind hits are not blocked, which means that even against a Vayne with Condenm on cooldown, it still can’t keep Teemo’s w up as even if you blind her first chance she probably will have lanched an auto already.
Move Quick
If blinding dart is a reactive defense, then Move Quick is supposed to be Teemo's proactive defense. When he was added, it allowed him to more easily kite slower enemy champions as there were fewer speedboosts and dashes, and in general lower mobility. Nowadays, the passive is deactivated rather quickly in a fight, and 3 seconds of MS isnt enough to give him a fighting chance of escaping/keeping up.
The intention of the skill is to allow Teemo greater kiting potential in fights, while giving enemies a way to shut it down to have a chance of catching Teemo. But the reality is that unless you are against a champ like Garen who has zero ranged attacks, you are not going to be able to keep it active, making it feel like an out of combat passive.
The issue is keeping the balance between Teemo having kiting power in a fight, and allowing enemies a chance to slow down Teemo, because whether we like it or not, Riot does want enemies to be able to catch kiting champs like Teemo, Kalista, and Ashe, because they would be horrible to play against otherwise. Right now, the balance is heavily skewed towards enemies, as any kind of damage will reduce Teemo's ability to kite enemies with matching boots to a singular 3 second burst for the rest of the fight.

Guerilla warfare
The most underultilized part of Teemo's kit. In its current form it's incredibly strong, yet is extremely situational.
Its a decent strategic option for positioning mid game, as it can allow you to dodge an enemy(providing they didn't see you yet), or allow you to ambush people, but to use it offensively requires an enemy to come to you as you can only move inside bushes, and defensively it's limited to:
Dodging people that have not seen you
Becoming invincible to enemies that only have point and click damage(Vayne, Yi,)
Stalling for time so an ally can come save you
For such an integral part of Teemo’s kit… it feels a little tacked on. Its a situational fight opener or utility tool, and any attempt to use it while near enemy champs usually ends up with them knowing where you are and throwing skillshot after skillshot at you. Its not _bad,_ but to say it can’t be improved would be a lie.
Personally I like the sound of that last version, as it would differentiate between Teemo’s e and Twitch’s q, while fitting into Teemo’s playstyle nicely(or, at least, I already dash from bush to bush while in the enemy jungle to check if the coast is clear. Not sure about the rest of you). The fact that you would have to “charge up” movement time by staying in bushes helps give the feel that you are creeping around, without actually slowing Teemo down like the first version of the change.
Noxious Trap
Shrooms have 3 main uses:
Damage, be it wearing down enemies as they attempt to move throughout the map, making it so they always enter fights below full health or killing low health fleeing enemies
Granting vision of important areas, such as Dragon, Baron, and the enemy jungler's camps(or your jungle camps, if your jungler is being invaded)
CC, cutting off engage or escape paths, slowing enemies so that Teemo/his team have a chance to escape/engage.
Right now they do all of these well, except damage vs tanks, and don't have to be changed. But like I pointed out before Liandries is a massive amount of their power, and that isn't healthy as unless you are planning on ignoring the shrooms damage completely you have to buy it, and mythinc item, hardbinding, yada yada yada....
So if the Shrooms are changed they should aim to keep the same power, but less oppressive against squishes and more effective(or, rather, less ineffective) against tanky targets without having to rely on Liandries to the point where its a core item even against full squishy teams.

Suggestions on what could change

Toxic Shot
The only thing I would change about it is move it's ticks from 1/s to 4/s, like Singe's poison, Karthus's aoe, or 2/s like Casdiopia's poison. It would give a better readability on the damage for everyone involved, which, while it is a slight nerf to Teemo, clarity changes that increase counterplay allow for more power to be added elsewhere.
Also, unlike Singer's poison or Karthus's e, Teemo doesn't have a "turn on for one tick to farm and turn off" mechanic for his poison like they did, so other than age I can't think of why it is one second between ticks. The ‘surprise’ factor of how much damage it does is good for Teemo, but how much damage the enemy is taking shouldn't be something that is obscured.
Blinding Dart
The simplest change would be to make it apply nearsighted, which would have 3 effects.
  1. make it less of a hard counter to melee auto centric champs,while still allowing it utility
  2. Improves its usability against all kinds of champs, and opens up more uses than "damage" and "no auto attack for you"
  3. Allows Teemo to actually participate in gurilla warfare, making it possible for him to pop up, attack, and disappear on an enemy champ, providing he is outside their truncated vision range.
I have other ideas as to what can be done with this ability, but it makes more sense in context so that will be below.
Move Quick
I have two ideas for how this could be changed to be better:
  1. It does not break on damage from poisoned enemies, as well as increasing it to 10-30% because round numbers.
This one is kinda obvious of how it helps Teemo, but I like it because it allows Teemo to keep his speed if he gets the drop on enemies, but if they get in the first attack then they are rewarded with a Teemo that is easier to catch.
  1. Teemo’s base MS down to 325 (WAIT, don’t crucify me just yet), and decrease the % MS boost from 10-26% to 10-19%, and then add on +5-25 base MS per rank.
Now that sounds broken, as an increase of 5 base ms is a huge increase in winrate usually, but hear me out.
Rank 1: Teemo would have 325+5+10%= 330+10%=363 which is exactly the same as live.
Rank 2: Teemo would have 325+10+12.25%= 335+12.25%=376 the same as live.
Rank 3: Teemo would have 325+15+14.5%= 340+14.5%=389 the same as live.
Rank 4: Teemo would have 325+20+16.75%= 345+16.75%=403 the same as live.
Rank 5: Teemo would have 325+25+19%= 350+19%=416 the same as live.
Though a note is that with boots, ranks 1-4 actually give less ms than live. Its only 5-1 ms difference, which may not even end up showing up after the Movement speed soft caps apply. Except for Mobie boots, there is a significant difference there after the MS cap, but Teemo only builds them .03% of the time or so, and they are deactivated whenever someone trips a shroom, so that’s a sacrifice I'm willing to make.
The only noticeable thing that would change is how fast Teemo is when the passive is down, and how fast he is when using the w active(if im doing the math right it is slower by a max of 18 ms, with Mobie boots, but that makes sense as we are dropping 14% bonus ms on the w active in exchange for 25 flat ms, which means less of a boost with just it, but it scales better with other % movement boosts)
[Here is my compiled list of Teemo’s movement speed with every kind of boot + w](https://docs.google.com/document/d/1mkKCcFzXV8PbXseYadoi6z1rs9SN0xGRCFMjw4z3Ito/edit?usp=sharing), and [here is a graph that allows you to easily put in the variables if you want to check it out yourself](https://www.desmos.com/calculatoirneett3wh).
Gurilla warfare
In addition to the prospective changes that we never saw, which to me sounds like the best version(assuming the numbers are not terrible), here are a few ideas I thought of:
Teemo’s e breaks on damage outside bushes, but while inside a bush Teemo is obscured(you know, that broken “true stealth” thing Akali had, only there are no bushes inside tower range and Teemo doesn’t have 3 dashes so it should be less obnoxious) and the invisibility doesn’t break. What this basically means is if an enemy hits a scyre bloom or an ability that gives true sight on Teemo when he is inside a bush, he is still not able to be clicked on.
Standing still for 1 second increases shroom vision range over the next two seconds. I like this one, as it enhances the scouting aspect of his theme, but enemies can interact with it and it has to be something Teemo is actively doing, rather than just passive extra vision.
Noxious Trap
Assuming we are touching these, I honestly think having it apply % current health(better against tanks, not as oppressive against squishies), along with the passive poison would allow it to function both as a weakening chip damage, and potential low health killer, without getting into the 2 shot shroom territory as that feels bad to be on the end of. They should be able to kill if you run into a ton of them in a row, but not automatic death after hitting one from a fed Teemo.
I honestly haven’t thought of a better way other than that to keep the balance between chip damage and kill threat without entering the binary “die by 2 shrooms or 5 Sweepers” territory
And now for my Rework suggestion(do note that while I have considered the numbers I gave things, numbers are easily changed about and as such laying out the mechanics is my goal):

Toxic Shot
Teemo laces his attacks with poison from his Kumongu shrooms, causing his basic attacks to deal [10-50 + .3 AP] damage, and his basic attacks and spells to poison the target for [1.5-11.25 +.025 AP] every .25 seconds for 4 seconds.
Poisons from unique attacks(autos would be one unique attack, q is one, and shrooms count as one) stack up to three times, each new stack at 50% extra damage(so 175%, which max damage without refreshing the poison would be 315 + .7AP total at level 18, for landing a shroom, an auto, and a q).
Similar to Sol’s passive, I'm suggesting Teemo’s passive be the main source of his damage and tie his entire kit together. Maybe 175% is too low for 3 stacks, but I thought 200% might be too overbearing. Anyway, its not like numbers are not constantly changed.

Sporecloud Dart
Skillshot, 700 range, AOE detonation, 300 range, 80/85/90/95/100 mana cost
Does 50/75/100/125/150 +.4AP + 1bAD(bonus AD) damage to main target, applying on hit effects(not passive’s on hit), reduces vision range for them for 1.5/1.6/1.7/1.8/1.9/2 seconds, spreads passive DOT(not on hit) to target and nearby enemies
This one has many reasons:
By changing it to a skill shot, from a targeted skill, it allows enemies to do more than just “don’t get near Teemo” to avoid it, but in return the cc is better against a wider assortment of enemies rather than just auto reliant ones. It also means that if an enemy can get on you, they have a chance of actually hitting you, but it also keeps his ability to shut down enemy ADC’s intact, if a little less duration.
As it is a skill shot, I gave it slightly increased range so that Teemo has something to do in teamfights, but also increased its mana cost so it can’t be spammed
The reason it applies the passive in AOE is because I was inspired by Teemo’s skill in this TFT set, which is where the name comes from, and it addresses his issue in the jungle of having poor multi-target damage pre-6. This gives him a pre-6 option for clearing camps/pushing waves, and makes up in part for the damage that is lost from the shrooms(keep reading for that, its not as bad as you might think)
Move quick
10/15/20/25/30% ms
Does not break on damage from poisoned targets
That other option I outlined above would also work, I just thought of this one first and it fits with Teemo spreading poison everywhere.
Guerrilla Warfare
1.5 second arm time, indefinite while still/in bushes. Can move 2/2.25/2.5/2.75/3 seconds while stealthed, recharges slowly in bushes.
Element of Surprise: 20/30/40/50/60 AS for 3 seconds
Optional bonus:>! After standing still for 1 second, shroom's vision radius grows by 10/20/30/40/50% over the next 2 seconds.!<
Basically the prospective changes that we never saw. Not sure what the cooldown was going to be though.
The optional bonus is a different take on the “Teemo gains 25% sight range while stealthed” from the most recent one. Im not sure if it would be overpowered or not, but I thought why not? Its not like they haven’t removed mechanics before. Anyway, the idea would be that Teemo can set up a vision network, which enemies are already looking to clear because shrooms, but at the cost of doing things. Great for ambushes, not so much for watching for a gank.
Noxious Trap
Deal 10/15/20% max health, and applies Toxic Shot’s DOT(not the on hit)
Enemies effected by shrooms take .75% extra damage from Toxic Shot for every 1% missing health, capping at 50% damage(so 109/lvl 6 - 270/lvl 18 +.6 ap total damage, when they are at 33% health for just the shroom, and 472 +1.05 AP for 3 stacks)
Assuming the combo is just one auto, q, and shroom, that is a max of 100% tAD+ 100% bAD + 50 + 150 + 472 + 10% current health + 175% AP(so 672 + 175% AP + auto damage) when the enemy is at ⅓ health. That sounds like a lot, but its not that much for just one combo. For reference, Vigar can do 650 +150% AP with just his ult alone, and then has another 540+160% AP from his other abilities.
Anyway, the % current health would allow Teemo to affect Tanks with his Shrooms, without making it overbearing for squishies, while the pseudo-execute extra passive damage makes it so that Teemo can still kill with Shrooms, be it in fights or on fleeing enemies. The idea is to make 2 shot shrooms less feasible, but allow the damage to scale better. It also would only apply Liandries only once, which, while is a nerf, is one that ultimately benefits Teemo as Liandries would be an effective option for 2-3 tank teams, but not a mandatory item for every game you don’t go with On Hit Teemo.
submitted by TheLastBallad to TeemoTalk [link] [comments]

Node.js Application Monitoring with Prometheus and Grafana

Hi guys, we published this article on our blog (here) some time ago and I thought it could be interesting for node to read is as well, since we got some good feedback on it!

What is application monitoring and why is it necessary?

Application monitoring is a method that uses software tools to gain insights into your software deployments. This can be achieved by simple health checks to see if the server is available to more advanced setups where a monitoring library is integrated into your server that sends data to a dedicated monitoring service. It can even involve the client side of your application, offering more detailed insights into the user experience.
For every developer, monitoring should be a crucial part of the daily work, because you need to know how the software behaves in production. You can let your testers work with your system and try to mock interactions or high loads, but these techniques will never be the same as the real production workload.

What is Prometheus and how does it work?

Prometheus is an open-source monitoring system that was created in 2012 by Soundcloud. In 2016, Prometheus became the second project (following Kubernetes) to be hosted by the Cloud Native Computing Foundation.
https://preview.redd.it/8kshgh0qpor51.png?width=1460&format=png&auto=webp&s=455c37b1b1b168d732e391a882598e165c42501a
The Prometheus server collects metrics from your servers and other monitoring targets by pulling their metric endpoints over HTTP at a predefined time interval. For ephemeral and batch jobs, for which metrics can't be scraped periodically due to their short-lived nature, Prometheus offers a Pushgateway. This is an intermediate server that monitoring targets can push their metrics before exiting. The data is retained there until the Prometheus server pulls it later.
The core data structure of Prometheus is the time series, which is essentially a list of timestamped values that are grouped by metric.
With PromQL (Prometheus Query Language), Prometheus provides a functional query language allowing for selection and aggregation of time series data in real-time. The result of a query can be viewed directly in the Prometheus web UI, or consumed by external systems such as Grafana via the HTTP API.

How to use prom-client to export metrics in Node.js for Prometheus?

prom-client is the most popular Prometheus client library for Node.js. It provides the building blocks to export metrics to Prometheus via the pull and push methods and supports all Prometheus metric types such as histogram, summaries, gauges and counters.

Setup sample Node.js project

Create a new directory and set up the Node.js project:
$ mkdir example-nodejs-app $ cd example-nodejs-app $ npm init -y 

Install prom-client

The prom-client npm module can be installed via:
$ npm install prom-client 

Exposing default metrics

Every Prometheus client library comes with predefined default metrics that are assumed to be good for all applications on the specific runtime. The prom-client library also follows this convention. The default metrics are useful for monitoring the usage of resources such as memory and CPU.
You can capture and expose the default metrics with following code snippet:
const http = require('http') const url = require('url') const client = require('prom-client') // Create a Registry which registers the metrics const register = new client.Registry() // Add a default label which is added to all metrics register.setDefaultLabels({ app: 'example-nodejs-app' }) // Enable the collection of default metrics client.collectDefaultMetrics({ register }) // Define the HTTP server const server = http.createServer(async (req, res) => { // Retrieve route from request object const route = url.parse(req.url).pathname if (route === '/metrics') { // Return all metrics the Prometheus exposition format res.setHeader('Content-Type', register.contentType) res.end(register.metrics()) } }) // Start the HTTP server which exposes the metrics on http://localhost:8080/metrics server.listen(8080) 

Exposing custom metrics

While default metrics are a good starting point, at some point, you’ll need to define custom metrics in order to stay on top of things.
Capturing and exposing a custom metric for HTTP request durations might look like this:
const http = require('http') const url = require('url') const client = require('prom-client') // Create a Registry which registers the metrics const register = new client.Registry() // Add a default label which is added to all metrics register.setDefaultLabels({ app: 'example-nodejs-app' }) // Enable the collection of default metrics client.collectDefaultMetrics({ register }) // Create a histogram metric const httpRequestDurationMicroseconds = new client.Histogram({ name: 'http_request_duration_seconds', help: 'Duration of HTTP requests in microseconds', labelNames: ['method', 'route', 'code'], buckets: [0.1, 0.3, 0.5, 0.7, 1, 3, 5, 7, 10] }) // Register the histogram register.registerMetric(httpRequestDurationMicroseconds) // Define the HTTP server const server = http.createServer(async (req, res) => { // Start the timer const end = httpRequestDurationMicroseconds.startTimer() // Retrieve route from request object const route = url.parse(req.url).pathname if (route === '/metrics') { // Return all metrics the Prometheus exposition format res.setHeader('Content-Type', register.contentType) res.end(register.metrics()) } // End timer and add labels end({ route, code: res.statusCode, method: req.method }) }) // Start the HTTP server which exposes the metrics on http://localhost:8080/metrics server.listen(8080) 
Copy the above code into a file called server.jsand start the Node.js HTTP server with following command:
$ node server.js 
You should now be able to access the metrics via http://localhost:8080/metrics.

How to scrape metrics from Prometheus

Prometheus is available as Docker image and can be configured via a YAML file.
Create a configuration file called prometheus.ymlwith following content:
global: scrape_interval: 5s scrape_configs: - job_name: "example-nodejs-app" static_configs: - targets: ["docker.for.mac.host.internal:8080"] 
The config file tells Prometheus to scrape all targets every 5 seconds. The targets are defined under scrape_configs. On Mac, you need to use docker.for.mac.host.internal as host, so that the Prometheus Docker container can scrape the metrics of the local Node.js HTTP server. On Windows, use docker.for.win.localhost and for Linux use localhost.
Use the docker run command to start the Prometheus Docker container and mount the configuration file (prometheus.yml):
$ docker run --rm -p 9090:9090 \ -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus:v2.20.1 
Windows users need to replace pwd with the path to their current working directory.
You should now be able to access the Prometheus Web UI on http://localhost:9090

What is Grafana and how does it work?

Grafana is a web application that allows you to visualize data sources via graphs or charts. It comes with a variety of chart types, allowing you to choose whatever fits your monitoring data needs. Multiple charts are grouped into dashboards in Grafana, so that multiple metrics can be viewed at once.
https://preview.redd.it/vt8jwu8vpor51.png?width=3584&format=png&auto=webp&s=4101843c84cfc6293debcdfc3bdbe70811dab2e9
The metrics displayed in the Grafana charts come from data sources. Prometheus is one of the supported data sources for Grafana, but it can also use other systems, like AWS CloudWatch, or Azure Monitor.
Grafana also allows you to define alerts that will be triggered if certain issues arise, meaning you’ll receive an email notification if something goes wrong. For a more advanced alerting setup checkout the Grafana integration for Opsgenie.

Starting Grafana

Grafana is also available as Docker container. Grafana datasources can be configured via a configuration file.
Create a configuration file called datasources.ymlwith the following content:
apiVersion: 1 datasources: - name: Prometheus type: prometheus access: proxy orgId: 1 url: http://docker.for.mac.host.internal:9090 basicAuth: false isDefault: true editable: true 
The configuration file specifies Prometheus as a datasource for Grafana. Please note that on Mac, we need to use docker.for.mac.host.internal as host, so that Grafana can access Prometheus. On Windows, use docker.for.win.localhost and for Linux use localhost.
Use the following command to start a Grafana Docker container and to mount the configuration file of the datasources (datasources.yml). We also pass some environment variables to disable the login form and to allow anonymous access to Grafana:
$ docker run --rm -p 3000:3000 \ -e GF_AUTH_DISABLE_LOGIN_FORM=true \ -e GF_AUTH_ANONYMOUS_ENABLED=true \ -e GF_AUTH_ANONYMOUS_ORG_ROLE=Admin \ -v `pwd`/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml \ grafana/grafana:7.1.5 
Windows users need to replace pwd with the path to their current working directory.
You should now be able to access the Grafana Web UI on http://localhost:3000

Configuring a Grafana Dashboard

Once the metrics are available in Prometheus, we want to view them in Grafana. This requires creating a dashboard and adding panels to that dashboard:
  1. Go to the Grafana UI at http://localhost:3000, click the + button on the left, and select Dashboard.
  2. In the new dashboard, click on the Add new panel button.
  3. In the Edit panel view, you can select a metric and configure a chart for it.
  4. The Metrics drop-down on the bottom left allows you to choose from the available metrics. Let’s use one of the default metrics for this example.
  5. Type process_resident_memory_bytesinto the Metricsinput and {{app}}into the Legendinput.
  6. On the right panel, enter Memory Usage for the Panel title.
  7. As the unit of the metric is in bytes we need to select bytes(Metric)for the left y-axis in the Axes section, so that the chart is easy to read for humans.
You should now see a chart showing the memory usage of the Node.js HTTP server.
Press Apply to save the panel. Back on the dashboard, click the small "save" symbol at the top right, a pop-up will appear allowing you to save your newly created dashboard for later use.

Setting up alerts in Grafana

Since nobody wants to sit in front of Grafana all day watching and waiting to see if things go wrong, Grafana allows you to define alerts. These alerts regularly check whether a metric adheres to a specific rule, for example, whether the errors per second have exceeded a specific value.
Alerts can be set up for every panel in your dashboards.
  1. Go into the Grafana dashboard we just created.
  2. Click on a panel title and select edit.
  3. Once in the edit view, select "Alerts" from the middle tabs, and press the Create Alertbutton.
  4. In the Conditions section specify 42000000 after IS ABOVE. This tells Grafana to trigger an alert when the Node.js HTTP server consumes more than 42 MB Memory.
  5. Save the alert by pressing the Apply button in the top right.

Sample code repository

We created a code repository that contains a collection of Docker containers with Prometheus, Grafana, and a Node.js sample application. It also contains a Grafana dashboard, which follows the RED monitoring methodology.
Clone the repository:
$ git clone https://github.com/coder-society/nodejs-application-monitoring-with-prometheus-and-grafana.git 
The JavaScript code of the Node.js app is located in the /example-nodejs-app directory. All containers can be started conveniently with docker-compose. Run the following command in the project root directory:
$ docker-compose up -d 
After executing the command, a Node.js app, Grafana, and Prometheus will be running in the background. The charts of the gathered metrics can be accessed and viewed via the Grafana UI at http://localhost:3000/d/1DYaynomMk/example-service-dashboard.
To generate traffic for the Node.js app, we will use the ApacheBench command line tool, which allows sending requests from the command line.
On MacOS, it comes pre-installed by default. On Debian-based Linux distributions, ApacheBench can be installed with the following command:
$ apt-get install apache2-utils 
For Windows, you can download the binaries from Apache Lounge as a ZIP archive. ApacheBench will be named ab.exe in that archive.
This CLI command will run ApacheBench so that it sends 10,000 requests to the /order endpoint of the Node.js app:
$ ab -m POST -n 10000 -c 100 http://localhost:8080/order 
Depending on your hardware, running this command may take some time.
After running the ab command, you can access the Grafana dashboard via http://localhost:3000/d/1DYaynomMk/example-service-dashboard.

Summary

Prometheus is a powerful open-source tool for self-hosted monitoring. It’s a good option for cases in which you don’t want to build from scratch but also don’t want to invest in a SaaS solution.
With a community-supported client library for Node.js and numerous client libraries for other languages, the monitoring of all your systems can be bundled into one place.
Its integration is straightforward, involving just a few lines of code. It can be done directly for long-running services or with help of a push server for short-lived jobs and FaaS-based implementations.
Grafana is also an open-source tool that integrates well with Prometheus. Among the many benefits it offers are flexible configuration, dashboards that allow you to visualize any relevant metric, and alerts to notify of any anomalous behavior.
These two tools combined offer a straightforward way to get insights into your systems. Prometheus offers huge flexibility in terms of metrics gathered and Grafana offers many different graphs to display these metrics. Prometheus and Grafana also integrate so well with each other that it’s surprising they’re not part of one product.
You should now have a good understanding of Prometheus and Grafana and how to make use of them to monitor your Node.js projects in order to gain more insights and confidence in your software deployments.
submitted by matthevva to node [link] [comments]

Dynamically indicate state, in addition to measurement reading, in Dashboard chart?

Summary: How can you indicate binary state data alongside numeric data in a Dashboard visualization?
I have several use cases for this, but let me describe just one:
I have a wood-fired boiler for home heating. It's basically a fire inside a surrounding tank of water (a "water jacket") that gets heated by the fire. When the water is hot enough, a pump pumps water in a loop through the water jacket, and out to a heat storage reservoir, which in turn heats the baseboards in the house.
I take temperature readings of the input and output pipes of the boiler, and I also have a relay to tell me when the pump is being triggered to run. I can do things like make a table of pump on and off times, but I'd like to see that information right there in the graph that shows me the water temperature of the input, output, and reservoir.
For example, if I could cause the boiler I/O lines on the chart to change color when pumping is occuring, that would be awesome. However, TTBOMK, if you change the color of a chart line, it changes the color for the whole line, not just those datapoints.
Another option would be to have a line on the chart that simply indicates status. It could sit at 80 degrees for "off" and jump up to 140 degrees for "on". That's something I could implement, but it's a very inelegant solution, would cause the charts to be very messy, and has scale issues (e.g. what if all the temperatures involved are much higher or lower than the fixed "on" and "off" values, and now my chart is scaling to the "on" and "off" values rather than the observed temperatures?).
Unfortunately, it doesn't work to simply change the name of the series (e.g. series 1 and series 2), causing the line to be a new color, because when the state changes back, the chart diligently draws a straight line from the last reading of series 1 before the reading switched to be series 2.
So: does anyone have a creative solution for indicating a binary state alongside numeric data in the same chart?
submitted by HungryLikeTheWolf99 to nodered [link] [comments]

Wine 5.13 Released

The Wine development release 5.13 is now available.
 
https://www.winehq.org/announce/5.13 
 
What's new in this release (see below for details):
 
- Re-mapping of INI files to the registry. - System call thunks in NTDLL. - Reimplementation of floating point numbers printing. - Beginnings of a restructuration of the console support. - Various bug fixes 
 
The source is available from the following locations:
http://dl.winehq.org/wine/source/5.x/wine-5.13.tar.xz http://mirrors.ibiblio.org/wine/source/5.x/wine-5.13.tar.xz 
 
Binary packages for various distributions will be available from:
http://www.winehq.org/download 
 
You will find documentation on
http://www.winehq.org/documentation 
 
You can also get the current source directly from the git repository.
Check
http://www.winehq.org/git for details. 
 
Wine is available thanks to the work of many people.
See the file AUTHORS in the distribution for the complete list.
 
 
Bugs fixed in 5.13 (total 22):
 
4096 IniFileMapping not Implemented (ini on win9x => Registry on NT) 18072 Core Media Player crashes on missing CLSID_DvdGraphBuilder {fcc152b7-f372-11d0-8e00-00c04fd7c08b} (qdvd.dll) 27298 The Witcher 2 Slow Performance on any setting. 28109 winmm capture tests fail on some machines 31023 CuteFTP 8.3.4 - "Encountered an improper argument." Error boxes after most actions. 32215 11game platform crashes at start 36546 Please remove `tmpfs` special treatment in ntdll / MSI packages cannot be installed from `tmpfs` 42874 Battle.net App is unable to update games 44127 Metal Gear Solid V: Ground Zeroes doesn't launch 45701 Warframe: Launcher.exe does not update, keeps relaunching itself 45876 Call of Duty: Black Ops III and Call of Duty: WWII have no mouse input when using native mfplat 47587 Call to Power II: Screen doesn't repaint after selecting main menu option 49092 Blindwrite 7 crashes with a stack overflow 49103 Call of Duty: Modern Warfare 2 Campaign Remastered mouse input is missing 49422 Dungeon Siege 1 & 2 weapons are misplaced 49438 Wine on ARM64 fails with "could not exec the wine loader" unless --enable-win64 is used 49489 Incorrect rendering in Warframe with nvidia 49496 sprintf uses locale specific decimal point when it should not. 49513 Battle.net fails to install World of Warcraft or Starcraft II 49522 Mass Effect: Andromeda doesn't recognize keyboard input since 5.12 49570 LVM_FINDITEM should do case-insensitive test for item text 49573 Sporadic page fault on 64bit prefix creation on macOS 
submitted by catulirdit to linux_gaming [link] [comments]

r/pharmacy 2020 demographics survey results!

The pharmacy 2020 demographics survey results are here! There were 258 respondents this year. Please note that the numbers will not necessarily add up to 100%, since all questions were optional. Sorry in advance for the crappy Excel graphs.
Location
Most respondents hailed from the US (233; 90.3%), followed by Canada (10; 3.9%), United Kingdom (8; 3.1%), New Zealand (2; 0.8%), and 1 respondent each from Australia, Indonesia, Slovakia, Sweden, and Taiwan.
Of the 233 Americans, the top 3 states were California (20; 8.6%), Pennsylvania (18; 7.7%), and Texas (18; 7.7%).
The 10 Canadians were from Ontario (5; 50%), British Columbia (2; 20%), Alberta (1; 10%), Nova Scotia (1; 10%), and Quebec (1; 10%).
Demographics
Of the 258 respondents, 130 (50.4%) identified as female, 123 (47.7%) as male, and 3 (1.2%) as non-binary.
Age distribution is shown in the below table. A few statistics: minimum 19, maximum 68, mean 29.0, median 28, mode 26.
https://preview.redd.it/qxyxs2sj09c51.png?width=554&format=png&auto=webp&s=202bef88a53fa8596182435590ba9de8eb3646c9
In terms of race/ethnicity, the categories from most to least common were as follows: white (156; 60.5%), Asian (55; 21.3%), 2 or more races (11; 4.3%), black (9; 3.5%), Hispanic or Latino (8; 3.1%), Indian subcontinent (6; 2.3%), Arab (4; 1.6%), Native American or American Indian (2; 0.8%), and Armenian (1; 0.4%).
General employment questions
Of the 258 respondents, 169 (65.5%) were pharmacists, 55 (21.3%) were pharmacy students, 22 (8.5%) were non-pharmacist staff, and 8 (3.1%) were pre-pharmacy students. There were also 1 each of the following: corporate pharmacy compliance, pharmacy wholesaler, pharmacology student, and other healthcare professional.
Most respondents (169; 65.5%) were employed full time (defined as > 30 hours/week), while 19 (7.4%) were employed part time. 49 respondents (19.0%) were full time students (not necessarily in pharmacy), 13 (5.0%) were unemployed, 4 (1.6%) worked outside of the field of pharmacy, 2 (0.8%) were self-employed, 1 (0.4%) was retired, and 1 (0.4%) was consulting/contracting.
There was a nearly equal split between respondents working in suburban (99; 38.4%) vs. urban (97; 37.6%) locations, followed by 21 (8.1%) in rural locations and 15 (5.8%) working remotely (apologies - I should have made this question/response more clear, but based on a jump compared to last year's survey, I think people working from home temporarily due to COVID-19 may have chosen this option).
A pie chart of primary place of employment is shown below, with the top 7 responses shown in the legend: community/retail (136; 52.7%), hospital including outpatient (48; 18.6%), pharmaceutical industry including CROs (11; 4.3%), mail ordespecialty/home infusion (9; 3.5%), unemployed (8; 3.1%), long-term care/hospice (8; 3.1%), and ambulatory care (5; 1.9%). Please note that the unemployed category includes non-working full time students.
https://preview.redd.it/csyipt0hs9c51.png?width=297&format=png&auto=webp&s=3b91337feb634a61730ccfbdd09aa8a0fdda6d7a
A small proportion (42; 16.3%) of respondents reported having a second job. Of these, the most common fields of employment were: hospital including outpatient (10; 23.8%), community/retail (8; 19.0%), and self employment/side hustle (7; 16.7%).
Salary
For the following charts, I only included those working full time. Below is a histogram for full time pharmacist salary worldwide, as well as a table showing some stats for global, US, and ex-US salaries.
https://preview.redd.it/n16j31x1v9c51.png?width=447&format=png&auto=webp&s=624581f5b94c917c417ac39da92cf9eb4c77130c
Global (139 responses) US (130 responses) Ex-US (9 responses)
Minimum $11,000 $11,000 $43,050
Maximum $300,000 $300,000 $230,000
Mean $116,284 $118,909 $78,375
Median $120,000 $120,961 $63,000
Below is the histogram for full time non-pharmacist staff worldwide. There was only 1 ex-US respondent, so I didn't separate out the stats. Here they are: minimum $15,000; maximum $72,000; mean $37,767; median $37,000.
https://preview.redd.it/q2w4f7t5y9c51.png?width=384&format=png&auto=webp&s=300c4992413830cb45befa7ffa9e24e9d5c2370d
Community/retail pharmacy
The pie chart shown below shows the breakdown of pharmacy type for the 136 respondents working in community/retail pharmacy. I'm not exactly sure what Genoa means, so I left that one as is.
https://preview.redd.it/begscv9fz9c51.png?width=288&format=png&auto=webp&s=c22e8ba0797ef1829bb9f0b30db9351b059a3264
Roles within community/retail pharmacy are displayed below.
https://preview.redd.it/l6l3w94zz9c51.png?width=265&format=png&auto=webp&s=ff10c40fd56bc3334762c06a5e6dc4e61a1004d8
The pie chart below displays responses regarding the impact of COVID-19 on hours/salary.
https://preview.redd.it/ugvcv06fbac51.png?width=276&format=png&auto=webp&s=60e055f753ed52c69220fb00e8ef817672804ebd
Hospital pharmacy (including outpatient)
There were 48 respondents working in hospital pharmacy. Bed count at their institutions is shown in the graph below.
https://preview.redd.it/1mv5r0ne1ac51.png?width=382&format=png&auto=webp&s=f46fa5df7be0c5b7d24603a218043fe4cb92f1bd
Roles within hospital pharmacy are displayed below.
https://preview.redd.it/4a3xewk72ac51.png?width=280&format=png&auto=webp&s=9d9a2dbd99882673300ad51e43808d90eb35d8a4
Of the 38 hospital pharmacists, 13 (34.2%) had completed a residency, and 5 (13.2%) were currently completing a residency. The remainder (20; 52.6%) were not pursuing nor had ever completed a residency.
The top 3 clinical specialties were ambulatory care, emergency medicine, and oncology (3 respondents each). Note that it was possible to choose more than 1 specialty.
The pie chart below displays responses regarding the impact of COVID-19 on hours/salary.
https://preview.redd.it/b9pj5l3sbac51.png?width=278&format=png&auto=webp&s=b0478e7ea600140253b9dc53066210412967d4cd
Pharmaceutical industry (including CROs)
Eleven respondents (4.3%) reported working in the pharmaceutical industry. The breakdown by department is shown in the table below.
Department Number of Respondents
Drug Safety and Risk Management/Pharmacovigilance 2
Medical Communications/Education/Information 2
Regulatory Affairs 2
Clinical Pharmacology/Pharmacokinetics 1
Clinical Research & Development (including Clinical Operations) 1
Formulation 1
Marketing/Business Analytics 1
Medical Science Liaison 1
The breakdown by level was as follows: PharmD Fellow (3; 27.3%), Associate/Specialist (6; 54.5%), ManageSupervisor (1; 9.1%), Director (1; 9.1%). Five respondents had completed or were currently completing a fellowship. Four of these 5 provided their salaries during their fellowships, with an average of $50,000.
Pharmacy and pre-pharmacy students
There were 63 respondents (24.4%) who reported being pharmacy or pre-pharmacy students. Of these, the top 3 desired fields upon graduation were: hospital including residencies (16; 25.4%), undecided (13; 20.6%), and community/retail (11; 17.5%).
These 63 students attended (or planned to attend) 45 different schools worldwide. The 5 most common schools reported were as follows: University of Toronto (3; 4.8%), Feik School of Pharmacy (2; 3.2%), Ohio State University (2; 3.2%), Temple University (2; 3.2%), and University of Colorado (2; 3.2%).
The breakdown by year was as follows: undergraduate/pre-pharmacy (8; 12.7%), PY1 (4; 6.3%), PY2 (18; 28.6%), PY3 (16; 25.4%), and PY4 (13; 20.6%). Of the 13 PY4 students, 2 reported having a job lined up after graduation, both in community/retail.
Most students (45; 71.4%) were working in a pharmacy setting while in school. Stats for the number of hours worked weekly were as follows: minimum 3; maximum 34; mean 15.8; median 15. The most common duties interns were authorized to perform at their jobs were counseling patients (38; 84.4%), administering immunizations (24; 53.3%), and product verification (17; 37.8%). Note that interns could choose more than 1 option.
Of the 63 students, 36 (57.1%) reported that they would choose to attend pharmacy school again if they could go back in time, knowing what they know now. Sixteen students (25.4%) reported that they would decide on a different career path, and 5 (7.9%) were unsure.
Following pharmacy school, some students were considering pursuing the following degrees (top 3 listed): MPH (6; 9.5%), MD (4; 6.3%), and MBA (3; 4.8%).
Results from additional questions are shown in chart form below.
https://preview.redd.it/mls7e2139ac51.png?width=480&format=png&auto=webp&s=5db3ec80fd6e1934c787941278b7b755ad802a45
https://preview.redd.it/p9p44ifm9ac51.png?width=480&format=png&auto=webp&s=faf04b54ed228cc0cf110d06ed27bfd524ba894f
https://preview.redd.it/8p7qq205aac51.png?width=464&format=png&auto=webp&s=ae5d53c284cd86ff787498dad58c4d625ae2afb1
Pharmacists
There were 169 pharmacists, from 91 different pharmacy schools. The most common alma maters were Rutgers University Ernest Mario School of Pharmacy (RU RAH RAH!!) with 6 respondents (3.6%), University of Pittsburgh with 5 respondents (3.0%), and the following 5 schools with 4 respondents each: Northeastern University, Ohio Northern University, University of Colorado, University of Georgia, and University of Kansas.
Most pharmacists (152; 89.9%) were currently practicing pharmacy. Five (3.0%) had practiced in the past but were no longer practicing, and 10 (5.9%) had never practiced after graduating. Of those currently practicing pharmacy, the statistics on the number of years in practice were as follows: minimum 0.1; maximum 35; mean 4.8; and median 3.
Nearly half of pharmacists (75; 49.3%) said they would choose a different career path if they could go back in time, knowing what they know now, while 71 pharmacists (46.7%) said they would still choose to pursue pharmacy.
Local practice standards
About half of pharmacists (84; 55.3%) reported administering (or being allowed to administer) many types of immunizations, while 3 (2.0%) reported that pharmacists were not allowed in their location. A further 63 pharmacists (41.4%) did not administer immunizations simply because it was not part of their job description (eg, hospital inpatient).
Regarding therapeutic interchange for non-controlled prescriptions, 63 pharmacists (41.4%) reporting being authorized to update a prescription only after consulting the prescriber. An additional 43 pharmacists (28.3%) were allowed to update a prescription as long as the prescriber was notified afterwards (ie, without prior permission), and 8 pharmacists (5.3%) were allowed per institutional protocol or collaborative practice agreement. Twenty-four pharmacists (15.8%) reported that a new prescription would be required and that no updates by the pharmacist were allowed.
For controlled prescriptions, 24 pharmacists (15.8%) reported being allowed to change any/all elements of the prescription following consultation with the prescriber, and 4 pharmacists (2.6%) were allowed per institutional protocol or collaborative practice agreement. Sixty-six pharmacists (43.4%) were allowed to change certain (but not all) elements, while 40 (26.3%) could not change any part of a controlled prescription and required the prescriber to issue a new one.
Regarding pharmacist prescribing, most pharmacists (110; 72.4%) were not allowed to prescribe medications. Nineteen pharmacists (12.5%) could prescribe for certain health conditions, 3 (2.0%) could prescribe for any health condition, and 2 (1.3%) could prescribe per institutional protocol or collaborative practice agreement.
Results from additional questions are shown in chart form below.
https://preview.redd.it/9q4wjmmg3bc51.png?width=281&format=png&auto=webp&s=cf2ec43db13f3fcbe4cb398b1c39808389f54572
https://preview.redd.it/945u7beklac51.png?width=480&format=png&auto=webp&s=e74267ca8c2d56dd0c7fc42497df2f0d42f14a3a
https://preview.redd.it/yyd7su4tlac51.png?width=480&format=png&auto=webp&s=86e12e31c5de3b91a615add5dd28055f881beddc
https://preview.redd.it/tk2msh41mac51.png?width=480&format=png&auto=webp&s=c091747118370117d3ecf35a8e9bffd54ac02805
https://preview.redd.it/9njkd9vemac51.png?width=346&format=png&auto=webp&s=ffe54bfc9ae206295f7e81685a361357c14a625a
https://preview.redd.it/mywjx5nwmac51.png?width=444&format=png&auto=webp&s=1eb695e764c2bf7c1ffbfddd947fc297eed4f8ea
Pharmacy residents
Of the 169 pharmacists, 31 (18.3%) had completed or were currently completing a pharmacy residency. Of those, there were 6 current PGY-1 residents and 1 current PGY-2 resident.
Of the 24 pharmacists who had completed their PGY-1 residencies, most (18; 75%) did rotational programs without a specific focus. The remaining 6 pharmacists specialized in the following areas during their PGY-1: ambulatory care (2; 8.3%), community pharmacy (1; 4.2%), managed care (1; 4.2%), pediatrics (1; 4.2%), and pharmacotherapy (1; 4.2%). Stats on their PGY-1 salaries were as follows: minimum $33,000; maximum $60,000; mean $44,325; median $45,000. These PGY-1 residencies were done primarily in an urban setting (18; 75%), followed by suburban (3; 12.5%) and rural (2; 8.3%).
Of the 11 pharmacists who had completed their PGY-2 residencies, the specialties included: ambulatory care (3; 27.3%), psychiatry (2; 18.2%), and 1 each of administration, critical care, emergency medicine, infectious disease, oncology, and pharmacotherapy (9.1% each). Stats on their PGY-2 salaries were as follows: minimum $35,000; maximum $51,000; mean $45,625; median $46,500. These PGY-2 residencies were done almost equally in urban (6; 54.5%) and suburban (5; 45.5%) settings.
The 6 current PGY-1 residents had the following plans immediately following their PGY-1: inpatient staff pharmacist (2; 33.3%), PGY-2 residency (2; 33.3%), inpatient clinical specialty pharmacist (1; 16.7%), and non-practicing pharmacist (1; 16.7%).
Of those who had completed their residencies, their roles immediately afterward are listed in the table below.
Role Number of Respondents
Inpatient staff pharmacist 8
Inpatient clinical specialty pharmacist 6
Ambulatory care pharmacist 4
Unemployed 2
Outpatient pharmacist (eg, retail, mail order, long term care) 1
Stopped practicing but remained in the field of pharmacy (eg, industry) 1
Industry fellowship 1
Drug information pharmacist 1
Pharmacy organizations
This question was directed toward American respondents. There were 96 respondents who reported being currently active members of an association, the most common of which were ASHP (39; 40.6%), APhA (38; 39.6%), and a local/state pharmacy association (29; 30.2%).
There were 35 respondents who reported previously being members of an association, the most common of which were APhA (25; 71.4%), ASHP (15; 42.9%), and a local/state pharmacy association (13; 37.1%).
Final comments
Thanks again to everyone who took the survey, and especially those who provided feedback!
I totally acknowledge that the survey is very US-centric, and for that I apologize. I did take some feedback from some people in this subreddit, but if anyone ex-US wants to provide feedback for any future surveys, I'm happy to speak with you offline about it.
The same also goes for anyone in a "niche" field such as long-term care, ambulatory care, managed care, etc. I'm happy to add in new sections or questions for those fields - it's just that I have no idea what to ask, having no experience in those areas.
There are probably a few questions whose answers aren't reflected here mainly because this is long enough already, but if you have any questions (eg, what's the average salary for a hospital pharmacist in a suburban area?), please feel free to ask!
Thanks again!
submitted by fleakered to pharmacy [link] [comments]

First Time Going Through Coding Interviews?

This post draws on my personal experiences and challenges over the past term at school, which I entered with hardly any knowledge of DSA (data structures and algorithms) and problem-solving strategies. As a self-taught programmer, I was a lot more familiar and comfortable with general programming, such as object-oriented programming, than with the problem-solving skills required in DSA questions.
This post reflects my journey throughout the term and the resources I turned to in order to quickly improve for my coding interview.
Here're some common questions and answers
What's the interview process like at a tech company?
Good question. It's actually pretty different from most other companies.

(What It's Like To Interview For A Coding Job

First time interviewing for a tech job? Not sure what to expect? This article is for you.

Here are the usual steps:

  1. First, you’ll do a non-technical phone screen.
  2. Then, you’ll do one or a few technical phone interviews.
  3. Finally, the last step is an onsite interview.
Some companies also throw in a take-home code test—sometimes before the technical phone interviews, sometimes after.
Let’s walk through each of these steps.

The non-technical phone screen

This first step is a quick call with a recruiter—usually just 10–20 minutes. It's very casual.
Don’t expect technical questions. The recruiter probably won’t be a programmer.
The main goal is to gather info about your job search. Stuff like:

  1. Your timeline. Do you need to sign an offer in the next week? Or are you trying to start your new job in three months?
  2. What’s most important to you in your next job. Great team? Flexible hours? Interesting technical challenges? Room to grow into a more senior role?
  3. What stuff you’re most interested in working on. Front end? Back end? Machine learning?
Be honest about all this stuff—that’ll make it easier for the recruiter to get you what you want.
One exception to that rule: If the recruiter asks you about your salary expectations on this call, best not to answer. Just say you’d rather talk about compensation after figuring out if you and the company are a good fit. This’ll put you in a better negotiating position later on.

The technical phone interview(s)

The next step is usually one or more hour-long technical phone interviews.
Your interviewer will call you on the phone or tell you to join them on Skype or Google Hangouts. Make sure you can take the interview in a quiet place with a great internet connection. Consider grabbing a set of headphones with a good microphone or a bluetooth earpiece. Always test your hardware beforehand!
The interviewer will want to watch you code in real time. Usually that means using a web-based code editor like Coderpad or collabedit. Run some practice problems in these tools ahead of time, to get used to them. Some companies will just ask you to share your screen through Google Hangouts or Skype.
Turn off notifications on your computer before you get started—especially if you’re sharing your screen!
Technical phone interviews usually have three parts:

  1. Beginning chitchat (5–10 minutes)
  2. Technical challenges (30–50 minutes)
  3. Your turn to ask questions (5–10 minutes)
The beginning chitchat is half just to help your relax, and half actually part of the interview. The interviewer might ask some open-ended questions like:

  1. Tell me about yourself.
  2. Tell me about something you’ve built that you’re particularly proud of.
  3. I see this project listed on your resume—tell me more about that.
You should be able to talk at length about the major projects listed on your resume. What went well? What didn’t? How would you do things differently now?
Then come the technical challenges—the real meet of the interview. You’ll spend most of the interview on this. You might get one long question, or several shorter ones.
What kind of questions can you expect? It depends.
Startups tend to ask questions aimed towards building or debugging code. (“Write a function that takes two rectangles and figures out if they overlap.”). They’ll care more about progress than perfection.
Larger companies will want to test your general know-how of data structures and algorithms (“Write a function that checks if a binary tree is ‘balanced’ in O(n)O(n) ↴ time.”). They’ll care more about how you solve and optimize a problem.
With these types of questions, the most important thing is to be communicating with your interviewer throughout. You'll want to "think out loud" as you work through the problem. For more info, check out our more detailed step-by-step tips for coding interviews.
If the role requires specific languages or frameworks, some companies will ask trivia-like questions (“In Python, what’s the ‘global interpreter lock’?”).
After the technical questions, your interviewer will open the floor for you to ask them questions. Take some time before the interview to comb through the company’s website. Think of a few specific questions about the company or the role. This can really make you stand out.
When you’re done, they should give you a timeframe on when you’ll hear about next steps. If all went well, you’ll either get asked to do another phone interview, or you’ll be invited to their offices for an onsite.

The onsite interview

An onsite interview happens in person, at the company’s office. If you’re not local, it’s common for companies to pay for a flight and hotel room for you.
The onsite usually consists of 2–6 individual, one-on-one technical interviews (usually in a small conference room). Each interview will be about an hour and have the same basic form as a phone screen—technical questions, bookended by some chitchat at the beginning and a chance for you to ask questions at the end.
The major difference between onsite technical interviews and phone interviews though: you’ll be coding on a whiteboard.
This is awkward at first. No autocomplete, no debugging tools, no delete button…ugh. The good news is, after some practice you get used to it. Before your onsite, practice writing code on a whiteboard (in a pinch, a pencil and paper are fine). Some tips:

  1. Start in the top-most left corner of the whiteboard. This gives you the most room. You’ll need more space than you think.
  2. Leave a blank line between each line as you write your code. Makes it much easier to add things in later.
  3. Take an extra second to decide on your variable names. Don’t rush this part. It might seem like a waste of time, but using more descriptive variable names ultimately saves you time because it makes you less likely to get confused as you write the rest of your code.
If a technical phone interview is a sprint, an onsite is a marathon. The day can get really long. Best to keep it open—don’t make other plans for the afternoon or evening.
When things go well, you’ wrap-up by chatting with the CEO or some other director. This is half an interview, half the company trying to impress you. They may invite you to get drinks with the team after hours.
All told, a long day of onsite interviews could look something like this:

If they let you go after just a couple interviews, it’s usually a sign that they’re going to pass on you. That’s okay—it happens!
There are are a lot of easy things you can do the day before and morning of your interview to put yourself in the best possible mindset. Check out our piece on what to do in the 24 hours before your onsite coding interview.

The take-home code test

Code tests aren’t ubiquitous, but they seem to be gaining in popularity. They’re far more common at startups, or places where your ability to deliver right away is more important than your ability to grow.
You’ll receive a description of an app or service, a rough time constraint for writing your code, and a deadline for when to turn it in. The deadline is usually negotiable.
Here's an example problem:
Write a basic “To-Do” app. Unit test the core functionality. As a bonus, add a “reminders” feature. Try to spend no more than 8 hours on it, and send in what you have by Friday with a small write-up.
Take a crack at the “bonus” features if they include any. At the very least, write up how you would implement it.
If they’re hiring for people with knowledge of a particular framework, they might tell you what tech to use. Otherwise, it’ll be up to you. Use what you’re most comfortable with. You want this code to show you at your best.
Some places will offer to pay you for your time. It's rare, but some places will even invite you to work with them in their office for a few days, as a "trial.")
Do I need to know this "big O" stuff?
Big O notation is the language we use for talking about the efficiency of data structures and algorithms.
Will it come up in your interviews? Well, it depends. There are different types of interviews.
There’s the classic algorithmic coding interview, sometimes called the “Google-style whiteboard interview.” It’s focused on data structures and algorithms (queues and stacks, binary search, etc).
That’s what our full course prepares you for. It's how the big players interview. Google, Facebook, Amazon, Microsoft, Oracle, LinkedIn, etc.
For startups and smaller shops, it’s a mixed bag. Most will ask at least a few algorithmic questions. But they might also include some role-specific stuff, like Java questions or SQL questions for a backend web engineer. They’ll be especially interested in your ability to ship code without much direction. You might end up doing a code test or pair-programming exercise instead of a whiteboarding session.
To make sure you study for the right stuff, you should ask your recruiter what to expect. Send an email with a question like, “Is this interview going to cover data structures and algorithms? Or will it be more focused around coding in X language.” They’ll be happy to tell you.
If you've never learned about data structures and algorithms, or you're feeling a little rusty, check out our Intuitive Guide to Data Structures and Algorithms.
Which programming language should I use?
Companies usually let you choose, in which case you should use your most comfortable language. If you know a bunch of languages, prefer one that lets you express more with fewer characters and fewer lines of code, like Python or Ruby. It keeps your whiteboard cleaner.
Try to stick with the same language for the whole interview, but sometimes you might want to switch languages for a question. E.g., processing a file line by line will be far easier in Python than in C++.
Sometimes, though, your interviewer will do this thing where they have a pet question that’s, for example, C-specific. If you list C on your resume, they’ll ask it.
So keep that in mind! If you’re not confident with a language, make that clear on your resume. Put your less-strong languages under a header like ‘Working Knowledge.’
What should I wear?
A good rule of thumb is to dress a tiny step above what people normally wear to the office. For most west coast tech companies, the standard digs are just jeans and a t-shirt. Ask your recruiter what the office is like if you’re worried about being too casual.
Should I send a thank-you note?
Thank-you notes are nice, but they aren’t really expected. Be casual if you send one. No need for a hand-calligraphed note on fancy stationery. Opt for a short email to your recruiter or the hiring manager. Thank them for helping you through the process, and ask them to relay your thanks to your interviewers.
1) Coding Interview Tips
How to get better at technical interviews without practicing
Chitchat like a pro.
Before diving into code, most interviewers like to chitchat about your background. They're looking for:

You should have at least one:

Nerd out about stuff. Show you're proud of what you've done, you're amped about what they're doing, and you have opinions about languages and workflows.
Communicate.
Once you get into the coding questions, communication is key. A candidate who needed some help along the way but communicated clearly can be even better than a candidate who breezed through the question.
Understand what kind of problem it is. There are two types of problems:

  1. Coding. The interviewer wants to see you write clean, efficient code for a problem.
  2. Chitchat. The interviewer just wants you to talk about something. These questions are often either (1) high-level system design ("How would you build a Twitter clone?") or (2) trivia ("What is hoisting in Javascript?"). Sometimes the trivia is a lead-in for a "real" question e.g., "How quickly can we sort a list of integers? Good, now suppose instead of integers we had . . ."
If you start writing code and the interviewer just wanted a quick chitchat answer before moving on to the "real" question, they'll get frustrated. Just ask, "Should we write code for this?"
Make it feel like you're on a team. The interviewer wants to know what it feels like to work through a problem with you, so make the interview feel collaborative. Use "we" instead of "I," as in, "If we did a breadth-first search we'd get an answer in O(n)O(n) time." If you get to choose between coding on paper and coding on a whiteboard, always choose the whiteboard. That way you'll be situated next to the interviewer, facing the problem (rather than across from her at a table).
Think out loud. Seriously. Say, "Let's try doing it this way—not sure yet if it'll work." If you're stuck, just say what you're thinking. Say what might work. Say what you thought could work and why it doesn't work. This also goes for trivial chitchat questions. When asked to explain Javascript closures, "It's something to do with scope and putting stuff in a function" will probably get you 90% credit.
Say you don't know. If you're touching on a fact (e.g., language-specific trivia, a hairy bit of runtime analysis), don't try to appear to know something you don't. Instead, say "I'm not sure, but I'd guess $thing, because...". The because can involve ruling out other options by showing they have nonsensical implications, or pulling examples from other languages or other problems.
Slow the eff down. Don't confidently blurt out an answer right away. If it's right you'll still have to explain it, and if it's wrong you'll seem reckless. You don't win anything for speed and you're more likely to annoy your interviewer by cutting her off or appearing to jump to conclusions.
Get unstuck.
Sometimes you'll get stuck. Relax. It doesn't mean you've failed. Keep in mind that the interviewer usually cares more about your ability to cleverly poke the problem from a few different angles than your ability to stumble into the correct answer. When hope seems lost, keep poking.
Draw pictures. Don't waste time trying to think in your head—think on the board. Draw a couple different test inputs. Draw how you would get the desired output by hand. Then think about translating your approach into code.
Solve a simpler version of the problem. Not sure how to find the 4th largest item in the set? Think about how to find the 1st largest item and see if you can adapt that approach.
Write a naive, inefficient solution and optimize it later. Use brute force. Do whatever it takes to get some kind of answer.
Think out loud more. Say what you know. Say what you thought might work and why it won't work. You might realize it actually does work, or a modified version does. Or you might get a hint.
Wait for a hint. Don't stare at your interviewer expectantly, but do take a brief second to "think"—your interviewer might have already decided to give you a hint and is just waiting to avoid interrupting.
Think about the bounds on space and runtime. If you're not sure if you can optimize your solution, think about it out loud. For example:

Get your thoughts down.
It's easy to trip over yourself. Focus on getting your thoughts down first and worry about the details at the end.
Call a helper function and keep moving. If you can't immediately think of how to implement some part of your algorithm, big or small, just skip over it. Write a call to a reasonably-named helper function, say "this will do X" and keep going. If the helper function is trivial, you might even get away with never implementing it.
Don't worry about syntax. Just breeze through it. Revert to English if you have to. Just say you'll get back to it.
Leave yourself plenty of room. You may need to add code or notes in between lines later. Start at the top of the board and leave a blank line between each line.
Save off-by-one checking for the end. Don't worry about whether your for loop should have "<<" or "<=<=." Write a checkmark to remind yourself to check it at the end. Just get the general algorithm down.
Use descriptive variable names. This will take time, but it will prevent you from losing track of what your code is doing. Use names_to_phone_numbers instead of nums. Imply the type in the name. Functions returning booleans should start with "is_*". Vars that hold a list should end with "s." Choose standards that make sense to you and stick with them.
Clean up when you're done.
Walk through your solution by hand, out loud, with an example input. Actually write down what values the variables hold as the program is running—you don't win any brownie points for doing it in your head. This'll help you find bugs and clear up confusion your interviewer might have about what you're doing.
Look for off-by-one errors. Should your for loop use a "<=<=" instead of a "<<"?
Test edge cases. These might include empty sets, single-item sets, or negative numbers. Bonus: mention unit tests!
Don't be boring. Some interviewers won't care about these cleanup steps. If you're unsure, say something like, "Then I'd usually check the code against some edge cases—should we do that next?"
Practice.
In the end, there's no substitute for running practice questions.
Actually write code with pen and paper. Be honest with yourself. It'll probably feel awkward at first. Good. You want to get over that awkwardness now so you're not fumbling when it's time for the real interview.

2) Tricks For Getting Unstuck During a Coding Interview
Getting stuck during a coding interview is rough.
If you weren’t in an interview, you might take a break or ask Google for help. But the clock is ticking, and you don’t have Google.
You just have an empty whiteboard, a smelly marker, and an interviewer who’s looking at you expectantly. And all you can think about is how stuck you are.
You need a lifeline for these moments—like a little box that says “In Case of Emergency, Break Glass.”
Inside that glass box? A list of tricks for getting unstuck. Here’s that list of tricks.
When you’re stuck on getting started
1) Write a sample input on the whiteboard and turn it into the correct output "by hand." Notice the process you use. Look for patterns, and think about how to implement your process in code.
Trying to reverse a string? Write “hello” on the board. Reverse it “by hand”—draw arrows from each character’s current position to its desired position.
Notice the pattern: it looks like we’re swapping pairs of characters, starting from the outside and moving in. Now we’re halfway to an algorithm.
2) Solve a simpler version of the problem. Remove or simplify one of the requirements of the problem. Once you have a solution, see if you can adapt that approach for the original question.
Trying to find the k-largest element in a set? Walk through finding the largest element, then the second largest, then the third largest. Generalizing from there to find the k-largest isn’t so bad.
3) Start with an inefficient solution. Even if it feels stupidly inefficient, it’s often helpful to start with something that’ll return the right answer. From there, you just have to optimize your solution. Explain to your interviewer that this is only your first idea, and that you suspect there are faster solutions.
Suppose you were given two lists of sorted numbers and asked to find the median of both lists combined. It’s messy, but you could simply:

  1. Concatenate the arrays together into a new array.
  2. Sort the new array.
  3. Return the value at the middle index.
Notice that you could’ve also arrived at this algorithm by using trick (2): Solve a simpler version of the problem. “How would I find the median of one sorted list of numbers? Just grab the item at the middle index. Now, can I adapt that approach for getting the median of two sorted lists?”
When you’re stuck on finding optimizations
1) Look for repeat work. If your current solution goes through the same data multiple times, you’re doing unnecessary repeat work. See if you can save time by looking through the data just once.
Say that inside one of your loops, there’s a brute-force operation to find an element in an array. You’re repeatedly looking through items that you don’t have to. Instead, you could convert the array to a lookup table to dramatically improve your runtime.
2) Look for hints in the specifics of the problem. Is the input array sorted? Is the binary tree balanced? Details like this can carry huge hints about the solution. If it didn’t matter, your interviewer wouldn’t have brought it up. It’s a strong sign that the best solution to the problem exploits it.
Suppose you’re asked to find the first occurrence of a number in a sorted array. The fact that the array is sorted is a strong hint—take advantage of that fact by using a binary search.

Sometimes interviewers leave the question deliberately vague because they want you to ask questions to unearth these important tidbits of context. So ask some questions at the beginning of the problem.
3) Throw some data structures at the problem. Can you save time by using the fast lookups of a hash table? Can you express the relationships between data points as a graph? Look at the requirements of the problem and ask yourself if there’s a data structure that has those properties.
4) Establish bounds on space and runtime. Think out loud about the parameters of the problem. Try to get a sense for how fast your algorithm could possibly be:

When All Else Fails
1) Make it clear where you are. State what you know, what you’re trying to do, and highlight the gap between the two. The clearer you are in expressing exactly where you’re stuck, the easier it is for your interviewer to help you.
2) Pay attention to your interviewer. If she asks a question about something you just said, there’s probably a hint buried in there. Don’t worry about losing your train of thought—drop what you’re doing and dig into her question.
Relax. You’re supposed to get stuck.
Interviewers choose hard problems on purpose. They want to see how you poke at a problem you don’t immediately know how to solve.
Seriously. If you don’t get stuck and just breeze through the problem, your interviewer’s evaluation might just say “Didn’t get a good read on candidate’s problem-solving process—maybe she’d already seen this interview question before?”
On the other hand, if you do get stuck, use one of these tricks to get unstuck, and communicate clearly with your interviewer throughout...that’s how you get an evaluation like, “Great problem-solving skills. Hire.”

3) Fixing Impostor Syndrome in Coding Interviews
“It's a fluke that I got this job interview...”
“I studied for weeks, but I’m still not prepared...”
“I’m not actually good at this. They’re going to see right through me...”
If any of these thoughts resonate with you, you're not alone. They are so common they have a name: impostor syndrome.
It’s that feeling like you’re on the verge of being exposed for what you really are—an impostor. A fraud.
Impostor syndrome is like kryptonite to coding interviews. It makes you give up and go silent.
You might stop asking clarifying questions because you’re afraid they’ll sound too basic. Or you might neglect to think out loud at the whiteboard, fearing you’ll say something wrong and sound incompetent.
You know you should speak up, but the fear of looking like an impostor makes that really, really hard.
Here’s the good news: you’re not an impostor. You just feel like an impostor because of some common cognitive biases about learning and knowledge.
Once you understand these cognitive biases—where they come from and how they work—you can slowly fix them. You can quiet your worries about being an impostor and keep those negative thoughts from affecting your interviews.

Everything you could know

Here’s how impostor syndrome works.
Software engineering is a massive field. There’s a huge universe of things you could know. Huge.
In comparison to the vast world of things you could know, the stuff you actually know is just a tiny sliver:
That’s the first problem. It feels like you don’t really know that much, because you only know a tiny sliver of all the stuff there is to know.

The expanding universe

It gets worse: counterintuitively, as you learn more, your sliver of knowledge feels like it's shrinking.
That's because you brush up against more and more things you don’t know yet. Whole disciplines like machine learning, theory of computation, and embedded systems. Things you can't just pick up in an afternoon. Heavy bodies of knowledge that take months to understand.
So the universe of things you could know seems to keep expanding faster and faster—much faster than your tiny sliver of knowledge is growing. It feels like you'll never be able to keep up.

What everyone else knows

Here's another common cognitive bias: we assume that because something is easy for us, it must be easy for everyone else. So when we look at our own skills, we assume they're not unique. But when we look at other people's skills, we notice the skills they have that we don't have.
The result? We think everyone’s knowledge is a superset of our own:
This makes us feel like everyone else is ahead of us. Like we're always a step behind.
But the truth is more like this:
There's a whole area of stuff you know that neither Aysha nor Bruno knows. An area you're probably blind to, because you're so focused on the stuff you don't know.

We’ve all had flashes of realizing this. For me, it was seeing the back end code wizard on my team—the one that always made me feel like an impostor—spend an hour trying to center an image on a webpage.

It's a problem of focus

Focusing on what you don't know causes you to underestimate what you do know. And that's what causes impostor syndrome.
By looking at the vast (and expanding) universe of things you could know, you feel like you hardly know anything.
And by looking at what Aysha and Bruno know that you don't know, you feel like you're a step behind.
And interviews make you really focus on what you don't know. You focus on what could go wrong. The knowledge gaps your interviewers might find. The questions you might not know how to answer.
But remember:
Just because Aysha and Bruno know some things you don't know, doesn't mean you don't also know things Aysha and Bruno don't know.
And more importantly, everyone's body of knowledge is just a teeny-tiny sliver of everything they could learn. We all have gaps in our knowledge. We all have interview questions we won't be able to answer.
You're not a step behind. You just have a lot of stuff you don't know yet. Just like everyone else.

4) The 24 Hours Before Your Interview

Feeling anxious? That’s normal. Your body is telling you you’re about to do something that matters.

The twenty-four hours before your onsite are about finding ways to maximize your performance. Ideally, you wanna be having one of those days, where elegant code flows effortlessly from your fingertips, and bugs dare not speak your name for fear you'll squash them.
You need to get your mind and body in The Zone™ before you interview, and we've got some simple suggestions to help.
5) Why You're Hitting Dead Ends In Whiteboard Interviews

The coding interview is like a maze

Listening vs. holding your train of thought

Finally! After a while of shooting in the dark and frantically fiddling with sample inputs on the whiteboard, you've came up with an algorithm for solving the coding question your interviewer gave you.
Whew. Such a relief to have a clear path forward. To not be flailing anymore.
Now you're cruising, getting ready to code up your solution.
When suddenly, your interviewer throws you a curve ball.
"What if we thought of the problem this way?"
You feel a tension we've all felt during the coding interview:
"Try to listen to what they're saying...but don't lose your train of thought...ugh, I can't do both!"
This is a make-or-break moment in the coding interview. And so many people get it wrong.
Most candidates end up only half understanding what their interviewer is saying. Because they're only half listening. Because they're desperately clinging to their train of thought.
And it's easy to see why. For many of us, completely losing track of what we're doing is one of our biggest coding interview fears. So we devote half of our mental energy to clinging to our train of thought.
To understand why that's so wrong, we need to understand the difference between what we see during the coding interview and what our interviewer sees.

The programming interview maze

Working on a coding interview question is like walking through a giant maze.
You don't know anything about the shape of the maze until you start wandering around it. You might know vaguely where the solution is, but you don't know how to get there.
As you wander through the maze, you might find a promising path (an approach, a way to break down the problem). You might follow that path for a bit.
Suddenly, your interviewer suggests a different path:
But from what you can see so far of the maze, your approach has already gotten you halfway there! Losing your place on your current path would mean a huge step backwards. Or so it seems.
That's why people hold onto their train of thought instead of listening to their interviewer. Because from what they can see, it looks like they're getting somewhere!
But here's the thing: your interviewer knows the whole maze. They've asked this question 100 times.

I'm not exaggerating: if you interview candidates for a year, you can easily end up asking the same question over 100 times.
So if your interviewer is suggesting a certain path, you can bet it leads to an answer.
And your seemingly great path? There's probably a dead end just ahead that you haven't seen yet:
Or it could just be a much longer route to a solution than you think it is. That actually happens pretty often—there's an answer there, but it's more complicated than you think.

Hitting a dead end is okay. Failing to listen is not.

Your interviewer probably won't fault you for going down the wrong path at first. They've seen really smart engineers do the same thing. They understand it's because you only have a partial view of the maze.
They might have let you go down the wrong path for a bit to see if you could keep your thinking organized without help. But now they want to rush you through the part where you discover the dead end and double back. Not because they don't believe you can manage it yourself. But because they want to make sure you have enough time to finish the question.
But here's something they will fault you for: failing to listen to them. Nobody wants to work with an engineer who doesn't listen.
So when you find yourself in that crucial coding interview moment, when you're torn between holding your train of thought and considering the idea your interviewer is suggesting...remember this:
Listening to your interviewer is the most important thing.
Take what they're saying and run with it. Think of the next steps that follow from what they're saying.
Even if it means completely leaving behind the path you were on. Trust the route your interviewer is pointing you down.
Because they can see the whole maze.
6) How To Get The Most Out Of Your Coding Interview Practice Sessions
When you start practicing for coding interviews, there’s a lot to cover. You’ll naturally wanna brush up on technical questions. But how you practice those questions will make a big difference in how well you’re prepared.
Here’re a few tips to make sure you get the most out of your practice sessions.
Track your weak spots
One of the hardest parts of practicing is knowing what to practice. Tracking what you struggle with helps answer that question.
So grab a fresh notebook. After each question, look back and ask yourself, “What did I get wrong about this problem at first?” Take the time to write down one or two things you got stuck on, and what helped you figure them out. Compare these notes to our tips for getting unstuck.
After each full practice session, read through your entire running list. Read it at the beginning of each practice session too. This’ll add a nice layer of rigor to your practice, so you’re really internalizing the lessons you’re learning.
Use an actual whiteboard
Coding on a whiteboard is awkward at first. You have to write out every single character, and you can’t easily insert or delete blocks of code.
Use your practice sessions to iron out that awkwardness. Run a few problems on a piece of paper or, if you can, a real whiteboard. A few helpful tips for handwriting code:

Set a timer
Get a feel for the time pressure of an actual interview. You should be able to finish a problem in 30–45 minutes, including debugging your code at the end.
If you’re just starting out and the timer adds too much stress, put this technique on the shelf. Add it in later as you start to get more comfortable with solving problems.
Think out loud
Like writing code on a whiteboard, this is an acquired skill. It feels awkward at first. But your interviewer will expect you to think out loud during the interview, so you gotta power through that awkwardness.
A good trick to get used to talking out loud: Grab a buddy. Another engineer would be great, but you can also do this with a non-technical friend.
Have your buddy sit in while you talk through a problem. Better yet—try loading up one of our questions on an iPad and giving that to your buddy to use as a script!
Set aside a specific time of day to practice.
Give yourself an hour each day to practice. Commit to practicing around the same time, like after you eat dinner. This helps you form a stickier habit of practicing.
Prefer small, daily doses of practice to doing big cram sessions every once in a while. Distributing your practice sessions helps you learn more with less time and effort in the long run.
part -2 will be upcoming in another post !
submitted by Cyberrockz to u/Cyberrockz [link] [comments]

2016 how to read binary options graphs How to Read Binary Options Candlestick Charts How to trade Binary Option with Line Chart EP02 Binary Options Trading Strategy: Graphic Trend Analysis Using 5 Minute Candlestick Charts Binary Options Line Chart Trading Pattern Iq Option

iq option Test Broker Erfahrungen 2020. Binäre Optionen werden nicht beworben oder an Kleinanleger im EWR verkauft. Wenn Sie kein professioneller Kunde sind, verlassen Sie bitte diese Seite. Broker und Regulierung. Nicht nur neue Nutzer bestehen umgehend darauf, auf umfangreiche Sicherheitsvorkehrungen vertrauen zu können. Das Traden ... Binary Options Graphs. Menu. Home; Choosing a Good Trading Binary Options Course. January 29, 2016 April 13, 2016 asiejupgyumiz1995 Benefits of binary options binary option, trading, training. This is perhaps one of the issues that generated more controversy in the field of traders and investors. To choose a good trading binary options course, there are a lot of possibilities, with the supply ... Binary options graphs provide you with a visual context for placing a trade. How much you rely on the graph data to place your trade will depend on your entry rules. Entry rules are part of coming up with a trading method, also called a trading system. Having a method is a key component to becoming a real, professional trader instead of a gambler. Some trading methods rely heavily on the ... Candle graphs have become the most preferred choice among all modern day traders. For each graph, we can choose so called timeframe, which is just an option of how large period of time one candle represents. The most common choices for binary options traders are 1 minute, 5 minutes, 15 minutes and 1 hour timeframes. When trading binary options ... IQ Option; Binäre Optionen Demo; binäre optionen strategie. Unsere kostenlosen Strategien; Ausbildung. Nachrichten ; Technische Analyse; Fundamentalanalyse; Meta Trader Serie; Money Management; BETRÜGER; eBooks; Glossar; Indikatoren für Binäre Optionen; Häufig gestellten Fragen; Über uns; In the European Economy Area, binary and digital options are only offered and advertised to ... Free Binary Options Charts >>>Click Here To Learn How To Use This Binary Options Chart<<< Different Types of Charts for Binary Options Trading. When you start trading binary options, there are several types of charts you will see most often. Each type of binary options chart has advantages and disadvantages, and once you understand the ... Some brokers now offer high quality binary options charts for traders, and ETX Capital and IQ Option also deliver MetaTrader 4 integration. Broker Regulated Min Deposit Payouts Bonus; IQ Option: $10: 91%* » Visit : Brokers are filtered based on your location (United States). Reload this page with location filtering off. General risk warning: your capital is at risk * Amount is credited to ... Binary options charts are used by traders to track the progress and movement of various assets. There are multiple types of charts used for numerous types of trading, but there are some common ones that you will see more often. From simple one screen line formats to multiple screens displaying various assets and data, it is essential to make sure you have the tools you need to be able to trade ... Binary option trading on margin involves high risk, and is not suitable for all investors. As a leveraged product losses are able to exceed initial deposits and capital is at risk. Before deciding to trade binary options or any other financial instrument you should carefully consider your investment objectives, level of experience, and risk appetite. In accordance with FTC guidelines ... Binary Option Graphs January And February 2016. December 21, 2015 January 6, 2016 asiejupgyumiz1995 Benefits of binary options binary option, invest in stocks, strategy 1. 2 posts published by newbinaryoptionsstrategies during February 2016. <p>(Most texts state that hydrogen sulfide smells like rotten eggs, but, with modern refrigeration, it is probably more Hydrogen sulfide can cause ...

[index] [17681] [19657] [23976] [18832] [6329] [17495] [19381] [11711] [26107] [21224]

2016 how to read binary options graphs

Binary Options - This Alligator Indicator Helped Me Win Every Trade - Duration: 7:34. Imba Trader 16,047 views. 7:34. Top Five Useful Knots for camping, survival, hiking, and more - Duration ... binary options trading, binary options trading signals, binary options review, binary options binary software binary trading binary options brokers binary options strategy binary option binary ... Within a Binary Options platform, the trader would see a graph representing the Google share price over a period of time, the current price and two buttons to the right of the graph. The buttons ... New video 2016 2016 how to read binary options graphs To begin Binary Trading you will need a solid chart software to help make your decisions a Rank Site Name Broker Site Bonus Read Review Open ... Binary Options - When to Enter Trades - Duration: 7:44. Pope Binary 624,142 views. 7:44. 95% Winning Forex Trading Formula - Beat The Market Maker📈 - Duration: 37:53. ...

https://binaryoptiontrade.titulegersclenchip.ml