Profit In 60 Seconds Download - Binary options trading ...

How to prevent customer cancellations

Customer retention is a goal every business owner should be obsessed with. At the end of the day it's cheaper to retain an existing customer than it is to acquire a new one.
But how do you ensure that your customers keep using your service?
Are there any simple, yet effective ways to reduce or even prevent churn?
As it turns out there's one simple strategy you can use to keep your customers around even if they're about to leave your platform. Let's explore what it is and why it works.

Why you should obsess over customer retention

As already stated in the introduction it's important to focus on customer retention when building a sustainable business.
Acquiring customers can be an expensive endeavour. If you're not (yet) in a position where your product grows through Word-of-Mouth you're likely spending a good portion of your revenue on paid ads and marketing to drive traffic to your service. Only a few of your thousands of visitors will eventually try your product and convert to become a paying customer.
Optimizing this marketing and sales funnel is a tricky and costly activity. Think about it for a minute. Who finances your learnings and tweakings of such funnel? Correct, your existing customers.
That's why keeping your users happy and around is one of the most important business objectives.

Why customers are churning

If you think about it, there's really only one reason why your customers are leaving your platform:
Your product isn't a crucial part of their life anymore
While this sounds harsh I'd like you to think about all the services you're currently subscribing to. Now imagine that you can only keep one. What would you cancel? Probably everything except the one you can't live without.
Of course, the preferences are different from person to person and they change over time. And that's the exact reason why people cancel their subscription with your service: Their preferences have changed and they might want to take a pause from your service or need something else entirely.

"Churn Baby Churn"

Now that we know why your customers churn, it's time to get into their shoes and think about ways to keep them around.
One of the "industry" standards is to send out a survey once they're about to leave to gather feedback and convince them to stay. Some services offer coupon codes if for example the user has clicked on the "it's too expensive" option in the survey.
Other tactics are more on the "dark patterns" side of things. Hiding buttons, asking double negative questions or using other techniques to make it nearly impossible to leave. Needless to say that customers of businesses practicing such tactics aren't the ones who spread the word on how awesome the product is. Quite the opposite.
But let's take a step back for a minute and ask ourselves why this "should I stay or should I go" question has to be binary in the first place. Isn't there something "right in the middle"? Something where a user can stay but somehow go at the same time?

"Wait a minute... or a month..."

The solution to this dilemma is dead simple and obvious, yet rarely used: Make it possible to pause the subscription.
Yes, it's that simple. Just offer a way to pause a subscription and get back to it once your users current circumstances have changed.
Now you might think that it's a really bad idea to let users pause their subscription. They'll pause and never come back. So essentially it's a "passive churn" as they haven't left the platform yet but might never use it again. The stale user data is sitting in the database and your dashboards are still showing hockey-stick growth. Furthermore it's a huge implementation effort as pausing and resuming subscriptions isn't something considered business critical and hence wasn't implemented just yet.
Those are all valid concerns and some of them might turn out to be true even if you have a "pause- and resume your subscription" system in place. But let's take a seconds to look at the other side of the equation.

Why pausing is a good idea

They very first thing that comes to mind is the COVID-19 pandemic we're currently in. A lot of business scaled back and hence had to cancel subscriptions to their favorite SaaS tools to cut costs. A common "save the customer tactic" used here was to get in touch with the business owner and offer heavy discounted year long subscription plans. That way businesses could reassess if they should really quit and leave the huge discount on the table or just go with it and double down to benefit from the sweet, discounted multi-year subscription deal.
Letting business put their subscription on hold would be another strategy that could be used to help retain and eventually reactivate your users during this pandemic. Put yourself into your customers shoes again for a minute. Wouldn't you want to pay it back in the future if your supplier lent you a helping hand and wasn't "forcing" you out the door?
Even if your customers pause their account you still have their E-Mail address to reach out to them and keep them informed about your product. In fact you should use this opportunity to stay in touch, ask them how they're doing and providing something of value along the way. That way you keep the communication "warm" and your business stays on "their radar". There's a higher likelihood that they think about your service when times have changed and they're about to scale things up again.
Having a way to pause a subscription is an action that's usually taken with some level of consideration. If your customer wants to quit (s)he'll just cancel the subscription anyway. Offering a way to pause for the time-being is another option your users might just not have right now, so they're forced to make a very binary decision and therefore they just quit.
What you should also think about is that pausing a subscription doesn't necessarily mean that you'll lose revenue for sure. There are different and very creative ways in which you can implement the pause. My gym for example simply extends my membership for the amount of months I put my membership on hold. In the summer I make use of this feature since I do my workouts outside anyways. However those 3-4 months I "save" are simply "added" to my contract. I just have a little bit more control about how and where I spend my time with sports. You can get really creative here and invent other ways for this mechanism to work if you really want to ensure that you don't lose revenue.
A last, important point is that you can use this functionality as a competitive advantage and "marketing material". Be sure to add the fact that people can pause their subscription to your list of product benefits. Add it to the copy right next to your "Subscribe Now" button. Addressing objections and concerns right before the call-to-action is about to happen will drastically increase your conversion rates.

Things to keep in mind when going down that path

Now you might be excited and eager to implement this strategy in the near future but before you do so I'd like to call out a couple of things you should keep in mind when implementing it.
First of all: Keep it simple. There's no need to jump right into code and implement this functionality end-to-end. Do it manually in the beginning. Update the database records and the subscription plans for people who want to pause their subscription by hand. Maybe you find out that very few people want to make use of this feature. What you definitely want to put in place is your new copywriting. As discussed above you should ensure that your marketing website is updated and reflects the recent change you just introduced.
Next up you want to have an automated follow-up E-Mail sequence / Drip campaign setup for pausing customers. Keep in touch. Ask for problems they had with your software and help them succeed in whatever they're up to right now. You might want to jump on a quick call to gather some feedback as to why they paused and understand what needs to be in place for them to come back. If you do this, please ensure that you're genuinely interested in the communication. There's nothing worse for a user than composing a reply and shooting the E-Mail into the marketing void.
A very important, yet often overlooked step is to have a tool in place which deals with "passive churn". Such a system ensures that the credit cards on file are up to date and chargeable. There could be an overlap between your users pausing their subscription and their credit cards expiring. You don't want to make them look bad because of that. You could even think about a "concierge service" which onboards them in person once they'll come back. Combine this with a quick update on all the new features / updates they missed and are not yet familiar with.
Lastly you absolutely don't want to make it hard for your users to pause their subscription. As mentioned above, avoid dark patterns at all costs. And more importantly: Don't penalize them for pausing. Messages such as "We'll retain your data for the next 60 days" are inappropriate in the day and age of "Big Data" and access to Petabytes of storage for a nickel and dime.

Your challenge

I'd like to challenge you to think about adding the possibility to pause a subscription. Is it suitable for your business? Would it help you retain and reactive more customers (especially in the current situation we're in)?
If you're about to add it, keep in mind that it doesn't have to be complicated. Start with a simple E-Mail form your users can fill out to let you know for how long they want to pause. Just make sure that you follow the best practices outlined above and that you advertise that it's now possible for your customers to pause their subscriptions.

Conclusion

Customer retention is one of the most important metrics every business owner should focus on. It's the existing customers who finance the Customer Acquisition Costs that are necessary to bring new users into the door.
It's almost always cheaper to keep your existing customers happy than to lose them and acquire brand new ones.
Unfortunately a lot of SaaS services only offer a very binary option for their subscription plans. As a user you're either in or you're out. You stay or you leave. But what if a user wants to take a pause for a few months because of current changes in life circumstances?
Offering a way to pause a subscription is a simple, yet effective way to retain and eventually reactive your existing customers. Remember that a pause is temporary. If you follow-up with them on a continuous basis and help them succeed they'll eventually come back. Maybe even as a raving, more loyal fan of your brand.
I hope that you enjoyed this article and I'd love to invite you to subscribe to my Newsletter if you're interested in more, action-oriented posts like this.
Do you have any questions, feedback or comments? Feel free to reach out via E-Mail or connect with me on Twitter.
This post was originally published on philippmuens.com
submitted by pmuens to indiebiz [link] [comments]

ResultsFileName = 0×0 empty char array Why? Where are my results?

Edit: Turns out I was missing a needed toolbox.
Hello,
I am not getting any errors and I do not understand why I am not getting any output. I am trying to batch process a large number of ecg signals. Below is my code and the two relevant functions. Any help greatly appreciated. I am very new.
d = importSections("Dx_sections.csv"); % set the number of recordings n = height(d); % settings HRVparams = InitializeHRVparams('test_physionet') for ii = 1:n % Import waveform (ECG) [record, signals] = read_edf(strcat(d.PID(ii), '/baseline.edf')); myecg = record.ECG; Ann = []; [HRVout, ResultsFileName] = Main_HRV_Analysis(myecg,'','ECGWaveform',HRVparams) end function [HRVout, ResultsFileName ] = Main_HRV_Analysis(InputSig,t,InputFormat,HRVparams,subID,ann,sqi,varargin) % ====== HRV Toolbox for PhysioNet Cardiovascular Signal Toolbox ========= % % Main_HRV_Analysis(InputSig,t,InputFormat,HRVparams,subID,ann,sqi,varargin) % OVERVIEW: % % INPUT: % InputSig - Vector containing RR intervals data (in seconds) % or ECG/PPG waveform % t - Time indices of the rr interval data (seconds) or % leave empty for ECG/PPG input % InputFormat - String that specifiy if the input vector is: % 'RRIntervals' for RR interval data % 'ECGWaveform' for ECG waveform % 'PPGWaveform' for PPG signal % HRVparams - struct of settings for hrv_toolbox analysis that can % be obtained using InitializeHRVparams.m function % HRVparams = InitializeHRVparams(); % % % OPTIONAL INPUTS: % subID - (optional) string to identify current subject % ann - (optional) annotations of the RR data at each point % indicating the type of the beat % sqi - (optional) Signal Quality Index; Requires a % matrix with at least two columns. Column 1 % should be timestamps of each sqi measure, and % Column 2 should be SQI on a scale from 0 to 1. % Use InputSig, Type pairs for additional signals such as ABP % or PPG signal. The input signal must be a vector containing % signal waveform and the Type: 'ABP' and\or 'PPG'. % % OUTPUS: % results - HRV time and frequency domain metrics as well % as AC and DC, SDANN and SDNNi % ResultsFileName - Name of the file containing the results % % NOTE: before running this script review and modifiy the parameters % in "initialize_HRVparams.m" file accordingly with the specific % of the new project (see the readme.txt file for further details) % EXAMPLES % - rr interval input % Main_HRV_Analysis(RR,t,'RRIntervals',HRVparams) % - ECG wavefrom input % Main_HRV_Analysis(ECGsig,t,'ECGWavefrom',HRVparams,'101') % - ECG waveform and also ABP and PPG waveforms % Main_HRV_Analysis(ECGsig,t,'ECGWaveform',HRVparams,[],[],[], abpSig, % 'ABP', ppgSig, 'PPG') % % DEPENDENCIES & LIBRARIES: % HRV Toolbox for PhysioNet Cardiovascular Signal Toolbox % https://github.com/cliffordlab/PhysioNet-Cardiovascular-Signal-Toolbox % % REFERENCE: % Vest et al. "An Open Source Benchmarked HRV Toolbox for Cardiovascular % Waveform and Interval Analysis" Physiological Measurement (In Press), 2018. % % REPO: % https://github.com/cliffordlab/PhysioNet-Cardiovascular-Signal-Toolbox % ORIGINAL SOURCE AND AUTHORS: % This script written by Giulia Da Poian % Dependent scripts written by various authors % (see functions for details) % COPYRIGHT (C) 2018 % LICENSE: % This software is offered freely and without warranty under % the GNU (v3 or later) public license. See license file for % more information %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if nargin < 4 error('Wrong number of input arguments') end if nargin < 5 subID = '0000'; end if nargin < 6 ann = []; end if nargin < 7 sqi = []; end if length(varargin) == 1 || length(varargin) == 3 error('Incomplete Signal-Type pair') elseif length(varargin) == 2 extraSigType = varargin(2); extraSig = varargin{1}; elseif length(varargin) == 4 extraSigType = [varargin(2) varargin(4)]; extraSig = [varargin{1} varargin{3}]; end if isa(subID,'cell'); subID = string(subID); end % Control on signal length if (strcmp(InputFormat, 'ECGWaveform') && length(InputSig)/HRVparams.Fs< HRVparams.windowlength) ... || (strcmp(InputFormat, 'PPGWaveform') && length(InputSig)/HRVparams.Fs 300 s VLF = [0.0033 .04]; % Requires at least 300 s window LF = [.04 .15]; % Requires at least 25 s window HF = [0.15 0.4]; % Requires at least 7 s window HRVparams.freq.limits = [ULF; VLF; LF; HF]; HRVparams.freq.zero_mean = 1; % Default: 1, Option for subtracting the mean from the input data HRVparams.freq.method = 'lomb'; % Default: 'lomb' % Options: 'lomb', 'burg', 'fft', 'welch' HRVparams.freq.plot_on = 0; % The following settings are for debugging spectral analysis methods HRVparams.freq.debug_sine = 0; % Default: 0, Adds sine wave to tachogram for debugging HRVparams.freq.debug_freq = 0.15; % Default: 0.15 HRVparams.freq.debug_weight = .03; % Default: 0.03 % Lomb: HRVparams.freq.normalize_lomb = 0; % Default: 0 % 1 = Normalizes Lomb Periodogram, % 0 = Doesn't normalize % Burg: (not recommended) HRVparams.freq.burg_poles = 15; % Default: 15, Number of coefficients % for spectral estimation using the Burg % method (not recommended) % The following settings are only used when the user specifies spectral % estimation methods that use resampling : 'welch','fft', 'burg' HRVparams.freq.resampling_freq = 7; % Default: 7, Hz HRVparams.freq.resample_interp_method = 'cub'; % Default: 'cub' % 'cub' = cublic spline method % 'lin' = linear spline method HRVparams.freq.resampled_burg_poles = 100; % Default: 100 %% 11. SDANN and SDNNI Analysis Settings HRVparams.sd.on = 1; % Default: 1, SD analysis 1=On or 0=Off HRVparams.sd.segmentlength = 300; % Default: 300, windows length in seconds %% 12. PRSA Analysis Settings HRVparams.prsa.on = 1; % Default: 1, PRSA Analysis 1=On or 0=Off HRVparams.prsa.win_length = 30; % Default: 30, The length of the PRSA signal % before and after the anchor points % (the resulting PRSA has length 2*L) HRVparams.prsa.thresh_per = 20; % Default: 20%, Percent difference that one beat can % differ from the next in the prsa code HRVparams.prsa.plot_results = 0; % Default: 0 HRVparams.prsa.scale = 2; % Default: 2, scale parameter for wavelet analysis (to compute AC and DC) %% 13. Peak Detection Settings % The following settings are for jqrs.m HRVparams.PeakDetect.REF_PERIOD = 0.250; % Default: 0.25 (should be 0.15 for FECG), refractory period in sec between two R-peaks HRVparams.PeakDetect.THRES = .6; % Default: 0.6, Energy threshold of the detector HRVparams.PeakDetect.fid_vec = []; % Default: [], If some subsegments should not be used for finding the optimal % threshold of the P&T then input the indices of the corresponding points here HRVparams.PeakDetect.SIGN_FORCE = []; % Default: [], Force sign of peaks (positive value/negative value) HRVparams.PeakDetect.debug = 0; % Default: 0 HRVparams.PeakDetect.ecgType = 'MECG'; % Default : MECG, options (adult MECG) or featl ECG (fECG) HRVparams.PeakDetect.windows = 15; % Befautl: 15,(in seconds) size of the window onto which to perform QRS detection %% 14. Entropy Settings % Multiscale Entropy HRVparams.MSE.on = 1; % Default: 1, MSE Analysis 1=On or 0=Off HRVparams.MSE.windowlength = []; % Default: [], windows size in seconds, default perform MSE on the entire signal HRVparams.MSE.increment = []; % Default: [], window increment HRVparams.MSE.RadiusOfSimilarity = 0.15; % Default: 0.15, Radius of similarity (% of std) HRVparams.MSE.patternLength = 2; % Default: 2, pattern length HRVparams.MSE.maxCoarseGrainings = 20; % Default: 20, Maximum number of coarse-grainings % SampEn an ApEn HRVparams.Entropy.on = 1; % Default: 1, MSE Analysis 1=On or 0=Off HRVparams.Entropy.RadiusOfSimilarity = 0.15; % Default: 0.15, Radius of similarity (% of std) HRVparams.Entropy.patternLength = 2; % Default: 2, pattern length %% 15. DFA Settings HRVparams.DFA.on = 1; % Default: 1, DFA Analysis 1=On or 0=Off HRVparams.DFA.windowlength = []; % Default [], windows size in seconds, default perform DFA on the entair signal HRVparams.DFA.increment = []; % Default: [], window increment HRVparams.DFA.minBoxSize = 4 ; % Default: 4, Smallest box width HRVparams.DFA.maxBoxSize = []; % Largest box width (default in DFA code: signal length/4) HRVparams.DFA.midBoxSize = 16; % Medium time scale box width (default in DFA code: 16) %% 16. Poincaré plot HRVparams.poincare.on = 1; % Default: 1, Poincare Analysis 1=On or 0=Off %% 17. Heart Rate Turbulence (HRT) - Settings HRVparams.HRT.on = 1; % Default: 1, HRT Analysis 1=On or 0=Off HRVparams.HRT.BeatsBefore = 2; % Default: 2, # of beats before PVC HRVparams.HRT.BeatsAfter = 16; % Default: 16, # of beats after PVC and CP HRVparams.HRT.GraphOn = 0; % Default: 0, do not plot HRVparams.HRT.windowlength = 24; % Default 24h, windows size in hours HRVparams.HRT.increment = 24; % Default 24h, sliding window increment in hours HRVparams.HRT.filterMethod = 'mean5before'; % Default mean5before, HRT filtering option %% 18. Output Settings HRVparams.gen_figs = 0; % Generate figures HRVparams.save_figs = 0; % Save generated figures if HRVparams.save_figs == 1 HRVparams.gen_figs = 1; end % Format settings for HRV Outputs HRVparams.output.format = 'csv'; % 'csv' - creates csv file for output % 'mat' - creates .mat file for output HRVparams.output.separate = 0; % Default : 1 = separate files for each subject % 0 = all results in one file HRVparams.output.num_win = []; % Specify number of lowest hr windows returned % leave blank if all windows should be returned % Format settings for annotations generated HRVparams.output.ann_format = 'binary'; % 'binary' = binary annotation file generated % 'csv' = ASCII CSV file generated end 
submitted by MisuzBrisby to matlab [link] [comments]

