The Basics of Technical Analysis - Binary Options Trading

The Next Processor Change is Within ARMs Reach

As you may have seen, I sent the following Tweet: “The Apple ARM MacBook future is coming, maybe sooner than people expect” https://twitter.com/choco_bit/status/1266200305009676289?s=20
Today, I would like to further elaborate on that.
tl;dr Apple will be moving to Arm based macs in what I believe are 4 stages, starting around 2015 and ending around 2023-2025: Release of T1 chip Macbooks, release of T2 chip Macbooks, Release of at least one lower end model Arm Macbook, and transitioning full lineup to Arm. Reasons for each are below.
Apple is very likely going to switch to switch their CPU platform to their in-house silicon designs with an ARM architecture. This understanding is a fairly common amongst various Apple insiders. Here is my personal take on how this switch will happen and be presented to the consumer.
The first question would likely be “Why would Apple do this again?”. Throughout their history, Apple has already made two other storied CPU architecture switches - first from the Motorola 68k to PowerPC in the early 90s, then from PowerPC to Intel in the mid 2000s. Why make yet another? Here are the leading reasons:
A common refrain heard on the Internet is the suggestion that Apple should switch to using CPUs made by AMD, and while this has been considered internally, it will most likely not be chosen as the path forward, even for their megalithic giants like the Mac Pro. Even though AMD would mitigate Intel’s current set of problems, it does nothing to help the issue of the x86_64 architecture’s problems and inefficiencies, on top of jumping to a platform that doesn’t have a decade of proven support behind it. Why spend a lot of effort re-designing and re- optimizing for AMD’s platform when you can just put that effort into your own, and continue the vertical integration Apple is well-known for?
I believe that the internal development for the ARM transition started around 2015/2016 and is considered to be happening in 4 distinct stages. These are not all information from Apple insiders; some of these these are my own interpretation based off of information gathered from supply-chain sources, examination of MacBook schematics, and other indicators from Apple.

Stage1 (from 2014/2015 to 2017):

The rollout of computers with Apple’s T1 chip as a coprocessor. This chip is very similar to Apple’s T8002 chip design, which was used for the Apple Watch Series 1 and Series 2. The T1 is primarily present on the first TouchID enabled Macs, 2016 and 2017 model year MacBook Pros.
Considering the amount of time required to design and validate a processor, this stage most likely started around 2014 or 2015, with early experimentation to see whether an entirely new chip design would be required, or if would be sufficient to repurpose something in the existing lineup. As we can see, the general purpose ARM processors aren’t a one- trick pony.
To get a sense of the decision making at the time, let’s look back a bit. The year is 2016, and we're witnessing the beginning of stagnation of Intel processor lineup. There is not a lot to look forward to other than another “+” being added to the 14nm fabrication process. The MacBook Pro has used the same design for many years now, and its age is starting to show. Moving to AMD is still very questionable, as they’ve historically not been able to match Intel’s performance or functionality, especially at the high end, and since the “Ryzen” lineup is still unreleased, there is absolutely no benchmarks or other data to show they are worth consideration, and AMD’s most recent line of “Bulldozer” processors were very poorly received. Now is probably as good a time as any to begin experimenting with the in-house ARM designs, but it’s not time to dive into the deep end yet, our chips are not nearly mature enough to compete, and it’s not yet certain how long Intel will be stuck in the mud. As well, it is widely understood that Apple and Intel have an exclusivity contract in exchange for advantageous pricing. Any transition would take considerable time and effort, and since there are no current viable alternative to Intel, the in-house chips will need to advance further, and breaching a contract with Intel is too great a risk. So it makes sense to start with small deployments, to extend the timeline, stretch out to the end of the contract, and eventually release a real banger of a Mac.
Thus, the 2016 Touch Bar MacBooks were born, alongside the T1 chip mentioned earlier. There are good reasons for abandoning the piece of hardware previously used for a similar purpose, the SMC or System Management Controller. I suspect that the biggest reason was to allow early analysis of the challenges that would be faced migrating Mac built- in peripherals and IO to an ARM-based controller, as well as exploring the manufacturing, power, and performance results of using the chips across a broad deployment, and analyzing any early failure data, then using this to patch any issues, enhance processes, and inform future designs looking towards the 2nd stage.
The former SMC duties now moved to T1 includes things like
The T1 chip also communicates with a number of other controllers to manage a MacBook’s behavior. Even though it’s not a very powerful CPU by modern standards, it’s already responsible for a large chunk of the machine’s operation. Moving control of these peripherals to the T1 chip also brought about the creation of the fabled BridgeOS software, a shrunken-down watchOS-based system that operates fully independently of macOS and the primary Intel processor.
BridgeOS is the first step for Apple’s engineering teams to begin migrating underlying systems and services to integrate with the ARM processor via BridgeOS, and it allowed internal teams to more easily and safely develop and issue firmware updates. Since BridgeOS is based on a standard and now well-known system, it means that they can leverage existing engineering expertise to flesh out the T1’s development, rather than relying on the more arcane and specialized SMC system, which operates completely differently and requires highly specific knowledge to work with. It also allows reuse of the same fabrication pipeline used for Apple Watch processors, and eliminated the need to have yet another IC design for the SMC, coming from a separate source, to save a bit on cost.
Also during this time, on the software side, “Project Marzipan”, today Catalyst, came into existence. We'll get to this shortly.
For the most part, this Stage 1 went without any major issues. There were a few firmware problems at first during the product launch, but they were quickly solved with software updates. Now that engineering teams have had experience building for, manufacturing, and shipping the T1 systems, Stage 2 would begin.

Stage2 (2018-Present):

Stage 2 encompasses the rollout of Macs with the T2 coprocessor, replacing the T1. This includes a much wider lineup, including MacBook Pro with Touch Bar, starting with 2018 models, MacBook Air starting with 2018 models, the iMac Pro, the 2019 Mac Pro, as well as Mac Mini starting in 2018.
With this iteration, the more powerful T8012 processor design was used, which is a further revision of the T8010 design that powers the A10 series processors used in the iPhone 7. This change provided a significant increase in computational ability and brought about the integration of even more devices into T2. In addition to the T1’s existing responsibilities, T2 now controls:
Those last 2 points are crucial for Stage 2. Under this new paradigm, the vast majority of the Mac is now under the control of an in-house ARM processor. Stage 2 also brings iPhone-grade hardware security to the Mac. These T2 models also incorporated a supported DFU (Device Firmware Update, more commonly “recovery mode”), which acts similarly to the iPhone DFU mode and allows restoration of the BridgeOS firmware in the event of corruption (most commonly due to user-triggered power interruption during flashing).
Putting more responsibility onto the T2 again allows for Apple’s engineering teams to do more early failure analysis on hardware and software, monitor stability of these machines, experiment further with large-scale production and deployment of this ARM platform, as well as continue to enhance the silicon for Stage 3.
A few new user-visible features were added as well in this stage, such as support for the passive “Hey Siri” trigger, and offloading image and video transcoding to the T2 chip, which frees up the main Intel processor for other applications. BridgeOS was bumped to 2.0 to support all of these changes and the new chip.
On the macOS software side, what was internally known as Project Marzipan was first demonstrated to the public. Though it was originally discovered around 2017, and most likely began development and testing within later parts of Stage 1, its effects could be seen in 2018 with the release of iPhone apps, now running on the Mac using the iOS SDKs: Voice Recorder, Apple News, Home, Stocks, and more, with an official announcement and public release at WWDC in 2019. Catalyst would come to be the name of Marzipan used publicly. This SDK release allows app developers to easily port iOS apps to run on macOS, with minimal or no code changes, and without needing to develop separate versions for each. The end goal is to allow developers to submit a single version of an app, and allow it to work seamlessly on all Apple platforms, from Watch to Mac. At present, iOS and iPadOS apps are compiled for the full gamut of ARM instruction sets used on those devices, while macOS apps are compiled for x86_64. The logical next step is to cross this bridge, and unify the instruction sets.
With this T2 release, the new products using it have not been quite as well received as with the T1. Many users have noticed how this change contributes further towards machines with limited to no repair options outside of Apple’s repair organization, as well as some general issues with bugs in the T2.
Products with the T2 also no longer have the “Lifeboat” connector, which was previously present on 2016 and 2017 model Touch Bar MacBook Pro. This connector allowed a certified technician to plug in a device called a CDM Tool (Customer Data Migration Tool) to recover data off of a machine that was not functional. The removal of this connector limits the options for data recovery in the event of a problem, and Apple has never offered any data recovery service, meaning that a irreparable failure of the T2 chip or the primary board would result in complete data loss, in part due to the strong encryption provided by the T2 chip (even if the data got off, the encryption keys were lost with the T2 chip). The T2 also brought about the linkage of component serial numbers of certain internal components, such as the solid state storage, display, and trackpad, among other components. In fact, many other controllers on the logic board are now also paired to the T2, such as the WiFi and Bluetooth controller, the PMIC (Power Management Controller), and several other components. This is the exact same system used on newer iPhone models and is quite familiar to technicians who repair iPhone logic boards. While these changes are fantastic for device security and corporate and enterprise users, allowing for a very high degree of assurance that devices will refuse to boot if tampered with in any way - even from storied supply chain attacks, or other malfeasance that can be done with physical access to a machine - it has created difficulty with consumers who more often lack the expertise or awareness to keep critical data backed up, as well as the funds to perform the necessary repairs from authorized repair providers. Other issues reported that are suspected to be related to T2 are audio “cracking” or distortion on the internal speakers, and the BridgeOS becoming corrupt following a firmware update resulting in a machine that can’t boot.
I believe these hiccups will be properly addressed once macOS is fully integrated with the ARM platform. This stage of the Mac is more like a chimera of an iPhone and an Intel based computer. Technically, it does have all of the parts of an iPhone present within it, cellular radio aside, and I suspect this fusion is why these issues exist.
Recently, security researchers discovered an underlying security problem present within the Boot ROM code of the T1 and T2 chip. Due to being the same fundamental platform as earlier Apple Watch and iPhone processors, they are vulnerable to the “checkm8” exploit (CVE-2019-8900). Because of how these chips operate in a Mac, firmware modifications caused by use of the exploit will persist through OS reinstallation and machine restarts. Both the T1 and T2 chips are always on and running, though potentially in a heavily reduced power usage state, meaning the only way to clean an exploited machine is to reflash the chip, triggering a restart, or to fully exhaust or physically disconnect the battery to flush its memory. Fortunately, this exploit cannot be done remotely and requires physical access to the Mac for an extended duration, as well as a second Mac to perform the change, so the majority of users are relatively safe. As well, with a very limited execution environment and access to the primary system only through a “mailbox” protocol, the utility of exploiting these chips is extremely limited. At present, there is no known malware that has used this exploit. The proper fix will come with the next hardware revision, and is considered a low priority due to the lack of practical usage of running malicious code on the coprocessor.
At the time of writing, all current Apple computers have a T2 chip present, with the exception of the 2019 iMac lineup. This will change very soon with the expected release of the 2020 iMac lineup at WWDC, which will incorporate a T2 coprocessor as well.
Note: from here on, this turns entirely into speculation based on info gathered from a variety of disparate sources.
Right now, we are in the final steps of Stage 2. There are strong signs that an a MacBook (12”) with an ARM main processor will be announced this year at WWDC (“One more thing...”), at a Fall 2020 event, Q1 2021 event, or WWDC 2021. Based on the lack of a more concrete answer, WWDC2020 will likely not see it, but I am open to being wrong here.

Stage3 (Present/2021 - 2022/2023):

Stage 3 involves the first version of at least one fully ARM-powered Mac into Apple’s computer lineup.
I expect this will come in the form of the previously-retired 12” MacBook. There are rumors that Apple is still working internally to perfect the infamous Butterfly keyboard, and there are also signs that Apple is developing an A14x based processors with 8-12 cores designed specifically for use as the primary processor in a Mac. It makes sense that this model could see the return of the Butterfly keyboard, considering how thin and light it is intended to be, and using an A14x processor would make it will be a very capable, very portable machine, and should give customers a good taste of what is to come.
Personally, I am excited to test the new 12" “ARMbook”. I do miss my own original 12", even with all the CPU failure issues those older models had. It was a lovely form factor for me.
It's still not entirely known whether the physical design of these will change from the retired version, exactly how many cores it will have, the port configuration, etc. I have also heard rumors about the 12” model possibly supporting 5G cellular connectivity natively thanks to the A14 series processor. All of this will most likely be confirmed soon enough.
This 12” model will be the perfect stepping stone for stage 3, since Apple’s ARM processors are not yet a full-on replacement for Intel’s full processor lineup, especially at the high end, in products such as the upcoming 2020 iMac, iMac Pro, 16” MacBook Pro, and the 2019 Mac Pro.
Performance of Apple’s ARM platform compared to Intel has been a big point of contention over the last couple years, primarily due to the lack of data representative of real-world desktop usage scenarios. The iPad Pro and other models with Apple’s highest-end silicon still lack the ability to execute a lot of high end professional applications, so data about anything more than video editing and photo editing tasks benchmarks quickly becomes meaningless. While there are completely synthetic benchmarks like Geekbench, Antutu, and others, to try and bridge the gap, they are very far from being accurate or representative of the real real world performance in many instances. Even though the Apple ARM processors are incredibly powerful, and I do give constant praise to their silicon design teams, there still just isn’t enough data to show how they will perform for real-world desktop usage scenarios, and synthetic benchmarks are like standardized testing: they only show how good a platform is at running the synthetic benchmark. This type of benchmark stresses only very specific parts of each chip at a time, rather than how well it does a general task, and then boil down the complexity and nuances of each chip into a single numeric score, which is not a remotely accurate way of representing processors with vastly different capabilities and designs. It would be like gauging how well a person performs a manual labor task based on averaging only the speed of every individual muscle in the body, regardless of if, or how much, each is used. A specific group of muscles being stronger or weaker than others could wildly skew the final result, and grossly misrepresent performance of the person as a whole. Real world program performance will be the key in determining the success and future of this transition, and it will have to be great on this 12" model, but not just in a limited set of tasks, it will have to be great at *everything*. It is intended to be the first Horseman of the Apocalypse for the Intel Mac, and it better behave like one. Consumers have been expecting this, especially after 15 years of Intel processors, the continued advancement of Apple’s processors, and the decline of Intel’s market lead.
The point of this “demonstration” model is to ease both users and developers into the desktop ARM ecosystem slowly. Much like how the iPhone X paved the way for FaceID-enabled iPhones, this 12" model will pave the way towards ARM Mac systems. Some power-user type consumers may complain at first, depending on the software compatibility story, then realize it works just fine since the majority of the computer users today do not do many tasks that can’t be accomplished on an iPad or lower end computer. Apple needs to gain the public’s trust for basic tasks first, before they will be able to break into the market of users performing more hardcore or “Pro” tasks. This early model will probably not be targeted at these high-end professionals, which will allow Apple to begin to gather early information about the stability and performance of this model, day to day usability, developmental issues that need to be addressed, hardware failure analysis, etc. All of this information is crucial to Stage 4, or possibly later parts of Stage 3.
The 2 biggest concerns most people have with the architecture change is app support and Bootcamp.
Any apps released through the Mac App Store will not be a problem. Because App Store apps are submitted as LLVM IR (“Bitcode”), the system can automatically download versions compiled and optimized for ARM platforms, similar to how App Thinning on iOS works. For apps distributed outside the App Store, thing might be more tricky. There are a few ways this could go:
As for Bootcamp, while ARM-compatible versions of Windows do exist and are in development, they come with their own similar set of app support problems. Microsoft has experimented with emulating x86_64 on their ARM-based Surface products, and some other OEMs have created their own Windows-powered ARM laptops, but with very little success. Performance is a problem across the board, with other ARM silicon not being anywhere near as advanced, and with the majority of apps in the Windows ecosystem that were not developed in-house at Microsoft running terribly due to the x86_64 emulation software. If Bootcamp does come to the early ARM MacBook, it more than likely will run like very poorly for anything other than Windows UWP apps. There is a high chance it will be abandoned entirely until Windows becomes much more friendly to the architecture.
I believe this will also be a very crucial turning point for the MacBook lineup as a whole. At present, the iPad Pro paired with the Magic Keyboard is, in many ways, nearly identical to a laptop, with the biggest difference being the system software itself. While Apple executives have outright denied plans of merging the iPad and MacBook line, that could very well just be a marketing stance, shutting the down rumors in anticipation of a well-executed surprise. I think that Apple might at least re-examine the possibility of merging Macs and iPads in some capacity, but whether they proceed or not could be driven by consumer reaction to both products. Do they prefer the feel and usability of macOS on ARM, and like the separation of both products? Is there success across the industry of the ARM platform, both at the lower and higher end of the market? Do users see that iPadOS and macOS are just 2 halves of the same coin? Should there be a middle ground, and a new type of product similar to the Surface Book, but running macOS? Should Macs and iPads run a completely uniform OS? Will iPadOS ever see exposed the same sort of UNIX-based tools for IT administrators and software developers that macOS has present? These are all very real questions that will pop up in the near future.
The line between Stage 3 and Stage 4 will be blurry, and will depend on how Apple wishes to address different problems going forward, and what the reactions look like. It is very possible that only 12” will be released at first, or a handful more lower end model laptop and desktop products could be released, with high performance Macs following in Stage 4, or perhaps everything but enterprise products like Mac Pro will be switched fully. Only time will tell.

