Top 10 Alternatives to Eventbrite: Leading Event ...

Over-Optimizing for Performance

Recently on the csharp subreddit, the post C# 9.0 records: immutable classes linked to a surprisingly controversial article discussing how C# 9.0's records are, underneath it all, immutable classes. The comments are full of back-&-forth over whether one should use records for ease or structs for performance. The pro-struct argument revolved around the belief that performance should always be a developer's #1 priority, and anything less was the realm of the laggard.
Here is a real-world example that shows with stark clarity why that kind of thinking is wrong.
Consider the following scenario:

1

You're working on a game with dozens, maybe hundreds of people on the team; you don't know because when you were cross with facilities about them removing all the fluorescents, you got accused of being against the new energy saving initiative. Now you swim in a malevolent ocean of darkness that on some very late nights alone in the office, you swear is actively trying to consume you.
 

2

The team that preceded you inherited an engine that is older than OOP, when source repositories were stacks of 8-inch floppies, and it looked as if Jefferson Starship was going to take over the world. One year ago they bequeathed upon the company this nightmare of broken, undocumented GOTO spaghetti & anti-patterns. You're convinced this was their sadistic revenge for all getting fired post-acquisition.
 

3

Management denied your request to get headcount for an additional technical artist, but helpfully supplied you with an overly nervous intern. After several weeks working alongside them, you're beginning to suspect they're pursuing something other than a liberal arts degree.
 

4

Despite the many getting started guides you spent countless evenings writing, the endless brownbags nobody attended, and the daily dozen emails you forward to oppressively inquisitive artists comprised of a single passive-aggressive sentence suggesting they scroll down to the part that begins FW: FW: FW: FW: FW: FW: RE: WE BROKE TOOL NEED WORKAROUND ASAP ...
 
...yes, despite all of that, the engineering team still spent days tracking down why the game kept crashing with Error 107221: У вас ошибка after re-re-re-re-re-throwing an ex_exception when it couldn't (and should never even try to) load a 16K-textured floor mat.
 

5

Despite your many attempts to politely excuse yourself, one blissfully unaware artist exhausts 48 minutes of your lunch break explaining how the Pitchfork review for the latest "dope slab" of this TikTok-Instagram-naphouse artist you never heard of was just sooooo unfair.
 
And then in their hurry to finish up & catch the 2:30 PM bus home, they forget to toggle Compress To CXIFF (Custom Extended Interchange File Format), set the Compression slider 5/6ths of the way between -3 & -2, look to their left, look to their right, click Export As .MA 0.9.3alpha7, and make absolutely, positively, 100% SURE not to be working in prod. And THAT is how the game explodicated.
 

6

You know better than anyone the intermediate file format the main game loop passes to Game.dll, memory mapping it as a reverse top-middle Endian binary structure.
 
You know for 381 of the parameter fields what their 2-7 character names probably mean.
 
YOU know which 147 fields always have to be included, but with a null value, and that the field ah_xlut must ALWAYS be set to 0 unless it's Thursday, in which case that blackbox from hell requires its internal string equivalent: TRUE.
 
YOU know that the two tech artists & one rapidly aging intern that report to you would totally overhaul tooling so artists would never "happen" again, but there just aren't enough winters, springs, summers, falls, July 4ths, Christmas breaks, Presidents Days, and wedding anniversaries in a year to properly do so.
 

7

If you could just find the time between morning standups, after lunch standups, watersprint post-mortems, Milbert's daily wasting of an hour at your desk trying to convince you engineering should just rebuild the engine from the ground up in JavaScript & React, & HR's mandatory EKG Monitor job satisfaction surveys, you might be able to get at least some desperately-needed tooling done.
 
And so somehow you do. A blurry evening or two here. A 3:00 AM there. Sometimes just a solitary lunch hour.
 
Your dog no longer recognizes you.
 
You miss your wife calling to say she's finally cleaning out the hall closet and if you want to keep this box of old cards & something in plastic that says Underground Sea Beta 9.8 Grade, you better call her back immediately.
 
And your Aunt Midge, who doesn't understand how SMS works, bombards you one evening:
your father is...
no longer with us...
they found him...
1 week ago...
in an abandoned Piggly Wiggly...
by an old culvert...
split up...
he was then...
laid down to rest...
sent to St. Peter's...
and your father...
he's in a better place now...
don't worry...
it's totally okay...
we decided we will all go...
up to the mountain
 
You call your sister in a panic and, after a tidal wave of confusion & soul-rending anxiety, learn it was just Hoboken Wireless sending the messages out of order. This causes you to rapidly cycle.
 

8

On your bipolar's upswing, you find yourself more productive than you've ever been. Your mind is aglow with whirling, transient nodes of thought careening through a cosmic vapor of invention. It's like your brain is on 200mg of pure grade Adderall.
 
Your fingers ablaze with records, clean inheritance, beautiful pattern matching, bountiful expression syntax, aircraft carriers of green text that generate the most outstanding CHM for an internal tool the world has ever seen. Readable. PERFECTLY SOLID.
 
After much effort, you gaze upon the completed GUI of your magnum opus with the kind of pride you imagine one would feel if they hadn't missed the birth of their son. Clean, customer-grade WPF; tooltips for every control; sanity checks left & right; support for plugins & light scripting. It's even integrated with source control!
 
THOSE GODDAMNED ARTISTS CAN'T FAIL. YOUR PIPELINE TOOL WON'T LET THEM.
 
All they have to do is drag content into the application window, select an options template or use the one your tool suggests after content analysis, change a few options, click Export, and wait for 3-5 minutes to generate Game.dll-compatible binary.
 
Your optimism shines through the commit summary, your test plan giddy & carefree. With great anticipation, you await code review.
 

9

A week goes by. Then two. Then three. Nothing. The repeated pinging of engineers, unanswered.
 
Two months in you've begun to lose hope. Three months, the pangs of defeat. Four months, you write a blog post about how fatalism isn't an emotion or outlook, but the TRANSCENDENCE of their sum. Two years pass by. You are become apathy, destroyer of wills.
 

10

December 23rd, 2022: the annual Winter Holidays 2-hour work event. The bar is open, the Kokanee & Schmidt's flowing (max: 2 drink tickets). The mood a year-high ambivalent; the social distancing: acceptable. They even have Pabst Blue Ribbon, a beer so good it won an award once.
 
Standing beside you are your direct reports, Dave "Macroman" Thorgletop and wide-eyed The Intern, the 3 of you forming a triumvirate of who gives a shit. Dave is droning on & on about a recent family trip to Myrtle Beach. You pick up something something "can you believe that's when my daughter Beth scooped up a dead jellyfish? Ain't that something? A dead jellyfish," and "they even had a Ron Jons!"
 
You barely hear him, lost as you are in thought: "I wish I had 2 days of vacation." You stare down ruefully at your tallboy.
 
From the corner of your eye you spot Milbert, index finger pointed upward, face a look of pure excitement.
 
"Did I tell you about my OpenWinamp project? It's up on SourceForge", he says as he strides over. It's unsettling how fast this man is.
 
"JAVASCRIPT IS JUST A SUBSET OF JAVA!" you yell behind you, tossing the words at him like a German potato masher as you power walk away. It does its job, stopping Milbert dead in his tracks.
 
Dave snickers. The Intern keeps staring wide-eyed. You position yourself somewhat close to the studio's 3 young receptionists, hoping they serve as a kind of ritual circle of protection.
 
It works... kind of. Milbert is now standing uncomfortably close to The Intern, Dave nowhere to be seen.
 
From across the room you distinctly hear "Think about it, the 1st-person UI could be Lua-driven Electron."
 
The Intern clearly understands that words are being spoken to them, but does not comprehend their meaning.
 
You briefly feel sorry for the sacrificial lamb.
 

11

You slide across the wall, putting even more distance between you & boredom made man. That's when you spot him, arrogantly aloof in the corner: Glen Glengerry. Core engineering's most senior developer.
 
Working his way up from a 16-year old game tester making $4.35 an hour plus free Dr. Shasta, to pulling in a cool $120K just 27-years later, plus benefits & Topo Chicos. His coding style guides catechism, his Slack pronouncements ex cathedra; he might as well be CTO.
 