How to prevent customer cancellations

Customer retention is a goal every business owner should be obsessed with. At the end of the day it's cheaper to retain an existing customer than it is to acquire a new one.
But how do you ensure that your customers keep using your service?
Are there any simple, yet effective ways to reduce or even prevent churn?
As it turns out there's one simple strategy you can use to keep your customers around even if they're about to leave your platform. Let's explore what it is and why it works.

Why you should obsess over customer retention

As already stated in the introduction it's important to focus on customer retention when building a sustainable business.
Acquiring customers can be an expensive endeavour. If you're not (yet) in a position where your product grows through Word-of-Mouth you're likely spending a good portion of your revenue on paid ads and marketing to drive traffic to your service. Only a few of your thousands of visitors will eventually try your product and convert to become a paying customer.
Optimizing this marketing and sales funnel is a tricky and costly activity. Think about it for a minute. Who finances your learnings and tweakings of such funnel? Correct, your existing customers.
That's why keeping your users happy and around is one of the most important business objectives.

Why customers are churning

If you think about it, there's really only one reason why your customers are leaving your platform:
Your product isn't a crucial part of their life anymore
While this sounds harsh I'd like you to think about all the services you're currently subscribing to. Now imagine that you can only keep one. What would you cancel? Probably everything except the one you can't live without.
Of course, the preferences are different from person to person and they change over time. And that's the exact reason why people cancel their subscription with your service: Their preferences have changed and they might want to take a pause from your service or need something else entirely.

"Churn Baby Churn"

Now that we know why your customers churn, it's time to get into their shoes and think about ways to keep them around.
One of the "industry" standards is to send out a survey once they're about to leave to gather feedback and convince them to stay. Some services offer coupon codes if for example the user has clicked on the "it's too expensive" option in the survey.
Other tactics are more on the "dark patterns" side of things. Hiding buttons, asking double negative questions or using other techniques to make it nearly impossible to leave. Needless to say that customers of businesses practicing such tactics aren't the ones who spread the word on how awesome the product is. Quite the opposite.
But let's take a step back for a minute and ask ourselves why this "should I stay or should I go" question has to be binary in the first place. Isn't there something "right in the middle"? Something where a user can stay but somehow go at the same time?

"Wait a minute... or a month..."

The solution to this dilemma is dead simple and obvious, yet rarely used: Make it possible to pause the subscription.
Yes, it's that simple. Just offer a way to pause a subscription and get back to it once your users current circumstances have changed.
Now you might think that it's a really bad idea to let users pause their subscription. They'll pause and never come back. So essentially it's a "passive churn" as they haven't left the platform yet but might never use it again. The stale user data is sitting in the database and your dashboards are still showing hockey-stick growth. Furthermore it's a huge implementation effort as pausing and resuming subscriptions isn't something considered business critical and hence wasn't implemented just yet.
Those are all valid concerns and some of them might turn out to be true even if you have a "pause- and resume your subscription" system in place. But let's take a seconds to look at the other side of the equation.

Why pausing is a good idea

They very first thing that comes to mind is the COVID-19 pandemic we're currently in. A lot of business scaled back and hence had to cancel subscriptions to their favorite SaaS tools to cut costs. A common "save the customer tactic" used here was to get in touch with the business owner and offer heavy discounted year long subscription plans. That way businesses could reassess if they should really quit and leave the huge discount on the table or just go with it and double down to benefit from the sweet, discounted multi-year subscription deal.
Letting business put their subscription on hold would be another strategy that could be used to help retain and eventually reactivate your users during this pandemic. Put yourself into your customers shoes again for a minute. Wouldn't you want to pay it back in the future if your supplier lent you a helping hand and wasn't "forcing" you out the door?
Even if your customers pause their account you still have their E-Mail address to reach out to them and keep them informed about your product. In fact you should use this opportunity to stay in touch, ask them how they're doing and providing something of value along the way. That way you keep the communication "warm" and your business stays on "their radar". There's a higher likelihood that they think about your service when times have changed and they're about to scale things up again.
Having a way to pause a subscription is an action that's usually taken with some level of consideration. If your customer wants to quit (s)he'll just cancel the subscription anyway. Offering a way to pause for the time-being is another option your users might just not have right now, so they're forced to make a very binary decision and therefore they just quit.
What you should also think about is that pausing a subscription doesn't necessarily mean that you'll lose revenue for sure. There are different and very creative ways in which you can implement the pause. My gym for example simply extends my membership for the amount of months I put my membership on hold. In the summer I make use of this feature since I do my workouts outside anyways. However those 3-4 months I "save" are simply "added" to my contract. I just have a little bit more control about how and where I spend my time with sports. You can get really creative here and invent other ways for this mechanism to work if you really want to ensure that you don't lose revenue.
A last, important point is that you can use this functionality as a competitive advantage and "marketing material". Be sure to add the fact that people can pause their subscription to your list of product benefits. Add it to the copy right next to your "Subscribe Now" button. Addressing objections and concerns right before the call-to-action is about to happen will drastically increase your conversion rates.

Things to keep in mind when going down that path

Now you might be excited and eager to implement this strategy in the near future but before you do so I'd like to call out a couple of things you should keep in mind when implementing it.
First of all: Keep it simple. There's no need to jump right into code and implement this functionality end-to-end. Do it manually in the beginning. Update the database records and the subscription plans for people who want to pause their subscription by hand. Maybe you find out that very few people want to make use of this feature. What you definitely want to put in place is your new copywriting. As discussed above you should ensure that your marketing website is updated and reflects the recent change you just introduced.
Next up you want to have an automated follow-up E-Mail sequence / Drip campaign setup for pausing customers. Keep in touch. Ask for problems they had with your software and help them succeed in whatever they're up to right now. You might want to jump on a quick call to gather some feedback as to why they paused and understand what needs to be in place for them to come back. If you do this, please ensure that you're genuinely interested in the communication. There's nothing worse for a user than composing a reply and shooting the E-Mail into the marketing void.
A very important, yet often overlooked step is to have a tool in place which deals with "passive churn". Such a system ensures that the credit cards on file are up to date and chargeable. There could be an overlap between your users pausing their subscription and their credit cards expiring. You don't want to make them look bad because of that. You could even think about a "concierge service" which onboards them in person once they'll come back. Combine this with a quick update on all the new features / updates they missed and are not yet familiar with.
Lastly you absolutely don't want to make it hard for your users to pause their subscription. As mentioned above, avoid dark patterns at all costs. And more importantly: Don't penalize them for pausing. Messages such as "We'll retain your data for the next 60 days" are inappropriate in the day and age of "Big Data" and access to Petabytes of storage for a nickel and dime.

Your challenge

I'd like to challenge you to think about adding the possibility to pause a subscription. Is it suitable for your business? Would it help you retain and reactive more customers (especially in the current situation we're in)?
If you're about to add it, keep in mind that it doesn't have to be complicated. Start with a simple E-Mail form your users can fill out to let you know for how long they want to pause. Just make sure that you follow the best practices outlined above and that you advertise that it's now possible for your customers to pause their subscriptions.

Conclusion

Customer retention is one of the most important metrics every business owner should focus on. It's the existing customers who finance the Customer Acquisition Costs that are necessary to bring new users into the door.
It's almost always cheaper to keep your existing customers happy than to lose them and acquire brand new ones.
Unfortunately a lot of SaaS services only offer a very binary option for their subscription plans. As a user you're either in or you're out. You stay or you leave. But what if a user wants to take a pause for a few months because of current changes in life circumstances?
Offering a way to pause a subscription is a simple, yet effective way to retain and eventually reactive your existing customers. Remember that a pause is temporary. If you follow-up with them on a continuous basis and help them succeed they'll eventually come back. Maybe even as a raving, more loyal fan of your brand.
I hope that you enjoyed this article and I'd love to invite you to subscribe to my Newsletter if you're interested in more, action-oriented posts like this.
Do you have any questions, feedback or comments? Feel free to reach out via E-Mail or connect with me on Twitter.
This post was originally published on philippmuens.com
submitted by pmuens to Entrepreneurship [link] [comments]

AJ ALMENDINGER

glimpse into the future of Roblox

Our vision to bring the world together through play has never been more relevant than it is now. As our founder and CEO, David Baszucki (a.k.a. Builderman), mentioned in his keynote, more and more people are using Roblox to stay connected with their friends and loved ones. He hinted at a future where, with our automatic machine translation technology, Roblox will one day act as a universal translator, enabling people from different cultures and backgrounds to connect and learn from each other.
During his keynote, Builderman also elaborated upon our vision to build the Metaverse; the future of avatar creation on the platform (infinitely customizable avatars that allow any body, any clothing, and any animation to come together seamlessly); more personalized game discovery; and simulating large social gatherings (like concerts, graduations, conferences, etc.) with tens of thousands of participants all in one server. We’re still very early on in this journey, but if these past five months have shown us anything, it’s clear that there is a growing need for human co-experience platforms like Roblox that allow people to play, create, learn, work, and share experiences together in a safe, civil 3D immersive space.
Up next, our VP of Developer Relations, Matt Curtis (a.k.a. m4rrh3w), shared an update on all the things we’re doing to continue empowering developers to create innovative and exciting content through collaboration, support, and expertise. He also highlighted some of the impressive milestones our creator community has achieved since last year’s RDC. Here are a few key takeaways:
And lastly, our VP of Engineering, Technology, Adam Miller (a.k.a. rbadam), unveiled a myriad of cool and upcoming features developers will someday be able to sink their teeth into. We saw a glimpse of procedural skies, skinned meshes, more high-quality materials, new terrain types, more fonts in Studio, a new asset type for in-game videos, haptic feedback on mobile, real-time CSG operations, and many more awesome tools that will unlock the potential for even bigger, more immersive experiences on Roblox.

Vibin’

Despite the virtual setting, RDC just wouldn’t have been the same without any fun party activities and networking opportunities. So, we invited special guests DJ Hyper Potions and cyber mentalist Colin Cloud for some truly awesome, truly mind-bending entertainment. Yoga instructor Erin Gilmore also swung by to inspire attendees to get out of their chair and get their body moving. And of course, we even had virtual rooms dedicated to karaoke and head-to-head social games, like trivia and Pictionary.
Over on the networking side, Team Adopt Me, Red Manta, StyLiS Studios, and Summit Studios hosted a virtual booth for attendees to ask questions, submit resumes, and more. We also had a networking session where three participants would be randomly grouped together to get to know each other.

What does Roblox mean to you?