Stage 4 (the end goal):

Congratulations, you’re made it to the end of my TED talk. We are now well into the 2020s and COVID-19 Part 4 is casually catching up to the 5G = Virus crowd. All Macs have transitioned fully to ARM. iMac, MacBooks Pro and otherwise, Mac Pro, Mac Mini, everything. The future is fully Apple from top to bottom, and vertical integration leading to market dominance continues. Many other OEM have begun to follow in this path to some extent, creating more demand for a similar class of silicon from other firms.
The remainder here is pure speculation with a dash of wishful thinking. There are still a lot of things that are entirely unclear. The only concrete thing is that Stage 4 will happen when everything is running Apple’s in- house processors.
By this point, consumers will be quite familiar with the ARM Macs existing, and developers have had have enough time to transition apps fully over to the newly unified system. Any performance, battery life, or app support concerns will not be an issue at this point.
There are no more details here, it’s the end of the road, but we are left with a number of questions.
It is unclear if Apple will stick to AMD's GPUs or whether they will instead opt to use their in-house graphics solutions that have been used since the A11 series of processors.
How Thunderbolt support on these models of Mac will be achieved is unknown. While Intel has made it openly available for use, and there are plans to have USB and Thunderbolt combined in a single standard, it’s still unclear how it will play along with Apple processors. Presently, iPhones do support connecting devices via PCI Express to the processor, but it has only been used for iPhone and iPad storage. The current Apple processors simply lack the number of lanes required for even the lowest end MacBook Pro. This is an issue that would need to be addressed in order to ship a full desktop-grade platform.
There is also the question of upgradability for desktop models, and if and how there will be a replaceable, socketed version of these processors. Will standard desktop and laptop memory modules play nicely with these ARM processors? Will they drop standard memory across the board, in favor of soldered options, or continue to support user-configurable memory on some models? Will my 2023 Mac Pro play nicely with a standard PCI Express device that I buy off the shelf? Will we see a return of “Mac Edition” PCI devices?
There are still a lot of unknowns, and guessing any further in advance is too difficult. The only thing that is certain, however, is that Apple processors coming to Mac is very much within arm’s reach.
submitted by Fudge_0001 to apple [link] [comments]

Classified: Compiled Intelligence On the Lost Dolls Reclaimer Faction (OC Reclaimer Faction)

Condensed intelligence overview detailing currently known information on the Reclaimer faction known as ‘Lost Dolls.’ Information contained therein has been compiled by Sky Union Intelligence Officer ‘MB.’
Sources consist largely of Sky Union’s own records, as well as shared intelligence reports on the matter, compiled battle data, and found footage shared by Orbital. MB was also able to covertly interview the pilot ‘Port’ directly, though it’s believed that she understood the general purpose of MB’s questioning, and so her testimony must be accepted with a degree of scrutiny.
OVERVIEW
Unit Name: Lost Dolls
“Bringing you the bleeding edge of technology from thirty years ago, today. Let’s get started.”
-MB, initial debriefing.
Time of Operation: Officially, only four hundred and seventy three days. Compiled intelligence suggests that the group has been active in the Oval Link for far longer, with upward estimates reaching as high as twenty years. At the very least, all members were alive at the time of the Moonfall.
Pilots: Five
Affiliations: No known Consortium ties. Joint operations alongside other Reclaimer factions are uncommon, though Steel Knights show up most often with Bullet Works and Immortal Innocence tied for a distant second.
Preferred Mission Profile: Lost Dolls’ mission profile trends toward humanitarian missions. Primarily defensive or retributive actions against Corrupted A.I. incursions, particularly those concerning civilian populations within the Oval Link. It’s generally accepted that this is one of the primary factors contributing to their work alongside Steel Knights.
They are less likely than average to pursue high-risk, high-payout missions such as deep-dives into A.I. territory or the escort of VIPs, such as political or military personnel, out of high risk areas. Conversely, they are more likely to take on high-risk missions with lower pay, such as escorting civilian evacuation caravans in the event of a Corrupted A.I. incursion. This behavior matches with the Dolls’ preference for humanitarian work, as missions fitting these criteria tend to be posted by lower level governmental officials, or even civilians with pooled resources, who have come under sudden attack.
Quirks: All five pilots typically show to missions, in violation of the four-per-squad standard. Normally this would be in violation of the Consortium Treaty, but so far Orbital has refused to take action. It is theorized that this is due to the Dolls’ reluctance to hit military targets, and that Orbital may be letting the behavior slide in the interest of protecting civilian lives.
The Dolls have no known home base. Port has made reference to a ‘bus’ in interviews that she says they use for field repair and transportation; it’s possible she’s referring to an old rapid deployment Arsenal carrier like the ones that were used before the Consortiums established proper infrastructure in the Oval Link, but it’s hard to say where a group like the Dolls could have found an operational one, much less one capable of fielding five arsenals. It’s almost more likely that they actually have two, puttering somewhere around the Neutral Zone. Even that’s a hard pill to swallow, since the old carriers have been out of production for almost thirty years now.
Very little of the Dolls’ equipment is up-to-date. Their plugsuits are all defunct prototype models and in varying states of disrepair; most of their pilots don’t even use the actual connections in the suits themselves, opting instead for permanent ports connecting directly to their nervous systems. I’ve never seen any of them sporting a Blitz, either. At least one, Port, has been observed with what appears to be a traditional slug-throwing sidearm.
The Lost Dolls claim to be a family unit of five sisters. The physical differences between them would imply that this is in a purely symbolic manner (excepting Protoca and Hope. Possibly Port if our facial analysis data is reliable), but the effect is the same. Their loyalty to each other is hard to call into question.
Every one of their pilots has had their age frozen by Outer Syndrome.
It should be noted that all pilots, excepting Earwax, have pilot rankings that do not properly reflect their overall level of competency. The Dolls’ propensity for low-sensitivity missions and unwillingness to work closely to further any Consortium goals aside from preservation of human life has left them low on the leaderboard. In cases where this information is used for planning operations against or alongside the Lost Dolls, assume all pilots are at the level of A rank or higher.
PILOTS/MECHS
“I’ll start off with saying that the Dolls have the most ‘ware I’ve ever seen packed into a unit of this size. Two pilots are almost entirely cybernetic. And I do mean entirely.”
-MB
Callsign: Tachi
Real Name: Tachi Hanamura
Age: Unknown. Appears to be in her late teens.
Height: 197cm outside of Arsenal, 76cm while embarked, 167cm when utilizing her ‘emergency legs.’
Rank: C
Handed: Both
Family: Four sisters
Outer Ability: Unknown. Though she is remarkably receptive to cybernetic augmentations and displays an unusual level of synchronicity with her Arsenal, hovering at anywhere between 91% and 95% at any time.
Piloting Tendences: Aggressive. Highly aggressive. Tachi’s typical M.O. involves charging directly into an enemy formation and smashing the thing to bits before moving onto the next cluster. She often acts as the Dolls’ line breaker and attack dog, flushing high priority targets out of the press or just bowling down the chaff so that the other pilots can focus on more important things.
“The armor is 600mm of over a dozen different laminates and they didn’t include a single thermal dispersion layer for laser fire...”
-Tachi, picking over the husk of a disabled Genbu
Physical Description: Where to start? First, brown hair, cropped into a messy bowl cut. Wide build for a girl. Her entire right arm is cybernetic. Her torso ends above her hips, which have been replaced by a massive version of the nerve-interface hubs found on standard plugsuits. Outside of her Arsenal this is plugged into the top of a massive set of ‘spider legs,’ complete with abdomen, which she uses as her normal mode of transport. When embarked on a mission, she’s lifted off her leg hub and simply plugged into a custom seat in her Arsenal, with a secondary connection at the base of her neck; the normal shoulder connections aren’t used.
The arm and leg hub don’t match any known manufacturer of prosthetics, and the connection format at her hip is dated by at least a full twenty years. A pair of more modern legs are integrated into her piloting seat and act as part of her ejection system should her Arsenal be put out of commission in the middle of combat.
She has a set of rocket thrusters implanted into her back. Actual rocket thrusters; the vents are mostly flush with her shoulder blades, protruding perhaps 5-6cm. Footage loaned from Orbital demonstrates her leaping almost one hundred meters utilizing them while under full load (read: attached to the massive spider leg assembly). Using her Arsenal ejection system, combined with the lighter weight of her backup legs, it’s estimated she could travel as far as three hundred meters on a burst from the thrusters.
Arsenal: Arachne
Weapon Compliment:
Arsenal Characteristics: Beat half to death and heavy.
Arachne’s one of the two Arsenals in the Dolls’ employ that we have a decent technical read on, mostly because Tachi’s a shameless showboat and likes to show off all the tinkering she’s done on the thing. A decent example of the Dolls’ construction strategy, no two armor components on Arachne are from the same model. The left arm is optimized for melee strikes (both the base model, and the aftermarket modifications that have been made by the pilot) while the right is oriented for handling firearms. The unit is sluggish in the air and has middling mobility on foot for it’s durability; fine enough for Tachi’s preferred method of brawling. Combat footage shows she’s the type of pilot that tries to stay grounded anyway.
Tachi’s normal plan of attack is to get in close and personal with the Raven II and Ohabari and shred whatever’s in front of her. The Reaper II is typically reserved for plinking Strais or aerial targets that have gotten spread out. The Agni Flame appears to be used purely as backup.
Frankly, the Reaper II and Ogre Break II are squandered here. With a maximum lock range of only two hundred and one meters, Arachne is right on the edge of it’s rangeband with the Reaper and hopelessly short of the Ogre. That hasn’t stopped the pilot from eyeballing slower moving AI from farther out, but the Arsenal really shows the slapdash nature of the pilot.
“She doesn’t stop. Not for anything. While pouring over the combat footage I actually stumbled onto a sequence where she took a Failnaught round right through the cockpit and all it did was make her angry.”
-MB.
Callsign: Protoca
Real Name: Protoca [no known surname]
Age: Unknown. Appears to be in her late teens.
Height: 182cm
Rank: B
Handed: Left
Family: Four sisters
Outer Ability: Rapid regeneration from injuries, as well as being prone to physical mutation. She can apparently recover from injuries that even most Outers would find lethal; we have combat footage of an ejected Protoca taking a cannon round to the legs, obliterating everything from her hips downward. I met her face-to-face in my interview with Port and she had made a full recovery, complete with a set of genuine flesh and blood legs. You wouldn’t even know it’d happened.
Her mutations appear to be a side-effect of her regeneration, and do not directly benefit her while piloting outside of her absurd physical strength and enhanced reflexes.
Piloting Tendencies: Measured and deliberate, but outrageously dogged. She keeps a wide engagement profile and usually plays mop-up alongside Port when dealing with traditional corrupted AI forces, otherwise she’s running interference when facing off against Arsenals. She’s particularly skilled at close urban combat and swaps between playing rifleman and melee roles fluidly. She also rarely retreats from engagement, regardless of the tactical situation. On at least one occasion, her Arsenal was reduced down to it’s torso, head, and one leg in an engagement with a hostile Arsenal pilot. Instead of withdrawing, Protoca engaged afterburners and tackled her opponent, which bought enough time for Lost Dolls’ other pilots to reach her position and disable the enemy.
Generally speaking, it seems she simply will not withdraw from an engagement unless one of the other pilots is under direct threat or Port herself calls for an immediate withdrawal.
“You don’t take one step further. Not one.”
-Protoca, staring down three fresh Strais after dispatching their forward wing.
Physical Description: A real mess. For the basics; brown hair, trimmed into an angled bob cut. She’s wide shouldered, but nowhere near as broad as Tachi. Her torso and leg profiles are slim, arguably emaciated. Musculature is extremely visible, as if she’s constantly tensing her entire body with every movement. It’s possible that’s the case, as her movement patterns have a habit of being twitchy and erratic.
As for the aforementioned mutations: her right leg is covered in dark, hard scales. An atrophied wing, like that of a bat, shares a dual joint at the shoulder with her right arm. Numerous scars, some clearly surgical in nature. There’s a kind of plant-like symbiont that wraps around her left arm, up her neck, and ends in her hair, sprouting into a pair of green, bioluminescent flowers; it’s unclear if this is a mutation to her person or if it’s a separate entity.
A note about the wing and scales: they’re proofed against small arms. How Protoca’s body is able to produce organic compounds capable of standing up to Femto weaponry is currently a subject of heated debate in R&D’s breakroom. I’m sure more than a few whiteboards have been broken over it, considering how loud they get.
Arsenal: One More
Weapon Compliment:
  • OAW-P54 Aegis
  • OAW-BL74 Cronus Break
  • SAW-RP90F Splendor
  • HAW-CF22 Chaff Flare
  • HAW-R26F Guilty Throne
  • HAW-L05F Stargazer