You feel lucky your team is embedded with the artists. You may have sat through their meetings wondering why the hell you should care about color theory, artistic consistency, & debates about whether HSL or CMYK was the superior color space (spoiler: it's HSL), you were independent and to them, a fucking code wizard, man.
 
And there he stands, this pseudo-legend, so close you could throw a stapler at him. Thinning grey-blonde tendrils hanging down from his CodeWarrior hat, white tee with This Guy VIMs on the back, tucked into light blue jeans. He's staring out into the lobby at everything and yet... nothing all at.
 

12

Maybe it's the 4.8% ABV. Maybe it's the years of crushing down anger into a singularity, waiting for it to undergo rapid fiery expansion, a Big Bang of righteous fury. Maybe it's those sandals with white socks. Maybe it's all three. But whatever it is, it's as if God himself compels you to march over & give him a piece of your mind, seniority be damned.
 
"Listen, you big dumb bastard..."
 
That... is maybe a little too aggressive. But Glen Glengerry barely reacts. Pulling a flask out of his back pocket, he doesn't look over as he passes it to you.
 
Ugh. Apple Pucker.
 

13

"I thought bringing in your own alcohol was against company policy", wiping sticky green sludge from your lips. He turns with a look of pure disdain & snorts.
 
"You think they're going to tell ME what I can & can't bring in?" He grabs the flask back, taking a big swig.
 
For what feels like an eternity, you both stand in silence. You swallow, speaking softly. "None of you even looked at my code. I worked very, very hard on that. My performance review for that year simply read 'recommend performance improvement plan." The words need no further context.
 
"I know", Glen² replies. "That was me."
 

14

Now you're not a weak man, and maybe in some other circumstance you would have punched him in the goddamn lip. But you feel nothing, just a hollowness inside. "Why?", you ask, wondering if the answer would even matter.
 
"Because you don't use Bulgarian notation. Because your method names aren't lower camel case. Because good code doesn't require comments. Because you use classes & records over more performant structs, pointlessly burdening the heapstack. BECAUSE. YOUR CODE. IS. SHIT."
 
You clinch your fists so tightly the knuckles whiten.
 

15

He looks away from you, taking another sip of green goo. "You're not a coder. You're an artist masquerading as one" he speaks, as if it were fact.
 
The only thing artistic about you is the ability to create user-friendly internal tooling using nothing but a UI framework, broken down garbage nobody wants to touch, & sheer willpower. If your son's life depended on you getting accepted into art instruction school, you couldn't even draw a turtle.
 
He doesn't pause. "I'll champion ruthless micro-optimization until the day I die. But buddy, I'm going to let you in on a little secret: you aren't here to improve workflow. You're here to LOOK like you're doing something NOBODY else can."
 
He goes on. "What do you think those artists are going to do when they have to stare at a progress bar for 4, 5 minutes? They're going to complain your tool is slow."
 
"Sure, it may take them 20, 30 minutes to do it the old way, there'll be an error, and either they'll stare at it for 30 minutes before adding that missing semi-colon or they'll come get you. And you'll fix it. And 1 week later, they won't remember how. And you'll stay employed. And every. Body. Wins."
 

16

A little bit of the pride, the caring, wells back up inside from somewhere long forgotten.
 
"You don't think we should care about rapid application development & KISS, quickly getting things out that help our team, instead devoting ourselves to shaving off ticks here & there? What do you think artists are going to do with those 4 minutes you talk about?
 
You don't stop. "I'll tell you what they'll do. They'll 9GAG for 20 minutes straight. They'll listen to podcasts about dialectical materialism vis-a-vis the neo-feudalism that is a natural extension of the modern world's capitalist prison. They'll Reddit."
 
His silence gives you the bravery to push the limits.
 
"Christ, man. Are you only in it for the $120K..."
 
He corrects you: "...$123K."
 
"...only in it for the $123K/year? The free snacks from the microkitchen? The adulation? Have you no sense of comraderie?? No desire to push us to something better?! No integrity?!!!"
 
His eyes sharply narrow, face creases in anger. You clearly have overstepped your bounds.
 

17

"You think I don't have integrity? No sense of teamwork? I'm only in it for the cold cash? You think I don't care about you all?", he roars.
 
A light volley of small green flecks land on your face.
 
"Why do you think they made a 16-year old tester the lead developer of a 1993 Doom clone?! Because my code was clean & painless to work with?! Because I made coding look easy?! No! IT WAS BECAUSE I WAS A GOD TO THEM.
 
And from a God, a PANTHEON. We built monuments to over-engineering! We crafted that of 7 weeks onboarding, that of immortal bugs, demonic hosts spawned by legion from the very loins of a fix. It took 2 years before a developer could BEGIN to feel confident they knew what they were doing. And by that time, they were one of US!
 
You think the team we laid off November '19 was fired because they were bad at their jobs? NO! It was because they worked themselves out of one. They didn't leave us a broken pipeline. They left an internal Wiki, a wealth of tools & example projects, and a completely transparent code base.
 
We couldn't have THAT, now could we? No, we couldn't. So we got rid of it. ALL OF IT. Poof. Gone. Just like that. Before anyone even knew a THING."
 
He leans forward, so close his psoriasis almost touches yours.  
With an intensity that borders on frightening, he whispers "You think they left us Game.dll? I fucking *MADE** Game.dll."*
 
The words hit hard like a freight train.
 

18

And without another word, he turns & leaves. You're left there, alone, coworkers milling about, with only one thought.
     
Were one to get a hobby, should it be cocaine?
 

In Conclusion

It's these kinds of situations that make me believe there are far more important considerations than a ruthless dedication to performance, even in the game industry as my real-world scenario so clearly demonstrates.
 
Like, records are cool & shit.
submitted by form_d_k to shittyprogramming [link] [comments]

Gridcoin 5.0.0.0-Mandatory "Fern" Release

https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/5.0.0.0
Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that.
Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap.
We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout.
Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.

Highlights

Protocol

Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now.
Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date.
The transition height is also when the team requirement will be relaxed for the network.

GUI

Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.

Blockchain

The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use.
There are so many goodies here it is hard to summarize them all.
I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures.
The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!

Summary Changelog

Accrual

Changed

Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.

Removed

Beacons

Added

Changed

Removed

Unaltered

As a reminder:

Superblocks

Added

Changed

Removed

Voting

Added

Changed

Removed

Detailed Changelog

[5.0.0.0] 2020-09-03, mandatory, "Fern"

Added

Changed

Removed

Fixed

submitted by jamescowens to gridcoin [link] [comments]

Video Encoding in Simple Terms

Video Encoding in Simple Terms
Nowadays, it is difficult to imagine a field of human activity, in which, in one way or another, digital video has not entered. We watch it on TV, mobile devices, and stationary computers; we record it with digital cameras ourselves, or we encounter it on the roads (unpleasant, but true), in stores, hospitals, schools and universities, and in industrial enterprises of various profiles. As a consequence, words and terms that are directly related to the digital representation of video information are becoming more firmly and widely embedded in our lives. From time to time, questions arise in this area. What are the differences between various devices or programs that we use to encode/ decode digital video data, and what do they do? Which of these devices/ programs are better or worse, and in which aspects? What do all these endless MPEG-2, H.264 / AVC, VP9, H.265 / HEVC, etc. mean? Let’s try to understand.

A very brief historical reference

The first generally accepted video compression standard MPEG-2 was finally adopted in 1996, after which a rapid development of digital satellite television began. The next standard was MPEG-4 part 10 (H.264 / AVC), which provides twice the degree of video data compression. It was adopted in 2003, which led to the development of DVB-T/ C systems, Internet TV and the emergence of a variety of video sharing and video communication services. From 2010 to 2013, the Joint Collaborative Team on Video Coding (JCT-VC) was intensively working to create the next video compression standard, which was called High Efficient Video Coding (HEVC) by the developers; it ensured the following twofold increase in the compression ratio of digital video data. This standard was approved in 2013. That same year, the VP9 standard, developed by Google, was adopted, which was supposed to not yield to HEVC in its degree of video data compression.

Basic stages of video encoding

There are a few simple ideas at the core of algorithms for video data compression. If we take some part of an image (in the MPEG-2 and AVC standards this part is called a macroblock), then there is a big possibility that, near this segment in this frame or in neighboring frames, there will be a segment containing a similar image, which differs little in pixel intensity values. Thus, to transmit information about the image in the current segment, it is enough to only transfer its difference from the previously encoded similar segment. The process of finding similar segments among previously encoded images is called Prediction. A set of difference values that determine the difference between the current segment and the found prediction is called the Residual. Here we can distinguish two main types of prediction. In the first one, the Prediction values represent a set of linear combinations of pixels adjacent to the current image segment on the left and on the top. This type of prediction is called Intra Prediction. In the second one, linear combinations of pixels of similar image segments from previously encoded frames are used as prediction (these frames are called Reference). This type of prediction is called Inter Prediction. To restore the image of the current segment, encoded with Inter prediction, when decoding, it is necessary to have information about not only the Residual, but also the frame number, where a similar segment is located, and the coordinates of this segment.
Residual values obtained during prediction obviously contain, on average, less information than the original image and, therefore, require a fewer quantity of bits for image transmission. To further increase the degree of compression of video data in video coding systems, some spectral transformation is used. Typically, this is Fourier cosine transform. Such transformation allows us to select the fundamental harmonics in two-dimensional Residual signal. Such a selection is made at the next stage of coding — quantization. The sequence of quantized spectral coefficients contains a small number of main, large values. The remaining values are very likely to be zero. As a result, the amount of information contained in quantized spectral coefficients is significantly (dozens of times) lower than in the original image.
In the next stage of coding, the obtained set of quantized spectral coefficients, accompanied by the information necessary for performing prediction when decoding, is subjected to entropy coding. The bottom line here is to align the most common values of the encoded stream with the shortest codeword (containing the smallest number of bits). The best compression ratio (close to theoretically achievable) at this stage is provided by arithmetic coding algorithms, which are mainly used in modern video compression systems.
From the above, the main factors affecting the effectiveness of a particular video compression system become apparent. First of all, these are, of course, the factors that determine the effectiveness of the Intra and Inter Predictions. The second set of factors is related to the orthogonal transformation and quantization, which selects the fundamental harmonics in the Residual signal. The third one is determined by the volume and compactness of the representation of additional information accompanying Residual and necessary for making predictions, that is, calculating Prediction, in the decoder. Finally, the fourth set has the factors that determine the effectiveness of the final stage- entropy coding.
Let’s illustrate some possible options (far from all) of the implementation of the coding stages listed above, on the example of H.264 / AVC and HEVC.

AVC Standard

In the AVC standard, the basic structural unit of the image is a macroblock — a square area of 16x16 pixels (Figure 1). When searching for the best possible prediction, the encoder can select one of several options of partitioning each macroblock. With Intra-prediction, there are three options: perform a prediction for the entire block as a whole, break the macroblock into four square blocks of 8x8 size, or into 16 blocks with a size of 4x4 pixels, and perform a prediction for each such block independently. The number of possible options of macroblock partitioning under Inter-prediction is much richer (Figure 1), which provides adaptation of the size and position of the predicted blocks to the position and shape of the object boundaries moving in the video frame.
Fig 1. Macroblocks in AVC and possible partitioning when using Inter-Prediction.
In AVC, pixel values from the column to the left of the predicted block and the row of pixels immediately above it are used for Intra prediction (Figure 2). For blocks of sizes 4x4 and 8x8, 9 methods of prediction are used. In a prediction called DC, all calculated pixels have a single value equal to the arithmetic average of the “neighbor pixels” highlighted in Fig. 2 with a bold line. In other modes, “angular” prediction is performed. In this case, the values of the “neighbor pixels” are placed inside the predicted block in the directions indicated in Fig. 2.
In the event that the predicted pixel gets between “neighbor pixels”, when moving in a given direction, an interpolated value is used for the prediction. For blocks with a size of 16x16 pixels, 4 methods of prediction are used. One of them is the DC-prediction, which was already reviewed. The other two correspond to the “angular” methods, with the directions of prediction 0 and 1. Finally, the fourth — Plane-prediction: the values of the predicted pixels are determined by the equation of the plane. The angular coefficients of the equation are determined by the values of the “neighboring pixels”.
Fig 2. “Neighboring pixels” and angular modes of Intra-Prediction in AVC
Inter- Prediction in AVC can be implemented in one of two ways. Each of these options determines the type of macroblock (P or B). As a prediction of pixel values in P-blocks (Predictive-blocks), the values of pixels from the area located on the previously coded (reference) image, are used. Reference images are not deleted from the RAM buffer, containing decoded frames (decoded picture buffer, or DPB), as long as they are needed for Inter-prediction. A reference list is created in the DPB from the indexes of these images.
The encoder signals to the decoder about the number of the reference image in the list and about the offset of the area used for prediction, with respect to the position of predicted block (this displacement is called motion vector). The offset can be determined with an accuracy of ¼ pixel. In case of prediction with non-integer offset, interpolation is performed. Different blocks in one image can be predicted by areas located on different reference images.
In the second option of Inter Prediction, prediction of the B-block pixel values (bi-predictive block), two reference images are used; their indexes are placed in two lists (list0 and list1) in the DPB. The two indexes of reference images in the lists and two offsets, that determine positions of reference areas, are transmitted to the decoder. The B-block pixel values are calculated as a linear combination of pixel values from the reference areas. For non-integer offsets, interpolation of reference image is used.
As already mentioned, after predicting the values of the encoded block and calculating the Residual signal, the next coding step is spectral transformation. In AVC, there are several options for orthogonal transformations of the Residual signal. When Intra-prediction of a whole macroblock with a size of 16x16 is implemented, the residual signal is divided into 4x4 pixel blocks; each of them is subjected to an integer analog of discrete two-dimensional 4x4 cosine Fourier transform.
The resulting spectral components, corresponding to zero frequency (DC) in each block, are then subjected to additional orthogonal Walsh-Hadamard transform. With Inter-prediction, the Residual signal is divided into blocks of 4x4 pixels or 8x8 pixels. Each block is then subjected to a 4x4 or 8x8 (respectively) two-dimensional discrete cosine Fourier Transform (DCT, from Discrete Cosine Transform).
In the next step, spectral coefficients are subjected to the quantization procedure. This leads to a decrease in bit capacity of digits representing the spectral sample values, and to a significant increase in the number of samples having zero values. These effects provide compression, i.e. reduce the number and bit capacity of digits representing the encoded image. The reverse side of quantization is the distortion of the encoded image. It is clear that the larger the quantization step, the greater is the compression ratio, but also the distortion is greater.
The final stage of encoding in AVC is entropy coding, implemented by the algorithms of Context Adaptive Binary Arithmetic Coding. This stage provides additional compression of video data without distortion in the encoded image.

Ten years later. HEVC standard: what’s new?

The new H.265/HEVC standard is the development of methods and algorithms for compressing video data embedded in H.264/AVC. Let’s briefly review the main differences.
An analog of a macroblock in HEVC is the Coding Unit (CU). Within each block, areas for calculation of Prediction are selected — Prediction Unit (PU). Each CU also specifies the limits within which the areas for calculating the discrete orthogonal transformation from the residual signal are selected. These areas are called the Transform Unit (TU).
The main distinguishing feature of HEVC here is that the split of a video frame into CU is conducted adaptively, so that it is possible to adjust the CU boundaries to the boundaries of objects on the image (Figure 3). Such adaptability allows to achieve an exceptionally high quality of prediction and, as a consequence, a low level of the residual signal.
An undoubted advantage of such an adaptive approach to frame division into blocks is also an extremely compact description of the partition structure. For the entire video sequence, the maximum and minimum possible CU sizes are set (for example, 64x64 is the maximum possible CU, 8x8 is the minimum). The entire frame is covered with the maximum possible CUs, left to right, top-to-bottom.
It is obvious that, for such coverage, transmission of any information is not required. If partition is required within any CU, then this is indicated by a single flag (Split Flag). If this flag is set to 1, then this CU is divided into 4 CUs (with a maximum CU size of 64x64, after partitioning we get 4 CUs of size 32x32 each).
For each of the CUs received, a Split Flag value of 0 or 1 can, in turn, be transmitted. In the latter case, this CU is again divided into 4 CUs of smaller size. The process continues recursively until the Split Flag of all received CUs is equal to 0 or until the minimum possible CU size is reached. Inserted CUs thus form a quad tree (Coding Tree Units, CTU). As already mentioned, within each CU, areas for calculating prediction- Prediction Units (PU) are selected. With Intra Prediction, the CU area can coincide with the PU (2Nx2N mode) or it can be divided into 4 square PUs of twice smaller size (NxN mode, available only for CU of minimum size). With Inter Prediction, there are eight possible options for partitioning each CU into PUs (Figure 3).
Fig.3 Video frame partitioning into CUs is conducted adaptively
The idea of spatial prediction in HEVC remained the same as in AVC. Linear combinations of neighboring pixel values, adjacent to the block on the left and above, are used as predicted sample values in the PU block. However, the set of methods for spatial prediction in HEVC has become significantly richer. In addition to Planar (analogue to Plane in AVC) and DC methods, each PU can be predicted by one of the 33 ways of “angular” prediction. That is, the number of ways, in which the values are calculated by “neighbor”-pixels, is increased by 4 times.
Fig. 4. Possible partitioning of the Coding Unit into Prediction Units with the spatial (Intra) and temporary (Inter) CU prediction modes
We can point out two main differences of Inter- prediction between HEVC and AVC. Firstly, HEVC uses better interpolation filters (with a longer impulse response) when calculating reference images with non-integer offset. The second difference concerns the way the information about the reference area, required by the decoder for performing the prediction, is presented. In HEVC, a “merge mode” is introduced, where different PUs, with the same offsets of reference areas, are combined. For the entire combined area, information about motion (motion vector) is transmitted in the stream once, which allows a significant reduction in the amount of information transmitted.
In HEVC, the size of the discrete two-dimensional transformation, to which the Residual signal is subjected, is determined by the size of the square area called the Transform Unit (TU). Each CU is the root of the TU quad tree. Thus, the TU of the upper level coincides with the CU. The root TU can be divided into 4 parts of half the size, each of which, in turn, is a TU and can be further divided.
The size of discrete transformation is determined by the TU size of the lower level. In HEVC, transforms for blocks of 4 sizes are defined: 4x4, 8x8, 16x16, and 32x32. These transformations are integer analogs of the discrete two-dimensional Fourier cosine transform of corresponding size. For size 4x4 TU with Intra-prediction, there is also a separate discrete transformation, which is an integer analogue of the discrete sine Fourier transform.
The ideas of the procedure of quantizing spectral coefficients of Residual signal, and also entropy coding in AVC and in HEVC, are practically identical.
Let’s note one more point which was not mentioned before. The quality of decoded images and the degree of video data compression are influenced significantly by post-filtering, which decoded images with Inter-prediction undergo before they are placed in the DPB.
In AVC, there is one kind of such filtering — deblocking filter. Application of this filter reduces the block effect resulting from quantization of spectral coefficients after orthogonal transformation of Residual signal.
In HEVC, a similar deblocking filter is used. Besides, an additional non-linear filtering procedure called the Sample Adaptive Offset (SAO) exists. Based on the analysis of pixel value distribution during encoding, a table of corrective offsets, added to the values of a part of CU pixels during decoding, is determined.
In HEVC, the size of the discrete two-dimensional transformation, to which the Residual signal is subjected, is determined by the size of the square area called the Transform Unit (TU). Each CU is the quad-tree of TU’s. Thus, the TU of the upper level coincides with the CU. The root TU can be divided into 4 parts of half the size, each of which, in turn, is a TU and can be further divided.
The size of discrete transformation is determined by the TU size of the lower level. There are four transform block sizes in HEVC: 4x4, 8x8, 16x16, and 32x32. These transforms are discrete two-dimensional Fourier cosine transform of corresponding size. For 4x4 Intra-predicted blocks, could be used another discrete transform — sine Fourier transform.
The quantization of spectral coefficients of residual signal, and entropy coding in AVC and in HEVC, are almost identical.
Let’s note one more point which was not mentioned before. The quality of decoded images, hence the degree of video data compression, is influenced significantly by post-filtering, which applied on decoded Inter-predicted images before they are placed in the DPB.
In AVC, there is one kind of such filtering — deblocking filter. It masking blocking artifacts effect originating from spectral coefficients quantization after orthogonal transformation of residual signal.
In HEVC, a similar deblocking filter is used. Besides, an additional non-linear filtering procedure called the Sample Adaptive Offset (SAO) exists. Sample level correction is based either on local neighborhood or on the intensity level of sample itself. Table of sample level corrections, added to the values of a part of CU pixels during decoding, is determined.

And what is the result?

Figures 4–7 show the results of encoding of several high-resolution (HD) video sequences by two encoders. One of the encoders compresses the video data in the H.265/HEVC standard (marked as HM on all the graphs), and the second one is in the H.264/AVC standard.
Fig. 5. Encoding results of the video sequence Aspen (1920x1080 30 frames per second)
Fig. 6. Encoding results of the video sequence BlueSky (1920x1080 25 frames per second)
Fig. 7. Encoding results of the video sequence PeopleOnStreet (1920x1080 30 frames per second)
Fig. 8. Encoding results of the video sequence Traffic (1920x1080 30 frames per second)
Coding was performed at different quantization values of spectral coefficients, hence with different levels of video image distortion. The results are presented in Bitrate (mbps) — PSNR(dB) coordinates. PSNR values characterize the degree of distortion.
On average, it can be stated that the PSNR range below 36 dB corresponds to a high level of distortion, i.e. low quality video images. The range of 36 to 40 dB corresponds to the average quality. With PSNR values above 40 dB, we can call it a high video quality.
We can roughly estimate the compression ratio provided by the encoding systems. In the medium quality area, the bit rate provided by the HEVC encoder is about 1.5 times less than the bit rate of the AVC encoder. Bitrate of an uncompressed video stream is easily determined as the product of the number of pixels in each video frame (1920 x 1080) by the number of bits required to represent each pixel (8 + 2 + 2 = 12), and the number of frames per second (30).
As a result, we get about 750 Mbps. It can be seen from the graphs that, in the area of average quality, the AVC encoder provides a bit rate of about 10–12 Mbit/s. Thus, the degree of video information compression is about 60–75 times. As already mentioned, the HEVC encoder provides compression ratio 1.5 times higher.

About the author

Oleg Ponomarev, 16 years in video encoding and signal digital processing, expert in Statistical Radiophysics, Radio waves propagation. Assistant Professor, PhD at Tomsk State University, Radiophysics department. Head of Elecard Research Lab.
submitted by VideoCompressionGuru to u/VideoCompressionGuru [link] [comments]

My Father taught me how to look at the night sky. He didn’t tell me it was looking back. (Part 4)

Part 1 || Part 2 || Part 3 || Part 5
I shouldn’t have been surprised at where the convoy was heading. Every turn took us closer to Trinidad.
KC alternated talking on the radio to the rest of the convoy and sitting in silence. He only spoke to us again when we were nearing our destination.
“They’re going to expect two people up front and three in the body bags in back.”
“Aren’t they going to know I’m not your partner?”
“Come on, Tim, you have to admit you look exactly like Sir B. Oh, that reminds me. I’m going to need you to open his body bag, remove his clothes, and put on his uniform.”
I looked back at him, horrified. KC stared at me for a few seconds, deadly serious, and then broke into a smile.
“I’m just messing with you, Tim! Come on, I don’t have much time left. Laugh with me!”
We all chuckled nervously. KC continued.
“We have specific procedures we have to follow when we’ve been exposed to the Watchers. We’ll stop 100 yards short of the gate and pull the shielding panels up. The gate guards will start DECON procedures automatically.
“Once we’re ready, we’ll just roll through. The guards will be behind lead doors.”
Will looked behind him at the body bags. “Are there supposed to be three of us back there?”
“In theory, I suppose. But there’s no need to try to hide or disguise yourselves. With the shielding panels up, nothing can see in here.”
“But you said...”
“Forget it. It was a poor attempt at humor. I’m going out on a bad joke, and that’s the final chapter.”
KC followed the other vehicles as they turned off the road and passed under a heavy black gate that closed automatically behind us. We went up and over a small ridge into a valley that I had never seen before. Odd, considering it was only 20 miles or so from Trinidad.
“This is it. See those red handles? Those are the shielding panels. Just pull up on them when I stop.”
Even with KC’s reassurances, I felt ill, like someone was dragging me into something that I knew was terribly wrong and I had no way out.
Despite my feelings, our approach to the gate went smoothly. We stopped, pulled up the panels, and KC guided us through using the displays to navigate.
I caught the name of the base briefly on the display. Apparently we were at Echo Voltaria Headquarters. I remembered the name because of how different it sounded.
“See? Nothing to worry about.”
Besides the extra security, you wouldn’t be able to tell we were on a military base. It looked like a mining operation, and there were plenty of indications that it was one.
We drove around for a short while until we reached a building that was further away than the others. KC came to a stop.
“Ok, this is it. My truck is the red one over in that parking lot.” He handed me the keys. “I guess this is the last time I’ll say anything to anyone. I’d have you contact my family for me if you weren’t exposed, but here we are.”
“Thanks, KC.” It was all I could think to say.
Kristen inquired, “When should we expect to start feeling the effects?”
“Maybe tomorrow, maybe a few days from now. Either way, it’s a long, slow decline. Speaking of...”
Sir B’s gun ended up in my hand.
“You’ll know when it’s right for you. Before it gets to be unbearable, take this notebook and run the decryption codes. I think you may already have everything you need, Tim.”
“What do you mean?”
“Your dad told me he was gifting you a radio telescope. Did you set it up according to his instructions?”
“Yeah. Why?”
“You still have the raw data?”
“All the way back to the first day I set it up.”
“Then you’re going to want to look at the first couple of pages on that notebook to help you locate the data on your server. We have a unique message format, but I’ve always thought it was a bad idea. It makes things stand out. Maybe whoever set it up was like me. Maybe they wanted others to know.”
Will asked, “What’s so bad about the Watchers?”
“In all honesty, we don’t know. That’s why we need more eyes on them. They keep adapting. They’re after something here. In secrecy, even if we do find out, it may be too late to do anything about it.”
None of us wanted to move.
“This is the part where you leave.”
KC motioned for us to open the doors.
“It’s safe. Nobody’s watching. Go. Drive immediately off base. Oh and here, take my wallet. That way you’ll have some cash, and you can prove you met me.”
All of us said thanks as we got out.
“Don’t go near anyone you care about for the next 48 hours. And as soon as you can, ditch the truck. It’s been a pleasure. Godspeed.”
With that, KC drove off. Knowing that he was going to end his life should have affected us more at this point, but we were growing numb. Too many bad things happened recently. Cara was gone. Our own lives were forfeit. The Watchers remained.
Only a small doubt lived in my mind as we got in the truck, three abreast in the only row. I was deliberate in my actions, which may or may not have helped. KC didn’t lie, though. We made it off base with no problems, and the heavy black gate opened automatically to let us back onto the highway.
Most of the conversation for the rest of the day focused on where we should stop for the night. We danced around the more serious issues. I don’t think any of us were quite ready to confront everything head on. We settled for Taos, which was about a three hour drive away.
That night Will and I attempted to sleep in the bed of the truck under the stars. It was cold. By the time morning rolled around, we were all in our original positions in the cab, with Kristen in the middle leaning against me and Will leaning against the passenger door.
A knock on the window startled us awake as the sun was starting to rise. A local man in flannel pants and a jean jacket had found us.
“Private road! Let’s go.”
I waved at him as Will and Kristen sat upright and attempted to shrug off the hold that the night still held on us. Would that local man die too? Less than 48 hours had passed since our exposure and he was right next to us. I didn’t want to know.
We spent the day at a string of drive-thru coffee shops and restaurants, winding through residential streets in Albuquerque, and at night we finally headed back towards Socorro. There was a consensus among our group. We would try to look at the logs first before going our separate ways.
When we got back to Socorro we decided to spend one more night in the truck and head over to my house in the morning. That night, even with Kristen leaning against me, all I could think about was my mother. She had lost her husband, her parents, and she was going to lose her son. Maybe it would have been merciful to expose her.
The next morning, we went to my house. My mom greeted us at the door.
“Tim! You’re home early. And Will and Kristen are here too! Oh, you all need showers. How was the camping trip? Where’s Cara?”
“That’s why we’re back. Something happened to her.”
It took hours to explain to my mom what happened. This was also the first chance that any of us had to use a phone after ours had been destroyed, so we called Cara’s family as well. We didn’t tell anyone about the Watchers.
As afternoon settled in and we had all taken turns in the bathroom getting cleaned up, we found ourselves in my room. Will, the computer science major, was selected to make an attempt at decrypting the logs.
“So your dad just set you up with this, knowing that you’d be collecting spy satellite data?”
“Well, the way it was explained to me, my radio telescope was set up to look for distant pulsars and quasars, but it’s still just a hobbyist setup. Most of what I pick up is electromagnetic interference, which could just be data from whatever is floating around out there, but there is one exception. Basically, anything in geosynchronous orbit that transmits in the Ka-band gets logged.”
Will and Kristen both sat wide-eyed, not saying anything.
“Yeah, apparently my dad set this up to collect spy satellite data.”
Will responded. “Ok. Now we’re getting somewhere. Let me see the notebook.”
After a minute of looking at its contents, it was Will’s turn to confuse all of us.
“Ok, I’m just going to run a script to parse each message header. Just give me a minute to look up the conversion type for each byte.”
Kristen and I just let Will do his thing for a minute. I was somewhat familiar with the command line, but Will was an expert. After about an hour of furious typing, the script was running.
“That’s all we can do for now.”
“Nice work, Will! How long is it going to take?”
“Are you aware of how much data you have?”
“Yeah, like 150 terabytes or something.”
“Do you know what kind of data that is?”
“Uh, binary?”
“Exactly. So it has to be converted, parsed, and then matched to known good values that I got from the notebook. If it’s a match, it will decrypt the message. Right now I only have a key that’s good for a year. That’s still about 15 terabytes worth of data that it has to go through. 15 terabytes of binary text. That’s a lot of text.”
“So, what are you saying?”
“Let’s go ditch the truck. Maybe by the time we get back, we’ll have one message ready to read. I’ve set the script up to forward to all our e-mails whenever it finds something.”
Kristen jumped in. “Yeah, but it’s not like we have our phones.”
I replied, “Looks like we know what we’re doing on the way back.”
My mom let us borrow her car. We didn’t tell her what we planned on doing. I think it was for the best that we didn’t have our phones with us at the time. After a quick stop at the gas station, we took an hour’s drive to an undisclosed location off Highway 380. That became the truck’s final resting place as we set it on fire.
We all felt a weird kind of freedom. Knowing that you don’t have much time left to live, we didn’t care about much of anything anymore.
All that changed pretty quickly. As soon as I had my new phone set up, which wasn’t too much longer after committing arson, I saw the first decrypted message in my e-mail. This is what it said:
...//
<>
<>
Commander Ben Simon: “I’ve queued the message for transmission. All we can do now is wait and hold on as long as we can.”
First Officer Lisa Simon: “We’ve waited too long already.”
Commander Ben Simon: “Can we not have this argument again? We didn’t understand how angry it was.”
First Officer Lisa Simon: “That’s conjecture, pure and simple. No one has been outside the craft to check on it. And honestly, it’s embarrassing that you would assign emotion to it when we don’t even fully understand it.”
Commander Ben Simon: “First of all, if you really listened to your heart, you would be able to feel it too. And secondly, no one else is permitted for EVA by ORDER OF THE COMMANDER. We can’t lose anyone to that thing.”
First Officer Lisa Simon: “That thing is the only reason our mission exists in the first place, and there’s one way to ensure success, but you’re too afraid to take action.”
Commander Ben Simon: “I have a responsibility, not just to the people onboard this craft, but to everyone back on Earth.”
First Officer Lisa Simon: “Your responsibility starts first and foremost with the inhabitants of this craft, who are the only ones with the power to do anything!”
Commander Ben Simon: “You’re not looking at the bigger picture. Until we know that the children are safe, until we know that they won’t die out here as floating skeletons, we can’t do anything without clearance!”
First Officer Lisa Simon: “You know that’s not all we can do. We can wake them up. We can start the incubation instead of wasting away to nothing while our children die!”
Commander Ben Simon: “You know how the experiments back on Earth went! We can’t risk it, not without more information!”
First Officer Lisa Simon: “It’s too late. I’ve already started the process.”
Commander Ben Simon: “You what?!?”
First Officer Lisa Simon: “I knew you would be opposed to it, but we have no other options. We haven’t even heard from Echo Voltaria in 8 months! We had to try something, and your inaction will kill us all.”
Commander Ben Simon: “You disobeyed a direct order. I ought to push you out the airlock.”
First Officer Lisa Simon: “In three months you won’t have to.”
<>
<>
//...
X
Part 5
submitted by NateLundberg to nosleep [link] [comments]

RESULTS of the State of the Game Survey: April 2020

Weekly/Important Megathreads:
Weekly Discussion Megathread
Edelgard Legendary Hero Battle Megathread
Legendary Hero Banner Megathread
Green Grapple Voting Gauntlet Megathread

 
Hi all,

It’s time for the results!

Thank you to everyone who took the time to respond - we had over 1600 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: February_2020_State_of_the_Game_Survey

~ Demographics ~

54.3% began playing FE:H in February 2017, with 22.6% more joining during the first year of the game. 13.0% of respondents joined during the second year, 7.8% joined during the third, and 1.5% joined during the fourth year (the last 3 months).

The age range breakdown of respondents is as follows:
  • (2.9%) 12 – 15 years old
  • (15.0%) 16 – 18 years old
  • (23.5%) 19 – 21 years old
  • (20.7%) 22 – 24 years old
  • (27.0%) 25 – 30 years old
  • (8.5%) 31 – 40 years old
  • (0.9%) 40+ years old

77.5% of respondents identified as Male, 17.7% as Female, and 2.6% as Non-binary.

18.5% of respondents have never missed a daily login (though note that this option was added many hours after the survey’s release). A further 44.2% have missed less than a month’s worth of logins, 12.8% missed 1-2 months, 9.6% missed 3-6 months, 4.7% missed 7-12 months, and 3,8% missed over a year’s worth.

34.8% report being F2P, while 29.8% have spent less than $100, 16.2% spent between $100 - $499, 6.3% spent between $500 - $999, and 10.4% have spent over $1000.

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

~ Summoning ~

“Which of the following banners have you used orbs on at least once?”
  • (63.0%) Harmony Amid Chaos
  • (57.0%) The Start of It All
  • (56.4%) Mythic Hero: Bramimond
  • (51.8%) Journey Begins
  • (47.3%) Legendary Heroes: Chrom
  • (43.2%) Familial Festivities
  • (37.2%) Double Special Heroes

“Which of the following banners did you use the most orbs on?”
  • (23.4%) Harmony Amid Chaos
  • (16.9%) Journey Begins
  • (16.3%) Mythic Hero: Bramimond
  • (14.4%) The Start of It All
  • (8.5%) Familial Festivities
  • (8.4%) Legendary Heroes: Chrom
  • (6.6%) Double Special Heroes

“What was your favorite banner?”
  • (23.8%) Harmony Amid Chaos
  • (18.3%) The Start of It All
  • (14.9%) Journey Begins
  • (13.5%) Mythic Hero: Bramimond
  • (8.5%) Double Special Heroes
  • (7.8%) Legendary Heroes: Chrom
  • (4.9%) Familial Festivities

“Did you spend money specifically to summon on any of the banners below?”
  • (7.9%) Harmony Amid Chaos
  • (7.8%) The Start of It All
  • (7.1%) Journey Begins
  • (6.7%) Mythic Hero: Bramimond
  • (4.3%) Familial Festivities
  • (4.2%) Legendary Heroes: Chrom
  • (4.0%) Double Special Heroes

“If you could only pick one method of making old Seasonal heroes available, which would you choose?”
  • (46.4%) Seasonal heroes are only available once a year on a re-run of their original banner
  • (25.7%) Seasonal heroes are only available through Double Special Heroes banners, and no seasonal banners are re-run.
  • (6.5%) Seasonal heroes are only available through Legendary and Mythical banners, and no seasonal banners are re-run.

43.8% would like Double Special Heroes banners to continue excluding year-one seasonals, compared to 31.9% who want them to include year-one seasonals.

4.19/5.00 is the average rating of how satisfied respondents were with the new feature allowing for your choice of free 5*-focus after 40 summons on New Heroes banners. 80.9% rated their satisfaction at a 4/5 or above.

36.1% reached the 40 summons needed for the feature allowing their choice of free 5*-focus on Journey Begins. 63.9% did not reach 40 summons on Journey Begins.
Of those who reached 40 summons, 51.2% say that they spent more orbs on the banner than they would have if the feature did not exist, while 19.8% say that they spent less orbs that they would have. 28.9% reported no change in orb spending behavior as a result of the feature.

~ Hall of Forms ~

“In this Hall of Forms, which Forma was your best unit?”
  • (56.7%) Olwen (WoT)
  • (10.6%) Leif
  • (10.1%) Finn
  • (9.9%) Reinhardt (WoT)

“In this Hall of Forms, which Forma was your worst unit?”
  • (34.0%) Leif
  • (26.3%) Reinhardt (WoT)
  • (22.3%) Finn
  • (3.5%) Olwen (WoT)

2.70/5.00 is the average rating of the addition of Forma Souls. 36.5% rated their feelings on Forma Souls at a 2/5 or below, while 16.2% rated 4/5 or above.

11.6% purchased a Forma Soul, compared to 88.1% who did not.

Of those who purchased a Forma Soul, 30.6% used it on Olwen (WoT), 29.7% used it on Leif, 26.1% used it on Finn, and 13.5% used it on Reinhardt (WoT)

Of those who have not purchased a Forma Soul, 71.1% say that they would never purchase a Forma Soul regardless of who is featured, while 28.8% say that they would if a certain hero was featured.

Of those who would pay a non-zero amount for a Forma Soul, $9.31 is the average of the amounts respondents would be willing to pay for a Forma Soul with no additional orbs.

~ Limited Hero Battles ~

47.5% completed all of the available Limited Hero Battle maps on their hardest difficulties, compared to 51.5% who did not.

19.5% needed to reference guides, videos, or other players’ clears in order to complete Limited Hero Battle maps, compared to 75.6% who did not.

3.19/5.00 is the average rating of preparedness for the Limited Hero Battles. 29.4% rated their preparedness at a 2/5 or below, while 44.4% rated their preparedness at a 4/5 or above.

64.6% had enough heroes to form a fully-built team of four for all of the battles, compared to 28.4% who did not.

3.38/5.00 is the average rating of how challenging respondents found the Limited Hero Battle restrictions. 15.2% rated the difficulty at a 2/5 or below, while 48.2% rated the difficulty at a 4/5 or above.

3.44/5.00 is the average rating for enjoyment of the Limited Hero Battles. 20.4% rated their enjoyment at a 2/5 or below, while 51.7% rather their enjoyment at a 4/5 or above.

~ Divine Codes ~

52.4% feel positively about the use for Divine Codes, compared to 7.3% who feel negatively. 38.5% are neutral.

“Which of the following Divine Code paths is most appealing to you?”
  • (27.2%) Holy War (Leif, Deirdre, Sigurd, Lewyn, Ishtar (Performing))
  • (22.0%) Awakening/Fates (Cordelia (Summer), Robin (M, Fallen), Owain, Xander (Performing), Corrin (M, Adrift))
  • (14.2%) Blades/Sacred Stones (Lilina (Valentines), Amelia, Nino (Fangs), Ephraim (Winter), Hector (Valentines))
  • (9.1%) Radiance (Leanne, Elincia (Performing), Lethe, Tanith (Valentines), Greil (Valentines))
  • (7.7%) Mystery/Shadows (Caeda (Bridal), Celica, Genny (Picnic), Palla (Spring), Kliff)
  • (5.1%) Heroes (Alfonse (Spring), Ylgr, Bruno (Spring), Fjorm (New Years), Laevatein (Summer))

“Which of the following Divine Code paths do you believe is the best value / best overall path to spend Divine Codes on?”
  • (25.5%) Awakening/Fates (Cordelia (Summer), Robin (M, Fallen), Owain, Xander (Performing), Corrin (M, Adrift))
  • (22.0%) Holy War (Leif, Deirdre, Sigurd, Lewyn, Ishtar (Performing))
  • (16.6%) Blades/Sacred Stones (Lilina (Valentines), Amelia, Nino (Fangs), Ephraim (Winter), Hector (Valentines))
  • (7.5%) Radiance (Leanne, Elincia (Performing), Lethe, Tanith (Valentines), Greil (Valentines))
  • (3.0%) Mystery/Shadows (Caeda (Bridal), Celica, Genny (Picnic), Palla (Spring), Kliff)
  • (3.0%) Heroes (Alfonse (Spring), Ylgr, Bruno (Spring), Fjorm (New Years), Laevatein (Summer))

51.4% got both 5* heroes from the Limited Time Compile path 3, while 25.6% only got Kagero (Spring), and 5.1% only got Camilla (Spring), while 15.8% got neither.

3.04/5.00 is the average satisfaction rating with the options of Limited Manuals offered so far. 27.3% rated their satisfaction at a 2/5 or below, while 32.8% rated their satisfaction 4/5 or above.

~ Feh Pass and Resplendent Heroes ~

57.0% feel negatively about the addition of the Feh Pass, compared to 10.1% who feel positively. 31.8% are neutral. Compared to last survey, this is a 13.6% reduction in negative feelings, with a 4.2% increase in positive feelings and the rest going to neutral.

30.7% have purchased the Feh Pass, compared to 69.3% who have not. This is a 6.7% increase compared to the last survey.

Of those who have subscribed to Feh Pass, 4.5% have purchased Resplendent Heroes separately, compared to 95.5% who have not.

“Which Resplendent Hero is your favorite?”
  • (19.5%) Eliwood
  • (17.9%) Cordelia
  • (13.3%) Sophia
  • (12.5%) Ike
  • (11.7%) Lyn
  • (10.4%) Azura

“Which Resplendent outfit theme is your favorite?”
  • (24.1%) Nifl
  • (18.8%) Muspell
  • (14.2%) Askr
  • (13.7%) Embla

“If you could only choose 1 of the Feh Pass features to make free, which would you choose?”
  • (41.7%) Auto-Start/Repeat
  • (27.8%) Resplendent Heroes
  • (14.6%) Expanded Summoner Support
  • (7.5%) Re-Act Button
  • (6.8%) Exclusive/Extra Quests

~ Miscellaneous ~

“Which game do you want a New Heroes banner from the most?”
  • (27.9%) Three Houses
  • (10.6%) Awakening
  • (9.2%) Radiant Dawn
  • (7.7%) Genealogy of the Holy War
  • (7.5%) Sacred Stones
  • (7.0%) Path of Radiance
  • (4.1%) Blazing Blade
  • (4.0%) Fates
  • (4.0%) TMS #FE
  • (3.4%) Thracia 776
  • (3.3%) Gaiden / Shadows of Valentia
  • (1.9%) Mystery of the Emblem / New Mystery of the Emblem
  • (1.8%) Binding Blade
  • (1.8%) Shadow Dragon and the Blade of Light / Shadow Dragon

20.4% feel positively about the introduction of Duo Heroes, compared to 30.4% who feel negatively. 48.6% are neutral.

“Which color would you choose / have chosen for the Free 5* Hero: Fire Emblem Leads, assuming you got all colors?”
  • (60.1%) Green
  • (19.4%) Red
  • (17.8%) Blue
  • (0.9%) Colorless

46.9% were satisfied with their summon from the Free 5* Hero: Fire Emblem Leads event, compared to 48.4% who were not.

67.0% participated in the Voting Jubilee event, compared to 31.7% who did not.

36.4% want to see more Trio Heroes in the future, compared to 33.5% who do not.

“Which FE continent / world’s Mythic Heroes are you most excited for?”
  • (20.5%) Fodlan
  • (15.7%) Tellius
  • (10.0%) Jugdral
  • (9.8%) Elibe
  • (7.5%) Valentia
  • (6.4%) Magvel
  • (5.2%) Fates Continent
  • (4.5%) Archanea
  • (1.2%) Zenith

“How many of the Rokkr Remnant accessories have you acquired?”
  • (35.2%) 0
  • (6.9%) 1
  • (5.7%) 2
  • (4.3%) 3
  • (3.2%) 4
  • (3.4%) 5
  • (4.3%) 6
  • (3.6%) 7
  • (15.7%) 8

Heroic Grails is the most desired premium item currency respondents want more of, at 47.8%. Next is Dragonflowers (25.4%), followed by Refining Stones / Divine Dew (15.3%), then Sacred Coins (8.5%).

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

32.8% have not played any other gacha games besides FE:H, while 19.8% have played 1 other gacha game, 18.6% have played 2, 10.5% have played 3, and 18.3% have played 4 or more.

~ 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:
  • 62.7% - The addition of new heroes / characters to the game (-7.6)
  • 63.9% - The gacha mechanics and summoning banners (+22.6)
  • 49.8% - The story/plot (+0.7)
  • 86.4% - Unranked PvE game modes (Hero Battles, Forging Bonds, Tactics Drills, Lost Lore, Hall of Forms) (-2.6)
  • 53.3% - Ranked PvE game modes (Voting Gauntlets, Tempest Trials, Grand Conquest, Allegiance Battles, Rokkr Sieges, Mjolnir's Strike) (-6.1)
  • 40.8% - Arena
  • 41.3% - Arena Assault
  • 33.1% - Aether Raids

30.4% believe Intelligent Systems cares about its Free to Play userbase (up 8.7% from the last survey), while 47.4% do not. Since the last survey’s result was the lowest polling for this question in the game’s history, the 8.7% increase brings us to 27.6% lower than we were before the drop).

28.1% approve of the way Intelligent Systems is handling Fire Emblem: Heroes as a whole (up 5.2% from the last survey), while 26.5% disapprove. Since the last survey’s result was the lowest polling for this question in the game’s history, the 5.2% increase brings us to 22.5% lower than we were before the 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 3 surveys is: 50.6% (Dec) -> 22.9% (Feb) -> 28.1% (Apr)
Whereas the overall approval rating trend going by proportion of Approve/Disapprove with the Neutrals excluded over the last 3 surveys is: 82.2% (Dec) -> 41.0% (Feb) -> 51.3% (Apr).
I’d be interested to know which you prefer / find more valuable, so if you have opinions on it, please let me know in the comments!

~ Bonus Questions ~

24.4% prefer Feh’s old voice (Kimberly Tierney), while 45.9% prefer Feh’s new voice (Cassandra Lee Morris), with 29.7% unable to decide.

“Who is your Favorite Hero added since the last survey?”
  • Lysithea is the winner, followed by Bramimond, then Y!Minerva.
  • Full results here: [Graph]

“Who is your Most Wanted Hero added since the last survey?”
  • Bramimond is the winner, followed by Lysithea, then Palla (Young, Trio)
  • Full results here: [Graph].

“Which character would you most want to get a Resplendent version?”
  • Robin and Corrin are tied for the win, though both also get vote-sharing between M/F versions because way too many people didn’t specify.
  • Lucina is the runner-up, followed by Lloyd.
  • Top 10 here: [Graph].

“What would be the best Trio and why?”: [Selected 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:

This fantastic song parody by u/juuldude

  • #DeleteL!AzuraFromFEH2020 #JusticeForSeliph #Floofmomgang #ResplendentHinokaWhen #ResplendentAlfonse #JusticeForJill #JusticeForTelliusUnits #NoMoreElibe #JusticeforCanas #sephiranwhen #StayInsideAndWashYourHands
  • "*dabs to try and get a Legendary Seliph to exist*"
  • “according to all known laws of aviation everything still dies to reinhardt”
  • “Bernadetta was social distancing before it was cool”
  • “Emblian Empire is grateful for your hard work like always, but slightly annoyed the +10 5-stars question was left out just when I finally completed an old project!”
  • “Greetings from the massive salt palace of Grado, where Formotiis awaits to either be summoned in the upcoming Fallen banner or to destroy Askr for their impudence! (seriously though its been like three years come on intsys Lyon is RIGHT THERE)”
  • “hi I was tempted to give a meme answer for the amount I'd be willing to spend on a forma hero but I think you take averages for that stuff so i wrote 0 instead of 69420 you're welcome” – thank you for your restraint :P
  • “i’m saving orbs to +10 azura this june please wish me luck 🤞🤞🤞” – Beaming luck to your location!
  • “Imagine this, you were playing P5R a new FEH channel comes out so start to watch it. Morgana's voice is still echoing in your head. Are you going crazy? Has the quarantine got you you?”
  • “You need orders, please? CHOP the curve. Submit to Dr. Grima and stay home. Iiiit's time to play it safe. Let's not fly and let's not swim publicly unless we have to. I can't stop this thing. A safe distance away is right where I want you. You...like Ike to stay home where he won't spread anything. COVID is powercreep at Alm-alt levels, something nobody wants.”
  • “In Nino We Trust”
  • “so like FEH is letting us put actual children to war now like est is a whole fetus and kiran whacky ass put her and her sisters out on a battlefield to fight literal murder clowns and actual satan. like is that me or is that just a little messed up they should be home enjoying Welch fruit snacks while watching paw patrol”
  • “JILL. WHEN.” – I think I’ve been getting these comments for over 2 years now and they keep getting more desperate ☹
  • “Remember to stay safe! We're all in a Fog of War map on Classic right now.” – Strangely accurate
  • And greetings from Chile, Colombia, Finland, Germany, Hong Kong, SEA, South Korea, Vietnam, Kuala Lumpur, Alaska, Florida, New Jersey, North Carolina, The Bahamas, Fodlan, Ravnica, Renais, Tellius, the Alliance, and Bernadetta’s room
And some more personal inquiries:
  • “Greetings, ShiningSolarSword! Nothing to report.”
  • “Hey didn't you just do one of these on the Magia Record subreddit?” – Yep :D
  • “How are you holding up in regards to the coronavirus? Thanks again for still doing these in times like... this.” - I’m doing well all things considered, hope you are as well!
  • “Hello, this is Azura. I am very angry to be replaced, u/ShiningSolarSword. What even is a Norne and how could she possibly be better than the queen of Valla? I do hope you consider appreciating me in the future, it would be a shame if a certain survey-giver were to turn up dead in the future, not like that’s a threat or anything.” – Y-y-yes, definitely. *quietly foddering Alm to Norne*
  • “Norne's reign of terror has ended. Reddit user ShiningSolarSword has secretly accepted the way of the Reinhardt by brandishing the tiny-handed grinning Azura.” - *quietly foddering Duo Ephraim to Norne*
  • “Resplendent Norne + refine when?” – this person knows what’s up
  • “Can we have another gag survey? Quarantine is boring.” – not a bad idea 👀

~ 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!
submitted by ShiningSolarSword to FireEmblemHeroes [link] [comments]

A Closer Look at Time Travel and Probability

Abstract — I discuss several models for assigning probability to timelines under the assumption that time travel is possible, but paradoxes are absolutely impossible, as is the case in many fictional worlds. The models are mathematically precise, and illuminate issues that have previously confused many people about what sort of timelines are "most likely". I discuss an example due to TimTravel in a old post on /HPMOR, then analyse whether time travel can be used to solve the halting problem. I outline how timeline probability may interact with physical probabilities, often used to justify physics "conspiring" or contriving a certain outcome to prevent paradox.
Total length: ~5000 words, or about 15-20 minutes of reading.
Edit: commenters have pointed out similarities between this and the Ted Chiang story, What's Expected of Us. The similarity was not intentional, but is undeniable.
Note: The text of this post has been revised in response to objections, and some commenters may be reacting to the initial version of my arguments.

Contents

Introduction

Let's say you're walking down the street one day when a wizard appears in a clap of thunder, and places a strange gray device of buttons and switches into your hands.
You're looking down at it, struggling to make heads or tails of it, and then you look up and the wizard is gone.
At the top of the device, there is a slider, already set to the leftmost extreme. Below it, two switches: a power switch already set to ON, and an stiff, unlabeled switch, the exact gray of the surface, rising so inconspicuously low off the surface you almost miss it. Below that, two LED buttons, both inactive.
Suddenly, the left LED glows blue. Confused, you press the button (it goes in with a satisfying click) and the light flashes off instantly.
Furrowing your brow, you decide to press the button again. The blue light quickly comes on while your finger's still moving, and it again winks out immediately as the button is depressed. You try pressing the button again and again, and each time the blue light turn on, seeming to predict or anticipate the button press.
Then, the other LED button glows red. You press it, and it turns off; several tries later, you conclude it behaves exactly the same.
You decide now to deliberately not press either button, even if the lights were to shine encouragingly. But nothing happens; neither light comes back on. You move your finger closer to a button, determined to arrest its motion at the last possible second. But the light doesn't come on, even when your skin is brushing the cool metal. You forget it and press the button. The light blinks bright blue milliseconds before you've even decided.
Now, you (you, dear reader, not the above character) have already read the title of this post. This is strange device sends information backward in time. Specifically, it sends a single bit back in time one second.
Or well, you fiddle with the slider, and notice it controls the interval; you can set it to one minute, an hour, or even a day.
All that established, it's time to test something. "Red is heads, and blue tails," you say. A coin from your pockets is flipping in the air until you catch it and slap it down on your wrist.
The device shines blue. You lift your hand. It's heads.
You push the blue button anyway, out of habit, the light flashing off. And then it hits you: you have to commit intently to pressing the right button even when (especially when) the device is wrong.
Another test: if the device shines red again, you'll press blue. But if it shines blue, you'll press still blue.
There's a noticeable delay before the device tentatively shines a light.
It's blue.
Call this act forcing. You can force the device to be red or blue.
You try the coin flip test just a few more times. Now, the device is always right, even if it seems to pause a random interval before shining a light.
The opposite of forcing would be splinting (after 'splinterpoint'). This is, pressing the button for whichever light comes on next, with no tricks and no conditionals.
Finally, the last thing you can do — for a broad notion of 'can' — is what we'll call crashing. This is: pressing the button of whichever light doesn't blink on. It's less that you can do this, and more that you can intend this, and reality responds to that.
You give it a try right now: you commit to crashing if your next coin toss doesn't come up heads.
You flip the coin, anxiously watching it's path through the air, catch it, slap it down on your wrist, spend a few seconds working up the nerve and then lifting your hand. It's tails.
You take a deep breath, and look expectantly at the device.
No light comes on. You're waiting for a few minutes.
And then it hits you; the device isn't binary, it's trinary. Sure, it can shine red or blue — but so too can it not shine at all! And if it either light leads to paradox, why would any light come on? The only winning move is not to play.
Is that it, then? Are your dreams of munchkinry doomed to fail? Was it just a coincidence that 'forcing' seemed to work earlier?
And then the red light comes on. You grin triumphantly, with not a little dread. You're about to destroy the universe! Before the implications catch up to, you're flinging your hand forward, jabbing it at the device. You don't want to lose your nerve.
You look down, and see that you missed, pressing the red button, rather than the blue like you planned.
Is this fate? Is the world itself conspiring to prevent paradox, just like in the stories? You want to give crashing another try, but the last thing you want is to wait those long minutes for the light to come on again. You glare down at the device, and then you notice the second switch. You'd almost forgotten about it.
You idly flick it, and immediately the blue light comes on.
It forces a prediction? Maybe your plans aren't doomed. You consider giving crashes another try, but maybe destroying the whole timeline is not worth the risk. You decide to spare the universe, and press the blue button.
You need to understand how this device works before you can really exploit it. And you have just the idea for another experiment. What if you splint, and if the splint comes out blue, you force blue again, but otherwise you just splint again. After two button presses, you turn off the device.
It's clear there are three possibilities: blue-blue, red-blue and red-red. But which are most likely?
You run this experiment a hundred times, and keep track of the results.
Call it the double blue experiment.
There are a few ways it could turn out:

Model A: Path Realism

It seems that consistent timelines are the only thing that matters. It's as if the universe has already set aside exactly the number of timelines there needs to be, and you're already in a certain timeline, you just don't know which one yet.
In the double blue experiment, there are three possibilities, and every one is equally likely. p(red,red) = p(red,blue) = p(blue,blue) = 1/3
You find it strange, as a follow-up experiment aptly demonstrates:
Splint once. If it comes out blue, force blue twenty-nine times. Otherwise, do nothing. Turn off the device.
On the face of it, it's crazy that you can even experience the second possibility. It's like winning the lottery half the time. Then again, maybe it's not so crazy? If you were to just force blue twenty-nine times, it's equally unlikely on the face of it; like flipping dozens of coins that all come up heads.
There's a weirder consequence, though. If you splint ten times, you can see any combination of reds and blues; red-blue-blue-red-red-red-blue-red-red-red and all the others, with uniform probability.
But if you splint ten times, and if and only if every splint came up blue, you splint ten more times, you'll find that the first set of splints come up all blue half the time!
This is easy to reconcile with path realism. There are 210 = 1024 through the ten splints. Each is as likely as the other.
But if you commit to doing ten more splints if and only if the first set comes up all blues, then there are 211 = ~2048 paths down the time-tree. If each is as likely as the other, then half of them are located under one branch!

Model B: Local Branch Realism

It seems that splints are basically coin tosses; it either comes up blue or it comes up red. The exception is if one of those options always leads to paradox. If you commit to causing paradox when the light shines blue, then it will always shine red. If you commit to splinting then crashing when the first splint comes out blue, then the splint will similarly always shine red.
The intermediate is more interesting: if you, as in the original experiment, splint and then splint again and crash if both splints come out blue, then half the time the first splint will come out red, but if the first splint comes out blue, the next one always comes out red. In numbers, the possibilities are p(red,red) = p(red,blue) = 1/4, and p(blue,red) = 1/2.
It's like the universe is a savescumming gamer: it saves to a slot to every time a time travel event is about to happen. If a paradox happens, it reloads from its saves on after another, finding newest one that lets it avoid the paradox.

Model C: Reroll Realism (or, Bayesian Branch Realism)

Edit: a commenter pointed out that this resembles Tim's model.
You're not sure if paradoxes really don't happen. You've looked at the numbers. What it suggests is that, rather than avoiding paradoxes, paradoxes could simply cause the universe to restart.
The stats from the double blue experiment don't lie: p(red) = 2/3, p(blue,blue) = 1/3.
Imagine you were simulating the universe. 1/2 the time, red comes up and you're just fine. 1/2 the time, blue comes up. 1/2 the time after that (for a total of 1/4 the time), blue comes again, and you've got a paradox on your hands.
What if you just, restarted the universe, and hoped it didn't happen again?
Well, there's a 1/4 chance it will. Since you have a 1/4 chance of restarting in the first place, that's 1/16 of the time you'll restart twice. Luckily, it's getting exponentially less likely.
Looked at another way, the odds of it coming up red is the limit of the infinite sum: 1/2 + 1/4 * 1/2 + 1/16 * 1/2 + 1/64 * 1/2 + 1/256 * 1/2 ...
This series converges on 2/3.
But there's another interpretation, with seems less like the work of a lazy programmer and more like something a statistician would come up with.
Suppose, as we must, that the timeline is consistent. What is the posterior probability of that timeline being red, given that 100% of red timelines are consistent, and 50% of blue timelines are consistent?
Or, in symbols:
P(red | consistency) = (P(consistency | red) * P(red)) / P(consistency) P(red | consistency) = (1 * .5 / .75) = 2/3 
Even more intuitively: you have four balls (timelines) you paint half of the balls red and half blue (splinterpoint), and you take away one blue ball (paradox). 2/3 of the remainder is red.
You'll recognize this as Bayes' Theorem.

Model D: Weighted Branch Realism

The reality is more subtle than you thought. It seems that, while you've never seen a paradox, if a branch has a path through splinterpoints that ends in paradox, that fact subtracts probability from the branch and gives it to its counterfactual sibling. This happens in Local Branch Realism too, but not to this degree: the very possibility that a time-path has a paradox however many days or years down the line always shaves some degree of probability, if only just a sliver; but naturally, that sliver increases as the paradox gets closer.
Thus, the results of the experiment are: p(red, red) = p(red, blue) = 3/8, while p(blue, blue) = 1/4 = 2/8.
You can see it clearer with a more involved experiment. Take your device and a sheet of paper and:
Splint, call this splint A:
  • if A is red, write "foo" on the paper
  • if A is blue, splint and call it splint B
    • if B is red, write "bar" on the paper
    • if B is blue, splint and call it C:
      • if C is red, write "baz" on the paper
      • if C is blue, crash
According to weighted branch realism, the probabilities look like: P(foo) = 20/32 = 5/8, P(bar) = 9/32, P(baz) = 3/32.
To understand this result, we have to define a notion of "static paradox fraction", or spf. If you intend to force blue, then the spf is 1/2. Why? To force blue you must (intend to) cause a paradox in the event that not-blue happens. Despite that fact that paradoxes never happen, static paradox fractions seems be a real quantity in Weighted Branch Realism. It is as if the device is looking at every possible and impossible timeline, and measuring which ones are paradoxical.
(Note that static paradox fractions are diminuted by splints. So if you splint and when the splint is blue you then force red, the spf of the first splint is 1/4, even if there is no second splint whenever the first is red. This distinguishes it from simply counting paradoxical timelines; 1/3 of the timelines are paradoxical, but a paradox behind a splinterpoint has lesser weight.)
Furthermore, let's have a notion of "intrinsic probability" or ip. The ip of both splint outcomes is 1/2, even if one of them is paradoxical.
Thus:
P(C = red) = 1/2 (ip) + 1 (sibling's spf) * 1/2 (sibling's ip) = 1/2 P(B = red) = 1/2 (ip) + 1/2 (sibling's spf) * 1/2 (sibling's ip) = 3/4 P(A = red) = 1/2 (ip) + 1/4 (sibling's spf) * 1/2 (sibling's ip) = 5/8 
To reiterate:
p(foo) = p(A = red) = 5/8, and p(bar) = p(A = blue)) * p(B = red) = 3/8 * 3/4 = 18/64 = 9/32, and p(baz) = p(A = blue) * p(B = blue) * p(C = red) = 3/8 * 1/4 * 1 = 6 / 64 = 3/32 
(Note for the pedants: normally, the ip is actually 1/3, and ditto for spf; we're ignoring that the device can not shine a light, because you can just flip a switch and force a light on. Even without the switching, committing to either turning the device off, or splinting endlessly once the the experiment is over means the probability of the device choosing to not shine drops exponentially while the alternatives remain constant.)
This model is somewhat unintuitive, because despite the name, it has more in common with Path Realism than the other two _ Branch Realisms. You can't emulate the probability distribution of WBR by running one timeline and restarting (either from the beginning (Bayesian), or from the nearest viable alternate splint (Local)). This is entirely the fault of a phenomena we can call "paradox by association"; in the foo-bar-baz experiment, in a certain sense, just as 1/8 of quasi-timelines are paradoxical because they end in crashing, 1/4 of the quasi-timelines ending in baz are paradoxical just because baz timelines are near to the paradox.
This accounts for the numbers: p(foo) is 5/8, 4/8 intrinsic + 1/8 from the paradox. p(bar) is 9/32: 8/32 intrinsic + 1/32 from baz's paradox by association. p(baz), lastly is 3/32 owing to loosing 1/32 from paradox by association.
(Why 1/4? Good question. There must be a reason, and it's clear this is the number that comes out of the equations. Alas, I'm not smart enough provide a reason in words and not symbols.)

Which Model is Best?

Path Realism and Local Branch Realism are both pretty wack. Path Realism discards all local information about plausibility, and allows munchkins to blow up the probability of their favorite timelines arbitrarily high. Local Branch Realism does the same thing from the opposite direction; wanton invocation of paradoxes intuitively should be penalized, but Branch Realism simply says I don't mind.
Between Weighted Branch Realism and Reroll Realism, I'm inclined to prefer the latter. WBR is the first I thought up, but RR is just more natural. It has two obvious interpretations, both things that anyone would come up with after thinking about it for a little while. WBR, in the other hand, is harder to conceptualize in terms of what mechanism would actually cause the probabilities to look like that (I've tried; the results are not pretty). "Paradox by association", while potential a fresh concept to use in a story, is a truly strange mechanism.
Now, how does the connect with TimTravel's ideas? Just as he proposed, it is, in some models the case that the most probable timelines are the ones in which time machines are never invented. In Local Branch Realism, this is not true (unless some bad actor arises in every single timeline and causes paradox. Time Beast, anyone?). In Path Realism, this is again never true without positing a Time Beast. However in WBR and RR, it's more or less true. In general, timelines with fewer instances of retrocausation are more likely, only because instances of retrocausation are a proxy for instances of paradox. Now, if paradoxes are rare, this argument would be weak. (But to be fair, most meaningful uses of time travel require copious paradox; it's the oil in the engine.)
That said, I believe it is admissible for a work to posit that the characters find themselves in the (slightly unlikely) timeline where retrocausation happens. After that, though, the principles constrain the probability space.

Example: The Time Thief Puzzle

In the somewhat flawed post which inspired this, TimTravel outlines a paradoxical puzzle:
Suppose Alice has a bag of money with a dollar on it. If anyone steals it, she'll go back in time and see who did it. Bob wants to steal it. He knows she has this policy. He decides he'll give himself the thumbs up just before he leaves the future if all goes well stealing it and she doesn't see him. If these policies are followed then it leads to a paradox, so something must prevent them both from simultaneously following their policies. Either Alice wins because Bob goes to the past without getting an honest thumbs up from himself or Bob wins because Bob sees the honest thumbs up and Alice doesn't go back and check who stole the money for some reason, or some third possibility prevents both.
There is no reason to think that either of them automatically wins in this situation. Timelines in which Alice wins should be about equally frequent as timelines in which Bob wins. Numerous characters have implicitly assumed that there is a reason to think one of them automatically wins in such situations.
We'll have to change this scenario a little bit to fit with the schema we've been using so far. (Besides, Tim's example is kind of unclear and it's not even obvious that paradox must occur in all permutations. If Bob doesn't get the thumbs up, wouldn't he not steal? Puzzle solved.)

Alice and Bob

Let's say that in the morning Alice has acquired a bag full of money from sources unknown, and has come to an arrangement with a shadowy individual: leave a dufflebag full of money with a dollar sign on it at a dropoff location, and in exchange, the individual will leave a limited print run of all eleven books of Worth the Candle at the same location.
Alice knows people want to steal that money, but part of the arrangement is that she can't be there guarding it when the shadowy individual arrives.
On Tuesday morning, the deal is still in its negotiation stage, and there are two places Alice can think of to arrange for dropoffs: atop the looming mountains outside of town, or deep into the mysterious catacombs below it. Both of these hiding places will take two hours to enter and two to leave. (Pretend the mountains have a rogue paramilitary that shoots down helicopters or something.)
Due to work obligations, Alice can only make the dropoff in the early morning, and return that evening to pick up the books.
Meanwhile, Bob, the thief, knows all this and certainly doesn't want to get caught. He can't go into either location until Alice has left, else he'll be seen. Lucky for him, that leaves a large window for him to do the deed.
Both of these characters have the same magical devices from the earlier section, and they'll naturally use them to ensure success; except, for obvious reasons, we'll call their predictions "catacombs" and "mountains".
Before she goes to hide the money at 5:00 AM, Alice consults her device for where to hide it.
Four hours after he has seen Alice leave, at 9:00, Bob consults his device to determine where she hid it. If the predict is wrong, he forces a paradox.
When Alice returns to get the money, at 17:00, if it's there, she confirms the location that the device advised. Otherwise, she presses the opposite button, forcing a crash via paradox.
What happens?
This requires introducing yet another notion.

Interlude: TIME FORCE

The TIME FORCE is any one in a billion freak accident that happens 100% of the time to prevent a paradox from occurring.
TIME FORCE is a quantum fluctuation that causes right neuron to misfire which butterflies into changing your whole decision. TIME FORCE is random air currents that causes a bird to fly by and drop a rock on the right button of the time-device. TIME FORCE is the lightning in the clear blue sky which spells out Do not mess with time in typographically perfect serifs.
There are a few things we can say about TIME FORCE.
Let's say that the general odds of TIME FORCE acting on a given person in a given second is extremely, astronomically unlikely. One in a billion, or one in a trillion sounds about right.
But from that, it follows that the odds of TIME FORCE acting over an interval of time is proportional to the length of that interval. (It's at least monotonic. Difficult/impossible to say how fast it grows.)
It also follows that the odds of TIME FORCE acting is increased if an agent is acting in concert with it, and decreased if they are acting in opposition, proportional to the efficacy of that agent. I.e., an agent is defending against TIME FORCE, or attempting to utilize TIME FORCE.
(consider: if Bob, after stealing, were to proceed to try to also steal Alice's device or persuade her to cancel her prediction herself (e.g., by faking a dire emergency which requires her foreknowledge to solve), then TIME FORCE would provide some boost to the probability of success.)
An obvious corollary to all this is that TIME FORCE is almost never relevant. If you had a bigger device that spat out 32 red/blue pairs at a time, you could predict the lottery without seriously worrying about TIME FORCE.
One common confusion which leads people to overstate the importance of TIME FORCE is the fact that parallel universes and timelines aren't necessarily the same thing.
Let's say you wanted to force a coin to come up heads. Turn on your device. Then, splint. If the result was blue, flip the coin. If the result was red, splint again. The idea is to have the device spawn as many timelines as possible. Pressing buttons (subtly) alters the configuration of your brain and muscles and the microcurrents of air in the room, and the hope is a certain combination of buttons at a certain rhythm is prod you into the right configuration to flip the coin heads. This is almost certainly true in this specific example, but if the coin is flipped before the device is turned on, time cannot help you. And if you don't have intimate control over the outcome, time cannot save you. E.g., if a meteor is flying towards your town, forcing a paradox if it hits true cannot avert its course. Of course, if you splint long enough, maybe the branches describe a powerful, quickly-createable, meteor-destroying technology in morse code. Or maybe it just spells out "You needed worth opponents," and you give up and let the asteroid take you.
(There is one slight exception, and this is where the different formulations of Bayesian Branch Realism and Reroll Realism differ. In BBR, the universe is posited to either A) know before splintering the posterior probabilities of each branch or equivalently, B) have so many timelines that destroy paradoxical ones leaves the distribution looking as it should. However, in RR, paradoxes are posited to cause the universe to restart from the beginning (or when the device was turned on). This means that in RR, simply flipping a coin and forcing a paradox if it's tails is all you need. That is, assuming quantum fluctuations making the coin heads is more likely than quantum making you decide not to crash, or failing to crash. Or dying instantly and having the wizard return to push the button.)
There's one last possibility, and that's if you posit that quantum randomness itself are biased by time travel, so each quantum measurement counts as a splinterpoint. I'm reluctant to do such, because the edict I've heard over and over again is that when worldbuilding, Do Not Mess With Physics.
I'm going to continue writing this article with the assumption that physical randomness is not biased by timelines. Extreme improbabilities are still extremely improbable, but, to mangle the quote, when you have eliminated the impossible, whatever remains, however improbable, must happen.

Back to Alice and Bob

So, with TIME FORCE in mind, what happens to Alice and Bob?
It's 4:50. Alice is sitting beside her bag of money with a dollar sign on it, her device in front of her. If the device shows 'catacombs', she intends to, when she returns from work, press 'mountains' in case her bag was stolen and she doesn't have her book, or otherwise she will confirm 'catacombs' (and vice versa).
She waits. And the device doesn't say anything at all!
It's well known that sometimes there are random delays before the devices spit out answers. Some users interpret it as an omen, suggesting that whatever you're asking is so likely to lead to paradox, time itself has to work up the nerve to allow it to happen; the theorized mechanism is 'paradox aversion', where in some models, the odds turn against timelines long before the paradox is even nigh. (But as far as Alice knows, no one has never proved which model they live in.)
She decides to buck superstition and conjecture, and reaches out to flip the switch which forces an output.
Record scratch, freeze frame. What happens next?
A) TIME FORCE intervenes before Alice can flip the switch.
B) Alice flips the switch, but TIME FORCE subverts the resulting prophecy. (I.e., the bag is stolen, but events contrive to have the incorrect button on the device pressed anyway.)
C) Alice flips the switch, and TIME FORCE subverts Bob's prophecy instead, sending him to the wrong location. Her bag is not stolen, and she happily reads the ending of WtC.
D) Alice presses the secret button, and TIME FORCE subverts both prophecies.
(Stop reading now if you want to try to work out an answer yourself.)
The correct answer is B, which is about three times more likely than anything else, barring unspecified details.
A requires TIME FORCE to act in the acute interval before Alice presses the button, which is at best a few minutes long.
C requires TIME FORCE to act in the four hour interval of 9:00-13:00.
D is the conjunction of A and C, and less likely than both.
B is the winner, because it only requires the TIME FORCE to act on the long, twelve-hour interval of 5:00-17:00
I think this goes even if timelines nudge physical probabilities. Exercise for the reader, though.
(((Now, one may object that this formulation bears little resemblance to Tim's example. My only excuse is that Tim's model was too unclear for me to formalize specifically. When I tried, I got this scenario:
First, Alice gets a prediction from the device: stolen, or untouched. Iff it says stolen, she waits to see who the thief is, and gets them. Else, she goes about her day, secure knowing her money is safe.
Then, Bob consults his device as to whether his theft would be successful: if it says yes, then either 1) Alice is there, catches him, and he triggers a paradox, or 2) Alice isn't there, he gets away, and she triggers a paradox later. However, if it says no, then he just sighs, and fucks off, no paradox to worry about.
Even if I missed something/misinterpreted TimTravel and this situation is paradoxical all four ways, it still follows that Bob will probably win (if not so overwhelmingly so) because he spends less time in temporal limbo where TIME FORCE might fuck with him.)))