We all know how talented the Roblox community is from your creations. We’ve heard plenty of stories over the years about how Roblox has touched your lives, how you’ve made friendships, learned new skills, or simply found a place where you can be yourself. We wanted to hear more. So, we asked attendees: What does Roblox mean to you? How has Roblox connected you? How has Roblox changed your life? Then, over the course of RDC, we incorporated your responses into this awesome mural.
📷
Created by Alece Birnbach at Graphic Recording Studio

Knowledge is power

This year’s breakout sessions included presentations from Roblox developers and staff members on the latest game development strategies, a deep dive into the Roblox engine, learning how to animate with Blender, tools for working together in teams, building performant game worlds, and the new Creator Dashboard. Dr. Michael Rich, Associate Professor at Harvard Medical School and Physician at Boston Children’s Hospital, also led attendees through a discussion on mental health and how to best take care of you and your friends’ emotional well-being, especially now during these challenging times.
📷
Making the Dream Work with Teamwork (presented by Roblox developer Myzta)
In addition to our traditional Q&A panel with top product and engineering leaders at Roblox, we also held a special session with Builderman himself to answer the community’s biggest questions.
📷
Roblox Product and Engineering Q&A Panel

2020 Game Jam

The Game Jam is always one of our favorite events of RDC. It’s a chance for folks to come together, flex their development skills, and come up with wildly inventive game ideas that really push the boundaries of what’s possible on Roblox. We had over 60 submissions this year—a new RDC record.
Once again, teams of up to six people from around the world had less than 24 hours to conceptualize, design, and publish a game based on the theme “2020 Vision,” all while working remotely no less! To achieve such a feat is nothing short of awe-inspiring, but as always, our dev community was more than up for the challenge. I’ve got to say, these were some of the finest creations we’ve seen.
WINNERS
Best in Show: Shapescape Created By: GhettoMilkMan, dayzeedog, maplestick, theloudscream, Brick_man, ilyannna You awaken in a strange laboratory, seemingly with no way out. Using a pair of special glasses, players must solve a series of anamorphic puzzles and optical illusions to make their escape.
Excellence in Visual Art: agn●sia Created By: boatbomber, thisfall, Elttob An obby experience unlike any other, this game is all about seeing the world through a different lens. Reveal platforms by switching between different colored lenses and make your way to the end.
Most Creative Gameplay: Visions of a perspective reality Created By: Noble_Draconian and Spathi Sometimes all it takes is a change in perspective to solve challenges. By switching between 2D and 3D perspectives, players can maneuver around obstacles or find new ways to reach the end of each level.
Outstanding Use of Tech: The Eyes of Providence Created By: Quenty, Arch_Mage, AlgyLacey, xJennyBeanx, Zomebody, Crykee This action/strategy game comes with a unique VR twist. While teams fight to construct the superior monument, two VR players can support their minions by collecting resources and manipulating the map.
Best Use of Theme: Sticker Situation Created By: dragonfrosting and Yozoh Set in a mysterious art gallery, players must solve puzzles by manipulating the environment using a magic camera and stickers. Snap a photograph, place down a sticker, and see how it changes the world.
OTHER TOP PICKS
HONORABLE MENTIONS
For the rest of the 2020 Game Jam submissions, check out the list below:
20-20 Vision | 20/20 Vision | 2020 Vision, A Crazy Perspective | 2020 Vision: Nyon | A Wild Trip! | Acuity | Best Year Ever | Better Half | Bloxlabs | Climb Stairs to 2021 | Double Vision (Team hey apple) | Eyebrawl | Eyeworm Exam | FIRE 2020 | HACKED | Hyperspective | Lucid Scream | Mystery Mansion | New Years at the Museum | New Year’s Bash | Poor Vision | Predict 2020 | RBC News | Retrovertigo | Second Wave | see no evil | Sight Fight | Sight Stealers | Spectacles Struggle | Specter Spectrum | Survive 2020 | The Lost Chicken Leg | The Outbreak | The Spyglass | Time Heist | Tunnel Vision | Virtual RDC – The Story | Vision (Team Freepunk) | Vision (Team VIP People ####) | Vision Developers Conference 2020 | Vision Is Key | Vision Perspective | Vision Racer | Visions | Zepto
And last but not least, we wanted to give a special shout out to Starboard Studios. Though they didn’t quite make it on time for our judges, we just had to include Dave’s Vision for good measure. 📷
Thanks to everyone who participated in the Game Jam, and congrats to all those who took home the dub in each of our categories this year. As the winners of Best in Show, the developers of Shapescape will have their names forever engraved on the RDC Game Jam trophy back at Roblox HQ. Great work!

‘Til next year

And that about wraps up our coverage of the first-ever digital RDC. Thanks to all who attended! Before we go, we wanted to share a special “behind the scenes” video from the 2020 RDC photoshoot.
Check it out:
It was absolutely bonkers. Getting 350 of us all in one server was so much fun and really brought back the feeling of being together with everyone again. That being said, we can’t wait to see you all—for real this time—at RDC next year. It’s going to be well worth the wait. ‘Til we meet again, my friends.
© 2020 Roblox Corporation. All Rights Reserved.

Improving Simulation and Performance with an Advanced Physics Solver

August

05, 2020

by chefdeletat
PRODUCT & TECH
📷In mid-2015, Roblox unveiled a major upgrade to its physics engine: the Projected Gauss-Seidel (PGS) physics solver. For the first year, the new solver was optional and provided improved fidelity and greater performance compared to the previously used spring solver.
In 2016, we added support for a diverse set of new physics constraints, incentivizing developers to migrate to the new solver and extending the creative capabilities of the physics engine. Any new places used the PGS solver by default, with the option of reverting back to the classic solver.
We ironed out some stability issues associated with high mass differences and complex mechanisms by the introduction of the hybrid LDL-PGS solver in mid-2018. This made the old solver obsolete, and it was completely disabled in 2019, automatically migrating all places to the PGS.
In 2019, the performance was further improved using multi-threading that splits the simulation into jobs consisting of connected islands of simulating parts. We still had performance issues related to the LDL that we finally resolved in early 2020.
The physics engine is still being improved and optimized for performance, and we plan on adding new features for the foreseeable future.

Implementing the Laws of Physics

📷
The main objective of a physics engine is to simulate the motion of bodies in a virtual environment. In our physics engine, we care about bodies that are rigid, that collide and have constraints with each other.
A physics engine is organized into two phases: collision detection and solving. Collision detection finds intersections between geometries associated with the rigid bodies, generating appropriate collision information such as collision points, normals and penetration depths. Then a solver updates the motion of rigid bodies under the influence of the collisions that were detected and constraints that were provided by the user.
📷
The motion is the result of the solver interpreting the laws of physics, such as conservation of energy and momentum. But doing this 100% accurately is prohibitively expensive, and the trick to simulating it in real-time is to approximate to increase performance, as long as the result is physically realistic. As long as the basic laws of motion are maintained within a reasonable tolerance, this tradeoff is completely acceptable for a computer game simulation.

Taking Small Steps

The main idea of the physics engine is to discretize the motion using time-stepping. The equations of motion of constrained and unconstrained rigid bodies are very difficult to integrate directly and accurately. The discretization subdivides the motion into small time increments, where the equations are simplified and linearized making it possible to solve them approximately. This means that during each time step the motion of the relevant parts of rigid bodies that are involved in a constraint is linearly approximated.
📷📷
Although a linearized problem is easier to solve, it produces drift in a simulation containing non-linear behaviors, like rotational motion. Later we’ll see mitigation methods that help reduce the drift and make the simulation more plausible.

Solving

📷
Having linearized the equations of motion for a time step, we end up needing to solve a linear system or linear complementarity problem (LCP). These systems can be arbitrarily large and can still be quite expensive to solve exactly. Again the trick is to find an approximate solution using a faster method. A modern method to approximately solve an LCP with good convergence properties is the Projected Gauss-Seidel (PGS). It is an iterative method, meaning that with each iteration the approximate solution is brought closer to the true solution, and its final accuracy depends on the number of iterations.
📷
This animation shows how a PGS solver changes the positions of the bodies at each step of the iteration process, the objective being to find the positions that respect the ball and socket constraints while preserving the center of mass at each step (this is a type of positional solver used by the IK dragger). Although this example has a simple analytical solution, it’s a good demonstration of the idea behind the PGS. At each step, the solver fixes one of the constraints and lets the other be violated. After a few iterations, the bodies are very close to their correct positions. A characteristic of this method is how some rigid bodies seem to vibrate around their final position, especially when coupling interactions with heavier bodies. If we don’t do enough iterations, the yellow part might be left in a visibly invalid state where one of its two constraints is dramatically violated. This is called the high mass ratio problem, and it has been the bane of physics engines as it causes instabilities and explosions. If we do too many iterations, the solver becomes too slow, if we don’t it becomes unstable. Balancing the two sides has been a painful and long process.

Mitigation Strategies

📷A solver has two major sources of inaccuracies: time-stepping and iterative solving (there is also floating point drift but it’s minor compared to the first two). These inaccuracies introduce errors in the simulation causing it to drift from the correct path. Some of this drift is tolerable like slightly different velocities or energy loss, but some are not like instabilities, large energy gains or dislocated constraints.
Therefore a lot of the complexity in the solver comes from the implementation of methods to minimize the impact of computational inaccuracies. Our final implementation uses some traditional and some novel mitigation strategies:
  1. Warm starting: starting with the solution from a previous time-step to increase the convergence rate of the iterative solver
  2. Post-stabilization: reprojecting the system back to the constraint manifold to prevent constraint drift
  3. Regularization: adding compliance to the constraints ensuring a solution exists and is unique
  4. Pre-conditioning: using an exact solution to a linear subsystem, improving the stability of complex mechanisms
Strategies 1, 2 and 3 are pretty traditional, but 3 has been improved and perfected by us. Also, although 4 is not unheard of, we haven’t seen any practical implementation of it. We use an original factorization method for large sparse constraint matrices and a new efficient way of combining it with the PGS. The resulting implementation is only slightly slower compared to pure PGS but ensures that the linear system coming from equality constraints is solved exactly. Consequently, the equality constraints suffer only from drift coming from the time discretization. Details on our methods are contained in my GDC 2020 presentation. Currently, we are investigating direct methods applied to inequality constraints and collisions.

Getting More Details

Traditionally there are two mathematical models for articulated mechanisms: there are reduced coordinate methods spearheaded by Featherstone, that parametrize the degrees of freedom at each joint, and there are full coordinate methods that use a Lagrangian formulation.
We use the second formulation as it is less restrictive and requires much simpler mathematics and implementation.
The Roblox engine uses analytical methods to compute the dynamic response of constraints, as opposed to penalty methods that were used before. Analytics methods were initially introduced in Baraff 1989, where they are used to treat both equality and non-equality constraints in a consistent manner. Baraff observed that the contact model can be formulated using quadratic programming, and he provided a heuristic solution method (which is not the method we use in our solver).
Instead of using force-based formulation, we use an impulse-based formulation in velocity space, originally introduced by Mirtich-Canny 1995 and further improved by Stewart-Trinkle 1996, which unifies the treatment of different contact types and guarantees the existence of a solution for contacts with friction. At each timestep, the constraints and collisions are maintained by applying instantaneous changes in velocities due to constraint impulses. An excellent explanation of why impulse-based simulation is superior is contained in the GDC presentation of Catto 2014.
The frictionless contacts are modeled using a linear complementarity problem (LCP) as described in Baraff 1994. Friction is added as a non-linear projection onto the friction cone, interleaved with the iterations of the Projected Gauss-Seidel.
The numerical drift that introduces positional errors in the constraints is resolved using a post-stabilization technique using pseudo-velocities introduced by Cline-Pai 2003. It involves solving a second LCP in the position space, which projects the system back to the constraint manifold.
The LCPs are solved using a PGS / Impulse Solver popularized by Catto 2005 (also see Catto 2009). This method is iterative and considers each individual constraints in sequence and resolves it independently. Over many iterations, and in ideal conditions, the system converges to a global solution.
Additionally, high mass ratio issues in equality constraints are ironed out by preconditioning the PGS using the sparse LDL decomposition of the constraint matrix of equality constraints. Dense submatrices of the constraint matrix are sparsified using a method we call Body Splitting. This is similar to the LDL decomposition used in Baraff 1996, but allows more general mechanical systems, and solves the system in constraint space. For more information, you can see my GDC 2020 presentation.
The architecture of our solver follows the idea of Guendelman-Bridson-Fedkiw, where the velocity and position stepping are separated by the constraint resolution. Our time sequencing is:
  1. Advance velocities
  2. Constraint resolution in velocity space and position space
  3. Advance positions
This scheme has the advantage of integrating only valid velocities, and limiting latency in external force application but allowing a small amount of perceived constraint violation due to numerical drift.
An excellent reference for rigid body simulation is the book Erleben 2005 that was recently made freely available. You can find online lectures about physics-based animation, a blog by Nilson Souto on building a physics engine, a very good GDC presentation by Erin Catto on modern solver methods, and forums like the Bullet Physics Forum and GameDev which are excellent places to ask questions.

In Conclusion

The field of game physics simulation presents many interesting problems that are both exciting and challenging. There are opportunities to learn a substantial amount of cool mathematics and physics and to use modern optimizations techniques. It’s an area of game development that tightly marries mathematics, physics and software engineering.
Even if Roblox has a good rigid body physics engine, there are areas where it can be improved and optimized. Also, we are working on exciting new projects like fracturing, deformation, softbody, cloth, aerodynamics and water simulation.
Neither Roblox Corporation nor this blog endorses or supports any company or service. Also, no guarantees or promises are made regarding the accuracy, reliability or completeness of the information contained in this blog.
This blog post was originally published on the Roblox Tech Blog.
© 2020 Roblox Corporation. All Rights Reserved.

Using Clang to Minimize Global Variable Use

July

23, 2020

by RandomTruffle
PRODUCT & TECH
Every non-trivial program has at least some amount of global state, but too much can be a bad thing. In C++ (which constitutes close to 100% of Roblox’s engine code) this global state is initialized before main() and destroyed after returning from main(), and this happens in a mostly non-deterministic order. In addition to leading to confusing startup and shutdown semantics that are difficult to reason about (or change), it can also lead to severe instability.
Roblox code also creates a lot of long-running detached threads (threads which are never joined and just run until they decide to stop, which might be never). These two things together have a very serious negative interaction on shutdown, because long-running threads continue accessing the global state that is being destroyed. This can lead to elevated crash rates, test suite flakiness, and just general instability.
The first step to digging yourself out of a mess like this is to understand the extent of the problem, so in this post I’m going to talk about one technique you can use to gain visibility into your global startup flow. I’m also going to discuss how we are using this to improve stability across the entire Roblox game engine platform by decreasing our use of global variables.

Introducing -finstrument-functions

Nothing excites me more than learning about a new obscure compiler option that I’ve never had a use for before, so I was pretty happy when a colleague pointed me to this option in the Clang Command Line Reference. I’d never used it before, but it sounded very cool. The idea being that if we could get the compiler to tell us every time it entered and exited a function, we could filter this information through a symbolizer of some kind and generate a report of functions that a) occur before main(), and b) are the very first function in the call-stack (indicating it’s a global).
Unfortunately, the documentation basically just tells you that the option exists with no mention of how to use it or if it even actually does what it sounds like it does. There’s also two different options that sound similar to each other (-finstrument-functions and -finstrument-functions-after-inlining), and I still wasn’t entirely sure what the difference was. So I decided to throw up a quick sample on godbolt to see what happened, which you can see here. Note there are two assembly outputs for the same source listing. One uses the first option and the other uses the second option, and we can compare the assembly output to understand the differences. We can gather a few takeaways from this sample:
  1. The compiler is injecting calls to __cyg_profile_func_enter and __cyg_profile_func_exit inside of every function, inline or not.
  2. The only difference between the two options occurs at the call-site of an inline function.
  3. With -finstrument-functions, the instrumentation for the inlined function is inserted at the call-site, whereas with -finstrument-functions-after-inlining we only have instrumentation for the outer function. This means that when using-finstrument-functions-after-inlining you won’t be able to determine which functions are inlined and where.