Arsenal Characteristics: One More is the type of Arsenal you could smack upside the head with a Buster Doom and it would ask for seconds.
True, it doesn’t have the bulk of a true heavy-weight, but the chassis itself is strong enough to take a hit and keep on coming and the Splendor repair system means the Arsenal has fantastic staying power over the course of an extended engagement. And the Aegis shield in the off-hand gifts the pilot considerable bulk in the context of a contained duel.
Like Arachne, One More has a lopsided chassis with a horrendously overengineered sword arm while the other is optimized for handling firearms. Unlike Arachne, One More has access to a far more advanced set of weaponry. Between the Guilty Throne, Aegis, Cronus Break, and Stargazer, Protoca is running a veritable buffet of high performance, low availability equipment. The manufacturers of the Cronus Break and Aegis models aren’t even public knowledge, so it’s an open question where the Dolls could have procured such serious tech with their relatively bare income and (reportedly) spartan operational facilities.
Operationally, One More often acts as the anvil to Port and Tachi’s hammer; a hard to remove obstacle for any conventional AI force and a dogged pursuer for most arsenal-based forces.
“The team’s tactical leader and designated marksman. Methodical, cordial, and a complete horror show like all the others.”
-MB
Callsign: Port
Real Name: Samantha Thampson
Age: Unknown. Appears to be in her late teens.
Height: 167cm
Rank: B
Handed: Left
Family: Four sisters.
Outer Ability: Port’s brain is innately capable of understanding binary code which allows her unparalleled levels of synchronicity with her Arsenal, fluctuating between 99%-100%. It also allows her to eschew the traditional connecting ports in her plug suit (which is good, because they’re all visibly broken) and instead opt for a surgically installed plug that connects directly to her brain stem. Connected this way, her Arsenal effectively becomes an extension of her physical body.
This ability also extends to binary converted into other formats other than a direct electrical feed; Port has often been caught having verbal, and apparently quite in-depth, conversations with the AI unit of her Arsenal via the unit’s external audio systems, with bursts of static standing in for the unit's speech. How coherent/intelligent this ‘dialogue’ from the unit is still up in the air, but analysis of the few samples we do have shows definite patterns in the unit’s ‘speech’ and in how it reacts to Port herself.
Piloting Tendencies: Port’s preferred method of engagement appears to be skirmishing at distance; she fits the rifleman archetype to a T. Unlike Protoca, Tachi, and Lily, Port has no measures for melee combat installed on her Arsenal aside from its fists, and even the one shotgun she keeps on the rear pylons is a choked down, longer range model.
Her usual M.O. when deployed amongst her sisters is to hang back behind Tachi or Protoca and plink. Well, ‘plink.’ The DMR and high performance assault rifle she’s managed to scrounge out of the Neutral Zone could blow through a Rebellion’s kneecap with sustained fire, and her sisters are good at giving her the required openings. While going over the combat footage, I saw her put a round down the barrel of a Slay Dog more than once.
“Oh, we’re just a merry little band of misfits, Sergeant. Looking out for each other, trying to make the world a better place. I’m sure you’ve heard the old song and dance.”
-Port, early in her interview with Intelligence Officer MB.
Physical Description: The most immediately striking thing about Port is arguably her albinism; snow white from head to toe except for her eyes, which are pink from lack of pigment. After that might be the fact that she’s a quadruple amputee with a full suite of military grade replacement limbs (or rather, Port claims that they’re military grade). The hardware itself appears very dated, to the point where our intelligence teams have not actually been able to pinpoint a make or model. Aside from being old, they’re clearly several sizes too large for her. Approximating by their overall scale, we estimate they’re intended for an 180cm adult male. The size difference is exaggerated somewhat by the fact that her legs have actually been installed too low, connecting part way down her thighs rather than at the hip. The limbs themselves don’t appear to be anything special; the arms are conventional replacement limbs with a fully articulated wrist, hand, and fingers while the legs are set up for sprinting, the feet having been replaced with a flexible running fin. The legs also boast a pneumatic jumping apparatus on par with modern Outer modifications.
Port has also undergone extensive cranial modifications, some of which she claims she’s performed herself. These include a large radio antenna mounted behind her right ear and connected via ribbon cable to the base of her skull, a set of four high definition cameras implanted into the ridges of her cheekbones, a manually operated combat stimulant pump on the bottom left portion of her skull, and two white ‘dog ears’ surgically implanted over her ear canals (breed and origin undetermined; possibly vat grown and purchased off the black market).
Moving on from augmentations; Port herself is slightly built. Thin frame, long face, little visible muscle to speak of. Her torso is thin enough that it almost appears emaciated, though there’s some contention on whether this is actually due to nutritional deficit or rather a result of further augmentation or Outer Syndrome. She’s covered in scars and has permanent iris damage in her left eye.
Arsenal: B3-206 (though Port often shortens this to ‘Bee’)
Weapon Compliment:
  • SAW-SR53 Beluga Beam
  • Agni Flame M
  • HAW-R26F Guilty Throne
  • HAW-SH35 Hoggish Spriggan
  • HAW-AM01L Scarlet Star
And a reserve magazine for an expanded ammunition compliment.
Arsenal Characteristics: A solid, all around trooper unit.
B3-206 excels in the roles of medium range fire support and skirmisher. Between the Beluga Beam and Scarlet Star, B3-206 has excellent firepower at range to harass hostile targets while the Guilty Throne and M model Agni Flame offer solid mid-range options for when the fighting gets in a little closer. Port appears to keep the Spriggan on hand as a sidearm more than anything else, usually only resorting to it once her other weapons have depleted their ammunition stores.
As for the Arsenal itself, B3-206 is very much a jack of all trades. Construction focuses on striking a balance between durability, maneuverability, and memory capacity with some minor sacrifices to overall firepower. Of particular note are the Arsenal’s arms, the make of which don’t appear in any of our internal records. Construction closely resembles the make of an old, defunct Zen prototype from over twenty years ago but declassified documents suggest that those never made it past the drawing board before the project was canceled; we’re currently doing some more thorough digging to try and figure out where Port may have picked them up but the current theory is that she found a fabricator on the black market who developed the design independently.
As mentioned previously, B3-206 is on recording having apparently complex conversations with Port via audibly broadcast binary noise. We don’t have enough data to synthesize a translation at this time, but the patterns are definite and subtle variations in the machine’s tone do closely mirror subtleties in human speech resulting from shifts in mood. Port herself has been cryptic on the subject but the implications of a sapient AI operating directly under Orbital authority are something the intelligence community is still exploring.
“Arguably the team’s ace pilot, she ties Port and Protoca combined for Arsenal downs. She lags behind in Corrupted AI kills but then, that isn’t her job.”
-MB
Callsign: Lily
Real Name: Liliana [no known surname]
Age: Unknown. Appears to be in her early teens.
Height: 160cm
Rank: A
Handed: Right
Family: Four sisters
Outer Ability: Instantaneous reaction time. She has a true reaction time of 0.00000000 seconds, meaning she is only limited by the inertia of her own body or Arsenal when maneuvering in combat. This has given rise to some truly hair-raising maneuvering from Lily, as she can change her plan of attack at any point for any reason as long as her Arsenal is capable of putting up with the mechanical stress.
Piloting Tendencies: Highly aggressive, arguably moreso than Tachi. Her ability to outthink and out-react even her own teammates mean that Lily is often extending far beyond them before they can even realize it. The good news for her is that the enemy won't realize it either; not until she's put two full magazines from her Silver Raven IIs right into their back, anyway.
“A real firecracker, this one. You wouldn’t guess by how quiet she is off the field.”
-MB
Physical Description: Short, slightly built (though not so much as Port), with the physicality one might expect of a professional dancer. Her hair is sandy brown and kept braided.
Like Port, Lily is highly augmented. Both her legs have been replaced with prosthetics and, like Port, the make and model are unknown. Visually, they resemble Outer-issue dedicated leaping prosthetics in that they taper sharply down to the feet which appear to be a pair of springloaded fins, not dissimilar to Port’s running fins. Her left arm has also been replaced with an arm of a similar make to Port’s, though it’s not identical. It’s detachable, with the shoulder socket doubling as Lily’s primary connection port while embarked in the Rabbit.
Also like Port, she has a pair of animal ears implanted into her head, though in this case they are in addition to her normal ones as opposed to replacing them; they’re a pair of large rabbit ears matching her hair color.
Some miscellaneous notes: Lily is completely mute. She communicates primarily through a form of one-handed sign language, heavily favoring her right hand. Per Port, all pilots in the unit are fluent enough to understand the broad strokes of whatever it is Lily is signing but only Tachi has put in the time to learn the language properly. Her and Lily will sometimes utilize it to have private conversations. In the field she gets by with a limited set of synthesized voice commands that Port has uploaded into a soundboard in her cockpit.
Lily is also quite near-sighted. A rare condition for an Outer, let alone an Arsenal pilot. She can commonly be found sporting a pair of cokebottle glasses when not in her Arsenal.
Arsenal: Red Rabbit
Weapon Compliment:
  • HAW-M05 Silver Raven II x 2
  • SAW-EB10 Prominence
  • SAW-EB10L Prominence
  • SAW-RP95 Devotion
  • HAW-CS09 Cooling System
Arsenal Characteristics: Red Rabbit is what most experienced Arsenal pilots would describe as ‘selfish.’
Even as part of a cohesive unit, Red Rabbit’s role typically involves acting alone, striking forward ahead of the advancing unit or around the opposition’s flank to pick out high priority targets before the enemy can properly react. Where Arachne’s application is as a blunt instrument, Red Rabbit is a dagger sinking into the enemy’s unguarded flank. Hot shots flock to these sorts of machines because it means they get to wrack up the killmarks, though Lily doesn't seem the type to keep score.
About every aspect of Red Rabbit’s handling characteristics have been redlined for the sake of keeping up with its daring pilot. It’s bleeding fast, turns on a dime, and is practically air-weight as far as Arsenals are concerned. This also means it’s exceptionally fragile but, with Lily at the helm, it’s rare for the Rabbit to incur significant battle damage at all.
A minor note: Red Rabbit is the only Arsenal in the unit to use an after-market body kit. This has made visually identifying the make and model essentially impossible. Femto expulsion readings and in-depth handling analyses have been carried out by our boys in the Intelligence office but I can only speculate as to their conclusion, as the particular details haven’t been cleared for my viewing. I hear it made some of the higher ups break into a cold sweat, for whatever that’s worth.
“Cute kid. Not really sure what she’s doing hanging out in a Reclaimer unit, shy as she is.”
-MB
Callsign: Earwax
Real Name: Hope [no known surname]
Age: Unknown. Her age was frozen while quite young; appears to be about nine or ten.
Height: 121cm
Rank: E
Handed: Right
Family: Four sisters
Outer Ability: Currently unknown. Port has hinted that she might have empathic capabilities.
Piloting Tendencies: Earwax is the team’s high altitude reconnaissance and communications expert. She spends every moment of flight time high over the battlefield, coordinating the other pilots and keeping a bird’s eye view of the battle. There is no known record of Earwax engaging in combat directly.
“Don’t call me that! Ugh. I asked Port not to make that my nickname . . .”
-Earwax apparently doesn’t like her callsign.
Physical Description: The spitting image of Protoca, if Protca were seven years younger and lacking mutations. Going theory in the intelligence circuit is that Earwax and Protoca are twins, with Earwax contracting Outer Syndrome at an earlier date than her sister. Sadly, at this stage all we have is conjecture.
Notable visual distinctions between the two, aside from height, mostly come down to personal style. Earwax wears her hair longer and is more likely to wear ornaments such as hair clips or bands. She is also the team’s only member to be commonly found in civilian clothing, with a penchant for ribbons and frilly dresses. All told, Earwax is almost aggressively ‘normal’ in contrast with the rest of her team, wholly lacking her sister’s enhanced musculature as well as any cybernetic augmentation.
Arsenal: Eden
Weapon Compliment: A single HAW-H05L Trickster and all the sensor equipment you can reasonably jam into the torso chassis.
Arsenal Characteristics: Eden is the Dolls’ high altitude recon and overwatch unit.
Just about every spare or redundant part has been pulled off the frame in favor of saving weight and increasing the maximum operational ceiling of the unit well beyond standard combat load parameters. As a result, Eden is capable of operating above an AO almost indefinitely, feeding the team’s other pilots a steady stream of intel while high and away from any real danger.
Frankly, there isn’t much more to say on the subject. Eden is so pared down that it’s barely more than a trainer unit with a bunch of sensors strapped to the hood. Which is good, because Hope has none of the typical neural implants that normally facilitate handling Arsenal movement, nor any secondary method of connection like most of her sisters. She flies almost purely by instruments.
There isn’t even much evidence to suggest she’s ever fired her Trickster, which is meant as a last resort defensive measure in case something gets by the defensive screen formed by the rest of the unit. There have been all of five occasions where her Arsenal was purposefully pursued by enemy contacts and, the three times they got away from Lily, said contacts burned their own engines out while trying to exceed their operational ceiling.
Closing Statement: The Lost Dolls represent a valuable asset in the fight against the Corrupted AI in that they are a reliable and high-uptime asset dedicated to safeguarding vulnerable towns and cities across the Oval Link. That said, they show no interest in working closely with any Consortium; at this time it is my estimation that we would only ever look to the Lost Dolls as a stabilizing measure in the event of a crisis, rather than a resource to exploit proactively.
If you made it this far, thanks for reading over my post. And thanks to u/Muteki_____ for translating DxM's supplementary materials and ultimately giving me the idea for this writeup.
I sure hope the formatting doesn't break.
submitted by o0m-9 to DaemonXMachina [link] [comments]

Invisible Object Culling In Quake Related Engines (REVISED)

Prologue
Despite all these great achievements in video cards development and the sworn assurances of developers about drawing 2 to 3 million polygons on screen without a significant FPS drop, it’s not all that rosy in reality. It depends on methods of rendering, on the number of involved textures and on the complexity and number of involved shaders. So even if all this really does ultimately lead to high performance, it only happens in the demos that developerss themselves kindly offer. In these demos, some "spherical dragons in vacuum" made of a good hundred thousand polygons are drawn very quickly indeed. However, the real ingame situation for some reason never looks like this funny dragon from a demo, and as a result many comrades abandon the development of their "Crysis killer" as soon as they can render a single room with a couple of light sources, because for some reason FPS in this room fluctuate around 40-60 even on their 8800GTS and upon creating second room it drops to a whopping 20. Of course with problems like this, it would be incorrect to say how things aren’t that bad and how the trouble of such developers are purely in their absence of correctly implemented culling, and how it is time for them to read this article. But for those who have already overcome “the first room syndrome" and tried to draw – inferior though, but, anyway - the world, this problem really is relevant.
However, it should be borne in mind that QUAKE, written in ancient times, was designed for levels of a “corridor" kind exclusively; therefore methods of clipping discussed in this article are not applicable to landscapes, such as ones from STALKER or Crysis, since completely different methods work there, whose analysis is beyond the scope of this article. Meanwhile we’ll talk about the classic corridor approach to mapping and the effective clipping of invisible surfaces, as well as clipping of entire objects.

The paper tree of baloon leaves

As you probably know, QUAKE uses BSP, Binary Spacing Partition tree. This is a space indexing algorithm, and BSP itself doesn’t care if the space is open or closed, it doesn’t even care if the map is sealed, it can be anything. BSP implies the division of a three-dimensional object into a certain number of secant planes called "the branches" or "the nodes" and volumetric areas or rooms called "the leaves". The names are confusing as you can see. In QUAKE / QUAKE2 the branches usually contain information about the surfaces that this branch contain, and the leaves are an empty space, not filled with nothing. Although sometimes leaves may contain water for example (in a form of a variable that indicates, specifically, that we’ve got water in this leaf). Also, the leaf contains a pointer to the data of potential visibility (Potentially Visible Set, PVS) and a list of all surfaces that are marked as being visible from this leaf. Actually the approach itself implies that we are able to draw our world however we prefer, either using leaves only or using branches only. This is especially noticeable in different versions of QUAKE: for example, in QUAKE1 in a leaf we just mark our surfaces as visible and then we also sequentially go through all the surfaces visible from a particular branch, assembling chains of surfaces to draw them later. But in QUAKE3, we can accumulate visible surfaces no sooner than we’ll get into the leaf itself.
In QUAKE and QUAKE2, all surfaces must lie on the node, which is why the BSP tree grows rather quickly, but in exchange this makes it possible to trace these surfaces by simply moving around the tree, not wasting time to check each surface separately, which affects the speed of the tracer positively. Because of this, unique surface is linked to each node (the original surface is divided into several if necessary) so in the nodes we always have what is known to be visible beforehand, and therefore we can perform a recursive search on the tree using the BBox pyramid of frustum as a direction of our movement along the BSP tree (SV_RecursiveWorldNode function).
In QUAKE3, the tree was simplified and it tries to avoid geometry cuts as much as possible (a BSP tree is not even obliged to cut geometry, such cuts are but a matter of optimality of such a tree). And surfaces in QUAKE3 do not lie on the node because patches and triangle models lie there instead. But what happens would they be put on the node nevertheless, you can see on the example of "The Edge Of Forever" map that I compiled recently for an experimental version of Xash. Turns out, in places that had a couple thousand visible nodes and leaves in the original, there are almost 170 thousand of them with a new tree. And this is the result after all the preliminary optimizations, otherwise it could have been even more, he-he. Yeah, so... For this reason, the tree in QUAKE3 does not put anything on the node and we certainly do need to get into the leaf, mark visible surfaces in it and add them to the rendering list. On the contrary, in QUAKE / QUAKE2 going deep down to the leaf itself is not necessary.
Invisible polygon cutoff (we are talking about world polys, separate game objects will be discussed a bit later) is based on two methods:
The first method is to use bit-vectors of visibility (so-called PVS - Potential Visible Set). The second method is regular frustum culling which actually got nothing to do with BSP but works just as efficiently, for a certain number of conditions of course. Bottom line: together these two methods provide almost perfect clipping of invisible polygons, drawing a very small visible piece out of the vast world. Let's take a closer look at PVS and how it works.

When FIDO users get drunk