Example: Hypercomputers?

It's clear that if one were to disassemble the strange device and hook up a few wires to its circuit boards to a computer, you'd create a hybrid device capable of advanced feats of computation. What is the exact strength of this retrocausal computer?
As mathematicians are wont to do, we will dispense with practicalities like having to use at most as much space as actually exists, or needing our computations finish before the heat death of the universe. Given all this, if we have an idealized retrocausal computer, a la the idealized turing machine, what can we do?
Let's try the halting problem, a classic test of strength. Say we have a computer program, and we want to know if it's ever stops running. Well, either it does or doesn't.
Consider a slightly different device, instead of red/blue leds, it has magic screen which can display any integer. (For models where it matters, the intrinsic probability of an integer n is equal to 2-k, where k is smallest number with 2k > n and k > 0.) It also has a numpad now, which allows the input of any integer.
With this device, to determine when a program halts, given that it halts, is as simple and looking at what number comes up on its screen, and running the program for that many steps. If it halts before then, input when it halted (causing paradox). Otherwise, input the number it gave you. Otherwise otherwise, cause a paradox via your preferred means.
If the program might run forever, things are trickier. What you can do is interpret the number the screen outputs as the index of a proof of (not) halting. This isn't sufficient, however, as no computably-checkable proof system can prove that any turing machine (never) halts, essentially by definition. But we can use the fact that if a program runs forever it doesn't halt: simply try over and over again until 1) you learn the program does not, or 2) the odds of it halting given that you found no proof is as astronomically low as satisfies you.
By construction, the odds of the screen outputing the right halting time decreases exponentially as the halting time increases. If the halting time is in the millions, it takes a several hundred trials before you have even odds of the screen having already spat out the right answer. If the time is in the billions, it takes several hundred thousand.
(Model-specific tricks can alleviate this quite a bit. In Path Realism, you can use the path blowup technique to increase the probability of the correct halting time coming up. In Weighted and Reroll, you can inflate the static paradox fraction to arbitrary heights, reducing the odds of false negatives.)
From ordinary turing machines, this is a difference in degree (retrocausal machines are better at it), but not kind (retrocausal machines can never decide whether a machine halts or doesn't).
Long story short, retrocausation can increase the efficacy of your computers, but you're still stuck at 0.

Applications to More Permissive Time Travel Models

Our device is quite limited, in the world of retrocausation. There are at least two stronger types of models:
  • Bound Time Travel: our system only sends information back in time, where most extant system allow entire persons to make the journey. While I strongly prefer this "prophecy" scheme to proper time travel (prophecy is simpler and more physically plausible, and opens up less strange cases), the evidence suggests that's not the prevailing taste.
  • Free Time Travel: In contrast to a Primer-style system where time travel is limited to when and where a machine exists, quite a few just let you pop out at old place and time. Again, this is not preferable to me because it doesn't allows limits to be as clear (a desirable quality for any rational system), but free time travel seems rather common. Cf. HP Time Turners, the very things which started this discussions.

Bound Time Travel

It's clear how our models transfer the bound case; proper time travel is basically sending a whole bunch of information at once. There's another hurdle though: can you tell from when a time travel comes?
With our red/blue device, the slider at the top puts an upper bound on how long the device waits for stablization. If the system allows this, then great! It means there's a clean cutoff point after which we know the timeline is stable or not.
Otherwise, you probably want to make probability proportional to how far in the future the traveler comes from; if you're uniformly selecting a person that could exist between now and the heat death of the universe (without grandfathering themselves, granted), it's probably not going to be you from two weeks hence, of all people.
There's a more interesting question this is avoiding though. What can we say about what will probably step out of the time machine, aside from whence it came?
Well, it's helpful to assume that there's an organization controlling and regulating time travel. There's some failure modes that would be cripplingly common. For instance, doppelgangers.
Temporal doppelgangers are a variation of the bootstrap paradox (i.e., self-causation), where a mutant version of your steps out of the time machine, finds current you, and forcibly alters your mind to replicate its own (anthropically, it must know how to succeed at this).
This seems pretty inevitable from the premise, and it provides a nice, fresh justification for "you can't interact with your past self". Not out of fear that it might cause a paradox, but out of fear that it won't. If your mind is randomly altered repeatedly, even by slight amounts each time, the results are quickly going to not be pretty.
Other than that, this scheme of time travel seems somewhat tractable; while the odds of any given arrangement of matter is a specific person with a specific set of memories consistent with the past and future of the extant universe is very very very low, there is some wiggle room, especially depending on the specifics of the time machine.
The assumption baked into our models is that, in effect, the time travel mechanism is plucking a random configuration of matter from possibility space. Most arrangements of matter, even restricting to the stable ones, aren't neat blobs of protein and water. And the most of the ones that are, are random goop!
Now, requiring that the configurations which arise in the past-time machine are exactly 1-1 equivalent to what enters the future-time machine is very tight requirement. I doubt bodies will be too much worse for wear if a few atoms are a few picometers off. And you can relax the requirement even further, allow what appears in the present to be "close enough" to its future equivalent, and increase the possibilities further. Of course, this will have ramifications; cancer, prions, strange tastes in the mouth.
The organization controlling the time machines could require that everyone who walks out of a time machine undergo a medical examination, and make most crippling ailments thereby paradoxical. (And, likewise for the dead bodies which can't walk out anyway).

Free Time Travel

Free Time Travel is the trickiest of all, but it has a few felicities in addition to all the extra warts. There's not necessarily authoritative time travel device (or an immediately plausible time travel agency) that you can stick in to stealthily add in extra conditions and assert nice properties.
With FTT, a time traveler could pop up anywhere, and at any time. Unless you add in a time agency that can monitor for new arrivals, there's nothing you can do about doppelgangers, unless you bolt 'no interacty with the past self' into the rules of the system somehow.
You probably shouldn't have location be conserved; requiring that you come out exactly where you came tightens probabilities too tightly. Allowing leeway puffs them up a bit. The same goes for concerns about exact molecular matching.
All those caveats aside, it seems as tho you can otherwise treat BTT and FTT similary to our toy examples, where they line up, showing the benefits of the simplification.

Conclusion

Well, that turned out much longer than I'd expected (or wanted). It feels like it puttered out here at the end, but I've said everything I set out to say and then some.
I hope this served to sharpen your intuitions regard time travel, and make precise things which were previously vague.
I would like to thank the nice people on the /rational discord for inspiring this line of thinking and providing the impetus to refine it.
Thank you for coming to my TED talk.
P.S.: worth mentioning that Tim covered much of the same ground as me in their initial post. My post is less a refutation to theirs than me working out my own solution to the problems they pose, as I didn't understand or believe all of their arguments.
submitted by endlessmoth to rational [link] [comments]

From being PIP'd at a startup to leveling up into a FANG in four months.

When my manager sat me down in our 1:1 to deliver me the news that I was about to be put on a PIP the next week and to use the weekend to think what my next step should be, my initial reaction was to want to take it and save my job. I knew I've been in a bit of a slump, sleeping very poorly, and not outputting as much as I could have. But to be quite honest, this was a blessing in disguise.
The company I've been working at wasn't doing that well to begin with. We raised a series D in just under two years of existence and my options have quintupled in value since joining, but we've had regulational troubles and the hardware team has been slipping. Our CTO was fired four months after I joined, and our new CTO promised to double our engineering headcount by the end of last year. We've maybe only added 5 people to a team of 30 instead by that point. To that end, I've had multiple manager changes within that time period: a total of five managers and six manager changes all within 12 months. As this was my first job out of college, I thought this was all normal for a startup.
In addition, the pay was very low. For a new grad that didn't know better, like yours truly, that number was a lot for someone who was only ever paid hourly. But after discussing with friends that went onto working at FANGs and other, more established unicorn startups, it was abundantly clear that me and my fellow colleagues were severely underpaid. Like, over 50% lower in base salary alone underpaid for the same line of work and more stress.
The work itself wasn't that great either. It was a system that had to be supported globally with different rules in different countries and with physical hardware that we had little control over. Nobody left the office before dinner was served, and seldom did people start going home after dinner was finished (well, up until recently since people stopped giving fucks). We had almost no senior engineers either, most of the work was done by fresh grads or interns from top CS schools. We maybe had only four veteran IC's, but the rest of the "senior" staff were in management. Everyone else was a new grad or junior engineer. You wouldn't find anyone that had more than two years of experience in the rest of the crowd. It's fun to be around people my age, but the work was sloppy and stressful when shit broke because you're trying to build something with little guidance and your code reviewers are other new grads that are equally as experienced as yourself. Nobody (besides maybe three people) has ever coded in the framework we used, and everyone learned the language and framework right on the job. Our only training was a link to an official guide.
I'm not going to get into the company politics, but it's sufficient to say our Blind was so spicy to the point screenshots of several call-out threads were brought up in meetings and mentioned in all-hands. It was pretty bad.
But going back to me getting served a PIP. My manager gave me an ultimatum: either take the PIP, or take severance and interview for another company. Over that weekend, I thought really hard about all the things I've seen and done in the past year, and quite frankly, I found that I haven't been happy at that place for a while now. It doesn't make sense to try to save a job I wasn't going to be happy at, where I get paid peanuts, and where my contributions are invisible to upper management because the longest I've had the same manager for was two and a half months. I decided to take the severance and leave.
This gave me time to relax, exercise, enjoy hobbies I haven't done in months, and most importantly, spend time with family and friends I haven't been around with because of this job. Oh, I forgot to mention that the company moved headquarters halfway through my tenure and bumped my commute from 20 minutes to over an hour.
I haven't touched leetcode or interview prep materials in ages since joining, so I really only hit the books about two weeks after leaving. My daily routine would be to exercise in the day, eat a protein heavy meal, and study up leetcode into the night at a 24/7 cafe. I would usually do this with a buddy or two who are freelance developers. I also kept a spreadsheet of jobs I was interested in and updated their statuses in where I was at in the process, who the point of contact was, when the interview dates are, etc. I wanted to end up at a FANG company since their offices were much closer to where I lived and the culture there would help me grow more as an engineer. My process was that I started off with companies I didn't quite care about to practice interviewing, and then build up to places I did want to end up working at.
I slowly but steadily practiced coding problems, took my time to understand what the solutions were, and apply those skills onto other problems that came up. In reality, most programming problems you encounter are really just other problems in disguise, and you just need to know the fundamentals of CS to get through them. I'm sure everyone wants to know what my stats are, so here they are: 64 easy, 50 medium, 15 hard.
After a few months of practice and interviewing at companies I wasn't particularly interested in, I started applying for places that actually interested me. In the end, I got two offers and was able to negotiate with a FANG company that has an office 10 minutes away from my house. I not only nearly tripled my TC, but I also got leveled up to an L4. After being stuck in L3 for almost two years with shit pay, I am glad my patience and steady progress paid off.
My lessons learned in this whole experience:
As for my tips for the interview prep:
Most of my system design solutions came from experiences I've had and a lot were creative, open-ended questions. My advice is to be likeable to the interviewer and not BS your thought process. For some reason, system design is something that comes the most natural to me, so I sadly can't give much tips for studying on it besides seeing for yourself how current systems are built.
And in general, you should be likeable to the interviewer. Smile, ask them what they work on, what cool projects they've done at the company, what their work life balance is like, etc. You're interviewing for the company and you're interviewing the company for yourself. Your interviewer is judging on whether you'd be a good person to be around with for 8 hours and help contribute to solving their problems, and you're judging whether the company you're interviewing for will make you enjoy yourself being there.
Everyone's experience is unique and certainly not as relaxed as mine. I thankfully had enough savings to last me almost a whole year without a job, but I realize others might not be fortunate enough to have that luxury. It'll be hard, but worth it to study up in the evenings and then take days off to go to onsites. In the end, what matters most is your sanity and happiness.
Tl;dr: job sucked, I got PIP'd, quit, took time off, studied, interviewed, and accepted a FANG offer that tripled my pay in four months.
submitted by worried_about_pip to cscareerquestions [link] [comments]

Binary Options Reviews - YouTube Drexel Code Review Is Drexel Code A SCAM Or LEGIT Binary Options Trading Signals SOFTWARE? Binary Options Trading - Binary Options - The Best Binary Options Trading Guide for 2017 Binary Options Chat Room  Free Binary Options Signals 01 How to trade binary options?  Binary options trading strategy Cracking the Code Review - Is Crack the Code a Scam? Binary Options Signals - LIVE Trading Session by Franco How To Make $75 an Hour Online 2020  Nadex binary options ... OptionStack - Quick Start Guide

Besides, all binary options auto trading software won’t offer you the same features and services. Every automated trading robot works differently from the other one. Still, most features remain the same, such as type of trades, trade volume, deposit amount, minimum investment, the maximum amount you can lose per day, etc. The software works based on a sophisticated trading algorithm. So ... Besides, as you might guess, GNU gettext is meant to be useful for people using computers, whatever their sex ... Almost all programs accept options, which are often worded out so to be descriptive for the English readers; one might want to consider offering translated versions for program options as well. Many programs read, interpret, compile, or are somewhat driven by input files which are ... PDF417 codes are used for applications that require the storage of huge amounts of data, such as photographs, fingerprints and signatures. They can hold over 1.1 kilobytes of machine-readable data, making them much more powerful than other 2D barcodes. Like QR codes, PDF417 barcodes are public domain and free to use. Some these other options include bcp, BULK INSERT, OPENROWSET as well as others. The following examples show you some of these different options for importing data and how you can use some of these inline with your T-SQL code as well as others that can be run from the command line. BCP. This is one of the options that is mostly widely used. One reason for this is that it has been around for ... The type of investment where binary trader trades on the market and not in the market like in other trading investments. Binary option trading is giving the opportunity to trade currencies, indices, stocks and commodities. Binary trading offers the possibility to instantly trade within different markets. The difference is that trader is predicting the asset’s movement for a predetermined ... This encoder generates a three-bit binary code corresponding to the switch position (one out of eight positions). Follow-up question: trace the path of electron flow through the circuit with the switch in position #3. Challenge question: are there other codes (besides binary) that could possibly be generated with a circuit of this general design? Notes: Ask your students to explain how the ... In fact, traders can purposefully choose to trade binary options in one of forex brokers by directly open a binary options account, or trade in its binary options platform. It is due to the fact that regulation and access to other broker service make binary options trading easier. Besides, traders don't need to worry about the quality of binary options service coming from forex brokers. Binary Code takes each of those combinations and assigns a number to it, like this: Both Off = 0 First Off, Second On = 1 First On, Second Off = 2 Both On = 3 Intermediate Explanation Another way of thinking about it is this: let's give each lightbulb a point value. We'll say the first lightbulb is worth two points, and the second one is worth ... Whatever your reason may be for wanting to opt out of QuickBooks, we have you covered. To help you find better-fitting accounting solutions for your operations, we’ve prepared a list of accounting software that rival QuickBooks in terms of features, interface, and value for money. We’ve even noted some reasons on why you should choose each platform on the list over QuickBooks and vice ... That said, you might want to look around for other options before subscribing. To help you out, we have compiled the top 10 alternatives to Eventbrite. In this article, we will be discussing the key functionalities of each product as well as what sets them apart from Eventbrite. This way, you can easily gauge which product will work best for your company’s operations. Top 10 Alternatives to ...

[index] [877] [12525] [3896] [25014] [16489] [2617] [20375] [3720] [7994] [28160]

Binary Options Reviews - YouTube

Quick start guide on using the OptionStack platform. Unlike other options analysis software, Option Stack’s patent-pending software automates the whole proce... binary options beginners strategy or binary options newbie strategy. Most popular binary options 60 second trading strategy and 15 minute binary options strategy for a newbie as well as ... Drexel Code System is the only binary options trading software in the world that connects to this network 100% automatically and sucks out profits from it 100’s of times per day - making those ... Join this chat room and get real unbias binary option opinions from other like minded retail traders. These are Free binary options signals based on our Green arrow trading strategy that can be ... Binary options signals generated by the BOTS (Binary Options Trading Signals) system reach above 85% wins. Unlike other binary signals this success can be followed online during live trading ... To avoid this, cancel and sign in to YouTube on your computer. Cancel. Confirm. Connecting to your TV on web using a code will be going away soon. Learn more. OK. Email Processing System 2020 ... Here is a full review of Franco's Binary options trading signals (BOTS) No other binary options broker offers a free trading platform for such low values yet another way to use a good binary ... Ans – The thing is inventory trading is a company like how to trade binary options every other small business. Regardless if you open a store no less than Rs.fifty lakh is required. 3-5% per 30 ... I'm Lady Trader and today I'm gonna show you the best binary options strategy 2019 that I use in binary trading. More my binary options tutorial and binary options review you can watch in trading ... Binary Options and advertising it’s signals systems in a misleading way has become a million dollar industry as its affiliates sell the products online through the clicksure digital marketplace ...

http://arab-binary-option.liafranjingsmatin.cf