Of course, this sounds exactly like what the documentation said it did, but sometimes you just need to look under the hood to convince yourself.
To put all of this another way, if we want to know about calls to inline functions in this trace we need to use -finstrument-functions because otherwise their instrumentation is silently removed by the compiler. Sadly, I was never able to get -finstrument-functions to work on a real example. I would always end up with linker errors deep in the Standard C++ Library which I was unable to figure out. My best guess is that inlining is often a heuristic, and this can somehow lead to subtle ODR (one-definition rule) violations when the optimizer makes different inlining decisions from different translation units. Luckily global constructors (which is what we care about) cannot possibly be inlined anyway, so this wasn’t a problem.
I suppose I should also mention that I still got tons of linker errors with -finstrument-functions-after-inlining as well, but I did figure those out. As best as I can tell, this option seems to imply –whole-archive linker semantics. Discussion of –whole-archive is outside the scope of this blog post, but suffice it to say that I fixed it by using linker groups (e.g. -Wl,–start-group and -Wl,–end-group) on the compiler command line. I was a bit surprised that we didn’t get these same linker errors without this option and still don’t totally understand why. If you happen to know why this option would change linker semantics, please let me know in the comments!

Implementing the Callback Hooks

If you’re astute, you may be wondering what in the world __cyg_profile_func_enter and __cyg_profile_func_exit are and why the program is even successfully linking in the first without giving undefined symbol reference errors, since the compiler is apparently trying to call some function we’ve never defined. Luckily, there are some options that allow us to see inside the linker’s algorithm so we can find out where it’s getting this symbol from to begin with. Specifically, -y should tell us how the linker is resolving . We’ll try it with a dummy program first and a symbol that we’ve defined ourselves, then we’ll try it with __cyg_profile_func_enter .
zturner@ubuntu:~/src/sandbox$ cat instr.cpp int main() {} zturner@ubuntu:~/src/sandbox$ clang++-9 -fuse-ld=lld -Wl,-y -Wl,main instr.cpp /usbin/../lib/gcc/x86_64-linux-gnu/crt1.o: reference to main /tmp/instr-5b6c60.o: definition of main
No surprises here. The C Runtime Library references main(), and our object file defines it. Now let’s see what happens with __cyg_profile_func_enter and -finstrument-functions-after-inlining.
zturner@ubuntu:~/src/sandbox$ clang++-9 -fuse-ld=lld -finstrument-functions-after-inlining -Wl,-y -Wl,__cyg_profile_func_enter instr.cpp /tmp/instr-8157b3.o: reference to __cyg_profile_func_enter /lib/x86_64-linux-gnu/libc.so.6: shared definition of __cyg_profile_func_enter
Now, we see that libc provides the definition, and our object file references it. Linking works a bit differently on Unix-y platforms than it does on Windows, but basically this means that if we define this function ourselves in our cpp file, the linker will just automatically prefer it over the shared library version. Working godbolt link without runtime output is here. So now you can kind of see where this is going, however there are still a couple of problems left to solve.
  1. We don’t want to do this for a full run of the program. We want to stop as soon as we reach main.
  2. We need a way to symbolize this trace.
The first problem is easy to solve. All we need to do is compare the address of the function being called to the address of main, and set a flag indicating we should stop tracing henceforth. (Note that taking the address of main is undefined behavior[1], but for our purposes it gets the job done, and we aren’t shipping this code, so ¯\_(ツ)_/¯). The second problem probably deserves a little more discussion though.

Symbolizing the Traces

In order to symbolize these traces, we need two things. First, we need to store the trace somewhere on persistent storage. We can’t expect to symbolize in real time with any kind of reasonable performance. You can write some C code to save the trace to some magic filename, or you can do what I did and just write it to stderr (this way you can pipe stderr to some file when you run it).
Second, and perhaps more importantly, for every address we need to write out the full path to the module the address belongs to. Your program loads many shared libraries, and in order to translate an address into a symbol, we have to know which shared library or executable the address actually belongs to. In addition, we have to be careful to write out the address of the symbol in the file on disk. When your program is running, the operating system could have loaded it anywhere in memory. And if we’re going to symbolize it after the fact we need to make sure we can still reference it after the information about where it was loaded in memory is lost. The linux function dladdr() gives us both pieces of information we need. A working godbolt sample with the exact implementation of our instrumentation hooks as they appear in our codebase can be found here.

Putting it All Together

Now that we have a file in this format saved on disk, all we need to do is symbolize the addresses. addr2line is one option, but I went with llvm-symbolizer as I find it more robust. I wrote a Python script to parse the file and symbolize each address, then print it in the same “visual” hierarchical format that the original output file is in. There are various options for filtering the resulting symbol list so that you can clean up the output to include only things that are interesting for your case. For example, I filtered out any globals that have boost:: in their name, because I can’t exactly go rewrite boost to not use global variables.
The script isn’t as simple as you would think, because simply crawling each line and symbolizing it would be unacceptably slow (when I tried this, it took over 2 hours before I finally killed the process). This is because the same address might appear thousands of times, and there’s no reason to run llvm-symbolizer against the same address multiple times. So there’s a lot of smarts in there to pre-process the address list and eliminate duplicates. I won’t discuss the implementation in more detail because it isn’t super interesting. But I’ll do even better and provide the source!
So after all of this, we can run any one of our internal targets to get the call tree, run it through the script, and then get output like this (actual output from a Roblox process, source file information removed):
excluded_symbols = [‘.\boost.*’]* excluded_modules = [‘/usr.\’]* /uslib/x86_64-linux-gnu/libLLVM-9.so.1: 140 unique addresses InterestingRobloxProcess: 38928 unique addresses /uslib/x86_64-linux-gnu/libstdc++.so.6: 1 unique addresses /uslib/x86_64-linux-gnu/libc++.so.1: 3 unique addresses Printing call tree with depth 2 for 29276 global variables. __cxx_global_var_init.5 (InterestingFile1.cpp:418:22) RBX::InterestingRobloxClass2::InterestingRobloxClass2() (InterestingFile2.cpp.:415:0) __cxx_global_var_init.19 (InterestingFile2.cpp:183:34) (anonymous namespace)::InterestingRobloxClass2::InterestingRobloxClass2() (InterestingFile2.cpp:171:0) __cxx_global_var_init.274 (InterestingFile3.cpp:2364:33) RBX::InterestingRobloxClass3::InterestingRobloxClass3()
So there you have it: the first half of the battle is over. I can run this script on every platform, compare results to understand what order our globals are actually initialized in in practice, then slowly migrate this code out of global initializers and into main where it can be deterministic and explicit.

Future Work

It occurred to me sometime after implementing this that we could make a general purpose profiling hook that exposed some public symbols (dllexport’ed if you speak Windows), and allowed a plugin module to hook into this dynamically. This plugin module could filter addresses using whatever arbitrary logic that it was interested in. One interesting use case I came up for this is that it could look up the debug information, check if the current address maps to the constructor of a function local static, and write out the address if so. This effectively allows us to gain a deeper understanding of the order in which our lazy statics are initialized. The possibilities are endless here.

Further Reading

If you’re interested in this kind of thing, I’ve collected a couple of my favorite references for this kind of topic.
  1. Various: The C++ Language Standard
  2. Matt Godbolt: The Bits Between the Bits: How We Get to main()
  3. Ryan O’Neill: Learning Linux Binary Analysis
  4. Linkers and Loaders: John R. Levine
  5. https://eel.is/c++draft/basic.exec#basic.start.main-3
Neither Roblox Corporation nor this blog endorses or supports any company or service. Also, no guarantees or promises are made regarding the accuracy, reliability or completeness of the information contained in this blog.
submitted by jaydenweez to u/jaydenweez [link] [comments]

Extons. IO An Easy Step-Through Crystal Financial Trade

Extons. IO An Easy Step-Through Crystal Financial Trade
Premiere
I have spoken before about Extons in my article so there's no cause to talk again about it, but I'd like to give any new visitors a quick introduction. Extons is a central platform established in 2020 that strives first and foremost to serve a wide range of crypto assets. It will help traders and companies grow quickly with its low-cost and fast transactions. This is a product of the ecosystem Thisoption.
EXTONS, what are they?
EXTONS is an exchange of cryptocurrency that supports a broad range of crypto active assets for trading. There are

https://preview.redd.it/lk8jflln97i51.jpg?width=960&format=pjpg&auto=webp&s=b460d349f9bea89fb5aac61dc617ce1898160789
five ecosystems of this option designed for traders around the world to launch. Its central crypto-monetary exchange is part of the ecosystem and technology of this Option. This supports many payment platforms that have fiat and crypto properties, and KYC wants to use this platform's software. This site was created in June 2020.
Business Framework
Security
The most important thing is the safety of a multi-model structure. A reliable business service would be offered to the consumers, with the best front end and back end services with a multilingual interface. There are many protection mechanisms used to avoid fraud and business manipulations.
An experience by strongest consumers:
The interface is quick and user-friendly. It is essential to provide the customer with the best market trading experience. Customer service is accessible online 24/7 to assist the dealer. This will ensure that all transactions are carried out smoothly.
Supports a broad variety of crypto assets:
Big cryptocurrency pairs and their trading practices are eligible for sale. This service is quite large, but it's very simple. Traders from around the globe will be able to use this platform and be part of the potential growth of this ecosystem. The big crypto assets have already been identified, so adding is one direction.
Liquidity:
Liquidity is also a crucial element that other exchanges have struggled to accomplish. Without ample liquidity, the trader would not be able to use this platform easily. Liquidity can offer more than 250 market parameters of new technologies and services.
What's Thisoption?
Thisoption is a Binary Options Trading System that is a part of the environment of this choice. It was founded in 2016 and has more than 700,000 members and continues to grow in numbers. The team is working to render this application simpler and easy to use. Investors will gain up to 80% of their investment in just 60 seconds. Users will get more than 100 trading assets that can be accessed from any device.
Is this choice perfect for trading?
This is a huge platform for traders to make a good return on investment in a short period of time. This platform provides specialized resources and apps for trades, and their support team is really helpful and supports users in any case. Every type of traders, whether pro or new, can participate on the platform, and support is there to help them learn about markets and how to trade.
https://preview.redd.it/94ybzc9n97i51.jpg?width=960&format=pjpg&auto=webp&s=751f33db79c4200d0889ae7ffbf21d42999b5f7c
The ecosystem of TONS Token
There are five components of the TONS Environment. They're-
  1. Thisoption:(Thisoption is a Binary Options Exchange)
  2. TONSPAY:(Its a payment portal in the ecosystem.)
  3. TONSTRADE:(APP TONSTRADE)
  4. EXTONS:(Cryptocurrency exchange)
  5. TONSFX:(TONSFX is a Forex exchange)
conclusion
A cryptocurrency is a huge place and one of the fastest-growing financial industries. There are over 300 active exchanges and several of them also supply the markets with ample liquidity. The EXTON.IO team is committed to delivering the finest trading experience for all its customers. They're also a lot of cool features and services for traders and willing to add more as their users want. It's a market that will help a wide variety of traders and customers around the globe. With its wide range of services, it can attract traders and investors to its ecosystem.

Website || Thisoption || Whitepaper || Telegram || Facebook || Medium

Author: u/thorex25
Disclaimer
This article is not meant to give commercial or any other kind of advice. It is just an informative text at all.
submitted by dojogang to DigitalCryptoWorld [link] [comments]

Binary Options Review; Best Binary Options Brokers

Binary Options Review; Best Binary Options Brokers

Binary Options Review; Best Binary Options Brokers
We have compared the best regulated binary options brokers and platforms in May 2020 and created this top list. Every binary options company here has been personally reviewed by us to help you find the best binary options platform for both beginners and experts. The broker comparison list below shows which binary trading sites came out on top based on different criteria.
You can put different trading signals into consideration such as using payout (maximum returns), minimum deposit, bonus offers, or if the operator is regulated or not. You can also read full reviews of each broker, helping you make the best choice. This review is to ensure traders don't lose money in their trading account.
How to Compare Brokers and Platforms
In order to trade binary options, you need to engage the services of a binary options broker that accepts clients from your country e.g. check US trade requirements if you are in the United States. Here at bitcoinbinaryoptionsreview.com, we have provided all the best comparison factors that will help you select which trading broker to open an account with. We have also looked at our most popular or frequently asked questions, and have noted that these are important factors when traders are comparing different brokers:
  1. What is the Minimum Deposit? (These range from $5 or $10 up to $250)
  2. Are they regulated or licensed, and with which regulator?
  3. Can I open a Demo Account?
  4. Is there a signals service, and is it free?
  5. Can I trade on my mobile phone and is there a mobile app?
  6. Is there a Bonus available for new trader accounts? What are the Terms and
  7. conditions?
  8. Who has the best binary trading platform? Do you need high detail charts with technical analysis indicators?
  9. Which broker has the best asset lists? Do they offer forex, cryptocurrency, commodities, indices, and stocks – and how many of each?
  10. Which broker has the largest range of expiry times (30 seconds, 60 seconds, end of the day, long term, etc?)
  11. How much is the minimum trade size or amount?
  12. What types of options are available? (Touch, Ladder, Boundary, Pairs, etc)
  13. Additional Tools – Like Early closure or Metatrader 4 (Mt4) plugin or integration
  14. Do they operate a Robot or offer automated trading software?
  15. What is Customer Service like? Do they offer telephone, email and live chat customer support – and in which countries? Do they list direct contact details?
  16. Who has the best payouts or maximum returns? Check the markets you will trade.