Underlying idea of PVS is to expose the fact that one leaf is visible from another. For BSP alone it’s basically impossible because leaves from completely different branches can be visible at the same time and you will never find a way to identify the pattern for leafs from different branches seeing each other - it simply doesn’t exist. Therefore, the compiler has to puff for us, manually checking the visibility of all leaves from all leaves. Information about visibility in this case is scanty: one Boolean variable with possible values 0 and 1. 0 means that leaf is not visible and 1 means that leaf is visible. It is easy to guess that for each leaf there is a unique set of such Boolean variables the size of the total number of leaves on the map. So a set like this but for all the leaves will take an order of magnitude more space: the number of leaves multiplied by the number of leaves and multiplied by the size of our variable in which we will store information of visibility (0 \ 1).
And the number of leaves, as you can easily guess, is determined by map size map and by the compiler, which upon reaching a certain map size, cease to divide the world into leaves and treat resulting node as a leaf. Leaf size vary for different QUAKE. For example, in QUAKE1 leaves are very small. For example I can tell you that the compiler divide standard boxmap in QUAKE1 into as many as four leaves meanwhile in QUAKE3 similar boxmap takes only one leaf. But we digress.
Let's estimate the size of our future PVS file. Suppose we have an average map and it has a couple thousand leaves. Would we imagine that the information about the leaf visibility is stored in a variable of char type (1 byte) then the size of visdata for this level would be, no more no less, almost 4 megabytes. That is, much AF. Of course an average modern developer would shrug and pack the final result into zip archive but back in 1995 end users had modest machines, their memory was low and therefore visdata was packed in “more different” ways. The first step in optimizing is about storing data not in bytes, but in bits. It is easy to guess that such approach reduce final result as much as 8 times and what's typical AF – does it without any resource-intensive algorithms like Huffman trees. Although in exchange, such approach somewhat worsened code usability and readability. Why am I writing this? Due to many developers’ lack of understanding for conditions in code like this:
if ( pvs [ leafnum >> 3 ] & ( 1 << ( leafnum & 7 ) ) ) { } 
Actually, this condition implement simple, beautiful and elegant access to the desired bit in the array (as one can recall, addressing less than one byte is impossible and you can only work with them via bit operations)

Titans that keep the globe spinning

The visible part of the world is cut off in the same fashion: we find the current leaf where the player is located (in QUAKE this is implemented by the Mod_PointInLeaf function) then we get a pointer to visdata for the current leaf (for our convenience, it is linked directly to the leaf in the form of "compressed_vis" pointer) and then stupidly go through all the leaves and branches of the map and check them for being visible from our leaf (this can be seen in the R_MarkLeaves function). As long as some leaves turn out to be visible from the current leaf we assign them a unique number from "r_visframecount" sequence which increases by one every frame. Thus, we emphasize that this leaf is visible when we build the current frame. In the next frame, "r_framecount" is incremented by one and all the leaves are considered invisible again. As one can understand, this is much more convenient and much faster than revisiting all the leaves at the end of each frame and zeroing their "visible" variable. I drew attention to this feature because this mechanism also bothers some and they don’t understand how it works.
The R_RecursiveWorldNode function “walk” along leaves and branches marked this way. It cuts off obviously invisible leaves and accumulate a list of surfaces from visible ones. Of course the first check is done for the equivalence of r_visframecount and visframe for the node in question. Then the branch undergoes frustum pyramid check and if this check fails then we don’t climb further along this branch. Having stumbled upon a leaf, we mark all its surfaces visible the same way, assigning the current r_framecount value to the visframe variable (in the future this will help us to determine quickly whether a certain surface is visible in the current frame). Then, using a simple function, we determine which side we are from the plane of our branch (each branch has its own plane, literally called “plane” in the code) and, again, for now, we just take all surfaces linked to this branch and add them to the drawing chain (so-called “texturechain”), although nobody can actually stop us from drawing them immediately, right there, (in QUAKE1 source code one can see both options) having previously checked these surfaces for clipping with the frustum pyramid, or at least having made sure that the surface faces us.
In QUAKE, each surface has a special flag SURF_PLANEBACK which help us determine the orientation of the surface. But in QUAKE3 there is no such flag anymore, and clipping of invisible surfaces is not as efficient, sending twice as many surfaces for rendering. However, their total number after performing all the checks is not that great. However, whatever one may say, adding this check to Xash3D raised average FPS almost one and half times in comparison to original Half-Life. This is on the matter whether it is beneficial. But we digress.
So after chaining and drawing visible surfaces, we call R_RecursiveWorldNode again but now - for the second of two root branches of BSP tree. Just in case. Because the visible surfaces, too, may well be there. When the recursion ends, the result will either be a whole rendered world, or chains of visible surfaces at least. This is what can actually be sent for rendering with OpenGL or Direct3D, well, if we did not draw our world right in the R_RecursiveWorldNode function of course. Actually this method with minor upgrades successfully used in all three QUAKEs.

A naked man is in a wardrobe because he's waiting for a tram

One of the upgrades is utilization of the so-called areaportals. This is another optimization method coming straight out of QUAKE2. The point of using areaportals is about game logic being able to turn the visibility of an entire sectors on and off at its discretion. Technically, this is achieved as follows: the world is divided into zones similar to the usual partitioning along the BSP tree, however, there can’t be more than 256 of them (later I will explain why) and they are not connected in any way.
Regular visibility is determined just like in QUAKE; however, by installing a special “func_areaportal” entity we can force the compiler to split an area in two. This mechanism operates on approximately the same principle as the algorithm of searching for holes in the map, so you won’t deceive the compiler by putting func_areaportal in a bare field - the compiler will simply ignore it. Although if you make areaportal the size of the cross-section of this field (to the skybox in all directions) in spite of everything the zones will be divided. We can observe this technique in Half-Life 2 where an attempt to return to old places (with cheats for example) shows us disconnected areaportals and a brief transition through the void from one zone to another. Actually, this mechanism helped Half-Life 2 simulate large spaces successfully and still use BSP level structure (I have already said that BSP, its visibility check algorithm to be precise, is not very suitable for open spaces).
So installed areaportal forcibly breaks one zone into two, and the rest of the zoneization is at the discretion of the compiler, which at the same time makes sure not to exceed 256 zones limit, so their sizes can be completely different. Well, I repeat, it depends on the overall size of the map. Our areaportal is connected to some door dividing these two zones. When the door is closed - it turns areaportal off and the zones are separated from each other. Therefore, if the player is not in the cut off zone, then rendering it is not worth it. In QUAKE, we’d have to do a bunch of checks and it’s possible that we could only cut off a fraction of the number of polygons (after all, the door itself is not an obstacle for either visibility check, or even more so, nor it is for frustum). Compare to case in point: one command is issued - and the whole room is excluded from visibility. “Not bad,” you’d say, “but how would the renderer find out? After all, we performed all our operations on the server and the client does not know anything about it.” And here we go back to the question why there can’t be more than 256 zones.
The point is, information about all of zone visibility is, likewise, packaged in bit flags (like PVS) and transmitted to the client in a network message. Dividing 256 bits by 8 makes 32 bytes, which generally isn’t that much. In addition, the tail of this information can be cut off at ease if it contains zeroes only. Though the payback for such an optimization would appear as an extra byte that will have to be transmitted over the network to indicate the actual size of the message about the visibility of our zones. But, in general, this approach justified.

Light_environment traces enter from the back

Source Engine turned out to have a terrible bug which makes the whole areaportal thing nearly meaningless. Numerous problems arise because of it: water breaks down into segments that pop in, well, you should be familiar with all this by now. Areaportal cuts the geometry unpredictably, like an ordinary secant plane, but its whole point is being predictable! Whereas areaportal brushes in Source Engine have absolutely no priority in splitting the map. It should be like this: first, the tree is cut the regular way. And when no suitable planes left, the final secant plane of areaportal is used. This is the only way to cut the sectors correctly.

Modern problems

The second optimization method, as I said, is increased size of the final leaf akin to QUAKE3. It is believed that a video card would draw a certain amount of polygons much faster than the CPU would check whether they are visible. This come from the very concept of visibility check: if visibility check takes longer than direct rendering, then well, to hell with this check. The controversy of this approach is determined by a wide range of video cards present at the hands of the end users, and it is strongly determined by the surging fashion for laptops and netbooks in which a video card is a very conditional and very weak concept (don’t even consider its claimed Shader Model 3 support). Therefore, for desktop gaming machines it would be more efficient to draw more at a time, but for weak video cards of laptops traditional culling will remain more reliable. Even if it is such a simple culling as I described earlier.

Decompression sickness simulator

Although I should also mention the principles of frustum culling, perhaps they are incomprehensible to some. Cutoff by frustum pyramid is actually pure mathematics without any compiler calculations. From the current direction of the player’s gaze, a clipping pyramid is built (the tip of the pyramid – in case someone can’t understand - is oriented towards the player’s point of view and its base is oriented in the direction of player’s view). The angle between the walls of the pyramid can be sharp or blunt - as you probably guessed already, it depends on the player's FOV. In addition, the player can forcefully pull the far wall of the pyramid closer to himself (yes, this is the notorious “MaxRange” parameter in the “worldspawn” menu of the map editor). Of course, OpenGL also builds a similar pyramid for its internal needs when it takes information from the projection matrix but we’re talking local pyramid now. The finished pyramid consists of 4-6 planes (QUAKE uses only 4 planes and trusts OpenGL to independently cut far and near polygons, but if you write your own renderer and intend to support mirrors and portals you will definitely need all six planes). Well, the frustum test itself is an elementary check for a presence of AA-box (AABB, Axis Aligned Bounding Box) in the frustum pyramid. Or speaking more correctly, this is a check for their intersection. Let me remind you that each branch has its own dimensions (a fragment of secant plane bound by neighboring perpendicular secant planes) which are checked for intersection. But unfortunately the frustum test has one fundamental drawback - it cannot cut what is directly in the player’s view. We can adjust the cutoff distance, we can even make that “ear feint” like they do in QFusion where final zFar value is calculated in each frame before rendering and then taken into account in entity clipping, but after all, whatever they say, the value itself was obtained from PVS-information. Therefore, neither of two methods can replace the other but they just complement each other. This should be remembered.

I gotta lay off the pills I'm taking

It seems that we figured out the rendering of the world and now we are moving on smoothly to cutting off moving objects... which are all the visible objects in the world! Even ones that, at te first glance, stand still and aren’t planning to move anywhere. Cause the player moves! From one point he still sees a certain static object, and from another point, of course, he no longer does. This detail should also be considered.
Actually, at the beginning of this article I already spoke in detail about an algorithm of objects’ visibility check: first we find the visible leaf for the player, then we find the visible leaf for the entity and then we check by visdata whether they see each other. I, too, would like to clarify (if someone suddenly does not understand) how each moving entity is given the number of its current visible leaf, i.e. directly for entity’s its own current position, and the leaves themselves are of course static and always in the same place.

Ostrich is such an OP problem solver

So the method described above has two potential problems:
The first problem is that even if A equals B, then, oddly enough, B is far from being always equal A. In other words, entity A can see entity B, but this does not mean that entity B see entity A, and, no, it’s not about one of them “looking” away. So why is this happening? Most often for two reasons:
The first reason is that one of the entities’ ORIGIN sit tight inside the wall and the Mod_PointInLeaf function for it points to the outer “zero” leaf from which EVERYTHING is visible (haven’t any of you ever flown around the map?). Meanwhile, no leaf inside the map can see outer leaf - these two features actually explain an interesting fact of an entire world geometry becoming visible and on the contrary, all objects disappearing when you fly outside the map. In regular mode, similar problems can occur for objects attached to the wall or recessed into the wall. For example, sometimes the sounds of a pressed button or opening door disappear because its current position went beyond the world borders. This phenomenon is fought by interchanging objects A and B or by obtaining alternative points for the position of an object, but all the same, it’s all not very reliable.

But lawyer said that you don't exist

In addition, as I said, there is another problem. It come from the fact that not every entity fits a single leaf. Only the player is so small that he can always be found in one leaf only (well, in the most extreme case - in two leaves on the border of water and air. This phenomenon is fought with various hacks btw), but some giant hentacle or on the contrary, an elevator made as a door entity, can easily occupy 30-40 leaves at a time. An attempt to check one leaf (for example, one where the center of the model is) will inevitably lead to a deplorable result: as soon as the center of an object will be out of the player’s visibility range, the entire object will disappear completely. The most common case is the notorious func_door used as an elevator. There is one in QUAKE on the E1M1. Observe: it travels halfway and then its ORIGIN is outside the map and therefore it must disappear from the player’s field of view. However, it does not go anywhere, right? Let us see in greater detail how this is done.
The simplest idea that comes to one’s mind: since the object occupies several leaves, we have to save them all somewhere in the structure of an object in the code and check them one by one. If at least one of these leaves is visible, then the whole object is visible (for example, it’s very tip). This is exactly what was implemented in QUAKE: a static array for 16 leaves and a simple recursive function SV_FindTouchedLeafs that looks for all the leaves in range hardcoded in "pev->absmins" and "pev->absmax" variables (pev i.e. a Pointer to EntVars_t table). absmins and absmax are recalculated each time SV_LinkEdict (or its more specific case of UTIL_SetOrigin) is called. Hence the quite logical conclusion that a simple change of ORIGIN without recalculating its visible leaf will take the object out of visibility sooner or later even if, surprisingly enough, it’s right in front of the player and the player should technically still be able to see it. Inb4 why one have to call UTIL_SetOrigin and wouldn’t it be easier to just assign new value to the "pev->origin" vector without calling this function. It wouldn’t.
With this method we can solve both former problems perfectly: we can fight the loss of visibility if the object's ORIGIN went beyond the world borders and level the difference of visibility for A->B versus visibility for B->A.

A secret life of monster_tripmine

Actually we’ve yet to encounter another problem, but it does not occur immediately. Remember, we’ve got an array of 16 leaves. But what if it won’t be enough? Thank God there are no beams in QUAKE and no very long elevators made as func_door either. For this exact reason. Because when the array is filled to capacity, the SV_FindTouchedLeafs function just stop and we can only hope that there won’t be that many cases when an object disappear right before our eyes. But in the original QUAKE, such cases may well be. In Half-Life, the situation is even worse - as you can remember there are rays that can reach for half the map, tripmine rays for example. In this case, a situation may occur when we see just the very tip of the ray. For most of these rays, 16 leaves are clearly not enough. Valve tried to remedy the situation by increasing the array to 48 leaves. That helped. On early maps. If you remember, at the very beginning of the game when the player has already got off the trailer, he enters that epic elevator that takes him down. The elevator is made as a door entity and it occupies 48 leaves exactly. Apparently, the final expansion of the array was based after its dimensions. Then the programmers realized that this isn’t really a solution, because no matter how much one would expand the array, it can still be lacking for something. So then they screwed up an alternative method for visibility check: a head branch (headnode) check. In short, this is still the same SV_FindTouchedLeafs but now it is called directly from the place of visibility check and with a subsequent transfer of visdata in there. In general, it is not used very often because it is slower than checking pre-accumulated leaves, that is, it is intended just for such non-standard cases like this one.
Well, and since, I hope, general picture of the clipping mechanism already beginning to take shape in your mind, I will finish the article in just a few words.
On the server, all objects that have already passed the visibility check are added to the network message containing information about visible objects. Thus, on the client, the list of visible entities is already cut off by PVS and we do not have to do this again and therefore a simple frustum check is enough. You ask, "why did we have to cut off invisible objects on the server when we could do this later when we are on the client already?" I reply: yes, we could, but now the objects cut off on the server didn’t get into the network message and saved us some traffic. And since the player still does not see them, what is the point of transferring them to the client just to check them for visibility after? This is a kind of double optimizing :)
© Uncle Mike 2012
submitted by crystallize1 to hammer [link] [comments]

Comparison Between Zxing and Huawei HMS Scan Kit