The Regulated Binary Brokers
Regulation and licensing is a key factor when judging the best broker. Unregulated brokers are not always scams, or untrustworthy, but it does mean a trader must do more ‘due diligence’ before trading with them. A regulated broker is the safest option.
Regulators - Leading regulatory bodies include:
  • CySec – The Cyprus Securities and Exchange Commission (Cyprus and the EU)
  • FCA – Financial Conduct Authority (UK)
  • CFTC – Commodity Futures Trading Commission (US)
  • FSB – Financial Services Board (South Africa)
  • ASIC – Australia Securities and Investment Commission
There are other regulators in addition to the above, and in some cases, brokers will be regulated by more than one organization. This is becoming more common in Europe where binary options are coming under increased scrutiny. Reputable, premier brands will have regulation of some sort.
Regulation is there to protect traders, to ensure their money is correctly held and to give them a path to take in the event of a dispute. It should therefore be an important consideration when choosing a trading partner.
Bonuses - Both sign up bonuses and demo accounts are used to attract new clients. Bonuses are often a deposit match, a one-off payment, or risk-free trade. Whatever the form of a bonus, there are terms and conditions that need to be read.
It is worth taking the time to understand those terms before signing up or clicking accept on a bonus offer. If the terms are not to your liking then the bonus loses any attraction and that broker may not be the best choice. Some bonus terms tie in your initial deposit too. It is worth reading T&Cs before agreeing to any bonus, and worth noting that many brokers will give you the option to ‘opt-out’ of taking a bonus.
Using a bonus effectively is harder than it sounds. If considering taking up one of these offers, think about whether, and how, it might affect your trading. One common issue is that turnover requirements within the terms, often cause traders to ‘over-trade’. If the bonus does not suit you, turn it down.
How to Find the Right Broker
But how do you find a good broker? Well, that’s where BitcoinBinaryOptionsReview.com comes in. We assess and evaluate binary options brokers so that traders know exactly what to expect when signing up with them. Our financial experts have more than 20 years of experience in the financial business and have reviewed dozens of brokers.
Being former traders ourselves, we know precisely what you need. That’s why we’ll do our best to provide our readers with the most accurate information. We are one of the leading websites in this area of expertise, with very detailed and thorough analyses of every broker we encounter. You will notice that each aspect of any broker’s offer has a separate article about it, which just goes to show you how seriously we approach each company. This website is your best source of information about binary options brokers and one of your best tools in determining which one of them you want as your link to the binary options market.
Why Use a Binary Options Trading Review?
So, why is all this relevant? As you may already know, it is difficult to fully control things that take place online. There are people who only pose as binary options brokers in order to scam you and disappear with your money. True, most of the brokers we encounter turn out to be legit, but why take unnecessary risks?
Just let us do our job and then check out the results before making any major decisions. All our investigations regarding brokers’ reliability can be seen if you click on our Scam Tab, so give it a go and see how we operate. More detailed scam reports than these are simply impossible to find. However, the most important part of this website can be found if you go to our Brokers Tab.
There you can find extensive analyses of numerous binary options brokers irrespective of your trading strategy. Each company is represented with an all-encompassing review and several other articles dealing with various aspects of their offer. A list containing the very best choices will appear on your screen as you enter our website whose intuitive design will allow you to access all the most important information in real-time.
We will explain minimum deposits, money withdrawals, bonuses, trading platforms, and many more topics down to the smallest detail. Rest assured, this amount of high-quality content dedicated exclusively to trading cannot be found anywhere else. Therefore, visiting us before making any important decisions regarding this type of trading is the best thing to do.
CONCLUSION: Stay ahead of the market, and recover from all kinds of binary options trading loss, including market losses in bitcoin, cryptocurrency, and forex markets too. Send your request via email to - expressrecoverypro@yahoo.com
submitted by Babyelijah to u/Babyelijah [link] [comments]

Полезно. ПО Fawkes - клоакинг фотографий для защиты от систем распознавания лиц. Защитите ваши фото ! Скачать ПО Fawkes. Как использовать ПО Fawkes установка. Image "Cloaking" for Personal Privacy. Fawkes Usage - Setup Instructions

Как защититься от системы распознавания лиц при помощи ПО Fawkes
Как защититься от массовой слежки и идентификации людей по лицу

Полезно. ПО Fawkes - клоакинг фотографий для защиты от систем распознавания лиц. Защитите ваши фото !
Скачать ПО Fawkes. Как использовать ПО Fawkes , установка.
Image "Cloaking" for Personal Privacy. Fawkes Usage - Setup Instructions

Алгоритм Fawkes эффективно подрывает базу обучения «вражеской» нейросети. Перед публикацией каждой фотографии в ней делаются незаметные попиксельные изменения, после чего она становится не то что непригодной для использования при обучении, а буквально портит систему распознавания лиц.

Обработайте ваши фотографии с помощью Fawkes -> Загружайте ваши фото в социальные сети

сайт: http://sandlab.cs.uchicago.edu/fawkes/

Fawkes - Image "Cloaking" for Personal Privacy
For more information about the project, please refer to our project webpage http://sandlab.cs.uchicago.edu/fawkes/

Как использовать ПО Fawkes и установка - Fawkes Usage - Setup Instructions
https://github.com/Shawn-Shan/fawkes/blob/mastefawkes/README.md
https://github.com/Shawn-Shan/fawkes/tree/maste

Инструкции по установке Fawkes Setup Instructions
https://github.com/Shawn-Shan/fawkes/blob/mastefawkes/README.md
Publication & Presentation - PDF
Fawkes: Protecting Personal Privacy against Unauthorized Deep Learning Models.
Shawn Shan, Emily Wenger, Jiayun Zhang, Huiying Li, Haitao Zheng, and Ben Y. Zhao.
In Proceedings of USENIX Security Symposium 2020. ( Download PDF here )
https://people.cs.uchicago.edu/%7Eravenben/publications/abstracts/fawkes-usenix20.html
https://people.cs.uchicago.edu/%7Eravenben/publications/pdf/fawkes-usenix20.pdf


Frequently Asked Questions http://sandlab.cs.uchicago.edu/fawkes/

---------------------------------

Скачать ПО Fawkes:

Downloads and Source Code - Version 0.3 (July 2020)
http://sandlab.cs.uchicago.edu/fawkes/

Download the Fawkes Software:

Fawkes.dmg for Mac (v0.3)
DMG file with installer app
Compatibility: MacOS 10.13, 10.14, 10.15
https://mirror.cs.uchicago.edu/fawkes/files/0.3/Fawkes-0.3.dmg

Fawkes.exe for Windows (v0.3)
EXE file
Compatibility: Windows 10
https://mirror.cs.uchicago.edu/fawkes/files/0.3/Fawkes-0.3.exe

Бинарник для Mac
Fawkes Executable Binary
https://mirror.cs.uchicago.edu/fawkes/files/0.3/fawkes_binary_mac-v0.3.zip

Бинарник для Windows
Fawkes Executable Binary
https://mirror.cs.uchicago.edu/fawkes/files/0.3/fawkes_binary_windows-v0.3.zip

Бинарник для Linux
Fawkes Executable Binary
https://mirror.cs.uchicago.edu/fawkes/files/0.3/fawkes_binary_linux-v0.3.zip

Инструкции по установке Setup Instructions
https://github.com/Shawn-Shan/fawkes/blob/mastefawkes/README.md

Исходный код Fawkes на GitHub
Fawkes Source Code on Github, for development
https://github.com/Shawn-Shan/fawkes

---------------------------------------------------------------------

Клоакинг фотографий для защиты от систем распознавания лиц

https://habr.com/ru/company/itsumma/news/t/512122/
23 июля 2020
Информационная безопасность,
Open source,
Обработка изображений,
Киберпанк
Современные системы распознавания лиц представляют угрозу личной приватности. Уже сейчас такие системы ежедневно сканируют миллионы лиц в Китае, Великобритании и России без их согласия. Поставлена задача, чтобы в следующем году 100% пассажиров в топ-20 аэропортов США незаметно подвергали этой процедуре.
https://www.whitehouse.gov/presidential-actions/executive-order-protecting-nation-foreign-terrorist-entry-united-states-2/


Исследователи из Чикагского университета придумали любопытный алгоритм клоакинга, который позволяет защититься от распознавания лиц.
http://sandlab.cs.uchicago.edu/fawkes/

Дело в том, что системы распознавания лиц берут фотографии для обучения своей системы из ваших открытых данных — в основном, из профилей в социальных сетях и других открытых источников.

Например, крупнейшая система распознавания лиц Clearview.ai для обучения использовала более трёх миллиардов фотографий из интернета и социальных сетей. Clearview.ai демонстрирует, насколько легко построить такую систему распознавания на снимках из Facebook и «Вконтакте».
https://clearview.ai/

https://www.nytimes.com/2020/01/18/technology/clearview-privacy-facial-recognition.html

Так вот, новый алгоритм Fawkes эффективно подрывает базу обучения «вражеской» нейросети. Перед публикацией каждой фотографии в ней делаются незаметные попиксельные изменения, после чего она становится не то что непригодной для использования при обучении, а буквально портит систему распознавания лиц.


Схема работы Fawkes https://hsto.org/webt/vu/r2/ao/vur2aoiyij6hcfibjxpfo8-q9b8.jpeg

Программа Fawkes работает локально на вашем компьютере и выполняет клоакинг фотографий. После обработки вы можете использовать фотографии как угодно — публиковать в социальных сетях, передавать друзьям или распечатывать на бумаге. В любом случае, для распознавания лиц они уже бесполезны, как показала проверка в ходе научного исследования чикагской группы.


Интуитивно понятное пояснение в 2D-пространстве из четырёх признаков A, B, U, T, почему модель, обученная на искажённых фотографиях, не распознаёт лица на оригиналах. Слева — границы принятия решений при обучении на оригиналах, справа — границы принятия решений при обучении после клоакинга
https://hsto.org/webt/gc/bq/f1/gcbqf1bgswyycpjzszuirvgjv6w.png

Тестирование показало, что эффект клоакинга трудно распознать при обучении нейросети и он не вызывает ошибок при обучении. Другими словами, операторы системы распознавания лиц не заподозрят ничего неладного. Но просто если кто-то попытается выполнить распознавание на вашем оригинальном изображении (например, с камер наблюдения), поиск по базе не найдёт совпадений.

Fawkes протестирован и показал эффективность 100% против самых известных моделей распознавания Microsoft Azure Face API, Amazon Rekognition и Face++.

Алгоритмы сжатия изображений тоже не портят защиту клоакинга. Исследователи проверяли материал на прогрессивном JPEG, который используется в Facebook и Twitter для пережатия картинок, на уровнях качества от 5 до 95. В общем, сжатие немного ослабляет защиту клоакинга, но при этом ещё более значительно снижается качество распознавания лиц. То есть нашей задачи помех в классификации это не мешает.

Как ни странно, заблюривание фотографий и применение разных графических фильтров тоже не снимает защиту, поскольку по своей сути клоакинг происходит не на уровне пикселей, а на уровне пространства признаков, то есть пиксельные измененимя на самом деле имеют глубокую природу и не стираются в растровом редакторе.

Техническая статья с описанием алгоритма (pdf) будет представлена на ближайшем симпозиуме USENIX по безопасности 12? 14 августа 2020 года.
http://people.cs.uchicago.edu/~ravenben/publications/pdf/fawkes-usenix20.pdf

Кстати, название программы позаимствовано от маски Гая Фокса из фильма «V — значит вендетта».

Скачать программу Fawkes: http://sandlab.cs.uchicago.edu/fawkes/
Open Source
Обработка изображений
Информационная безопасность
Киберпанк
Fawkes
распознавание лиц
клоакинг
V — значит вендетта
Информационная безопасность
Обработка изображений
Киберпанк

--------------------------------------------------------
How to Setup
Fawkes Binary
https://github.com/Shawn-Shan/fawkes/blob/mastefawkes/README.md

This application is built for individuals to cloak their images before uploading to the Internet. For more information about the project, please refer to our project webpage.

If you are a developer or researcher planning to customize and modify on our existing code. Please refer to fawkes.

How to Setup

MAC:

Download the binary following this link and unzip the download file.
Create a directory and move all the images you wish to protect into that directory. Note the path to that directory (e.g. ~/Desktop/images).
Open terminal and change directory to fawkes (the unzipped folder).
(If your MacOS is Catalina) Run sudo spctl --master-disable to enable running apps from unidentified developer. We are working on a solution to bypass this step.
Run ./protection-v0.3 -d IMAGE_DIR_PATH to generate cloak for images in IMAGE_DIR_PATH.
When the cloaked image is generated, it will output a *_min_cloaked.png image in IMAGE_DIR_PATH. The generation takes ~40 seconds per image depending on the hardware.

PC:

Download the binary following this link and unzip the download file.
Create a directory and move all the images you wish to protect into that directory. Note the path to that directory (e.g. ~/Desktop/images).
Open terminal(powershell or cmd) and change directory to protection (the unzipped folder).
Run protection-v0.3.exe -d IMAGE_DIR_PATH to generate cloak for images in IMAGE_DIR_PATH.
When the cloaked image is generated, it will output a *_min_cloaked.png image in IMAGE_DIR_PATH. The generation takes ~40 seconds per image depending on the hardware.

Linux:

Download the binary following this link and unzip the download file.
Create a directory and move all the images you wish to protect into that directory. Note the path to that directory (e.g. ~/Desktop/images).
Open terminal and change directory to protection (the unzipped folder).
Run ./protection-v0.3 -d IMAGE_DIR_PATH to generate cloak for images in IMAGE_DIR_PATH.
When the cloaked image is generated, it will output a *_min_cloaked.png image in IMAGE_DIR_PATH. The generation takes ~40 seconds per image depending on the hardware.

More details on the optional parameters check out the github repo
https://github.com/Shawn-Shan/fawkes/tree/maste
------------------------

Usage
Fawkes https://github.com/Shawn-Shan/fawkes/tree/maste

Fawkes is a privacy protection system developed by researchers at SANDLab, University of Chicago. For more information about the project, please refer to our project webpage. Contact us at [fawkes-team@googlegroups.com](mailto:fawkes-team@googlegroups.com).

We published an academic paper to summarize our work "Fawkes: Protecting Personal Privacy against Unauthorized Deep Learning Models" at USENIX Security 2020.

NEW! If you would like to use Fawkes to protect your identity, please check out our software and binary implementation on the website.
Copyright
This code is intended only for personal privacy protection or academic research.
We are currently exploring the filing of a provisional patent on the Fawkes algorithm.


Usage

$ fawkes

Options:

-m, --mode : the tradeoff between privacy and perturbation size. Select from min, low, mid, high. The higher the mode is, the more perturbation will add to the image and provide stronger protection.
-d, --directory : the directory with images to run protection.
-g, --gpu : the GPU id when using GPU for optimization.
--batch-size : number of images to run optimization together. Change to >1 only if you have extremely powerful compute power.
--format : format of the output image (png or jpg).

when --mode is custom:

--th : perturbation threshold
--max-step : number of optimization steps to run
--lr : learning rate for the optimization
--feature-extractor : name of the feature extractor to use
--separate_target : whether select separate targets for each faces in the diectory.

Example

fawkes -d ./imgs --mode min
Tips

The perturbation generation takes ~60 seconds per image on a CPU machine, and it would be much faster on a GPU machine. Use batch-size=1 on CPU and batch-size>1 on GPUs.
Turn on separate target if the images in the directory belong to different people, otherwise, turn it off.

How do I know my images are secure?

We are actively working on this. Python scripts that can test the protection effectiveness will be ready shortly.
Quick Installation

Install from PyPI:

pip install fawkes

If you don't have root privilege, please try to install on user namespace: pip install --user fawkes.


---------------------------------------------------------------------------------
Image "Cloaking" for Personal Privacy http://sandlab.cs.uchicago.edu/fawkes/

Original Cloaked
http://sandlab.cs.uchicago.edu/fawkes/images/shawn.jpg
http://sandlab.cs.uchicago.edu/fawkes/images/shawncloaked.jpg

Original Cloaked
http://sandlab.cs.uchicago.edu/fawkes/images/emily.jpg
http://sandlab.cs.uchicago.edu/fawkes/images/emilycloaked.jpg

2020 is a watershed year for machine learning. It has seen the true arrival of commodized machine learning, where deep learning models and algorithms are readily available to Internet users. GPUs are cheaper and more readily available than ever, and new training methods like transfer learning have made it possible to train powerful deep learning models using smaller sets of data.

But accessible machine learning also has its downsides. A recent New York Times article by Kashmir Hill profiled clearview.ai, an unregulated facial recognition service that has downloaded over 3 billion photos of people from the Internet and social media and used them to build facial recognition models for millions of citizens without their knowledge or permission. Clearview.ai demonstrates just how easy it is to build invasive tools for monitoring and tracking using deep learning.

So how do we protect ourselves against unauthorized third parties building facial recognition models that recognize us wherever we may go? Regulations can and will help restrict the use of machine learning by public companies but will have negligible impact on private organizations, individuals, or even other nation states with similar goals.

The SAND Lab at University of Chicago has developed Fawkes1, an algorithm and software tool (running locally on your computer) that gives individuals the ability to limit how their own images can be used to track them. At a high level, Fawkes takes your personal images and makes tiny, pixel-level changes that are invisible to the human eye, in a process we call image cloaking. You can then use these "cloaked" photos as you normally would, sharing them on social media, sending them to friends, printing them or displaying them on digital devices, the same way you would any other photo. The difference, however, is that if and when someone tries to use these photos to build a facial recognition model, "cloaked" images will teach the model an highly distorted version of what makes you look like you. The cloak effect is not easily detectable by humans or machines and will not cause errors in model training. However, when someone tries to identify you by presenting an unaltered, "uncloaked" image of you (e.g. a photo taken in public) to the model, the model will fail to recognize you.

Fawkes has been tested extensively and proven effective in a variety of environments and is 100% effective against state-of-the-art facial recognition models (Microsoft Azure Face API, Amazon Rekognition, and Face++). We are in the process of adding more material here to explain how and why Fawkes works. For now, please see the link below to our technical paper, which will be presented at the upcoming USENIX Security Symposium, to be held on August 12 to 14.

The Fawkes project is led by two PhD students at SAND Lab, Emily Wenger and Shawn Shan, with important contributions from Jiayun Zhang (SAND Lab visitor and current PhD student at UC San Diego) and Huiying Li, also a SAND Lab PhD student. The faculty advisors are SAND Lab co-directors and Neubauer Professors Ben Zhao and Heather Zheng.

1The Guy Fawkes mask, a la V for Vendetta

In addition to the photos of the team cloaked above, here are a couple more examples of cloaked images and their originals. Can you tell which is the original? (Cloaked image of the Queen courtesy of TheVerge).
Publication & Presentation

Fawkes: Protecting Personal Privacy against Unauthorized Deep Learning Models.
Shawn Shan, Emily Wenger, Jiayun Zhang, Huiying Li, Haitao Zheng, and Ben Y. Zhao.
In Proceedings of USENIX Security Symposium 2020. ( Download PDF here )
https://people.cs.uchicago.edu/%7Eravenben/publications/abstracts/fawkes-usenix20.html
https://people.cs.uchicago.edu/%7Eravenben/publications/pdf/fawkes-usenix20.pdf

-------------------------

***
Вступайте в наши сообщества - Join Us:
https://www.reddit.com/1_News/
и
https://www.reddit.com/True_Russia/

Делитесь со всеми, распространяйте информацию!
***
Революция в России. Фашизм в России. Власть в России оккупационная! Пора менять власть!

Что делать, как сменить власть в России на народную? Надо выходить на улицу на массовые многотысячные митинги - это единственное действенное решение.

Изменить ситуацию в России и сменить преступную власть мировых хозяев денег, путина и его банды из Совета безопасности, ФСБ и олигархов могут только протесты на улице:
постоянные массовые многотысячные протесты народа во многих городах и населенных пунктах России, протесты каждый день, протесты без уведомлений власти !

Организуйте митинги, шествия, марши по улицам, протест в виде уличной вечеринки.
Организуйте протесты каждый день в вашем районе! Мирный протест.
ПРОТЕСТЫ на УЛИЦЕ и МАССОВОСТЬ - это ГЛАВНОЕ для эффективного протеста и смены власти!
Руководство по сопротивлению. Советы по протестам. Как организовать сопротивление и мирные протесты. Советы как бороться. Как защищаться. Поведение на митинге. Как вести себя на митинге. Что делать на акции протеста, на митинге.

читайте "Руководство по сопротивлению. Советы по протестам - Часть №1":
https://www.reddit.com/True_Russia/comments/cjeply/

читайте "Руководство по сопротивлению. Советы по протестам. Часть №2":
https://www.reddit.com/True_Russia/comments/fk5d2p/

читайте "Руководство по сопротивлению. Советы по протестам. Часть №3":
https://www.reddit.com/True_Russia/comments/hs1dhi/

Руководства и советы по сопротивлению, протестам, митингам - читать тут:
https://www.reddit.com/True_Russia/collection/932a8f94-b44a-4737-ac25-fcb1428831a2
и
https://www.reddit.com/True_Russia/collection/78d163e1-cf30-4dbb-a153-053f71bede10/

Сохраните себе текст статьи - пригодится!
Распространяйте информацию. Поделитесь ссылкой. Поделитесь этой информацией с другими людьми. И просите друзей распространять информацию.

True Russia - Истинная Россия. Сопротивление. Мирный протест. Протесты на улице. Протестные Марши Шествие Митинги.
Борьба за народ России, за справедливость.
Resistance. Peaceful protest. Street protest. Protest Marches. Meeting Demonstrations

Фашизм в России Fascism in Russia. Social Justice Социальная Справедливость. Revolution in Russia Революция в России
Global News. IT Cybersecurity Privacy cybercrime Security and Surveillance. Top and breaking news, pictures and videos. International Journal business politics science economics видео video
Новости РФ и мира. Политика Наука Экономика. IT Информационная безопасность Защита данных. Руководства Советы Анонимность Защита от слежки. Обход блокировок сайтов и цензуры в России. Как защищаться от слежки. интернет Internet СОРМ Cybersecurity cybercrime privacy safety security anonymity and surveillance Тотальный контроль Total Control
сообщество сабреддит реддит на русском языке in Russian русский язык Russian language по-русски student студент студентка школа школьник школьница мем мэм мемы финансы силовики news resist protest социализм социалист солидарность сопротивление протест свобода единство борьба socialism socialist solidarity resistance protest freedom unity fighting видео video Кризис в России Мировой Кризис
***
submitted by DarkRedFist to True_Russia [link] [comments]

Subreddit Demographic Survey 2019 : The Results

Subreddit Demographic Survey 2019

1. Introduction

Once a year, this subreddit hosts a survey in order to get to know the community a little bit and in order to answer questions that are frequently asked here. Earlier this summer, a few thousand of you participated in a massive Subreddit Demographic Survey.
Unfortunately during the process of collating results we lost contact with SailorMercure, who in previous years has completed all of the data analysis from the Google form responses. We were therefore required to collate and analyse the responses from the raw data via Excel. I attach the raw data below for those who would like to review it. For 2020 we will be rebuilding the survey from scratch.
Raw Data
Multiple areas of your life were probed: general a/s/l, education, finances, religious beliefs, marital status, etc. They are separated in 10 sections:
  1. General Demographics
  2. Education Level
  3. Career and Finances
  4. Child Status
  5. Current Location
  6. Religion and Spirituality
  7. Sexual and Romantic Life
  8. Childhood and Family Life
  9. Sterilization
  10. Childfreedom

2. Methodology

Our sample is people from this subreddit who saw that we had a survey going on and were willing to complete the survey. A weekly stickied announcement was used to alert members of the community that a survey was being run.

3. Results

5,976 participants over the course of two months at a subscriber count of 588,488 (total participant ratio of slightly >1%)

3.1 General Demographics

5,976 participants in total

Age group

Age group Participants # Percentage
18 or younger 491 8.22%
19 to 24 1820 30.46%
25 to 29 1660 27.78%
30 to 34 1107 18.52%
35 to 39 509 8.52%
40 to 44 191 3.20%
45 to 49 91 1.52%
50 to 54 54 0.90%
55 to 59 29 0.49%
60 to 64 15 0.25%
65 to 69 4 0.07%
70 to 74 2 0.03%
75 or older 3 0.05%
84.97% of the sub is under the age of 35.

Gender and Gender Identity

4,583 participants out of 5,976 (71.54%) were assigned the gender of female at birth, 1,393 (23.31%) were assigned the gender of male at birth. Today, 4,275 (70.4%) participants identify themselves as female, 1,420 (23.76%) as male, 239 (4.00%) as non binary and 42 (0.7%) as other (from lack of other options).

Sexual Orientation

Sexual Orientation Participants # Percentage
Asexual 373 6.24%
Bisexual 1,421 23.78%
Heterosexual 3,280 54.89%
Homosexual 271 4.53%
It's fluid 196 3.28%
Other 95 1.59%
Pansexual 340 5.69%

Birth Location

Because the list contains over 120 countries, we'll show the top 20 countries:
Country of birth Participants # Percentage
United States 3,547 59.35%
Canada 439 7.35%
United Kingdom 414 6.93%
Australia 198 3.31%
Germany 119 1.99%
Netherlands 72 1.20%
France 68 1.14%
Poland 66 1.10%
India 59 0.99%
Mexico 49 0.82%
New Zealand 47 0.79%
Brazil 44 0.74%
Sweden 43 0.72%
Philippines 39 0.65%
Finland 37 0.62%
Russia 34 0.57%
Ireland 33 0.55%
Denmark 31 0.52%
Norway 30 0.50%
Belgium 28 0.47%
90.31% of the participants were born in these countries.

Ethnicity

That one was difficult for many reasons and didn't encompass all possibilities simply from lack of knowledge.
Ethnicity Participants # Percentage
Caucasian / White 4,583 76.69%
Hispanic / Latinx 332 5.56%
Multiracial 188 3.15%
East Asian 168 2.81%
Biracial 161 2.69%
African Descent / Black 155 2.59%
Indian / South Asian 120 2.01%
Other 83 1.39%
Jewish (the ethnicity, not the religion) 65 1.09%
Arab / Near Eastern / Middle Eastern 40 0.67%
American Indian or Alaskan Native 37 0.62%
Pacific Islander 24 0.40%
Aboriginal / Australian 20 0.33%

3.2 Education Level

5,976 participants in total

Current Level of Education

Highest Current Level of Education Participants # Percentage
Bachelor's degree 2061 34.49%
Some college / university 1309 21.90%
Master's degree 754 12.62%
Graduated high school / GED 721 12.06%
Associate's degree 350 5.86%
Trade / Technical / Vocational training 239 4.00%
Did not complete high school 238 3.98%
Professional degree 136 2.28%
Doctorate degree 130 2.18%
Post Doctorate 30 0.50%
Did not complete elementary school 8 0.13%

Future Education Plans

Educational Aims Participants # Percentage
I'm good where I am right now 1,731 28.97%
Master's degree 1,384 23.16%
Bachelor's degree 1,353 22.64%
Doctorate degree 639 10.69%
Vocational / Trade / Technical training 235 3.93%
Professional degree 214 3.58%
Post Doctorate 165 2.76%
Associate's degree 164 2.74%
Graduate high school / GED 91 1.52%
Of our 5,976 participants, a total of 1,576 (26.37%) returned to higher education after a break of 3+ years, the other 4,400 (73.76%) did not.
Degree (Major) Participants # Percentage
I don't have a degree or a major 1,010 16.90%
Other 580 9.71%
Health Sciences 498 8.33%
Engineering 455 7.61%
Information and Communication Technologies 428 7.16%
Arts and Music 403 6.74%
Social Sciences 361 6.04%
Business 313 5.24%
Life Sciences 311 5.20%
Literature and Languages 255 4.27%
Humanities 230 3.85%
Fundamental and Applied Sciences 174 2.91%
Teaching and Education Sciences 174 2.91%
Communication 142 2.38%
Law 132 2.21%
Economics and Politics 101 1.69%
Finance 94 1.57%
Social Sciences and Social Action 84 1.41%
Environment and Sustainable Development 70 1.17%
Marketing 53 0.89%
Administration and Management Sciences 52 0.87%
Environmental Planning and Design 24 0.40%
Fashion 18 0.30%
Theology and Religious Sciences 14 0.23%
A number of you commented in the free-form field at the end of the survey, that your degree was not present and that it wasn't related to any of the listed ones. We will try to mitigate this in the next survey!

3.3 Career and Finances