Comparison Between Zxing and Huawei HMS Scan Kit
About This Document
Zxing is a common third-party open-source SDK. However, Zxing has the following defect: It only implements basic operations of scanning the QR code and does not support more complex scanning environments such as strong light, bending, and deformation. Currently, the mainstream practice is to optimize the source code based on Zxing. However, the optimization effect is still not ideal, and many people will spend a lot of time on the optimization.
The Huawei Scan Kit service provides convenient bar code and QR code scanning, parsing, and generation capabilities, helping developers quickly build the QR code scanning function in apps. Thanks to Huawei's long-term accumulation in the computer vision field, Huawei's unified barcode scanning service (Scan Kit) can detect and automatically amplify long-distance or small-sized codes, and optimize the identification of common complex barcode scanning scenarios (such as reflection, dark light, smudge, blur, and cylinder). Improves the QR code scanning success rate and user experience.
Comparison Between Zxing and Huawei HMS Scan Kit
Now, let's compare the capabilities of Zxing and Huawei HMS Scan Kit from the following aspects:
Ø Remote code scanning
Ø Scan QR codes in complex scenarios
Ø Scan the barcode at any angle.
Ø multicode recognition
Ø Integration difficulty
Ø SDK Package Size
Ø Cross-platform support
Comparison of long-distance code scanning
The success of long-distance QR code scanning depends on the QR code specifications (the more information is, the more difficult it is to identify) and the distance between the camera and the QR code. Due to the lack of automatic zoom-in optimization for Zxing, it is difficult to recognize the code when the code is less than 1/5 of the screen. The HMS Scan Kit has a pre-detection function, which can automatically amplify the QR code at a long distance even if the QR code cannot be identified by naked eyes.
https://i.redd.it/brkqcwe5b8051.gif
https://i.redd.it/b6n96ze5b8051.gif

Comparison Conclusion: Scan Kit Wins

Comparison by Scanning Codes in Complex Scenarios

https://preview.redd.it/yuiy0ow9b8051.png?width=554&format=png&auto=webp&s=eacfdb6f89c51b799da7b2b80ee3290611be011c
In complex scenarios, code scanning can be classified into reflection, dark light, smudge, blur, and cylinder scanning. In complex scenarios, the recognition effect of Zxing is poor. Complex scenarios are as follows:
These scenarios are common in daily life. For example, outdoor scenarios such as reflection, dark light, and smudge may occur. When a QR code is attached to a product, curved surfaces or even edges and corners may occur. When you walk and scan the QR code, you will also encounter the challenge of motion blur. The following figure shows the test comparison in these scenarios.
https://i.redd.it/ukwt9ndrb8051.gif
https://i.redd.it/xpqctfpbb8051.gif
https://i.redd.it/avdiurpbb8051.gif
https://i.redd.it/pxr9ne7sb8051.gif

Comparison Conclusion: Scan Kit Wins

Scan the QR code at any angle for comparison.

Currently, Zxing supports only forward scanning, that is, Zxing cannot identify the code with a certain angle. Scan Kit can easily achieve this. When the code deflection is within 10 degrees, Zxing can still have high recognition accuracy. However, when the code deflection exceeds 10 degrees, the recognition accuracy of Zxing decreases sharply. However, Scan Kit is not affected by the clip angle, and the recognition accuracy does not decrease.

https://i.redd.it/2r8n3l4vb8051.gif
https://i.redd.it/fpai9j4vb8051.gif

Comparison Conclusion: Scan Kit Wins

Multi-code identification comparison

Multi-code identification helps identify multiple codes at a time in scenarios such as express delivery and supermarket checkout, improving service processing efficiency. In multi-code identification mode, the Scan Kit can identify five types of codes on the screen at the same time and return the corresponding types and values of all codes at a time.

https://i.redd.it/cg4124ixb8051.gif
https://i.redd.it/75c1i1ixb8051.gif

Comparison Conclusion: Scan Kit Wins

SDK Package Size Comparison

The size of the Zxing package is about 500 KB, which is a satisfactory size. Scan Kit has two modes: Lite and Pro. In Lite mode, the package size is 700 KB. In Pro mode, the package size is 3.3 MB. If you use the table, you will have a clearer understanding.
(图12)
https://preview.redd.it/bh0qcdd1c8051.png?width=554&format=png&auto=webp&s=e97d2dc6ca54b1974f3ba7aa0ac0b5ac9d85d96c
These two modes are slightly different on non-Huawei phones. Therefore, if you are not sensitive to the package size on non-Huawei phones, try to select the Pro version. I have also performed tests on non-Huawei Lite versions, but the test results are slightly lower than those of the Pro version.

Conclusion: Zxing has advantages.

Platform Support Comparison

Zxing and Scan Kit support both iOS and Android platforms.

Conclusion: The score is even.

Comparison of Integration Modes

The integration mode of Zxing is relatively simple. It can be quickly integrated with SDK by only a few lines of code. However, in the actual product development process, the development of the product interface and auxiliary functions is also involved. However, Zxing does not provide the corresponding quick integration mode. The integration guide is available on the live network for a long time. Therefore, the development difficulty can be reduced. In summary, the first point in Zxing integration is that no default interface is available. Second, you need to achieve their own automatic amplification, flash and other functions.
Scan Kit provides multiple access modes, including single-code access, multi-code access, and customized access. The differences between the two integration modes are as follows:
The default layout is provided for the single-code access of Scan Kit cameras. In addition, functions such as automatic amplification and flash are preset. Developers do not need to manually configure these functions. The code integration volume is 5 lines, which is especially suitable for scenarios where quick integration and quick replacement of the QR code scanning function are required.
The customized access of Scan Kit allows users to design the layout by themselves. Only the basic functions and blank layout of scanning and decoding are provided. Users can design the layout based on their app style. However, they need to implement functions such as automatic zoom and flash. The corresponding technical documents can be found on the optical network of Huawei developers. However, compared with the single-code access, this access mode is more complicated.
The integration mode is as follows:

Zxing integration process

  1. Create a project and import the Zxing module.
  2. Add rights and dynamically apply for rights.
  3. Copy the onActivity method.
  4. Invoking the Decoding Function
  5. Compile the UI and ensure that the UI is correctly displayed.

Scan Kit integration process

The default view mode provides two functions: camera QR code scanning and image-based QR code scanning. In this mode, developers do not need to develop the UI for QR code scanning.
The process is almost the same as that of Zxing.
  1. Create a project and import the Scan Kit module.
  2. Add permissions and dynamically apply for permissions.
  3. Copy the onActivity method.
  4. Invoke the decoding function.
The following uses the Default View Mode as an example to describe the integration procedure.
  1. Create a project and add online dependency in the app/build.gradle file.
implementation'com.huawei.hms:scan:{version}'
  1. Declare the QR code scanning page in the AndroidManifest.xml file of the calling module.
    Reading the file permission Features
  2. Create QR code scanning options based on the site requirements.
    HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE, HmsScan.DATAMATRIX_SCAN_TYPE).create();
  3. Invoke the static method startScan of ScanUtil to start the Default View QR code scanning page.
    ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, options);
The comparison shows that Scan Kit and Zxing have the same dependency and permission application methods. However, Scan Kit can use the UI by default (with built-in flash, automatic focal length, and QR code import). Zxing needs to implement the UI by itself, then, manually complete these functions.

Comparison Conclusion: Scan Kit Wins

Technical Analysis

Why is Scankit better than Zxing? The following describes the technical analysis of Zxing and Scan Kit from the perspective of technical implementation principles.

Zxing Technology Analysis

Zxing uses the traditional recognition algorithm. It can detect codes by analyzing the codes from a certain angle. This algorithm allows only a certain degree of deformation, for example, the square code can be slightly skewed by less than 10 degrees, his pixels still fit the pattern, but if they're deformed too much or angularly too large, they can't detect the position of the code. The detection process of ZXing is classified into two types: one-dimensional code detection and two-dimensional code serial detection.
In one-dimensional code detection, Zxing uses a progressive scanning mechanism for feature recognition. Because one-dimensional code features are black-and-white crossover, when the black-and-white sequence with equal spacing of the class is identified, it is considered as a potential code. The length of the potential code is determined by finding the start bit and the end bit. Then, the sequence is sent to different one-dimensional code decoding modules for serial decoding, which takes a long time. When serial decoding fails, a failure message is displayed, and the failure time is also long. In addition, once the one-dimensional code has a wrinkle, rotation, or deformation, a sequence that meets a specific requirement cannot be found through progressive scanning, that is, the one-dimensional code cannot be detected in a complex condition.

https://preview.redd.it/tkedxu4cc8051.png?width=509&format=png&auto=webp&s=b41023e2b427cab21cc35126939966954c2b9150
In two-dimensional code detection, Zxing uses different detection algorithms for different two-dimensional codes. For example, the most common QR code has three location detection patterns. Therefore, Zxing still uses the interlaced scanning mode to find the features of the location detection pattern. Once the features whose black-and-white ratio is 1:1:3:1:1 are found, that is, a central point of the position detection graph is used as a reference point to perform affine transformation, so that the corrected picture is sent to the QR decoding module. The positioning point of the QR code has a function of correcting rotation, and therefore can be well adapted to a rotation situation. However, Zxing is completely unable to process cases such as partial blocking, deformation, and contaminating and reflecting of the positioning point. As shown in the figure, the detection position detection graph is the most important step for detecting whether the two-dimensional code is successfully detected. Once a location fails to be detected, the two-dimensional code cannot be detected.

https://preview.redd.it/2c2mmpvcc8051.png?width=554&format=png&auto=webp&s=e94dcc14f2b2933eb7a45d711305a9045e01b353

Technical Analysis of Huawei HMS Scan Kit

Scan Kit uses the deep learning algorithm, which is spatially invariant. By training detectors of corresponding code types, Scan Kit can quickly find all required codes.
Actual process:
https://preview.redd.it/6ust5vdec8051.png?width=1280&format=png&auto=webp&s=e8dc53159331b1fbe0cb65ed2a0102f54bc295f4
The bar code detection module and angle prediction module use the deep learning model.
Barcode detection: The serial process of separate detection of two-dimensional codes of one-dimensional codes in Zxing is no longer restricted. A trained detector can be used to directly obtain the code pattern and corresponding position. The bar code can be accurately sent to the corresponding decoding module through one detection, and a separate serial decoding process is no longer required. Because decoding includes a series of operations with high overheads such as skipping scanning, and information of different codes cannot be shared, this operation greatly reduces an end-to-end delay, and avoids a lot of repeated and unnecessary calculation overheads.
Angle prediction: The corresponding three-bit angle of the code is returned for radiographic transformation. In practice, the core of barcode detection is to accurately obtain boundary points. After being converted into binary images, the images are sent to the decoding module, but the decoding effect is still poor. This is also the most important step to solve the bar code identification in complex scenarios.
To sum up, the deep learning changes the serial detection and decoding process of the barcode of Zxing to a parallel process. In addition, the three-digit angle value of the barcode is returned. After the affine change, the aligned standard front barcode is obtained. This greatly improves the barcode detection success rate and greatly reduces the latency.

More information

Demos, sample codes, and development documents are available on the Huawei developer official website.
Demo and sample code:
https://developer.huawei.com/consumeen/doc/development/HMS-Examples/scan-sample-code4
Development guide:
https://developer.huawei.com/consumeen/doc/development/HMS-Guides/scan-introduction-4
API reference:
https://developer.huawei.com/consumeen/doc/development/HMS-References/scan-apioverview

To be supplemented

Based on Huawei machine learning service, we will share a series of practical experience later. You can continue to pay attention to it
submitted by wushuyong to HMSCore [link] [comments]

Best way to get QUALITY, structured and guided hands on experience?

Hey guys
I started learning IT from the ground up around 2 months and a half ago and so far I feel like I've learned quite a lot in a variety of areas and I feel confident I thoroughly understand the fundamentals in each area I've been studying in.
I'm currently studying for the AWS CCP exam and also completing the google IT support professional certificate [which I'm almost done with now].
After I complete these I really want to get some more hands on experience be whatever field it may be in, all that matters is that it's a streamlined/quality experienced that has labs and stuff that isn't too guided and still let's you work out issues on your own [for example one course I took for SQL and MySQL gave scenarios of a company wanting to implement a certain type of database and I drew up the schema and compared it to the actual version of the schema which was pretty nice].
I'm also currently enrolled in nand to tetris which seemed to be right up my alley but I'm waiting to sit my AWS exam first before beginning it, I'll most likely start nand to tetris directly after but I'm still looking for other quality project based and hands on courses to take after.
I basically have another 7 months until I start my Bachelor of IT so regardless of how challenging something is as long as it's a quality course that's easy on the eyes I have a ton of time to really get stuck in and learn whatever I can.