Out of the 5,976 participants, 2,199 (36.80%) work in the field they majored in, 953 (15.95%) graduated but do not work in their original field. 1,645 (27.53%) are still studying. The remaining 1,179 (19.73%) are either retired, currently unemployed or out of the workforce for unspecified reasons.
The top 10 industries our participants are working in are:
Industry Participants # Percentage
Health Care and Social Assistance 568 9.50%
Retail 400 6.69%
Arts, Entertainment, and Recreation 330 5.52%
College, University, and Adult Education 292 4.89%
Government and Public Administration 258 4.32%
Finance and Insurance 246 4.12%
Hotel and Food Services 221 3.70%
Scientific or Technical Services 198 3.31%
Software 193 3.23%
Information Services and Data Processing 169 2.83%
*Note that "other", "I'm a student" and "currently unemployed" have been disgregarded for this part of the evaluation.
Out of the 4,477 participants active in the workforce, the majority (1,632 or 36.45%) work between 40-50 hours per week, 34.73% (1,555) are working 30-40 hours weekly. Less than 6% work >50 h per week, and 23.87% (1,024 participants) less than 30 hours.
718 or 16.04% are taking over managerial responsibilities (ranging from Jr. to Sr. Management); 247 (5.52%) are self employed or partners.
On a scale of 1 (lowest) to 10 (highest), the overwhelming majority (4,009 or 67.09%) indicated that career plays a very important role in their lives, attributing a score of 7 and higher.
Only 663 (11.09%) gave it a score below 4, indicating a low importance.
The importance of climbing the career ladder is very evenly distributed across all participants and ranges in a harmonized 7-12% range for each of the 10 steps of importance.
23.71% (1,417) of the participants are making extra income with a hobby or side job.
From the 5,907 participants not already retired, the overwhelming majority of 3,608 (61.11%) does not actively seek early retirement. From those who are, most (1,024 / 17.34%) want to do so between 55-64; 7 and 11% respectively in the age brackets before or after. Less than 3.5% are looking for retirement below 45 years of age.
1,127 participants decided not to disclose their income brackets. The remaining 4,849 are distributed as follows:
Income Participants # Percentage
$0 to $14,999 1,271 26.21%
$15,000 to $29,999 800 16.50%
$30,000 to $59,999 1,441 29.72%
$60,000 to $89,999 731 15.08%
$90,000 to $119,999 300 6.19%
$120,000 to $149,999 136 2.80%
$150,000 to $179,999 67 1.38%
$180,000 to $209,999 29 0.60%
$210,000 to $239,999 22 0.45%
$240,000 to $269,999 15 0.31%
$270,000 to $299,999 5 0.10%
$300,000 or more 32 0.66%

3.4 Child Status

5,976 participants in total
94.44% of the participants (5,644) would call themselves "childfree" (as opposed to 5.56% of the participants who would not call themselves childfree. However, only 68.51% of the participants (4,094) do not have children and do not want them in any capacity at any point of the future. The other 31.49% have a varying degree of indecision, child wanting or child having on their own or their (future) spouse's part.
The 4,094 participants were made to participate in the following sections of the survey.

3.5 Current Location

4,094 childfree participants in total

Current Location

There were more than 200 options of country, so we are showing the top 10 CF countries.
Current Location Participants # Percentage
United States 2,495 60.94%
United Kingdom 331 8.09%
Canada 325 7.94%
Australia 146 3.57%
Germany 90 2.20%
Netherlands 66 1.61%
France 43 1.05%
Sweden 40 0.98%
New Zealand 33 0.81%
Poland 33 0.81%
The Top 10 amounts to 87.98% of the childfree participants' current location.

Current Location Qualification

These participants would describe their current city, town or neighborhood as:
Qualification Participants # Percentage
Urban 1,557 38.03%
Suburban 1,994 48.71%
Rural 543 13.26%

Tolerance to "Alternative Lifestyles" in Current Location

Figure 1
Figure 2
Figure 3

3.6 Religion and Spirituality

4094 childfree participants in total

Faith Originally Raised In

There were more than 50 options of faith, so we aimed to show the top 10 most chosen beliefs..
Faith Participants # Percentage
Christianity 2,624 64.09%
Atheism 494 12.07%
None (≠ Atheism. Literally, no notion of spirituality or religion in the upbringing) 431 10.53%
Agnosticism 248 6.06%
Judaism 63 1.54%
Other 45 1.10%
Hinduism 42 1.03%
Islam 40 0.98%
Buddhism 24 0.59%
Paganism 14 0.34%
This top 10 amounts to 98.3% of the 4,094 childfree participants.

Current Faith

There were more than 50 options of faith, so we aimed to show the top 10 most chosen beliefs:
Faith Participants # Percentage
Atheism 2,276 55.59%
Agnosticism 829 20.25%
Christianity 343 8.38%
Other 172 4.20%
Paganism 100 2.44%
Satanism 67 1.64%
Spiritualism 55 1.34%
Witchcraft 54 1.32%
Buddhism 43 1.05%
Judaism 30 0.73%
This top 10 amounts to 96.95% of the participants.

Level of Current Religious Practice

Level Participants # Percentage
Wholly secular / Non religious 3045 74.38%
Identify with religion, but don't practice strictly 387 9.45%
Lapsed / Not serious / In name only 314 7.67%
Observant at home only 216 5.28%
Observant at home. Church/Temple/Mosque/Etc. attendance 115 2.81%
Church/Temple/Mosque/Etc. attendance only 17 0.42%

Effect of Faith over Childfreedom

Figure 4

Effect of Childfreedom over Faith

Figure 5

3.7 Romantic and Sexual Life

4,094 childfree participants in total

Current Dating Situation

Status Participants # Percentage
Divorce 37 0.90
Engaged 215 5.25
Long term relationship, living together 758 18.51
Long term relationship, not living with together 502 12.26
Married 935 22.84
Other 69 1.69
Separated 10 0.24
Short term relationship 82 2.00
Single and dating around, but not looking for anything serious 234 5.72
Single and dating around, looking for something serious 271 6.62
Single and not looking 975 23.82
Widowed 6 0.15

Ethical Non-Monogamy

Non-monogamy (or nonmonogamy) is an umbrella term for every practice or philosophy of intimate relationship that does not strictly hew to the standards of monogamy, particularly that of having only one person with whom to exchange sex, love, and affection.
82.3% of the childfree participants do not practice ethical non-monogamy, as opposed to 17.7% who say they do.

Childfree Partner

Regarding to currently having a childfree or non childfree partner, excluding the 36.7% of childfree participants who said they do not have a partner at the moment. For this question only, only 2591 childfree participants are considered.
Partner Participants # Percentage
Childfree partner 2105 81.2%
Non childfree partner 404 9.9%
More than one partner; all childfree 53 1.3%
More than one partner; some childfree 24 0.9%
More than one partner; none childfree 5 0.2%

Dating a Single Parent

Would the childfree participants be willing to date a single parent?
Answer Participants # Percentage
No, I'm not interested in single parents and their ties to parenting life 3693 90.2
Yes, but only if it's a short term arrangement of some sort 139 3.4
Yes, whether for long term or short term, but with some conditions 161 3.9
Yes, whether for long term or short term, with no conditions 101 2.5

3.8 Childhood and Family Life

On a scale from 1 (very unhappy) to 10 (very happy), how would you rate your childhood?
Answer Participants # Percentage
1 154 3.8%
2 212 5.2%
3 433 10.6%
4 514 12.6%
5 412 10.1%
6 426 10.4%
7 629 15.4%
8 704 17.2%
9 357 8.7%
10 253 6.2%

3.9 Sterilization

4,094 childfree participants in total
Sterilization Status Participants # Percentage
No, I am not sterilized and, for medical, practical or other reasons, I do not need to be 687 16.8
No. However, I've been approved for the procedure and I'm waiting for the date to arrive 119 2.9
No. I am not sterilized and don't want to be 585 14.3
No. I want to be sterilized but I have started looking for a doctor (doctor shopping) 328 8.0
No. I want to be sterilized but I haven't started doctor shopping yet 1896 46.3
Yes. I am sterilized 479 11.7

Already Sterilized

479 sterilized childfree participants in total

Age when starting doctor shopping or addressing issue with doctor

Age group Participants # Percentage
18 or younger 37 7.7%
19 to 24 131 27.3%
25 to 29 159 33.2%
30 to 34 92 19.2%
35 to 39 47 9.8%
40 to 44 9 1.9%
45 to 49 1 0.2%
50 to 54 1 0.2%
55 or older 2 0.4%

Age at the time of sterilization

Age group Participants # Percentage
18 or younger 4 0.8%
19 to 24 83 17.3%
25 to 29 181 37.8%
30 to 34 121 25.3%
35 to 39 66 13.8%
40 to 44 17 3.5%
45 to 49 3 0.6%
50 to 54 1 0.2%
55 or older 3 0.6%

Elapsed time between requesting procedure and undergoing procedure

Time Participants # Percentage
Less than 3 months 280 58.5
Between 3 and 6 months 78 16.3
Between 6 and 9 months 20 4.2
Between 9 and 12 months 10 2.1
Between 12 and 18 months 17 3.5
Between 18 and 24 months 9 1.9
Between 24 and 30 months 6 1.3
Between 30 and 36 months 4 0.8
Between 3 and 5 years 19 4.0
Between 5 and 7 years 9 1.9
More than 7 years 27 5.6

How many doctors refused at first, before finding one who would accept?

Doctor # Participants # Percentage
None. The first doctor I asked said yes 340 71.0%
One. The second doctor I asked said yes 56 11.7%
Two. The third doctor I asked said yes 37 7.7%
Three. The fourth doctor I asked said yes 15 3.1%
Four. The fifth doctor I asked said yes 8 1.7%
Five. The sixth doctor I asked said yes 5 1.0%
Six. The seventh doctor I asked said yes 4 0.8%
Seven. The eighth doctor I asked said yes 1 0.2%
Eight. The ninth doctor I asked said yes 1 0.2%
I asked more than 10 doctors before finding one who said yes 12 2.5%

Approved, not Sterilized Yet

119 approved but not yet sterilised childfree participants in total. Owing to the zero participants who were approved but not yet sterilised in the 45+ age group in the 2018 survey, these categories were removed from the 2019 survey.

Age when starting doctor shopping or addressing issue with doctor

Age group Participants # Percentage
18 or younger 11 9.2%
19 to 24 42 35.3%
25 to 29 37 31.1%
30 to 34 23 19.3%
35 to 39 5 4.2%
40 to 45 1 0.8%

How many doctors refused at first, before finding one who would accept?

Doctor # Participants # Percentage
None. The first doctor I asked said yes 77 64.7%
One. The second doctor I asked said yes 12 10.1%
Two. The third doctor I asked said yes 12 10.1%
Three. The fourth doctor I asked said yes 5 4.2%
Four. The fifth doctor I asked said yes 2 1.7%
Five. The sixth doctor I asked said yes 4 3.4%
Six. The seventh doctor I asked said yes 1 0.8%
Seven. The eighth doctor I asked said yes 1 0.8%
Eight. The ninth doctor I asked said yes 0 0.0%
I asked more than ten doctors before finding one who said yes 5 4.2%

How long between starting doctor shopping and finding a doctor who said "Yes"?

Time Participants # Percentage
Less than 3 months 65 54.6%
3 to 6 months 13 10.9%
6 to 9 months 9 7.6%
9 to 12 months 1 0.8%
12 to 18 months 2 1.7%
18 to 24 months 2 1.7%
24 to 30 months 1 0.8%
30 to 36 months 1 0.8%
3 to 5 years 8 6.7%
5 to 7 years 6 5.0%
More than 7 years 11 9.2%

Age when receiving green light for sterilization procedure?

Age group Participants # Percentage
18 or younger 1 0.8%
19 to 24 36 30.3%
25 to 29 45 37.8%
30 to 34 27 22.7%
35 to 39 9 7.6%
40 to 44 1 0.8%

Not Sterilized Yet But Looking

328 searching childfree participants in total

How many doctors did you ask so far?

Doctor # Participants # Percentage
1 204 62.2%
2 61 18.6%
3 29 8.8%
4 12 3.7%
5 7 2.1%
6 6 1.8%
7 1 0.3%
8 1 0.3%
9 1 0.3%
More than 10 6 1.8%

How long have you been searching so far?

Time Participants # Percentage
Less than 3 months 117 35.7%
3 to 6 months 44 13.4%
6 to 9 months 14 4.3%
9 to 12 months 27 8.2%
12 to 18 months 18 5.5%
18 to 24 months 14 4.3%
24 to 30 months 17 5.2%
30 to 36 months 9 2.7%
3 to 5 years 35 10.7%
5 to 7 years 11 3.4%
More than 7 years 22 6.7%

At what age did you start searching?

Age group Participants # Percentage
18 or younger 50 15.2%
19 to 24 151 46.0%
25 to 29 86 26.2%
30 to 34 31 9.5%
35 to 39 7 2.1%
40 to 44 2 0.6%
45 to 54 1 0.3%

3.10 Childfreedom

4,094 childfree participants in total
Only 1.1% of the childfree participants (46 out of 4094) literally owns a jetski, but 46.1% of the childfree participants (1889 out of 4094) figuratively owns a jetski. A figurative jetski is an expensive material possession that purchasing would have been almost impossible had you had children.

Primary Reason to Not Have Children

Reason Participants # Percentage
Aversion towards children ("I don't like children") 1222 29.8
Childhood trauma 121 3.0
Current state of the world 87 2.1
Environmental (it includes overpopulation) 144 3.5
Eugenics ("I have "bad genes" ") 62 1.5
Financial 145 3.5
I already raised somebody else who isn't my child 45 1.1
Lack of interest towards parenthood ("I don't want to raise children") 1718 42.0
Maybe interested for parenthood, but not suited for parenthood 31 0.8
Medical ("I have a condition that makes conceiving/bearing/birthing children difficult, dangerous or lethal") 52 1.3
Other 58 1.4
Philosophical / Moral (e.g.: antinatalism) 136 3.3
Tokophobia (aversion/fear of pregnancy and/or chidlbirth) 273 6.7

4. Discussion

Section 1 : General Demographics

The demographics remain largely consistent with the 2018 survey. 85% of the participants are under 35, compared with 87.5% of the subreddit in the 2018 survey. 71.54% of the subreddit identify as female, compared with 70.4% in the 2018 survey. This is in contrast to the overall membership of Reddit, estimated at 74% male according to Reddit's Wikipedia page [https://en.wikipedia.org/wiki/Reddit#Users_and_moderators]. There was a marked drop in the ratio of members who identify as heterosexual, from 67.7% in the 2018 survey to 54.89% in the 2019 survey. Ethnicity wise, 77% of members identified as primarily Caucasian, a slight drop from the 2018 survey, where 79.6% of members identified as primarily Caucasian.
Further research may be useful to explore the unusually high female membership of /childfree and the potential reasons for this. It is possible that the results are skewed towards those more inclined to complete a survey.
In the 2018 survey the userbase identified the following missing ethicities:
This has been rectified in the current 2019 survey.

Section 2 : Education level

As it did in the 2018 survey, this section highlights the stereotype of childfree people as being well educated. 4% of participants did not complete high school, which is a slight increase from the 2018 survey, where 3.1% of participants did not graduate high school. This could potentially be explained by the slightly higher percentage of participants under 18. 5.6% of participants were under 18 at the time of the 2018 survey, and 8.2% of participants were under 18 at the time of the 2019 survey.
At the 2019 survey, the highest percentage of responses under the: What is your degree/major? question fell under "I don't have a degree or a major" (16.9%) and "other" (9.71%). However, of the participants who were able to select a degree and/or major, the most popular responses were:
Response Participants # Percentage
Health Sciences 498 8.33%
Engineering 455 7.61%
Information and Communication Technologies 428 7.16%
Arts and Music 403 6.74%
Social Sciences 361 6.04%
Compared to the 2018 survey, health sciences have overtaken engineering, however the top 5 majors remain the same. There is significant diversity in the subreddit with regards to chosen degree/major.

Section 3 : Career and Finances

The highest percentage of participants (17.7%) listed themselves as a student. However, of those currently working, significant diversity in chosen field of employment was noted. This is consistent with the 2018 survey. The highest percentage of people working in one of the fields listed remains in Healthcare and Social Services. This is slightly down from the 2018 survey (9.9%) to 9.5%.
One of the stereotypes of the childfree is of wealth. However this is not demonstrated in the survey results. 72.4% of participants earn under $60,000 USD per annum, while 87.5% earn under $90,000 per annum. 26.2% are earning under $15,000 per annum. The results remain largely consistent with the 2018 survey. 1127 participants, or 19% chose not to disclose this information. It is possible that this may have skewed the results if a significant proportion of these people were our high income earners, but impossible to explore.
A majority of our participants work between 30 and 50 hours per week (71.2%) which is markedly increased from the 2018 survey, where 54.6% of participants worked between 30 and 50 hours per week.

Section 4 : Child Status

This section solely existed to sift the childfree from the fencesitters and the non childfree in order to get answers only from the childfree. Childfree, as it is defined in the subreddit, is "I do not have children nor want to have them in any capacity (biological, adopted, fostered, step- or other) at any point in the future." 68.5% of participants actually identify as childfree, slightly up from the 2018 survey, where 66.3% of participants identified as childfree. This is suprising in reflection of the overall reputation of the subreddit across reddit, where the subreddit is often described as an "echo chamber".

Section 5 : Current Location

The location responses are largely similar to the 2018 survey with a majority of participants living in a suburban and urban area. 86.7% of participants in the 2019 survey live in urban and suburban regions, with 87.6% of participants living in urban and suburban regions in the 2018 survey. There is likely a multifactorial reason for this, encompassing the younger, educated skew of participants and the easier access to universities and employment, and the fact that a majority of the population worldwide localises to urban centres. There may be an element of increased progressive social viewpoints and identities in urban regions, however this would need to be explored further from a sociological perspective to draw any definitive conclusions.
A majority of our participants (60.9%) live in the USA. The United Kingdom (8.1%), Canada (7.9%), Australia (3.6%) and Germany (2.2%) encompass the next 4 most popular responses. Compared to the 2018 survey, there has been a slight drop in the USA membership (64%), United Kingdom membership (7.3%) Canadian membership (8.1%), Australian membership (3.8%). There has been a slight increase in German membership, up from 1.7%. This may reflect a growing globalisation of the childfree concept.

Section 6 : Religion and Spirituality

A majority of participants were raised Christian (64.1%) however the majority are currently aetheist (55.6%) or agnostic (20.25%). This is consistent with the 2018 survey results.
A majority of participants (62.8%) rated religion as "not at all influential" to the childfree choice. This is consistent with the 2018 survey where 60.9% rated religion as "not at all influential". Despite the high percentage of participants who identify as aetheist or agnostic, this does not appear to be related to or have an impact on the childfree choice.

Section 7 : Romantic and Sexual Life

60.7% of our participants are in a relationship at the time of the survey. This is an almost identical result to the 2018 survey, where 60.6% of our participants were in a relationship. A notable proportion of our participants are listed as single and not looking (23.8%) which is consistent with the 2018 survey. Considering the frequent posts seeking dating advice as a childfree person, it is surprising that such a high proportion of the participants are not actively seeking out a relationship.
Participants that practice ethical non-monogamy are unusual (17.7%) and this result is consistent with the results of the 2018 survey. Despite the reputuation for childfree people to live an unconventional lifestyle, this finding suggests that a majority of our participants are monogamous.
84.2% of participants with partners of some kind have at least one childfree partner. This is consistent with the often irreconcilable element of one party desiring children and the other wishing to abstain from having children.

Section 8 : Childhood and Family Life

Overall, the participants skew towards a happier childhood.

Section 9 : Sterilization

While just under half of our participants wish to be sterilised, 46.3%, only 11.7% have been successful in achieving sterilisation. This is likely due to overarching resistance from the medical profession however other factors such as the logistical elements of surgery and the cost may also contribute. This is also a decrease from the percentage of participants sterilised in the 2018 survey (14.8%). 31.1% of participants do not wish to be or need to be sterilised suggesting a partial element of satisfaction from temporary birth control methods or non-necessity from no sexual activity.
Of the participants who did achieve sterilisation, a majority began the search between 19 and 29, with the highest proportion being in the 25-29 age group (33.2%) This is a drop from the 2018 survey where 37.9% of people who started the search were between 25-29.
The majority of participants who sought out and were successful at achieving sterilisation, were again in the 25-29 age group (37.8%). This is consistent with the 2018 survey results.
Over half of the participants who were sterilised had the procedure completed in less than 3 months (58.5%). This is a decline from the number of participants who achieved sterilisation in 3 months in the 2018 survey (68%). The proportion of participants who have had one or more doctors refuse to perform the procedure has stayed consistent between the two surveys.

Section 10 : Childfreedom

The main reasons for people chosing the childfree lifestyle are a lack of interest towards parenthood and an aversion towards children. Of the people surveyed 63.8% are pet owners, suggesting that this lack of interest towards parenthood does not necessarily mean a lack of interest in all forms of caretaking. The community skews towards a dislike of children overall which correlates well with the 81.4% of users choosing "no, I do not have, did not use to have and will not have a job that makes me heavily interact with children on a daily basis" in answer to, "do you have a job that heavily makes you interact with children on a daily basis?".
A vast majority of the subreddit identifes as pro-choice (94.5%). This is likely due to a high level of concern about bodily autonomy and forced parenthood. However only 70% support financial abortion for the non-pregnant person in a relationship to sever all financial and parental ties with a child.
45.9% identify as feminist, however many users prefer to identify with egalitarianism or are unsure. Only 8% firmly do not identify as a feminist.
Most of our users realised that did not want children young. 60% of participants knew they did not want children by the age of 18, with 96% of users realising this by age 30. This correlates well with the age distribution of participants. Despite this early realisation of our childfree stance, 80.4% of participants have been "bingoed" at some stage in their lives. Only 13% of participants are opposed to parents making posts on this subreddit.
Bonus section: The Subreddit
In light of the "State of the Subreddit" survey from 2018, some of the questions from this survey were added to the current Subreddit Survey 2019.
By and large our participants were lurkers (66.17%). Our participants were divided on their favourite flairs with 33.34% selecting "I have no favourite". The next most favourite flair was "Rant", at 20.47%. Our participants were similarly divided on their least favourite flair, with 64.46% selecting "I have no least favourite". Potentially concerningly were the 42.01% of participants who selected "I have never participated on this sub", suggesting a disparity between members who contributed to this survey and members who actually participate in the subreddit. To further address this, next year's survey will clarify the "never participated" option by specifying that "never participated" means "never up/downvoting, reading posts or commenting" in addition to never posting.
A small minority of the survey participants (6.18%) selected "yes" to allowing polite, well meaning lectures. An even smaller minority (2.76%) selected "yes" to allowing angry, trolling lectures. In response to this lectures remain not tolerated, and removed on sight or on report.
Almost half of our users (49.95%) support the use of terms such as breeder, mombie/moo, daddict/duh on the subreddit, with a further 22.52% supporting use of these terms in context of bad parents only. In response to this use of the above and similar terms to describe parents remains permitted on ths subreddit.
55.3% of users support the use of terms to describe children such as crotchfruit on the subreddit, with a further 17.42% of users supporting the use of this and similar terms in context of bad children only. In response to this use of the above and similar terms to describe children remains permitted on ths subreddit.
56.03% of participants support allowing parents to post, with a further 28.77% supporting parent posts dependent on context. In response to this, parent posts will continue to be allowed on the subreddit. Furthermore 66.19% of participants support parents and non childfree making "I need your advice" posts, with a further 21.37% supporting these dependent on context. In light of these results we have decided to implement a new "regret" flair to better sort out parents from fencesitters, which will be trialed until the next subreddit survey due to concern from some of our members. 64.92% of participants support parents making "I support you guys" posts. Therefore, these will continue to be allowed.
71.03% of participants support under 18's who are childfree participating in the subreddit. Therefore we will continue to allow under 18's that stay within the overall Reddit age requirement.
We asked participants their opinion on moving Rants and Brants to a stickied weekly thread. Slightly less than half (49.73%) selected leaving them as they are in their own posts. In light of the fact that Rants are one of the participant's favourite flairs, we will leave them as they are.
There was divide among participants as to whether "newbie" questions should be removed. An even spread was noted among participants who selected remove and those who selected to leave them as is. We have therefore decided to leave them as is.

5. Conclusion

Thank you to our participants who contributed to the survey. To whoever commented, "Do I get a donut?", no you do not, but you get our appreciation for pushing through all of the questions!
Overall there have been few significant changes in the community from 2018.

Thank you also for all of your patience!

submitted by CFmoderator to childfree [link] [comments]

Binary Options 60 Seconds Indicator 99% Winning Live ... Binary Options Trading Software - Learn How To Profit In 60 Seconds binary options 60 seconds indicator - YouTube Binary options strategy - How to win 60 second trades ... 60 Second Binary Options Trading Strategy! Get My Software for FREE 60 Seconds binary options strategy 99 - 100% Winning (100% ... binary options 60 seconds software - YouTube BINARY OPTIONS: profitable strategy 60 seconds - YouTube 60 SEC Binary Options Strategy : Profitable Logical Sixty ... 60 Second Binary Options Strategy and Software - How I Make $22,000 in 14 hours!

Full Review of the Binary Informer Binary Options Signal Service . Binary Options signal providers, software, bots… my “favorite”. Every time I start reviewing such a signal/bot, I am prepared to be bored by the long sales pitch, but almost all the time they surprise me and I can’t help but laugh at their mambo jambo. Global Trader 365 is one of the few binary options brokers that are considered to play an extensive part in this field of finance investing. The company was established in the year 2011 which gave them ample experience when it comes to trading with digital options. They currently have an office in the British Virgin Islands while the trading software they are using is powered by SpotOption ... These offers can range from 75 to 85% which is a great return rate already. When it is out of the money it will give you a 10% return on investment. You can use different kinds of instruments for trading and these are the regular high/low binary options, 60 seconds, One Touch and Option Builder. Each trading instrument has its own expiry time ... Some sort of Binary Options Directional Indicator:Simply to make sure that i am crystal clear : it’s just a great Indicator, significance it’s going to point out that probable guidance with forthcoming charge : employ with own personal associated risk. “”Make confident to consider my own place regarding the White-colored Arrow Skilled Counsellor here” Trading Options. Once you are registered and signed in to your 24Option trading account, you can easily start a trade through the main page. Here, you can select between four binary options to invest on: High/Low, Boundary, One Touch, and 60 seconds trade. The pay-out offered will vary depending on the kind of trade you are making. They can ... Trading Options. SpotFN offers a high payout rate up to 85% for successful trades. On the other hand, a 10% refund is given to traders for out-of-the-money trades. There are several trading methods available at SpotFN including the traditional Binary Options, 60 Seconds, Target Options and Build an Option. Profit In 60 Seconds (ProfitIn60Seconds.exe). Profit In 60 Seconds is a binary options trading signals program that enables you to maximize your trading profits. The program allows you to find the best entry points either if you are buying or selling an instrument and it automatically executes your order to mark the profits. Very short-term profits are possible (at times within 60 seconds) Proven profit margins of 92,73%; Up to 81% return; Weekly options with actual returns of up to 500%; Free trial version for 90 days without entering details; Risk-minimized trade with indices, shares, commodities and Forex; Live statistics; Option-dependent loss-insurance up to 10% Cash every 60 seconds with binary options. Written by on March 12, 2015. how to stock trade platform reviews binary fx, binary options apple buddy 3 0, Binary trading trade video guide, is binary options trading genuine kas tai, stock exchange options broker trading strategy and risk management pdf, commodity futures get career stock trading commision, best 60 second binary option strategy ... Keywords: what binary options, 5 decimal 60 seconds binary options system, binary options 60 seconds software as a service, mass effect andromeda walkthrough ps4, mass effect andromeda cheats pc, horizon zero dawn walkthrough ps4

[index] [13382] [4254] [24050] [2349] [14742] [10459] [7756] [26494] [27136] [18762]

Binary Options 60 Seconds Indicator 99% Winning Live ...

Best Binary Options Brokers http://2by.us/best 90% Winning System http://buffettbots.com/ 60 Second Binary Options Strategy! - Version II Software! 60 Second Binary ... Mail: giovanni.colella93@yahoo.com telegram and whatsapp 3460784176 *link stars binary: https://starsbinary.com/ref/sb542 Fixed Time trading: Rute tercepat menuju dunia trading. Raih sukses trading setiap hari. Raih penghasilan dari fluktuasi nilai tukar dolar. *****... Hi Viewer I have Quite Binary Option Trading in 2018, And now you can learn FOREX from my new site http://fxhi5.com Free (Mastering FXHi5) -----... IQ option strategy. You can trade with $10,000 free http://bit.ly/trade-web 60 second strategy based on two simple indicators, and it is easy to follow. In m... Hi Friends I will Show This Video Binary Options 60 Seconds Indicator Signal 99% Winning Live Trading Proof -----... 60 Seconds binary options strategy 99 - 100% Winning (100% profit guaranteed) 90 - 95% Winning Binary Options Strategy in case of correct prediction - 1 to 5... Best Binary Options Brokers http://2by.us/best 90% Winning System http://buffettbots.com/ 60 Second Binary Options Strategy and Software - Helped make... Hello everyone!:) My name is Anastasia, but it's too hard to pronounce, that's why you may call me just ANA. I'm a pro trader for more than 2 years already a... Binary Options Trading Software - Learn How To Profit In 60 Seconds Looking for making profits in a safe and simple way? So do not waste your time and consider having the best auto trading software.

http://binaryoptiontrade.volgbeachvingligahy.tk