[also disclaimer I'm not really interested in just going off and following guided youtube videos, I did this was python and I felt I wasn't really learning and it felt too guided, I'm willing to pay as well so even if something isn't free as long as it really helps you to actually learn instead of heavily guided or heavily theory stuff I'm down for it.

Here's some of my current areas that I've studied in:

Completed IT study areas:

Windows 7,8,10 [Complete front-end understanding of the OS [cmd, storage systems, navigation, issue troubleshooting, maintenance such as backing up drives/specific files, optimizing system speed by defragmenting, cleaning drives, deleting hidden files, installing drivers, BIOS basics, knowledge of common software/hardware issues and common causes, virtual box experience]

Linux [storage systems, bash command line, history and basic navigation, common troubleshooting commands and ability to install any linux distro on any windows based system]

Kali Linux [basic web scanning and haunting with SSH]

Java [basics, i.e 4 hour lecture]

Python [basics and use of Pygame/turle, experience with discordbot]

C++ [basics, i.e 4 hour lecture]

HTML [basics, ability to create a barebones site which includes images,videos, paragraphs and multiple pages + hosted online]

SQL [basics, ability to use basic queries to create, modify and manage database schemas inside
MySQL. Ability to hand-write or digitally design ER diagrams to visualize a database schema]

Business Analyst Fundamentals [SDLC knowledge, ability to write business cases, visual modeling techniques, requirement elicitation, analysis, specification and approval]

Google IT Support Professional Certificate [Technical Support Fundamentals]

Networking [know the fundamentals and what to look for when troubleshooting common network issues and also have a pretty barebones understanding of all the terms, protocols, like I could probably tell you what each of them do and also some common ports but when it comes to to the very nitty gritty specifics of each one I'll need some more learning lol]

Advanced PC hardware knowledge [Knowledge on all the basics such as [RAM, GPU, CPU, Motherboard, SSD & HDD's, PSU etc] and also more advanced areas such as registries, how compilers work, logic gates and in-depth knowledge of binary and more]

AWS [completed a 12 hour udemy course for the CCP exam which consisted of a ton of optional labs [which I completed using my free-tier account] and also a lot of theory/practise exams for the applications common in the CCP exam, I feel like I have a good understanding of the cloud as a whole and right now in terms of the basics of setting up users, deploying instances, making sure certain ports are open and all that I feel confident I could do that on my own [so basically the very basics].

Currently studying:
AWS CCP Certificate Google IT Support Professional Certificate \[basically almost finished\] nand to tetris \[enrolled but waiting to sit my AWS exam first before beginning\] 
submitted by Cneqfilms to ITCareerQuestions [link] [comments]

Analysis: Why Kayle is Failing | The legacy of the 9.17 mini-rework

Four months have passed, now I have data to back up what I was saying before.
My arguments then though are still my arguments now. Though, this time I hope to be able to make my points much more clearly understood but I'm afraid it appears I'm unable to deviate from my verbose style of posting.
So what's wrong with Kayle? It's pretty simple. There's nothing about her kit or play-style that defines Kayle as Kayle.
I said it months ago and I'll say it again. The direction they took with Kayle when they capitulated to the people complaining about not getting ranged earlier on 9.17 was straddling the fence. This was a grave mistake. Riot should have invested the time to either make her kit fun when melee and embraced the evolving form of Kayle (my personal preference) or they should have fully embraced the ranged aspect of kit, making her fully ranged at level one and balancing her appropriately around that.
Riot August has said it himself, after the 9.17 changes had settled and her play-rate started to rise. As it turns out, people like to be able to play the game for the first ten minutes of the game...Shocking... Well guess what that hasn't changed? We still want to play the game. We want to be able to farm/trade comparably to at least the weakest early game solo-lane-late-game champions, or barring that to be able to have some interaction with our champion that is completely unique to that champion.
So since Kayle is primarily regarded as a top laner, let's start with the basics.
As top-laners, we need to, in some form, fulfill the role that we have chosen with our chosen champion. We approach this with the expectation that any given top lane champion will excel in some fashion in at least one aspect integral to the position itself. Those criteria in their most basic forms being as follows:
To work in top lane, you don't have to have the capacity to complete all of those functions but, at the very least, you should be able to do one. Barring that, you should bring something extraordinarily unique to the table.
An example of specialized to me would be Quinn, whose kit includes mobility so excessive that she is exempt from taking Teleport to lane and can use combative summoner spells to dominate the laning phase and later use her hyper-mobility to pressure side lanes. But this comes at the expense that if you do not perform well early… well sucks to be you (and your team) come mid/late game.
From what I can tell, Kayle is supposed to fit into this "specialized" section. The most important thing here is that, when you pick a champion who does not fit the normal criteria of the role, they excel MASSIVELY in some aspect to make up for it.
To support my claim that Kayle is intended to fit this group, the 9.5 version of the Kayle rework at least had that uniqueness. We couldn't do anything early whatsoever BUT in exchange for that Kayle's builds were completely fluid. You could build either AD or AP or both. Unlike any other damage focused champion, you were not required to purchase an armor penetration item to maintain your damage output, which further enhanced the versatility of her kit and also allowed her to scale into the game stronger than any other champion in the game.
The big issue people seemed to have with the 9.5 version was that it took until between 15 and 17 minutes for Kayle to be able to play the game and then they’d play catch-up for 2-3 minutes then actually get to have an impact.... That was hardly any fun.
The advantages with the 9.17 Kayle changes are that you now are capable of farming and light harassment/trades at roughly 7 minutes. But the issue still persists: you still don't really get to play the game until you get 2 items… or roughly 15-17 minutes. These changes were paid at the expense of all the aspects of Kayle that made her new kit unique and cool. What is worse is that the aspects of the champion that made her innately function as a unique late game top-laner were removed or significantly nerfed to appeal to a vocal group of bandwagoners. The second they got what they wanted, these same people… surprise, surprise... ditched left us one tricks and enthusiasts with a champion that is a “okay” at everything while the aspects which made her excel in a fashion unique to Kayle, necessary for specialists to be fun to play, were abandoned.
The worst part is that changes performed to her kit changed nothing from the outcome perspective. Her power spikes still align with the same minutes of the game, her win-rate has settled into roughly the same percentile (within 1%) each time she has been altered, once balanced, but she just feels less satisfying to play.
"Well... who cares? Why is that an issue? Why can't you just suck it up or play another champion Justifier? Kayle is at a 51.33% win-rate she's perfectly balanced. Fun is subjective. Just because you don't have fun with her any more doesn't mean other people don't."
Well that's just the thing. It's not just me who holds this opinion. Need proof?
Here's some data of Kayle's in game presence from u.gg a few weeks after the 9.17 changes, taken 9/27/2019 Plenty of time for people to get used to her being ranged at 6. She's at a 52.46% win-rate, 4.6% pick-rate, 1.6% ban-rate.
Those numbers are roughly equal to her game presence statistics before her changes from 9.16 going to 9.17. Here’s Kayle now that she’s been balanced properly after her ranged at 6 changes, 51.33% win-rate 2.7% play-rate, 0.9% ban-rate.
FEWER people enjoy playing Kayle with her ranged at 6 form than when they did with her 9.5-9.16 form, if both iterations are balanced and her win-rate remains stable throughout. We can conclude in my opinion, since her win-rate remains stable throughout all of these changes and nerfs, that it's not because she's "less op" but because people think she's not fun to play.
The next numbers I'd like to look at were taken at her "peak" when she was being recognized as busted due to her abusive playstyle when paired with Kleptomancy and various successful appearances on the Worlds Stage. It took an extraordinary excess of time for her numbers to climb towards their pinnacle having reached a ≈+30% combined play/ban rate nearly whole three whole months after the 9.17 changes having been recognized as busted and picked up and abused by various higher elo players. She still maintained her disgusting presence through nerfs until the season rolled over Craptomancy was finally removed from the game. Why? Because even though Kayle was busted she didn't feel fun to play. The feelgood rewards for playing Kayle didn't match the results of playing Kayle even when she was absolutely busted.
Now here’s the kicker: literally the day that the aspect of her kit that was "abusable" was addressed (finally), what happened to her game presence?
It halved.
At the end of Patch 9.22 Kayle had an 52.76% win-rate, 8.2% pick-rate and a 14.4% ban-rate for a combined 22.6% game presence, the day after? Patch 9.23, preseason patch, Klepomancy removal. A 51.4% win-rate, 4.8% pick-rate, 6.9% ban-rate for a combined 11.7% game presence which further deteriorated to the present.
Patch 10.1, 51.33% win-rate, 2.7% pick-rate and 0.9% ban-rate for a whopping 3.6% presence
Again, her win-rate stayed within a single percent of the win-rate she had before Kleptomancy and that percentile change could more easily be attributed to the change in the games meta on the turn of the season than on Kayle's reliance on Kleptomancy.
We can conclude from this that these people were NOT playing Kayle because she was busted, they were NOT playing Kayle to get free elo. They were playing her because they could finally tolerate her playstyle enough via kleptomancy proxy to validate trading over +50% of their game to have an impact on the last portion of it.
The second that proxy was removed, despite her win-rate maintaining its level even through nerfs, her game presence tanked.
Another interesting observation to point out is that when you look at her play-rates and ban-rates, her ban-rates when she is fun to play with this version of Kayle are always higher than her play-rates.
From this we can determine that when Kayle is even slightly fun to play with this form of a kit for the player piloting Kayle, she's EXTREMELY unfun to play against. Contrast this to 9.5-16 versions of Kayle where I've heard many people describe her kit as being "surprisingly balanced and fun to play against." In my estimation, this is caused because her kit is designed to NOT interact with your opponent. A Kayle playing at their best minimizes interaction with the opposing player. This is frustrating and unfun for Kayle players when she's balanced, frustrating and unfun for her opponents if she even has a perceived (not real) advantage (say kleptomancy stacks)
So here’s an issue:
As it stands, essentially what we have now is Kayle as she was before her initial (9.5) rework, stripped completely of every single thing that made Kayle Kayle. Every point of the game feels worse even when it's better than her pre-9.5 version in a state where when she's actually balanced she's unfun to play as and if even perceived as overtuned extremely unfun to play against
I think because of this it’s fair to ask once again: Were the stated design goals of her rework met?
Stated goals for Kayle's rework:
  1. Make Kayle more fun
  2. Make her auto attacks feel really good
  3. Variance in her pattern
  4. High moments outside of her ultimate
  5. Deliver on the “ranged to melee thing”
1: I have already addressed #1, when balanced no one appears to want to play her and when perceived as strong no one wants to play against her. So, the answer is no.
2: Kayle’s auto attacks excluding her E reset do not feel “really good” or “satisfying” when you smack someone it just feels like you’re hitting them with a wet noodle. This is particularly annoying when every single spell that you cast interrupts your auto attacks and while her E feels good it doesn't feel so good as to make up for the disruptive nature of her other abilities in the flow of her kit. So, #2 is No.
3: Variance in her play pattern.
I’m not sure exactly what this means but I presume this means she is capable of a fluid build style which can adapt to what the opponent is doing in the game by building uniquely. She had this with her 9.5-16 versions but her build style now is completely binary. If you deviate from the standard Gunblade > Nashors > dcap/rageblade, you’ll usually regret it. So, no.
4: High moments outside of her ultimate:
I think that again Kayle had this on her 9.5-16 versions through her late game power spike. Her true damage waves were extremely satisfying to experience when you hit that point in the game. However beyond that I cannot think of (m)any high moments that exclude her ultimate. So, no.
5: Deliver on the “ranged to melee thing”:
Maybe?
I mean the thing with this is that it feels like this rework goal was doggedly pursued at the expense of the other four. Riot chose to preserve this stated goal for some reason at the cost of the other goals. In exchange for “making her auto attacks feel really good” (via her true damage, and early wave attacks/AoE spells[meaning the ability to quickly push lanes early in the game]), we got earlier range.
The issue with this is that Range is regarded as so powerful as to require that she also lose her pattern variance (build fluidity) and extreme late game power spike in exchange for these changes… and the consequence of the loss of those four goals to meet the one is that… well she’s simply not fun. But the worst part is that I think this was a game design that should have never been a goal in the first place... Kayle was never a "melee champion who became ranged" Kayle was a ranged champion, whose attacks were processed as melee. This was an aspect unique to Kayle and demonstrated in her old interaction with Yauso's windwall.
Kayle was a Ranged&Melee champion not a Rangedmelee champion.
But even if you put all of that aside, changing it to range → melee was fine. What is not fine is that I feel most of this last stated goal was ceded when they made Kayle ranged at 6. By removing the struggle of the transition by giving it to players earlier you remove the last vestige of the stated goals of the initial Kayle rework.
Let me ask you this: when someone asks you what exactly makes Kayle Kayle, what do you respond with?
(pre-9.5 Kayle)
To me, what defined Kayle before her rework was "not a single champion in the top lane can match your pushing power early game, late game you were one of the top tier splitters/duelists who can build any item in the game."
Hell, her pushing power was so strong that it was actually her weakness. You couldn't control waves if you even last-hit or traded.
So her identity:
Shover. Versatility. Scaling. Split pusheduelist. Melee&ranged
(9.5-9.16 Kayle)
After her rework, (9.5) it was "not a single champion in the game can outscale you. Not a one. Better beat Kayle before she gets level 3 evolution." or "wait for Kayle to hit 16 guys we've got this!". This unique trait appeared to stem from her true damage wave abilities -- or in short she was unique because of her “purifying waves” which in turn still unlocked her previous identity of being able to build any item in the game. She could run either AP or AD each carrying its own perks and downsides
So her identity:
Versatility. Scaling. SplitpusheTeamfigher. Meleeranged
9.17 Kayle and onward iterations
She's not technically terrible at anything but Laning phase...I guess... But she's good at nothing as well. There is no longer anything about her that stands out in any way whatsoever. She is terrible early and okayish mid game okay late. She’s a decent source of dps and a decent laner when the game starts for her... But that's it. There’s little discernible feeling of payout for the terrible early game you’re still subject to. Sure, her win-rate hits top 3 if the game goes on for 35 minutes. She scales into the game like a monster… but she sure as hell doesn’t feel like it, and it means little to nothing in a meta where the average game time is sub 30 minutes even for unranked players. Kayle’s “unique trait” as a Champion of League of Legends now is “I do a tiny bit of everything at the expense that you will have absolutely no agency and be absolutely miserable for about 10-15 minutes of your game” or in other terms,
So her identity:
Scaling. early grouper.
Jack of all trades and master of none?
She still scales like a monster of course, so I guess you can still say that's part of her unique traits now. But there’s little to no build fluidity (variance), few if any high moments, no great feeling auto attacks.
There appeared to be one single saving grace for this iteration of Kayle’s kit for the general population though... Kleptomancy. Kleptomancy meant so much in my opinion, not because it was simply broken on her (it was certainly perceived as such), but because Kleptomancy was only integral for Kayle’s design to click with the average League player in my estimation because it gave the player the feeling that they were interacting with their opponent during the laning phase enough that people didn't get overwhelmed by the dismal feelings inherently ingrained into her kit
Now that the placebo of interaction of doing something for the first 15 minutes of the game is gone. People have apparently decided, voted if you will, with their time and choices that the design Kayle bring to the table is simply not palatable for the general player.
As a consequence, we can say with some degree of certainty that even if this kind of champion design is perceived as bat-shit busted...People don't touch it. Something HAS to feel satisfying for a significant portion of the game even if it does literally nothing in the grand scheme for players to pick her up.
Those of us left either play because it's what we've always done, or for the "angel" theme which is one of the few aspects of Kayle that remains intact and unique at this point...
This is one of the most iconic Champions in League of Legends. She’s one of the original 17 for crying out loud and it feels terrible to be in a game with her.
It wouldn’t be all that difficult to make her have an extremely satisfying kit even as is.
One example of relatively simple changes that could bring more life to her kit suggested to me in Kayle Mains Discord was changing her E: when you “cast” it, it unlocks the next tier of her ascension for 5-6 seconds. So levels 1-5, you have access to range for 5-6 seconds and range unlocking permanently at level 6; levels 6-10, you have access to your waves for 5-6 seconds and Level 11 your gain full access you your waves when your passive is fully stacked; levels 11-16, your waves could have a % chance to crit for say 25% for 5-6 seconds and level 16 your crit waves chance is doubled (25% → 50%) and when your E is active if your waves crt they deal true damage.
An integration of a small part of her old kit which we know works into the new or the waves AoE is widened/enhanced, remove the true damage and keep the rest if it's too much, or any other plethora of options.
Imagine how satisfying anything like that would be compared to currently when I press E. A high cost high cd low consequence spell, which I can throw one spell at either a minion and get a last hit, or I can throw it at the opponent and deal 50 dmg and then I'm back to the waiting game for my more favorable forms every 8 seconds.
Now I'm not suggesting Riot reverts Kayle's kit, or implements any change suggested above. (That would be super cool but let's be real it's unlikely to happen)
This post's purpose is to serve as a potential source of information for Riot addressing the opinions of people most passionate, regarding the direction pursued to make Kayle a great champion for everyone.
And to cause Riot to take a good hard look at Kayle and make sure that what they're doing and have done is matching their expectations... because it's not matching ours.
TLDR
So why is Kayle failing?
She's failing because the features that made her unique and quirky as a champion were stripped away from her in an attempt to appeal to a larger audience by making her easier to play; without something unique, potentially difficult, cool and quirky ingrained into their kits, champions with extreme trade-offs make people lose interest very quickly.
Addition: Upon suggestion I also posted this on the main League Reddit Thread, Here's a link to that if you want to check out how conversation is going there.
submitted by Justifierna to Kaylemains [link] [comments]

me_irlgbt survey results! really long post! this took me 6 days! exclamation mark!

Long post. REALLY long post. buckle in.

TLDR at the end

First off, thanks to everybody who responded! There were 467 responses in total, which is amazing. I know filling out surveys online can be boring, so I really appreciate you all indulging me for this.
A few notes before we get started!
Now. Let's get started with the results.

Total survey responses: 467

DEMOGRAPHICS SECTION

AGE: 460 responses

https://imgur.com/thGOvqi
As we can see here, the majority of respondents are between the ages of 13-24, with most being 18-24. No surprise, this pretty much tracks with the general demographics of reddit. We have 3 tiny kiddos who responded, bless them. One person over 60, heyhowareyougorge. It’s interesting to cross-reference the age demographics with the type of posts we see here. I’m in my early 20s, which in gay years is like being in your early 40s, and i’ve been out for years. I see a lot of closet or coming out type posts, which I personally don’t relate to as much any more, but that totally tracks with the amount of youngins we have here. If you’re looking to karma whore, here’s the data you need.

COUNTRY: 457 responses

https://imgur.com/xwAb3g8
So, clearly very US-heavy. Again, not a surprise here for a US-based website. I would like to confess to purposefully splitting up the UK demographics out of sheer curiosity too; I’m Scottish and wanted to know how many fellow Scots I had. Happenin troops.
I also wanted to use this to see how many people were from countries with less legal protections for being LGBT. The countries in here I’d particularly like to highlight are:
Dominica, where it is illegal to be gay. Penalties include a 10 year prison sentence, or “incarceration in a psychiatric institution.” Absolutely no legal protections for any LGBT people. That’s pretty fucked.
India has no legally recognised same sex unions, no same sex marriage, no adoption, but all of these things have been proposed. some anti-discrimination laws. They have a third gender option, called hijra. Trans people do have some legal recognition of gender, which is nice. As far as I’m aware, this situation is pretty unique to India.
Qatar, where same-sex sexual activity is punished by fines, imprisonment, or the death penalty. Obviously no legal protections.
Russia, where same-sex sexual activity is technically legal, but in Chechnya, it is heavily punished. Gay people are abducted and sent to concentration camps in this region. Russia has done little to prevent this.
Singapore, where there is technically punishment of up to 2 years in prison for male same-sex sexual activity, but this is apparently not enforced any more. F/F is legal though.
Malaysia, where it remains illegal to be gay. Punishments can be up to 20 years in prison, fines, or whippings, just for engaging in same-sex sexual activity. However, a 2016 court ruling did recognise gender changes as a fundamental constitutional right, according to wikipedia.
I’d like us to take a moment to remember, especially if you’re from the US, that the fight for LGBT rights is far from over. It’s not some distant thing. Even people on this good gay subreddit could face severe punishments for their identity. If you are in a country with legal protections, take a moment to be thankful. If you can, please educate yourself on the state of LGBT rights in these countries, and see if you can do anything to help.

ETHNICITY: 463 responses

https://imgur.com/hk6KINj
Again, not particularly surprising results here. Reddit is a pretty overwhelmingly white website. I’m a full blown white person so I’m not sure how much I can really say here without verging out of my own lane. I do think we should keep this in mind however, because as a largely white subreddit we may not have so many people calling out racism when they see it. I don’t want POC to feel ignored here just because they make up a smaller percentage of our demographics, so I welcome any POC responses here as to how we’re doing with that. I personally haven’t seen too much racism, as the bigotry we tend to get is centred around our lgbt identities. Whenever I see it it tends to be anti-black, and usually confined to usernames. I do try to ban that whenever I see it, but I’m only one person, so I do rely on you to report things to me!

GENDER: 467 responses

https://imgur.com/GOMLltE
https://imgur.com/BY9eRfU
Now, this is the one I’ve had to go in and fuck with. This, and all the other charts, are basically just the raw data in visual form. The chart above is each individual response, allowing for those who selected multiple options. So, rather than counting every time someone selected “male”, then “nonbinary”, etc, it’s counting every time a person selected “male + cisgender,” “nonbinary + queer”, if that makes sense.
This chart here is the one I’ve fucked with, that just has the amount of times an option was selected.
https://imgur.com/ejdAKm9
I basically simplified the data here. Whenever someone said something like unsure, unknown, etc, this was put under “questioning”. The “other” responses are the only ones that received significant editing. These were long-form responses that could not be parsed into simple answers, so here they are in their entirety.
Now, I could probably have parsed them into other categories, but honestly I thought this was more entertaining.
Some important things to remember when reading this data! * I collected it pretty poorly. I wasn’t aware of how google would collate it and i done goofed a bit. Take it with a pinch of salt. * once i “simplified” the data to look at how many times each option was selected, I ended up with almost 800 pieces of data. You’ll recall that only 467 people responded to the survey, so there is significant overlap. This is why I'm showing you two versions. The crossover is not fully clear, and there’s probably ways I could process this data better, but i’m gonna be real with y'all it’s a lot to wade through and I'm honestly just bad at this * This question allowed people to choose as many or as few labels as they wanted. Some people listed their gender as just “transgender” with no other qualifiers, for example. Therefore this data should be treated as only a partial picture of the gender demographics of this subreddit

PRONOUNS: 464 responses

https://imgur.com/lsP8661
Again, I arguably messed up on the collection of results here, BUT, I do think it’s very interesting to see the combinations of pronouns people use. For example, I think it’s cool to see that, among those who use they/them pronouns
Now obviously it’s gonna be difficult to argue for these results to be generalised to the population at large, but this does support what I’ve seen anecdotally for a while; neutral pronouns are often used alongside non-neutral pronouns. We might not have seen this if I had been a better researcher.
Here is the version with my own editing, simplification, and parsing of “other” results:
https://imgur.com/6sR4w3U
Other results are as follows, presented without comment
Among neopronoun usage, we have specific examples of: * ve/ver * it/its
If we put this alongside the “other” responses that indicate neopronoun usage, we can say that 5 of our respondents use, or are comfortable using, neopronouns.
I think this is an interesting point to highlight, because common transphobe rhetoric is that people are using a “confusing” variety of pronouns. We have a generally trans-friendly sub (at least I hope so), and out of 464 respondents to this question, only 5 people indicated neopronoun usage. Could it be that this line of thinking, that people are using confusing newfangled pronouns, is just an uninformed scream from the ignorant?

SEXUALITY: 467 responses

https://imgur.com/CXVxEKc
Again, raw data. For this one I don’t feel it’s super necessary to go in and parse out who picked multiple things, because the data here seems kinda straightforward, if you’ll pardon the pun.
We have a lot of bi and pan people here. Again, it’s difficult to argue for the generalisation of these results, but this does support evidence of bisexual people making up the majority of the LGBT community. If we compare this to the by now well known findings from the Kinsey institute, this does support the belief that most people are likely neither a Kinsey 1 or a Kinsey 6, but somewhere in the middle. It’s not directly comparable because I didn’t use the same metrics, but it’s interesting to think about.
I also think it’s interesting to see so many straight respondents. Of course, this could just be trans people who are straight, but I know from the comments I’ve received that some people who responded are totally non-LGBT, just allies.
Also, shoutouts to “an absolute mess” and “just desperate for love”. Same, babes.

EDUCATION: 461 responses

There were enough “other” responses that I felt like I needed to go in and take those out, so here’s the raw data before I did that.
https://imgur.com/eguYGeK
And here is the simplified version
https://imgur.com/DZClNVV
Here are the “Other” responses
My favourite response is “IDK not american”. As we all know, education only exists in America.
Anyway, this pretty much tracks along the age demographics. With a population mostly aged between 13-24, it makes sense that the majority are high school or college educated.
Of course, it should be kept in mind that not everybody’s education is a linear or traditional experience, and won’t completely track with our age demographics.
Shoutouts to the 3-4 people with PhDs tho, mad respect.
And that wraps up our demographics section! Onto some of the cool shit.

PERSONAL LIFE SECTION

POLITICAL ALIGNMENT: 477/467

https://imgur.com/TUQNBVJ
Here’s the raw data. As you can see, there’s a lot of write-in responses. If you’ve spent any time hanging out on this subreddit, I don’t think it’s any shock to see how overwhelmingly left-leaning we are. I think this sort of goes with the territory of being an LGBT subreddit though, we do tend to develop liberal politics as an attempt to avoid homophobia and transphobia, and then from there it’s easy to fall into leftist politics, especially on places like Reddit.
Simplified data: https://imgur.com/isja5Kc
Other responses:
  • Don’t have these words in AUS
  • I have a hard time understanding all the different words, but I know I’m the opposite of Donald Trump
  • LibCenter
  • anarcho-communist
  • social libertarian
  • Hard to say since these terms mean slightly different things in different places/political climates
  • Whoever isn't a racist bigot
  • slutty sjw whos ready to bust a fat nut and shoot capitalists
  • angry *Governmental axis: libertarian. Economic axis: centrist. Social axis: progressive
  • I don't have a strict political alignment, I just think that every politician can have good ideas whatever their alignment is
  • I vote based on the current goals of each party
  • regulated markets, welfare capitalism, taco trucks on every corner. thank you for coming to my ted talk.
  • Whatever is Civil Rights
  • leftish antiauthoritarian
  • no one changes anything but rich mens pocket books
  • Progressive
  • Green
  • Prefer not to say
  • Independent
We’re clearly a very left-leaning subreddit here. I think it’s interesting that out of a total of 447 responses, only 9 disclosed that they were on the right-hand side of the political spectrum. Is this because only 4% of people round these parts are on the right, or is due to an unwillingness to identify with conservative politics, even on an anonymous survey? Difficult to know for sure. Interesting data tho amirite.
Also whoever answered “slutty sjw whos ready to bust a fat nut”, same girl

RELIGION 460/467

Raw data: https://imgur.com/oQQWZH9
Again, a fuckfest here, but even before we go in and parse things out we can see that 336/460 indicate atheist or agnostic beliefs. This sort of goes along with my hypothesis/unscientific belief that a majority of LGBT people are non-religious, or will find religion themselves later on. I personally would love to do research on the prevalence of found religion in later life, especially pagan/wiccan type beliefs, in LGBT people. I think a lot of us do really desire that sort of connection to spirituality, but can’t always get it from the religions we were raised in. This is from my perspective as a western white person raised around christian/catholic beliefs; I know there’s differences with, for example, Judaism, where it’s fully baked into the culture to question and argue with your own beliefs, so I know there’s a hell of a lot of cultural bias going into this assumption.
Simplified data
https://imgur.com/FimSsoh
I’ve kept Atheist/agnostic as separate categories, grouped the different Satanism responses, and again created an “other” category.
Other responses:
  • Both Christian and agnostic
  • Dragons
  • exmormon
  • I don't believe in a conscious force making decisions, but there is some sort of force underlying the physical world
  • idk man. dudeism?
  • Its a mix
  • Meh
  • None (not explicitly atheist or agnostic, just...ehhhhh)
  • Unitarian Universalist
  • Science Christian
Given that this is Reddit, I’m not surprised by the high amount of atheist/agnostic responses, given that the site still has a strong legacy left behind by the glory days of /atheist. With this bias in mind, I do still think this presents a compelling basis for further research on the religious affiliations of LGBT people.

RELATIONSHIP STATUS 465/467

https://imgur.com/vcrZae3
This one actually didn’t require much fucking with, so I’ve just presented the gently simplified data.
Other responses
  • In a queer-platonic relationship
  • I walk a lonley road, the only one that i have ever known.
  • I’m not really sure rn
  • It’s complicated
  • In a polyamorous relationship
  • I have a domme
  • Polyamorous
  • On a crash course to divorce :(
Wow we’re a single lot aren’t we
Honestly I think this correlates with the age demographics. If I were a better data analyst I’d go in and confirm this with the data, but I’m not, so I won’t. Knowing that we have a lot of younger people, who are more likely to have either no relationship or a frequently changing/unstable relationship status, this kinda seems about right. It would be interesting though to compare this with relationship data from other LGBT communities. I think we all know the struggles of finding available partners, especially when you are, as the data suggests, in high school or college. It’d be interesting to see if the high rate of single people here is due to a desire to seek out other LGBT people in order to gain a sense of community as well. Maybe LGBT people in a relationship feel they already have enough of a sense of community and belonging and are therefore less likely to seek out LGBT spaces online. That’ll require some good qualitative data tho which is time consuming. Could be really cool tho.

THOUGHTS ON TERFS 463/467

Raw data: https://imgur.com/CQ2hSu4
This was a big question. There’s a lot of write-in responses here, so I’ll go through those.
Simplified data
https://imgur.com/YwNUYsR
Other results, presented without comment
  • accept everyone or get the fuck out
  • Confused
  • Fuck TERFs
  • Fuck TERFs
  • Fuck TERFs
  • Fuck TERFs
  • Fuck TERFs seriously
  • Fuck them with the rustiest rake you can find
  • Hate them
  • [Dislike] However, I do not condone jokes of violence against Terfs
  • I don't even know what that is.
  • I don't know or care what that means
  • I hate them so god damned much even the mention of the word terf makes me wanna punch a *wall then vomit.
  • I have never heard of this
  • I have no idea who they are
  • Idk bout them
  • liquidate them
  • Never heard of them
  • Not sure exactly what that means but if I understand it right I dislike them because I support transgender people
  • punch them
  • strongly dislike is not enough
  • [just a transphobic pro-terf comment]
  • strongly dislike isn't strong enough.
  • TERF is a slur lol
  • terfs r trash
  • They can go to hell
  • They have no place
  • Too little experience with them to form a meaningful opinion
  • we should set them on fire
  • trans rights babey
I think this is a pretty conclusive result. Of the 29 “other” responses, 20 of them indicate Dislike to Strongly Dislike. 5 respondents said Strongly Like, and 1 said Like. These respondents were the only ones who also put in positive “other” responses. 82% of responses were Strongly Dislike.
This is honestly going to inform my moderation style. I always remove outwardly transphobic comments, especially if they mirror the “rational people” comment in the responses above. However, seeing such a strong dislike of TERFs will likely mean I’ll remove more comments that are gently TERFy but not as explicit.
I do want to reiterate, this is a feminist space. I personally am a strong feminist. I hold some more radical feminist views. I also believe trans women are women, they have a place in the feminist movement, and in women’s spaces. You can absolutely be a trans INCLUSIVE radical feminist. Feminism is almost useless without intersectionality. Trans people are valid and welcomed here. Transphobia will never be tolerated here. Not up for debate.

THOUGHTS ON TRANSMEDICALISTS 460/467

Raw data:
https://imgur.com/rWZFUBp
Again, lots of write in responses. Same script as last time
Simplified data:
https://imgur.com/sQro5dq
Other results
  • At first glance, this notion makes sense to me, but I know to little about the issue to form a meaningful opinion
  • Dissagree w/ but not dislike as people
  • Don't know whether they're right or wrong since I'm not trans therefore can't confirm shit
  • Fuck truscum
  • Fuck truscum.
  • I can understand where they're coming from, but i think it's a harmful ideology all the same
  • I don't agree transition is necessary, since sometimes staying in the closet is the only way to survive. But dysphoria of some kind is necessary.
  • I don't understand how people can be trans if they've never experienced Dysphoria. Not being a dick, i just can't find an explaination.
  • I get where they're coming from
  • I have no opinion. If somebody says they're trans, all i want are their preferred pronouns.
  • I haven't heard about this before, I'd have to read up on it before giving an opinion!
  • I just need to shout about the exclusionary nature of the stance
  • I think dysphoria is necessary, but not medically transitioning
  • I’d err on the side of caution because it sounds like it could be ehhh. I don’t know enough about *the trans part of the LGBT+ community to properly answer this one
  • I’m not sure about them yet
  • It isnt nessacsry but many people do experience it
  • N/A
  • Neutral as long as they aren’t excessively pushy or rude about it.
  • New to this concept tbh
  • No opinion
  • Non-binary trans is still trans.
  • Not enough reading or research done on my part to have an informed opinion
  • Not familiar with this topic enough to say
  • punch them too
  • Therapists should treat it
  • There is background to their points but their attitude stunts progress for all trans people
  • they're very flammable too
  • trans people are trans regardless of what gender affirmations, if any, they choose to undergo. ❤️
  • trans rights babey
  • uncle terfs, more or less.
  • Unknown
  • wanting to be a different gender = gender dysphoria, so 90% of the time transmedicalism is just *pointless gatekeeping
This is the one I definitely needed trans people’s opinions on. I am cis-ish (androgynous butchy lesbian who occasionally likes a cheeky they/them pronoun but is for all intents and purposes a woman/dyke) and so feel entirely unqualified to weigh in and decide which side of the issue is “correct”.
  • 56.2% of responses indicate either Dislike or Strongly Dislike transmedicalists
  • Of the “other” responses, 15/29 indicate a dislike or disagreement with transmedicalist ideology
  • There is a large amount of “neutral” or “no opinion” responses. I can assume a lot of these are from cis people who, like me, feel unqualified to weigh in.
This is also likely to inform my moderation style somewhat. Again, I always remove blatant transphobia when I see it, and this includes anybody stating that nonbinary people are not valid, not real, etc. From these results, I’m going to assume this is the right move, and continue with this strategy.
I personally lean towards not believing in transmedicalism. Some of this may very well stem from my feminist views, but I generally think gender is extremely fluid, and that labels are only worth what the individual believes they represent. If any of you have an understanding of sociology, I tend towards a Weberian/symbolic interactionist approach towards labels in general. Therefore I believe whatever a person identifies as is probably the right identity for them, regardless of what I may think of it. This isn’t necessarily relevant to your understanding of the survey, but it may be relevant to your understanding of my moderation actions.
That wraps up this section! This was a long one, thanks for sticking with us <3

ME_IRLGBT OPINIONS

THOUGHTS ON THE SUBREDDIT 457/467

https://imgur.com/VUwfXtq
Finally, some data i don’t need to fuck around with. Note to self, do more ratings like this.
Obviously as a mod I’m happy to see that opinions trend above 5 here. The average score we’re getting here is 7.87 (2dp) and honestly, I’m down. If that was a movie on IMDB, that shit would be a pretty well-received movie. The most frequent response here is 8/10, and most responses are between 7-10, which tells me people generally enjoy hanging out here. I know there’s always a strong chance for bias here, because the people who are likely to respond to a kinda long survey for a subreddit are likely to be people who either really enjoy it, or really don’t. However, even with that bias, I’m gonna just take the W if that’s cool with you.

THOUGHTS ON MODERATION 445/467

https://imgur.com/pmkKyuC
Slightly lower trend than overall subreddit opinions, but the average is almost the same at 7.73 (2dp).
Since sending out this survey I have made some slight tweaks to my moderation style, as well as making some additions to the automoderator. We’ll chat about that later. I’m glad the overall trend here is positive though; I don’t want this to be a place where you all just end up resenting me.

DO WE NEED MORE MODS? 428/467

https://imgur.com/gwZuKtM
Other responses:
  • 🤷
  • don’t care
  • I don't know. I'm new to Reddit
  • i dont have a reddit account, and i very rarely check comments. I dont think i'm the best person to answer this.
  • I dont pay attention enough to say
  • I just discovered this subreddit like yesterday so I don't really know
  • I think we need mods who do more than just let people police the sub themselves. We may only need a new mod if the current mods don’t change how they mod. Respond to reports is what I’m saying (I don’t see almost any removed comments ever)
  • Idk
  • idk i just enjoy the memes
  • idk im just lurking here
  • Idk. How many moderators do you have?
  • if they're good moderators
  • maybe? i think a little more mod participation would be cool. just seeing admins in comments laughing and joking along with us, and sharing in the memes. i enjoy the hands-off approach but that doesn't mean i don't ever wanna see more mods chilling out and sorta like.,..... making their presence known and joining in on the fun!!! yknow it makes it feel safer
  • no idea tbh but it seems to be running ok
So the general answer here is that we maybe need more mods. Far more people said no than said yes.
Personal interpretation is that people may have felt more comfortable answering “maybe” than answering “yes”. I know that having one active mod for a 90k subreddit is not usual, and by now most subreddits will have gotten a couple more people in. I won’t speak for parlayv but, if you think i’m hands-off, she’s like, not even got hands. Hands not on this plane. We did create the subreddit together (IIRC I came up with the name and she was like “omg that needs to be a subreddit” and then, all of a sudden, it was) but I’m the one who pretty much runs it. I don’t think she’d take issue with me saying that. She’s too busy playing runescape and smoking weed anyway lmao
So, given the general results, I will look at bringing more mods on. I’ll probably pull from people I know first, and if that doesn’t work, may open up applications later. If this happens you’ll all know about it.
I’ll address some of the comments at the very end. Your concerns are not going unnoticed!

THOUGHTS ON RESEARCHERS 459/467

https://imgur.com/Px4XqGQ
Another very similar score, but this time the most frequent response by far is a 10. Average score is 7.84
This one was kinda important for me. I made the decision to allow researchers to post their surveys here. Full disclosure, when researchers come to me in modmail, my key concern is that they’ve followed all ethical procedures. So far, every single one has been done through a university in an official capacity, which means they have to prove they’ve gone through the ethics of their work and it’s been approved before they can even start researching. Whenever I’ve checked them out they seem completely fine, and I’ve so far not received any complaints, which makes me feel good.
I personally believe research is incredibly important for us to understand ourselves, as well as other people. I’m obviously biased as hell here because I’m a social sciences student but the whole reason I’m interested in this field is the benefits I believe it can bring to us. So if it’s cool with you all, I’m going to take this result as support for research posts. For now I don’t foresee any issues with frequency but we’ll revisit this if that becomes a problem. I’d like to give you all a sincere thank you for your positive reception to these posts <3

SHOULD WE BAN TERFS OR TRANSMEDICALISTS? 461/467

This question specified “regardless of rulebreaking”, meaning should they be banned on sight if they say they identify as either a TERF or a transmedicalist. I also meant if they posted in TERF or transmedicalist subreddits, but I didn’t specify this, so I won’t use that in my analysis of this data.
https://imgur.com/o1fevKC
Other responses
  • Allow them only if they don't say anything transphobic on me_irlgbt
  • ban 'em when they post inflammatory stuff to bait responses
  • allow transmeds to flair their posts/create separate sub
  • only ban Transmedicalists if they’re being dicks about it
  • don't know enough about transmedicalists to say
  • Ban transmedicalists, do not ban TERFs
  • Definitely ban TERFs, I just don't really know much about trans medicalists, so I feel weird making a definitive statement about them.
  • Definitely ban TERFs. I’m neutral on transmedicalists
  • Forum should not be allowed to become a hostile environment. They can easily do that.
  • I don't know the context behind transmedicalists but if they're anything like terfs then yes ban them
  • I think a distinction must be made between hate and ignorance. Obvious hate should naturally be answered with a ban, but rule-breaking content arising from possible ignorance should be met with a removal, private warning and, most importantly, directing the poster toward resources to educate themselves.
  • I think there is more ground to talk with transmedicalists but that I would prefer not to deal with them. TERFs should be banned regardless of circumstance.
  • I’m not sure how i feel about just “banning” people but i disagree with them both
  • if being mean
  • If making people uncomfortable
  • If they are strongly voicing there options, even in other sub, that may be harmful.
  • Keep them on a shorter leash
  • Maybe? Or at least make posting that stuff against the rules
  • No opinion
  • Only ban when breaking rules, but dismissing trans women & gnc/nb trans peeps should be against the rules
  • Only if they are putting forth their beliefs in a way to claim that people are not valid.
  • Still don't know anything about the transmedicalists but ban the terfs
  • TERFs have no rights and should go. Transmedicalists are... Kinda difficult? I used to consider myself trans and sorta get where they're coming from. I think it's just a generational issue? I don't think they should be banned outright, like TERFs should, but it should be made very clear that MeIRLGBT isn't the place to discuss that
  • Yeah, but only if you are sure they are terfs/transmed
  • yes, because they're harmful to trans communities and this subreddit should be safe.
Again, a generally anti-terf attitude, which is expected from previous questions.
Once again, this is mostly to inform my moderation style. I am hesitant to ban people because I don’t want to be seen as a powertripping mod out to get everybody. These results, alongside the other terf/transmed ones, are kind of encouraging me to take a slightly heavier hand than I currently am. Again, some specific responses at the end!

WHAT WOULD YOU LIKE TO SEE MORE OF? 98/467

This was complete free-entry, so I’ve gone in and grouped a bunch of the responses together.
  • Ace content: 3
  • Bi content: 4
  • Less bigots
  • Positivity/wholesome shit: 4
  • Trans content: 5
  • Commie shit: 2
  • Garlic bread: 2
  • That Gay Shit: 13
  • OC
  • More activity in general: 5
  • POC content
  • Memes: 25
  • NB content
  • Questioning content
  • Women
  • Intersex content
  • Surveys: 2
  • allowing different titles
  • mod posts for awareness days (ie bisexuality awareness, TDOR, etc)
  • more response to reports
  • peace, love, and understanding
  • a monthly challenge to make themed memes
  • clarity as to what this neat little subreddit is about
  • support threads/posts
Other responses were generally just “nothin, we good”, so that makes up the rest of the responses.
Further answers at the end!

WHAT WOULD YOU LIKE TO SEE LESS OF? 75/467

  • ”Hello gays”. Not everybody in /me_irlgbt is gay.
  • [i removed these comments for being transphobic lol]: 2
  • trolls/bigots: 21
  • That Het Shit: 3
  • That Gay Shit
  • surveys
  • reposts: 6
  • text posts
  • non-meme content: 6
  • baby yoda
  • Capitalism.
  • Christmas decorations in October
  • Contrapoints memes
  • self-deprecating humour: 2
  • equating tops/bottoms to personality or body types. this isn't yoai it's real life, and i know this is more of an overall issue with the gay community but it's pretty prevalent on this sub
  • MYSELF
  • i hope the rest of your day is the best of your day.
Okay to the people who said they want less of themselves and less gay shit you are in the wholeass wrong place are you okay
Reposts seem to be a common issue. Could you lot do me a favour and post in the comments what you think are common reposts? I come on and browse the sub but I really rely on things you report to me, so I don’t always see common reposts.
As far as specific content you don’t like, I’m afraid that’s gonna be a self-directed thing for yall. Downvote the non-rulebreaking content you don’t like and hopefully people will get the message!
Lol @ the one person who said less surveys. Ur in one. Cant stop wont stop x

ANYTHING ELSE TO ADD?

ily, thank you, etc
This shit sweet as hell thank you for taking the time to add it in at the end ily
“all my answers need the addendum of “I am an idiot, and there are many things I don’t know”
Gurl same
Hi
Hi. how u doin
I am a gay
Absolutely. We love that for you.
[bee movie script]
Hi. no. dislike.
Comrades! You have nothing to lose but your chains!
There’s like 5 of you that said this and i love it
imagine being sega and not working towards creating and publishing a new jet set radio future game; absolutely criminal
Imagine being sega. Can’t relate
Perhaps a link in the side bar we can click to escape the subreddit, especially on mobile if possible.
Honestly not a bad idea. I’ll look into this.
Please just add the QA to the name. It’s 2 letters
I’m sorry, i can’t change the subreddit name. I’ll add it to the sidebar tho <3
Sexual attraction is bourgeois
Idk what this means but it is now one of the central tenets of my faith
Thanks for all the “other” options
You’re welcome it made like, 100x more work for me, but i kinda like that we have a smidge of qualitative data alongside all the quantitative shit.
Thanks for letting me participate despite my non LGBT status
Thanks for being chill!
You people need to calm down. I can sense that this energy primarily comes from North America, so I will explain. The level of discrimination and the lack of basic human rights are so extreme, people cannot stand it anymore even if they are not fully aware of these subconscious vibes, so they need to pull extremely in the other direction to make up for this. And hence you have this kind of subculture that emerges as result. The problem is that, you people are as bad as the other end of the problem because you're as extreme, and it translates into over the top aggression and people so insanely touchy they see an attack in absolutely everything, even if they are not being attacked. Become aware of these energies, and chill.
Gurl are you like okay? Do you need a lie down? Some fruit snacks? Everything okay at home?

ADDRESSING COMMENTS

“I think we need mods who do more than just let people police the sub themselves. We may only need a new mod if the current mods don’t change how they mod. Respond to reports is what I’m saying (I don’t see almost any removed comments ever)”
I’m gonna hold my hands up here, I have generally sucked ass at this. I rely almost completely on you lot reporting things to me, but for the longest time I had a big ol mod queue that was just overwhelming to look at. I’ve made changes to this in the past few weeks, including
*expanding automod scripts. Automod now deletes certain slurs automatically, as well as any comment that might be mentioning or encouraging suicide. This is a big help because obviously trolls will rely on their old faithful slurs. I was hesitant to do this because I think we all have a right to slur reclamation, but I think the benefits outweigh that right now. *I got a fancy new mod plugin! It’s called toolbox, and basically just tells me whenever a new post is made so I can approve it or not, and it tells me when I have new reports. It’s made the whole experience less stressful *I spent a day addressing all the shit in the queue. The subreddit used to be like, full anarchy, so there were reports going back 2 years. Again, I take responsibility for that. I’ve been a shitty mod and I am addressing that.
I hope these changes help address those concerns.
” i think a little more mod participation would be cool. just seeing admins in comments laughing and joking along with us, and sharing in the memes”
I’ve honestly been thinking about this comment for a while. I try to avoid posting here because, again, I’ve seen a lot of criticism of mods who participate too much in their own subs, especially when they distinguish their posts. I don’t wanna look like a dick, yknow? But I like this comment and I’m gonna try and just hang out with you lot more <3
Mod posts for awareness days (ie bisexuality awareness, TDOR, etc)
I kinda think this idea slaps. Does anybody have a calendar of important LGBT dates? I think we could tie this into the other comment about challenges for themed memes, where appropriate.
Clarity as to what this neat little subreddit is about
Me_irlgbt is a queer shitposting subreddit. It’s generally for memes and queer fuckery. Not selfies. That’s about it.
Support threads/posts
Okay, so, the reason I’m not going to do this is because I feel that if I post a thread for support, I then have a duty of care to anybody who posts in it. I do not have the capability, time, or knowledge to provide that duty of care, so I feel it would be strongly unethical to do this, regardless of how good the intentions are. I think it’s a well-meaning idea, I just wanted to clarify why I’m personally not comfortable with it.
Not everybody in me_irlgbt is gay. Can we have more inclusivity?
When I use “gay” on this subreddit, especially if I’m referring to the general mass of users, I wholeheartedly mean it in a community way. Like, “we, the gays” as contrapoints once said. You are welcome here. This isn’t the only response along these lines, so I will keep it in mind when making changes.
And we’re done! Holy shit that was a long post. This has taken me 6 days to edit. Again, reiterating from the top, I’m not an adept researchedata analyst, so I’m sure many people could’ve done a MUCH better job looking at these results, but I think this will do for now.
Thank you so much to everybody who responded. It’s been really interesting for me to have a look at this, and pretty cool to get to fuck around with all this data. Thank you ilysm <3

TL;DR

  • The population on this subreddit trends young, mostly 18-24
  • Most people live in the US
  • Most people are white
  • We have slightly more male-identified people than female, but not significantly so.
  • Roughly a quarter of respondents are trans-identified.
  • Most people use she/her or he/him pronouns. Around 18% use they/them, with the rest “other” or neopronouns.
  • About 60% of the people here identify as bisexual or pansexual, 17% lesbian, 16% gay, 17% asexual. These responses do overlap with many people using multiple labels for themselves.
  • mostly high school or college educated, which makes sense with the age demographics
  • overwhelmingly left-leaning politically
  • generally positive feelings towards the subreddit/mods
  • mostly atheist/agnostic religious views
  • 74% of respondents are single/not in a relationship.
  • 88% of respondents do not like TERFs
  • about half of respondents do not like transmedicalists, but 28% are neutral
  • 60% of respondents think we maybe need more mods
  • other responses just need to be read lol
submitted by lowkeyterrible to me_irlgbt [link] [comments]

Binany  How to trade without loses? Binary Options Technical analysis Trading An introduction to technical analysis: A how-to guide to begin reading charts The basics of binary options Binary Options Indicator - Occhi Di Gatto

Technical Analysis Basics. Using technical Analysis in Binary Options 2017 V kategoriích: All Binary Options Strategies, Other strategies, Technical Analysis Strategy When discussing about chart analysis, the double top and double bottom pattern is known to be the most popular pattern of all that are being used technology side makes option Prof. Binary’s Trading Tip: A lot of traders prefer technical analysis to fundamental analysis, especially when it comes to binary options. Charts and proper chart analysis is the key to trading successfully in a technical way. Binary Options Trading Explained – The Bottom Line. As with any kind of investment, there are risks and rewards, so it helps to understand binary options before making your moves. With binary options trading explained, you have a somewhat clear understanding of how they work. Binary options fundamentals. Chart analysis. Technical analysis. Market research. …and much more. In short, the Trading Club will point you in the right places for all the training you will need to succeed in Binary Options Trading. The Binary Options Technical Analysis is a basic and very important stage of the analysis as it enables to identify the trend type which can be either ascending or descending. To figure out the tendency type and its duration, the financial experts use a great number of tools such as the basic patterns of the technical analysis or indicators.

[index] [20208] [14002] [11360] [22911] [24389] [27959] [5392] [504] [27194] [22251]

Binany How to trade without loses?

Nadex is the leading US-based CFTC-regulated financial exchange for binary options and option spreads. We’re located in the heart of Chicago’s financial district. Subscribe to learn more about ... start profitable for trading in forex or binary options, get the trading strategy here, link https://vk.cc/9fs5vl#44 live forex trading - eurusd, audusd, gbpusd, nzdusd, usdcad, usdchf, usdjpy Many binary options strategies depend on technical analysis where you look for certain patterns in the way the price of an asset moves, and try to make predictions about future price movements ... You can use free stock charts for trading the stock market and other financial assets with technical analysis - for Binary Options, Forex, CFD's and any other type of trading and investing. The basics of binary options Nadex. Loading... Unsubscribe from Nadex? ... An introduction to technical analysis: A how-to guide to begin reading charts - Duration: 47:40.

Flag Counter