#11 Best Binary Options Brokers 2019 - [ Trusted Reviews ...

# /r/Peloton Pre-TDF Survey 2020

Gentlemen, Ladies and those otherwise addressed - we know you've been waiting for a good thing, and the survey results are finally ready!
The answers were collected from you all during August 2020 with 1428 unique replies. That's a participation of 0.5% of all subscribers! That's really not too bad, when you keep in mind how popular these kind of surveys are. But we here at /peloton want to show you that this is all about presenting the information in the subreddit to cater better to our audience!
Updated after a few hours to include some more historical data the final edit that for some reason wasn't copied properly
Year 2013 2014 2015 2016 2018 Mar 2018 Aug 2019 2020
Results 2013-06-12 2014-06-25 2015-08-07 2016-11-17 2018-03-06 2018-08-20 2019-07-22 2020-10-12
Replies 351 598 1395 892 630 928 986 1428
Without further ado, let's get cracking on the response

You and Cycling

1. Where do you live?

Country 2015 2016 2018 Mar 2018 Aug 2019 2020
USA 32% 28.3% 22.84% 25.32% 20.23% 24.59%
UK 18.6% 17.6% 14.70% 20.13% 15.48% 14.80%
Netherlands 6.4% 9.4% 11.50% 11.58% 10.01% 11.01%
Germany 3.73% 3.4% 4.95% 6.39% 7.84% 6.65%
Denmark 3.9% 3.6% 4.31% 3.79% 7.64% 5.79%
Belgium 3.8% 2.7% 8.15% 3.57% 5.78% 5.36%
France 2.01% 1.08% 2.88% 2.27% 5.26% 3.50%
Canada 4.9% 7% 6.39% 4.22% 4.95% 4.50%
Australia 5.2% 4.7% 3.83% 4.00% 4.33% 3.93%
Slovenia 0.73% 0.32% 1.30% 1.14% 2.14%
Norway 2.58% 1.8% 1.60% 1.95% 2.58% 1.86%
Sweden 1.08% 1.09% 1.44% 1.41% 1.75% 1.43%
Ireland 1.00% 1.09% 1.44% 1.19% 0.72% 1.36%
Portugal 1.65% 1.8% 2.40% 1.52% 1.34% 1.14%
Italy 1.45% 1.44% 0.65% 1.03% 1.07%
Largely the same picture as ever, with the US leading the way, the UK in second and then a sliding scale of Europeans countries. Slovenia continues to pick its way up the pile for obvious reasons!
World Map to demonstrate

2. What's your age?

u17 17-19 20-25 26-30 31-35 36-40 41-50 51+ Total
2015 2.22% 12.04% 41.51% 24.66% 10.68% 4.87% 2.94% 1.08% 1395
2016 1.5% 8.9% 40.8% 24% 12% 5.4% 5.2% 2% 887
2018 Mar 1% 7.1% 33.5% 27.4% 16.2% 7% 5.7% 2.1% 617
2018 Aug 1.7% 9% 33.9% 26.4% 15.5% 7% 5% 1.5% 905
2019 1.5% 6.6% 33.2% 27.5% 16.4% 7.1% 5.8% 2% 972
2020 1.3% 6.8% 31.7% 28% 16.6% 7.2% 5% 2.5% 1420
Pretty much the same as last year, with the usual reddit demographics of majority 20 somethings dominating.

3. What's your gender?

'13 '14 '15 '16 '18 (1) '18 (2) '19 '20
Male 97.2% 97% 94.9% 93.4% 93.3% 93.6% 95.1% 94.9%
Female 2.8% 2.7% 4.8% 5.3% 5.3% 5.4% 3.7% 4.8%
Other - 0.33% 0.29% 0.78% 0.76% - -
Non-Binary - - - - 0.64% 0.99% 1.2% 0.4%
More normality here for reddit.

4. How much of the men's season do you watch/follow?

Type March '18 (%) August '18 (%) 2019 (%) 2020 (%)
Grand Tours 84.7 92.0 90.2 87.3
Monuments 79.1 74.9 79 75.9
WT Stage races 67.4 62.4 70.5 71.7
WT One day races 73.3 59.8 62.3 60.7
Non WT Stage races 32.6 16.7 17.4 25
Non WT One day races 34.8 13.7 17.4 20.7
Literally everything I can consume 35.9 18.1 21.1 27.1
Whilst GT following may be down (somehow), all the lower level stuff is up, which makes sense considering how desperate we have been for any racing during the season shutdown.

5. Do you maintain an interest in women's professional road racing?

Do you maintain an interest in women's professional road racing? '19 '20
Yes 49.8 49.2
No 50.2 50.8
Still very much a half/half interest in women's cycling on the subreddit.

6. How much of the women's season do you follow?

The following is true for the half of you that follows womens cycling.
How Much %
Just the biggest televised events 63.15%
Most of the live televised/delayed coverage stuff 29.08%
All televised racing 5.09%
Down to .Pro & beyond 2.69%

7. How long have you been watching cycling?

How Long %
Under a year 2,95%
1-3 years 19,50%
4-6 years 19,85%
7-9 years 14,10%
10-12 years 13,81%
13-15 years 7,15%
15-20 years 10,73%
20-25 years 6,17%
25 years + 5,75%
Simplified the years a little this time, but whilst we have a fair number of newbies, most people have picked the sport up since around 2013/14.

Sporting Favourites

8. Do you have like/dislike feelings about WT teams?

Once more, 14.4% of people really don't have feelings on the subject.
Of those that do:
AG2R Astana Bahrain Bora CCC Cofidis Quick-Step EF FDJ
Like 352 213 127 770 156 116 847 724 423
Meh 775 620 773 415 889 896 310 448 700
Dislike 52 356 263 31 112 141 71 37 53
Karma 300 -143 -70 739 44 -25 776 677 370
Israel Lotto Michelton Movistar NTT Ineos Jumbo Sunweb Trek UAE
Like 135 364 517 231 101 304 925 279 383 118
Meh 740 764 626 646 931 414 282 805 765 734
Dislike 302 40 52 326 121 562 53 97 42 331
Karma -167 324 465 -95 -20 -258 872 182 341 -213
So, the most popular team this year is Jumbo-Visma, followed by Quick-Step & Bora-hansgrohe. Least popular are Ineos & UAE.
As per usual, no one cares about NTT & CCC, with nearly 81% of users rating NTT as meh. Pretty damning stuff.
Lastly, we have the usual historical comparison of how teams have fared over time, normalised to respondents to that question on the survey.
Things to note then, firstly that the Astana redemption arc is over, seeing them back in the negative, maybe Fulgsangs spring issues helped aid that? The petrodollar teams of UAE & Bahrain are stubbornly negative too, with Israel keeping up the Katusha negative streak. Meanwhile, at the top end, EF & Jumbo go from strength to strength, whilst some others like Sunweb are sliding over time - their transfer policies no doubt helping that.

10. Do you ride a bike regularly?

Answer 2018Mar 2018Aug 2019 2020
For fun 61.5% 63.4% 59.9% 62.9%
For fitness 59.3% 59.6% 54.8% 59.8%
For commuting 46% 46% 45.6% 40%
For racing 20.6% 20.6% 15.9% 17.7%
No, I don't 14.2% 12.9% 14.8% 13.6%
Still a fairly small group of racers out of all of us

11. Out of the sports you practice, is cycling your favourite?

Yes No
58,29% 41,71%
A new addition to the survey prompted by a good point last time, just over half of us rate cycling as the favourite sport we actually do.

12. What other sports do you follow?

Sport #
Association Football / Soccer 50.78%
Formula 1 35.81%
American Football 26.27%
Basketball 22.46%
Track & Field 17.58%
Esports (yes, this includes DotA) 17.30%
Rugby 14.27%
Skiing 14.12%
Ice Hockey 13.63%
Baseball 12.15%
Motorsports (Not including F1) 10.59%
Cricket 10.52%
Tennis 9.53%
Chess 8.97%
Triathlon 8.69%
Biathlon 8.12%
Snooker 7.06%
Golf 6.92%
Swimming 6.85%
Ski Jumping 6.78%
Climbing 5.72%
Martial Arts 5.65%
Handball 5.44%
Darts 5.01%
Speed Skating 5.01%
Football always tops the charts, and Formula 1 continues to rank extremely highly among our userbase. Those who have a little following below 5% include Sailing, Fencing, Surfing, Boxing & Ultra-Running.
Other cycling disciplines
Sport #
Cyclocross 22.10%
Track Cycling 14.34%
MTB 8.97%
BMX 1.20%

13. Out of the sports you follow, is cycling your favourite sport?

Yes No
61.79% 38,21%
Good. Makes sense if you hang out here.

Subreddit stats

14. How often do you participate in a /Peloton Race Thread whilst watching a race?

2015 2016 2018Mar 2018Aug 2019 2020
I always participate in Race Threads during races 2.8% 2% 2.2% 4% 2.5% 3%
I follow Race Threads during races 41.7% 36.7% 38.1% 42.1% 42.5% 38.9%
I often participate in Race Threads during races 16.8% 19% 16.5% 18.9% 15.2% 13%
I rarely/never participate in Race Threads during races 38.7% 41.3% 43.1% 35% 39.8% 45.1%
Slightly less invested than before, reverting back to an older trade.

15. How do you watch Races?

Method 2018Mar 2018Aug 2019 2020
Pirate Streams 62% 46.5% 50.2% 47.9%
Free Local TV 55.7% 64.5% 59.6% 53.9%
Desperately scrabbling for Youtube highlights 37.9% 30.2% 28.2% 24.9%
Paid Streaming services 32.3% 35.4% 38.3% 46.3%
Year on year, paid streaming services go up - the increasing availability of live content legally continues to improve, and so do the numbers on the survey.

16. Where else do you follow races live (in addition to watching them)?

Type 2018Mar 2018Aug 2019 2020
/Peloton race threads 86.2% 83.4% 80.2% 76.9%
Twitter 30.5% 34.7% 33.3% 38.3%
PCS Liveticker - - 30.2% 32%
Official tracker (if available) 24%
The Cyclingnews liveticker 26% 23.5% 21.5% 18.9%
Sporza (site/ticker) 1.89% 9.5% 10.8% 10.8%
NOS Liveblog - 6.8% 7% 9.2%
Steephill 0.52% 13.5% 10.2% 8.2%
/Peloton discord 6.5% 5.4% 7.5% 7.2%
Other cycling forums 15.1% 8.1% 7.6% 7%
feltet.dk - 2.2% 5.4% 5.2%
Facebook 3.8% 5.4% 4% 4.2%
BBC Ticker - 3.5% 2.1% 4.1%
DirectVelo - 1.3% 1.6% 1.8%
Non Cycling Forums - 1.3% 1.2% 1.2%
/cyc/ - 1.3% 1% 0.6%
/peloton IRC ~0 0.8% 0.4% 0.5%
The PCS liveticker continues to have a strong following, whilst the cyclingnews ticker slowly slides into less usage over time.

17. Do you use /Peloton mostly in classic reddit or redesign when on the desktop?

Type 2018 Aug 2019 2020
Classic 75.1% 67.2% 46.2%
Redesign 24.9% 32.8% 53.8%
Time to abandon ship. The end has come.

18. With what version of reddit do you browse the sub?

Version 2019 2020
Official App 17.9 31.1
Desktop Classic 37.8 25.8
3rd Party App 18.3 17.2
Mobile Web 12.4 14.7
Desktop Redesign 13.7 11.2
Phone browsing is very much in vogue.

19. How did you find the sub?

How %
Through other forms of reddit, f.e. /bicycling 48.33%
Too long - can't remember 38.65%
Google search 9,11%
My friend told me 2,28%
I wanted to talk about my exercise bike 0.78%
Twitter 0.5%
Lantern Rouge Youtube 0.28%

Other bits and bobs

20. Did you think back in March we would see any more racing this year?

Yes No
52,81% 47,19%
Despite the threat, we have seen racing again

21. Will we manage to fulfill the rest of the UCI calendar without further Covid-19 issues postponing more races?

Yes No
25.3% 74.7%
Sorry to you 25%, Amstel, Roubaix & a bunch of other races have falled foul of COVID-19 related cancellations.

22. When did you become aware of Alexander Foliforov?

When %
Before the 2016 Giro 3,25%
22nd May, 2016 15,55%
On /pelotonmemes in 2020 21,13%
Who? 60,07%
If you didn't know of the man, watching him demolish the Giro field in 2016 on the stage 15 ITT should help to gain understanding

23. Who will win the 2020 Tour de France?

Rider %
Roglic 52,12%
Bernal 16,57%
Pinot 9,24%
Dumoulin 7,9%
N.Quintana 2,82%
Pogacar 1,41%
Richie Porte 0,35%
We can safely say that most of us were wrong about this one.
That's not a lot of confidence in Richie Porte either, the man who was to finish on the third spot of the podium. Alexander Foliforov (0,23%) had just a tiny number of votes less, and that man wasn't even in the race.

24. What for you was the defining cycling moment of the previous decade?

We had a lot of brilliant suggestions, but these were the clear five favourites when we tabulated the results.
Honorable mentions go to the Giro 2018, which had Tom Dumoulin winning, and of almost identical fascination to many of you - Tom Dumoulin going on someones porta-potty in the middle of the stage.
Little bit of recency bias perhaps, but that's better than ignoring that this was for the last decade and firmly insisting Tom Boonens 2005 WC win was the biggest thing. Special shoutout to almost all the Danes present in /peloton who voted for Mads Pedersens WC win last year. It's an understandable reaction.

25. Any suggestions for the Survey?

New Questions
We promise to feature one of these suggestions in the next survey
We will try to implement this. But it will also skew results.
About the Survey
The subscribers are torn on Women's cycling, nearly a 50/50 split there as the survey showed - The moderators at /peloton are firmly in the "more cycling is better" basket, and we will continue to get as good coverage of womens cycling as possible.
Are you trying to give the moderators PTSD? Because this is how you give the moderators PTSD.

26. Any suggestions for the sub?

ALSJFLKAJSLDKJAØLSJKD:M:CSAM)=#/()=#=/")¤=/)! - Your moderator seems to be out of function. Please stand by while we find you a new moderator
The Weekly threads are great for these types of questions, where several people can contribute and build up once it is understood which information is relevant.
Our experience is that "limited" will never be so, if we're going to moderate it fairly. Moderating is not a popularity contest, but believe it or not, we're actually trying to be as fair as possible. and for that, we need rules that are not subjective. Unless you have a stationary exercise bike.
All of these are good suggestions, but remember that all of you can also contribute - The mods are sometimes stretched thin, specially in the middle of hectic race schedules. It's easier if one of you has a way to contact a rider or a person of interest and can facilitate the initial communication.
We've worked on this! The Official Standard is now as follows: [Race Thread] 202x Race Name – Stage X (Class)
This sounds as a nice community project for the after-season, and hopefully many of you subscribers can contribute.
Come with suggestions on how to tidy it up!
We have chastised all the mods. They are now perfectly trained in gender-neutral pronouns. Be well, fellow being.
If we can implement this for hard liquor, you know we will.
The spoiler rule is one that is discussed frequently - in general - some users absolutely hate it, but a majority love it. Perhaps we'll include a question in the next survey to see how this divide is exactly.
We actually do - whenever there is a matter of life or death, we think public information is more important than a spoiler rule. But at the same time, we try to collect all the different posts into one main thread, so to keep things focused and letting very speculative posts meet with hard evidence from other sources.
This is a tough ask of the internet. While we can agree that voting should be done accordingly to what insights they bring, not subjective opinions, it is very hard to turn that type of thinking around. We can ask of you, our subscribers, that you please think twice about hitting that downvote button, and only do so because of you think a post is factually incorrect, not because it differs with your own subjective opinion.
That's the primary analysis of the survey! Feel free to contribute with how you experience things here!
submitted by PelotonMod to peloton [link] [comments]

Subreddit Demographic Survey 2020 : The Results

2020 Childfree Subreddit Survey

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, several thousand of you participated in the 2020 Subreddit Demographic Survey. Only those participants who meet our wiki definition of being childfree's results were recorded and analysed.
Of these people, multiple areas of your life were reviewed. They are separated as follows:

2. Methodology

Our sample is redditors who saw that we had a survey currently active and were willing to complete the survey. A stickied post was used to advertise the survey to members.

3. Results

The raw data may be found via this link.
7305 people participated in the survey from July 2020 to October 2020. People who did not meet our wiki definition of being childfree were excluded from the survey. The results of 5134 responders, or 70.29% of those surveyed, were collated and analysed below. Percentages are derived from the respondents per question.

General Demographics

Age group

Age group Participants Percentage
18 or younger 309 6.02%
19 to 24 1388 27.05%
25 to 29 1435 27.96%
30 to 34 1089 21.22%
35 to 39 502 9.78%
40 to 44 223 4.35%
45 to 49 81 1.58%
50 to 54 58 1.13%
55 to 59 25 0.49%
60 to 64 13 0.25%
65 to 69 7 0.14%
70 to 74 2 0.04%
82.25% of the sub is under the age of 35.

Gender and Gender Identity

Age group Participants # Percentage
Agender 62 1.21%
Female 3747 73.04%
Male 1148 22.38%
Non-binary 173 3.37%

Sexual Orientation

Sexual Orientation Participants # Percentage
Asexual 379 7.39%
Bisexual 1177 22.93%
Heterosexual 2833 55.20%
Homosexual 264 5.14%
It's fluid 152 2.96%
Other 85 1.66%
Pansexual 242 4.72%

Birth Location

Because the list contains over 120 countries, we'll show the top 20 countries:
Country of birth Participants # Percentage
United States 2775 57.47%
United Kingdom 367 7.60%
Canada 346 7.17%
Australia 173 3.58%
Germany 105 2.17%
Netherlands 67 1.39%
India 63 1.30%
Poland 57 1.18%
France 47 0.97%
New Zealand 42 0.87%
Mexico 40 0.83%
Brazil 40 0.83%
Sweden 38 0.79%
Finland 31 0.64%
South Africa 30 0.62%
Denmark 28 0.58%
China 27 0.56%
Ireland 27 0.56%
Phillipines 24 0.50%
Russia 23 0.48%
90.08% of the participants were born in these countries.
These participants would describe their current city, town or neighborhood as:
Region Participants # Percentage
Rural 705 13.76
Suburban 2661 51.95
Urban 1756 34.28


Ethnicity Participants # Percentage
African Descent/Black 157 3.07%
American Indian or Alaskan Native 18 0.35%
Arabic/Middle Eastern/Near Eastern 34 0.66%
Bi/Multiracial 300 5.86%
Caucasian/White 3946 77.09%
East Asian 105 2.05%
Hispanic/Latinx 271 5.29%
Indian/South Asian 116 2.27%
Indigenous Australian/Torres Straight IslandeMaori 8 0.16%
Jewish (the ethnicity, not religion) 50 0.98%
Other 32 0.63%
Pacific IslandeMelanesian 4 0.08%
South-East Asian 78 1.52%


Highest Current Level of Education

Highest Current Level of Education Participants # Percentage
Associate's degree 233 4.55%
Bachelor's degree 1846 36.05%
Did not complete elementary school 2 0.04%
Did not complete high school 135 2.64%
Doctorate degree 121 2.36%
Graduated high school / GED 559 10.92%
Master's degree 714 13.95%
Post Doctorate 19 0.37%
Professional degree 107 2.09%
Some college / university 1170 22.85%
Trade / Technical / Vocational training 214 4.18%
Degree (Major) Participants # Percentage
Architecture 23 0.45%
Arts and Humanities 794 15.54%
Business and Economics 422 8.26%
Computer Science 498 9.75%
Education 166 3.25%
Engineering Technology 329 6.44%
I don't have a degree or a major 1028 20.12%
Law 124 2.43%
Life Sciences 295 5.77%
Medicine and Allied Health 352 6.89%
Other 450 8.81%
Physical Sciences 199 3.89%
Social Sciences 430 8.41%

Career and Finances

The top 10 industries our participants are working in are:
Industry Participants # Percentage
Information Technology 317 6.68%
Health Care 311 6.56%
Education - Teaching 209 4.41%
Engineering 203 4.28%
Retail 182 3.84%
Government 172 3.63%
Admin & Clerical 154 3.25%
Restaurant - Food Service 148 3.12%
Customer Service 129 2.72%
Design 127 2.68%
Note that "other", "I'm a student", "currently unemployed" and "I'm out of the work force for health or other reasons" have been disregarded for this part of the evaluation.
Out of the 3729 participants active in the workforce, the majority (1824 or 48.91%) work between 40-50 hours per week with 997 or 26.74% working 30-40 hours weekly. 6.62% work 50 hours or more per week, and 17.73% less than 30 hours.
513 or 10.13% are engaged in managerial responsibilities (ranging from Jr. to Sr. Management).
On a scale of 1 (lowest) to 10 (highest), the overwhelming majority (3340 or 70%) indicated that career plays a very important role in their lives, attributing a score of 7 and higher.
1065 participants decided not to disclose their income brackets. The remaining 4,849 are distributed as follows:
Income Participants # Percentage
$0 to $14,999 851 21.37%
$15,000 to $29,999 644 16.17%
$30,000 to $59,999 1331 33.42%
$60,000 to $89,999 673 16.90%
$90,000 to $119,999 253 6.35%
$120,000 to $149,999 114 2.86%
$150,000 to $179,999 51 1.28%
$180,000 to $209,999 25 0.63%
$210,000 to $239,999 9 0.23%
$240,000 to $269,999 10 0.25%
$270,000 to $299,999 7 0.18%
$300,000 or more 15 0.38%
87.85% earn under $90,000 USD a year.
65.82% of our childfree participants do not have a concrete retirement plan (savings, living will).

Religion and Spirituality

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
Catholicism 1573 30.76%
None (≠ Atheism. Literally, no notion of spirituality or religion in the upbringing) 958 18.73%
Protestantism 920 17.99%
Other 431 8.43%
Atheism 318 6.22%
Agnosticism 254 4.97%
Anglicanism 186 3.64%
Judaism 77 1.51%
Hinduism 75 1.47%
Islam 71 1.39%
This top 10 amounts to 95.01% of the total 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 1849 36.23%
None (≠ Atheism. Literally, no notion of spirituality or religion currently) 1344 26.33%
Agnosticism 789 15.46%
Other 204 4.00%
Protestantism 159 3.12%
Paganism 131 2.57%
Spiritualism 101 1.98%
Catholicism 96 1.88%
Satanism 92 1.80%
Wicca 66 1.29%
This top 10 amounts to 94.65% of the participants.

Level of Current Religious Practice

Level Participants # Percentage
Wholly seculanon religious 3733 73.73%
Identify with religion, but don't practice strictly 557 11.00%
Lapsed/not serious/in name only 393 7.76%
Observant at home only 199 3.93%
Observant at home. Church/Temple/Mosque/etc. attendance 125 2.47%
Strictly observant, Church/Temple/Mosque/etc. attendance, religious practice/prayeworship impacting daily life 56 1.11%

Effect of Faith over Childfreedom

Figure 1

Effect of Childfreedom over Faith

Figure 2

Romantic and Sexual Life

Current Dating Situation

Status Participants # Percentage
Divorced 46 0.90%
Engaged 207 4.04%
Long term relationship, living together 1031 20.10%
Long term relationship, not living with together 512 9.98%
Married 1230 23.98%
Other 71 1.38%
Separated 18 0.35%
Short term relationship 107 2.09%
Single and dating around, but not looking for anything serious 213 4.15%
Single and dating around, looking for something serious 365 7.12%
Single and not looking 1324 25.81%
Widowed 5 0.10%

Childfree Partner

Is your partner childfree? If your partner wants children and/or has children of their own and/or are unsure about their position, please consider them "not childfree" for this question.
Partner Participants # Percentage
I don't have a partner 1922 37.56%
I have more than one partner and none are childfree 3 0.06%
I have more than one partner and some are childfree 35 0.68%
I have more than one partner and they are all childfree 50 0.98
No 474 9.26%
Yes 2633 51.46%

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 4610 90.13%
Yes, but only if it's a short term arrangement of some sort 162 3.17%
Yes, whether for long term or short term, but with some conditions (must not have child custody, no kid talk, etc.), as long as I like them and long as we're compatible 199 3.89%
Yes, whether for long term or short term, with no conditions, as long as I like them and as long as we are compatible 144 2.82%

Childhood and Family Life

On a scale from 1 (very unhappy) to 10 (very happy), how would you rate your childhood?
Figure 3
Of the 5125 childfree people who responded to the question, 67.06% have a pet or are heavily involved in the care of someone else's pet.


Sterilisation Status

Sterilisation Status Participants # Percentage
No, I am not sterilised and, for medical, practical or other reasons, I do not need to be 869 16.96%
No. However, I've been approved for the procedure and I'm waiting for the date to arrive 86 1.68%
No. I am not sterilised and don't want to be 634 12.37%
No. I want to be sterilised but I have started looking for a doctorequested the procedure 594 11.59%
No. I want to be sterilised but I haven't started looking for a doctorequested the procedure yet 2317 45.21%
Yes. I am sterilised 625 12.20%

Age when starting doctor shopping or addressing issue with doctor. Percentages exclude those who do not want to be sterilised and who have not discussed sterilisation with their doctor.

Age group Participants # Percentage
18 or younger 207 12.62%
19 to 24 588 35.85%
25 to 29 510 31.10%
30 to 34 242 14.76%
35 to 39 77 4.70%
40 to 44 9 0.55%
45 to 49 5 0.30%
50 to 54 1 0.06%
55 or older 1 0.06%

Age at the time of sterilisation. Percentages exclude those who have not and do not want to be sterilised.

Age group Participants # Percentage
18 or younger 5 0.79%
19 to 24 123 19.34%
25 to 29 241 37.89%
30 to 34 168 26.42%
35 to 39 74 11.64%
40 to 44 19 2.99%
45 to 49 1 0.16%
50 to 54 2 0.31%
55 or older 3 0.47%

Elapsed time between requesting procedure and undergoing procedure. Percentages exclude those who have not and do not want to be sterilised.

Time Participants # Percentage
Less than 3 months 330 50.46%
Between 3 and 6 months 111 16.97%
Between 6 and 9 months 33 5.05%
Between 9 and 12 months 20 3.06%
Between 12 and 18 months 22 3.36%
Between 18 and 24 months 15 2.29%
Between 24 and 30 months 6 0.92%
Between 30 and 36 months 2 0.31%
Between 3 and 5 years 40 6.12%
Between 5 and 7 years 25 3.82%
More than 7 years 50 7.65%

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

Doctor # Participants # Percentage
None. The first doctor I asked said yes 604 71.73%
One. The second doctor I asked said yes 93 11.05%
Two. The third doctor I asked said yes 54 6.41%
Three. The fourth doctor I asked said yes 29 3.44%
Four. The fifth doctor I asked said yes 12 1.43%
Five. The sixth doctor I asked said yes 8 0.95%
Six. The seventh doctor I asked said yes 10 1.19%
Seven. The eighth doctor I asked said yes 4 0.48%
Eight. The ninth doctor I asked said yes 2 0.24%
I asked more than 10 doctors before finding one who said yes 26 3.09%


Primary Reason to Not Have Children

Reason Participants # Percentage
Aversion towards children ("I don't like children") 1455 28.36%
Childhood trauma 135 2.63%
Current state of the world 110 2.14%
Environmental (including overpopulation) 158 3.08%
Eugenics ("I have 'bad genes'") 57 1.11%
Financial 175 3.41%
I already raised somebody else who isn't my child 83 1.62%
Lack of interest towards parenthood ("I don't want to raise children") 2293 44.69%
Maybe interested for parenthood, but not suited for parenthood 48 0.94%
Medical ("I have a condition that makes conceiving/bearing/birthing children difficult, dangerous or lethal") 65 1.27%
Other 68 1.33%
Philosophical / Moral (e.g. antinatalism) 193 3.76%
Tokophobia (aversion/fear of pregnancy and/or chidlbirth) 291 5.67%
95.50% of childfree people are pro-choice, however only 55.93% of childfree people support financial abortion.

Dislike Towards Children

Figure 4

Working With Children

Work Participants # Percentage
I'm a student and my future job/career will heavily makes me interact with children on a daily basis 67 1.30%
I'm retired, but I used to have a job that heavily makes me interact with children on a daily basis 6 0.12%
I'm unemployed, but I used to have a job that heavily makes me interact with children on a daily basis 112 2.19%
No, I do not have a job that makes me heavily interact with children on a daily basis 4493 87.81%
Other 148 2.89%
Yes, I do have a job that heavily makes me interact with children on a daily basis 291 5.69%

4. Discussion

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." 70.29% of participants actually identify as childfree, slightly up from the 2019 survey, where 68.5% 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".

General Demographics

The demographics remain largely consistent with the 2019 survey. However, the 2019 survey collected demographic responses from all participants in the survey, removing those who did not identify as childfree when querying subreddit specific questions, while the 2020 survey only collected responses from people who identified as childfree. This must be considered when comparing results.
82.25% of the participants are under 35, compared with 85% of the subreddit in the 2019 survey. A slight downward trend is noted compared over the last two years suggesting the userbase may be getting older on average. 73.04% of the subreddit identify as female, compared with 71.54% in the 2019 survey. Again, when compared with the 2019 survey, this suggests a slight increase in the number of members who identify as female. 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]. The ratio of members who identify as heterosexual remained consistent, from 54.89% in the 2019 survey to 55.20% in the 2020 survey.
Ethnicity wise, 77% of members identified as primarily Caucasian, consistent with the 2019 results. While the ethnicities noted to be missing in the 2019 survey have been included in the 2020 survey, some users noted the difficulty of responding when fitting multiple ethnicities, and this will be addressed in the 2021 survey.

Education level

As it did in the 2019 survey, this section highlights the stereotype of childfree people as being well educated. 2.64% of participants did not complete high school, which is a slight decrease from the 2019 survey, where 4% of participants did not graduate high school. However, 6.02% of participants are under 18, compared with 8.22% in the 2019 survey. 55% of participants have a bachelors degree or higher, while an additional 23% have completed "some college or university".
At the 2020 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" (20.12%). Arts and Humanities, and Computer Science have overtaken Health Sciences and Engineering as the two most popular majors. However, the list of majors was pared down to general fields of study rather than highly specific degree majors to account for the significant diversity in majors studied by the childfree community, which may account for the different results.

Career and Finances

The highest percentage of participants at 21.61% listed themselves as trained professionals.
One of the stereotypes of the childfree is of wealth. However this is not demonstrated in the survey results. 70.95% of participants earn under $60,000 USD per annum, while 87.85% earn under $90,000 per annum. 21.37% are earning under $15,000 per annum. 1065 participants, or 21.10% 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 (75.65%) which is slightly increased from the 2019 survey, where 71.2% of participants worked between 30 and 50 hours per week.


The location responses are largely similar to the 2019 survey with a majority of participants living in a suburban and urban area. 86.24% of participants in the 2020 survey live in urban and suburban regions, with 86.7% of participants living in urban and suburban regions in the 2019 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 (57.47%) were born in the USA. The United Kingdom (7.6%), Canada (7.17%), Australia (3.58%) and Germany (2.17%) encompass the next 4 most popular responses. This is largely consistent with the responses in the 2019 survey.

Religion and Spirituality

For the 2020 survey Christianity (the most popular result in 2019) was split into it's major denominations, Catholic, Protestant, Anglican, among others. This appears to be a linguistic/location difference that caused a lot of confusion among some participants. However, Catholicism at 30.76% remained the most popular choice for the religion participants were raised in. However, of our participant's current faith, Aetheism at 36.23% was the most popular choice. A majority of 78.02% listed their current religion as Aetheist, no religious or spiritual beliefs, or Agnostic.
A majority of participants (61%) rated religion as "not at all influential" to the childfree choice. This is consistent with the 2019 survey where 62.8% 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.

Romantic and Sexual Life

60.19% of our participants are in a relationship at the time of the survey. This is consistent with the 2019 survey, where 60.7% of our participants were in a relationship. A notable proportion of our participants are listed as single and not looking (25.81%) which is consistent with the 2019 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. Unsurprisingly 90.13% of our participants would not consider dating someone with children. 84% 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.

Childhood and Family Life

Overall, the participants skew towards a happier childhood.


While just under half of our participants wish to be sterilised, 45.21%, only 12.2% 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. There is a slight increase from the percentage of participants sterilised in the 2019 survey (11.7%). 29.33% 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 of contraception due to their current lifestyle practices. Participants who indicated that they do not wish to be sterilised or haven't achieved sterilisation were excluded from the percentages where necessary in this section.
Of the participants who did achieve sterilisation, a majority began the search between 19 and 29, with the highest proportion being in the 19-24 age group (35.85%) This is a marked increase from the 2019 survey where 27.3% of people who started the search were between 19-24. This may be due to increased education about permanent contraception or possibly due to an increase in instability around world events.
The majority of participants who sought out and were successful at achieving sterilisation, were however in the 25-29 age group (37.9%). This is consistent with the 2019 survey results.
The time taken between seeking out sterilisation and achieving it continues to increase, with only 50.46% of participants achieving sterilisation in under 3 months. This is a decline from the number of participants who achieved sterilisation in 3 months in the 2019 survey (58.5%). A potential cause of this decrease is to Covid-19 shutdowns in the medical industry leading to an increase in procedure wait times. The proportion of participants who have had one or more doctors refuse to perform the procedure has stayed consistent between the two surveys.


The main reasons for people choosing the childfree lifestyle are a lack of interest towards parenthood and an aversion towards children which is consistent with the 2019 survey. Of the people surveyed 67.06% are pet owners or involved in a pet's care, 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 87.81% 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?". This is an increase from the 2019 survey.
A vast majority of the subreddit identifes as pro-choice (95.5%), a slight increase from the 2019 results. This is likely due to a high level of concern about bodily autonomy and forced birth/parenthood. However only 55.93% support financial abortion, aka for the non-pregnant person in a relationship to sever all financial and parental ties with a child. This is a marked decrease from the 2019 results, where 70% of participants supported financial abortion.
Most of our users realised that did not want children young. 58.72% of participants knew they did not want children by the age of 18, with 95.37% 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.59% of participants have been "bingoed" at some stage in their lives.

The Subreddit

Participants who identify as childfree were asked about their interaction with and preferences with regards to the subreddit at large. Participants who do not meet our definition of being childfree were excluded from these questions.
By and large our participants were lurkers (72.32%). Our participants were divided on their favourite flairs with 38.92% selecting "I have no favourite". The next most favourite flair was "Rant", at 16.35%. Our participants were similarly divided on their least favourite flair, with 63.40% selecting "I have no least favourite". In light of these results the flairs on offer will remain as they have been through 2019.
With regards to "lecturing" posts, this is defined as a post which seeks to re-educate the childfree on the practices, attitudes and values of the community, particularly with regards to attitudes towards parenting and children, whether at home or in the community. A commonly used descriptor is "tone policing". A small minority of the survey participants (3.36%) selected "yes" to allowing all lectures, however 33.54% responded "yes" to allowing polite, respectful lectures only. In addition, 45.10% of participants indicated that they were not sure if lectures should be allowed. Due to the ambiguity of responses, lectures will continue to be not allowed and removed.
Many of our participants (36.87%) support the use of terms such as breeder, mombie/moo, daddict/duh on the subreddit, with a further 32.63% supporting use of these terms in context of bad parents only. This is a slight drop from the 2019 survey. In response to this use of the above and similar terms to describe parents remains permitted on this subreddit. However, we encourage users to keep the use of these terms to bad parents only.
44.33% of users support the use of terms to describe children such as crotchfruit on the subreddit, a drop from 55.3% last year. A further 25.80% of users supporting the use of this and similar terms in context of bad children only, an increase from 17.42% last year. In response to this use of the above and similar terms to describe children remains permitted on this subreddit.
69.17% of participants answered yes to allowing parents to post, provided they stay respectful. In response to this, parent posts will continue to be allowed on the subreddit. As for regret posts, which were to be revisited in this year's survey, only 9.5% of participants regarded them as their least favourite post. As such they will continue to stay allowed.
64% of participants support under 18's who are childfree participating in the subreddit with a further 19.59% allowing under 18's to post dependent on context. Therefore we will continue to allow under 18's that stay within the overall Reddit age requirement.
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. 73.80% of users selected "yes, in their own post, with their own "Leisure" flair" to the question, "Should posts about pets, travel, jetskis, etc be allowed on the sub?" Therefore we will continue to allow these posts provided they are appropriately flaired.

5. Conclusion

Thank you to our participants who contributed to the survey. This has been an unusual and difficult year for many people. Stay safe, and stay childfree.

submitted by Mellenoire to childfree [link] [comments]


That reminds me of a story.
“HELLFIRE AND DALMATIANS!” I shouted to no one in particular.
“What’s the problem, dear?” Esme asks in that way she has of telling me to calm down without having to say it directly.
“This bloody fucking country. A day late and several dollars short.” I fume. “Can’t get a new liquor license because of the bloody COVID. Can’t go to a hotel bar and have a snort because of the bloody COVID. Can’t even slip across the border to Dubai and soak up some room service and buckets of complimentary cocktails because of the bloody COVID.”
Yes, the Sultanate of Oman, in its infinitesimal wisdom, has traditionally followed other GCC countries by at least three months in making any sort of proclamations regarding this latest bugaboo: the hideous, deadly, itchy, loathsome, and possibly serially bent, noxious, pandemical COVID-19; aka, this pandemic’s entry for flu.
Their response is one of immense knee-jerk without first having thought of the consequences.
“Bloody lockdown, 2100 to 0700. What is this, the whole fucking country’s been bad and now being sent to bed without any supper?” I wondered aloud. “Idiot benchodes.”
Even Esme couldn’t come up with a rejoinder to that.
“Plus they close all the bars. And all the hotels. And the fucking bottle shops. It’s not enough that these fucking Muppets jack the ‘sin tax’ on booze and cigars by 100%, now they’re not even legally available.” I swore.
Of course, once you’ve spent even a small portion of the time that I have in the Middle East, you have your connections. Your system. Your access to the seedy underbelly of any society; the venerable Black Market.
Jesus Q. Christ on toast with baked beans, fried tomatoes, black pudding, and mushrooms, I could get most anything in the Middle East, be it legal, shady, or just plain illegal. However, before you all recoil in horror that the venerable Dr. Rocknocker dabbles in the prohibited, just remember: the ends always dojustify the means.
“I'm telling you, Esme dear; this Gulf story is getting too complicated. The weasels have started closing in.” I complain to Es as she hands me a fresh drink.
“Do you think…?” Esme asks expectantly.
Esme is more than ready to go. I’ve used this place as a base of operations for years whilst I wear out the Omani legal system suing those asswipes that think just because they’re local and I’m a kafir, they’re immune to the law.
I’ve spent a long, profitable and time-consuming period of the last few years proving them wrong.
But, time was marching onwards. I agreed with Esme, we’ve milked this particular cash cow dry. It was time to hitch up our bootstraps, call it a day, and get the hell out of Dodge.
But not before I took care of a few loose ends.
Now, the country had recently lost its venerable Sultan, who croaked back in January of this year.
Sultan Qaboos was a good egg, friend to expat and local alike. Did a shitload of good for this benighted Middle East sandpit. Dragged it kicking and screaming out of the 12th century into, well, not exactly the 21st, but a whole hell of a lot closer.
He realized that he needed revolutionary, not evolutionary change in the country. By revolutionary, he needed American, British, Canadian, and the like Western Expats here to do the heavy thinking and lifting and Eastern Expats like Indians, Bangladeshis and Nepalese to do all the scut work.
Yeah, I know. That sounds racist as fuck, but sometimes that’s the way the ball bounced.
Simple evolution of society where Omanis graduated the local equivalent of grade school, through high school, into University, and finally into Entry level jobs in the oil and gas industry wasn’t going to cut it. Took too long and the country needed a serious cash flow now.
So, that’s what he did. And it worked a treat.
Then he died.
And his chosen took over.
Except his chosen was pretty much antithetical to everything the previous and very revered and successful, Sultan wanted.
Soon, there are 100% ‘sin taxes’ aimed directly at the western expats. Tourists included.
Then there’s quotas and ‘Letters of No Objection’, which are impossible to get so that the Eastern Expats can’t switch jobs.
Then, there are Sultanic proclamations of new taxes on tourists, new taxes on fast food, new taxes on this, that and the other. Then there’s, in his own words, “Oman is for Omanis”, blatantly ridiculous and xenophobic Omanization, and the general swipe at all expats.
This was the clear message of the new sultan.
He wanted to take over and possibly nationalize all the oil workings in the country.
Ask Venezuela, Iran, and Myanmar how well that worked out for them.
Then he wants all expats out on their asses. He wants Omanis to take over all the jobs, even though they’re nowhere near educated nor experienced enough for the positions. Then take up the massive GDP slack in lower oil production and oil prices with tourism.
Given everything else, that last line should be enough to get him off the throne.
He’s fucking nuts if he thinks people are going to want to cruise or overland anywhere near a place where foreigners are seen only as a cash supply, are despised, and would welcome these all new 100% tax levies.
Be that as it may, Esme and I decided that we have had enough of 135O F summer temperatures, virtual house arrest under the guise of a COVID lockdown, and idiots who were the only ones stupid or twisted enough not to vamoose when the great, big bloody letters were clearly written on the wall.
But, there was the physical act of getting out of the country.
Now, I had plenty of strings which I could pull, but I decided I’d start low and save those until we really needed them.
So low, in fact, we went to the US Embassy in Muscat.
“How low can you go?” reverberated through my head.
What a haven of sad-sacks, flubadubs, and third rate hobbyists.
Was either Esme or I surprised that when we finally secured an invitation to the embassy, that required a bit of string-pulling with the ex-Ambassador to Oman, now in Kabul; that besides the peach-fuzz faced Marine guarding the place, we were the only Americans in the joint?
“This is American soil!” I laughed, as I pulled out a huge Cuban cigar and was immediately told to extinguish it. “We’re as American as apple pie and napalm! We file our fucking 1040s every April; I pay my fucking long-distance taxes and demand US assistance to vacate this gloomy place of sandy, sweaty, sultry Sturm und Drang!”
“Shut up, Rock”, Esme chided me, “They don’t understand English. Much less, the florid English the way you trowel it on.”
“Fuckbuckets”, I remonstrated. “Here I had memorized the whole Patrick Henry speech he made to the Second Virginia Convention on March 23, 1775, at St. John's Church in Richmond, Virginia. Troglodytes. No admiration for the classics.”
“Rock, dear?” Esme noted, “It’s almost 1100 hours. Best to get to our appointment.”
True, our appointment was slated for 1100 hours. But around here, anything starting within three hours of the stated time was considered close enough.
We dragged ourselves, none too cheerfully, to the waiting room. Once we pried open the door, there was the usual “If you hear a high pitched wail, hit the deck” signs, and other things one could do while kissing one’s ass goodbye if there was a terrorist attack, we had a whole new slew of bullshit with which to deal.
“Social distancing. 6 feet. Or if you’re from Baja Canada, 1 cow’s length.”
“Must wear a mask. Bandanna, bandoliers, and large-caliber weapons or sombrero optional.”
“No sitting. Faux Naugahyde seats are too difficult to sterilize. You must stand at attention, do not talk amongst yourselves, and remain patient until your number is called.”
“Well, fuck!”, I snorted quietly, as I raised my first secret flask in rapt attention to our old glory of red, white, and blue.
“Good thing they didn’t say nothin’ about getting a load on. If I’m going to be treated like cattle, I’m going to at least have something to chew on in the process.”
“Oh, lord”, Esme grumbled, “You didn’t bring that Japanese Rye Whiskey with you, did you?”
“ルハイム”, I said, which is Japanese for “L’chaim”!
“Oh, hell”, Esme grinned as she borrowed my flask, “This is going to be a long day.”
I began to protest but remembered that I was wearing my Agency-issued field vest. I must have had at least 5 or 6 more flasks lurking around in those pockets somewhere.
Funny aside: they don’t bother with my going through an X-ray machine nor do they confiscate my phone, radio, knives, nor other field equipment when I go to the US Embassy.
It took them almost two solid hours last time, and by the time they got to my Brunton Compass, emergency flasks, a few spare blasting cap boosters, and saw the label sewn into the back of my vest, they decided they’d just send Rack and Ruin some evil Emails and let me pass unmolested.
“I’ll drink to that”, I say as I raise a flask as the locals raise an eyebrow. “Courtesy of Atheists International. We’re here for your children…”
The collective gasps and growls indicate they weren’t happy with me or my betrothed.
“Don’t care, Buckwheat”, I smiled, “Never did, never will. We’re out of here for good. You can curse my name all you want then. But, then again, why you standing in the American Embassy trying to get a visa to visit the land of the great evil empire?”
All the locals and most of the Eastern Expats crowded into a corner as far away from us as they physically could.
“BOO!” I snickered over a shot of Wild Turkey 101 Rye.
“Now serving number 58! Number 58!” came the call over the tannoy.
“Look at that”, I remarked to Es as I stashed both our flasks, “It’s only 12:35. Record time.”
We both shimmy into the glass-fronted and presumably bullet- but not C-4 resistant- glass.
We pick up the telephones there and acknowledge that we are who we said we were.
The East Indian fella, one Harsh Talavalakar, behind the multiple layers of glass asked us why we were here.
“Didn’t you read the appointment card?” I asked, “We’re here to have Uncle Sam get us passage out of this sordid and sultry place.”
“You are American citizens?” he asked, vacantly.
“That’s what it says on appointment cards and these here blue passports,” I replied.
“Well, how was I to know?” he scoffed, returning to his half-consumed powdered sugar doughnut.
“Maybe read the appointment card and see that we are US Citizens here on the behest of Ambassador Bethesda Orun?” I replied.
“Like I have time to read everything that comes across my desk”, he scoffed again.
I tapped on the glass to make certain I had his full attention.
“Look here, Herr Harsh. I’m not sure how you got this job at the American Consulate but want to be very clear with you. My wife and I are residents of this place for the last 20 years. We’re American citizens of very high standing and have more high powered connections than an Arduino in a nuclear power station. We have direct connections with Langley, Virginia and if you want to retain your cushy job, you’ll put down that fucking doughnut and pay very rapt attention to the two Americans standing here who are getting more and more irritated with some Indian benchode that doesn’t think he has to really do his job. You savvy? You diggin’ me, Beaumont
I guess the benchode got his attention. The two scowls he received from Esme and myself sort of cemented the idea that we’re not too pleased and not with to be trifled.
“Yes, sir?” he said, “And ma’am”, as Harsh quickly corrected himself as the doughnut disappeared.
“We want out. Gone. Vamoose. Outta here. AMF. You got me?” he nods behind the shatterprone glass.
“Now I know the borders are sealed and the airport’s closed, but fuck that. We want out and we want gone for good. I can’t make that much simpler or clearer. Get after it, son.” I said, as seriously as I could.
“Well, sir”, he began, “ The airport’s closed…”
“Are you deaf or born stupid and been losing ground ever since?” I asked, rhetorically. “I know that. We all know that. My HAT knows that. So, what devious little plan does the US Embassy have in store in just such an unsavory situation?”
“Well”, he chokes a bit, “There’s this unofficial lottery where America citizens are issued random numbers and if their number comes up, there are seats made available on special clandestine charter flights.”
Considering that Es and I are some of the last American citizens left in the country, I thought our chances might be pretty good.
“OK”, I said, “Let us have two of your finest numbers.”
“Yes, sir”, he said, “That will be US$500 total.”
“Excuse me?” I said.
“Oh, yes”, he smirked, “US$250 per number. Chances are you’ll never be called, but with these numbers, at least you stand a chance.”
“OK”, I said, “Forget the numbers. I want your name and operating number. I’ve got a report to file that’s due in Virginia before breakfast.”
“Oh, sir”, he smirked more, “I cannot release that information. Thanking you. Now be having a good day.” And he slammed the supposedly bulletproof shield between himself and Es and me.
“Bulletproof? Maybe. Nitro proof? No fucking way.” I groused as I fished out a couple of blasting cap superfast boosters.
“Calm down, dear”, Esme smiled to me as we walked out, “When he wasn’t looking, I took his picture, got his operating number, and full name. In fact, I think I got some information on where he lives…”
In the cab on the way back to our villa, I reviewed and confirmed Es’s subterfuge. Flasks number 6 and 8 needed serious replenishment by the time we arrived home.
“That’s fucking right, Ruin.” I yelled over the phone, “We need extraction. And now. Along with our personal effects and a few hundredweight of ‘don’t ask, don’t tell’ boxes of stuff we need to be transported.”
“Well, Rock”, Agent Ruin replied, “That’s a tall order. Usually, extraction is for one person and the stuff they’re wearing. Tell you what. Let Rack and I work on it for a week or so. We’ll arrange transport of your personal effects, then we’ll see about getting you and Esme to Dubai. At least there, you can order a plane. Hell, knowing you, you’ll get Tony Stark to fly in and provide door to door service. Sit tight. We’ll be back in touch.”
“Good!” I say as I slam the phone down. With these newfangled cellphone telephone instruments, they lack the same sort of satisfying “KER FUCKING CLANG” the old landlines used to have.
“Es!”, I yelled, “Start packing. We’re due out of here within a week.”
That meant we needed to do some packing triage:
• Things going home with us.
• Things being shipped.
• Things being sold.
• Things being left behind.
• Things no one was about to get their furry little mitts on.
“Oh, fuck!”, I startled. I had just remembered the John Wick-ian stash of various explosives, and adjunct materials I had buried in the basement. Obviously, I couldn’t take it home with me, I couldn’t sell it, and I sure as festering frothing fuck wasn’t going to leave it here.
I needed to call one of my more shifty and swarthy friends and arrange for passage out to the deep, dark desert. Around the area where the new sultan had opened a couple of brand new landfills.
Looks like I was going to expand them a few meters once we disposed of the few hundred kilos of accumulation I attained over the last few years.
See, I’m a packrat. I never leave nor toss anything that might be convenient. Might have a benefit. Might prove to be useful sometime down the line.
So, I’ve accumulated a bit of kit.
Like…well…a few hundred sticks of Du Pont 60% Extra Fast Dynamite. A couple dozen spools of Z-4 Primacord, in various degrees of fullness. A shitload of C-4; enough bricks for a Floydian wall. A couple, well, a dozen, well, two dozen cases of binary liquid explosives. Hey, this stuff is hard to come by…
Continuing, several thousand blasting caps and superfast flash blasting cap boosters. Some mercury fulminate. Some nitrogen triiodide. A couple tens of pounds of PETN. An equal amount of RDX. A few Erlenmeyer flasks full of shit even I’m not certain of what it is…
And a few kilos of freshly decanted, raw nitroglycerin; packed in sturdy wooden boxes lined with new fuzzy lamb’s wool.
Not that much. Just 10 or 12 kilos.
Yeah. I can’t leave that here. Even a small accident with this stuff would lay waste to not only our villa; but my landlord’s villa with whom we share a common wall.
Besides, as Omanis go, my landlord was the only dishdasha dressed denizen for which I had any respect or admiration. He was a good guy. I needed to return his villa at least in some semblance of what I received when we first rented from him.
So, I had to dispose of many, many billions of kilojoules of potential energy. I needed to do this out in a distant and far away from prying ears and eyes regions and I needed a truck to haul this stuff out to the range.
To be continued…
submitted by Rocknocker to Rocknocker [link] [comments]

./play.it 2.12: API, GUI and video games

./play.it 2.12: API, GUI and video games

./play.it is a free/libre software that builds native packages for several Linux distributions from DRM-free installers for a collection of commercial games. These packages can then be installed using the standard distribution-provided tools (APT, pacman, emerge, etc.).
A more complete description of ./play.it has already been posted in linux_gaming a couple months ago: ./play.it, an easy way to install commercial games on GNU/Linux
It's already been one year since version 2.11 was released, in January 2019. We will only briefly review the changelog of version 2.12 and focus on the different points of ./play.it that kept us busy during all this time, and of which coding was only a small part.

What’s new with 2.12?

Though not the focus of this article, it would be a pity not to present all the added features of this brand new version. ;)
Compared to the usual updates, 2.12 is a major one, especially since for two years, we slowed down the addition of new features. Some patches took dust since the end of 2018 before finally be integrated in this update!
The list of changes for this 2.12 release can be found on our forge. Here is a full copy for convenience:

Development migration


As many free/libre projects, ./play.it development started on some random sector of a creaking hard drive, and unsurprisingly, a whole part of its history (everything predating version 1.13.15 released on Mars 30th, 2016) disappeared into the limbs because some unwise operation destroyed the only copy of the repository… Lesson learned, what's not shared don't stay long, and so was born the first public Git repository of the project. The easing of collaborative work was only accidentally achieved by this quest for eternity, but wasn't the original motivation for making the repository publicly available.
Following this decision, ./play.it source code has been hosted successively by many shared forge platforms:

Dedicated forge

As development progressed, ./play.it began to increase its need for resources, dividing its code into several repositories to improve the workflow of the different aspects of the projects, adding continuous integration tests and their constraints, etc. A furious desire to understand the nooks and crannies behind a forge platform was the last deciding factor towards hosting a dedicated forge.
So it happened, we deployed a forge platform on a dedicated server, hugely benefiting from the tremendous work achieved by the GitLab's package Debian Maintainers team. In return, we tried to contribute our findings in improving this software packaging.
That was not expected, but this migration happened just a little time before the announcement “Déframasoftisons Internet !” (French article) about the planned end of Framagit.
This dedicated instance used to be hosted on a VPS rented from Digital Ocean until the second half of July 2020, and since then has been moved to another VPS, rented from Hetzner. The specifications are similar, as well as the service, but thanks to this migration our hosting costs have been cut in half. Keeping in mind that this is paid by a single person, so any little donation helps a lot on this front. ;)
To the surprise of our system administrator, this last migration took only a couple hours with no service interruption reported by our users.

Forge access

This new forge can be found at forge.dotslashplay.it. Registrations are open to the public, but we ask you to not abuse this, the main restriction being that we do not wish to host projects unrelated to ./play.it. Of course exceptions are made for our active contributors, who are allowed to host some personal projects there.
So, if you wish to use this forge to host your own work, you first need to make some significant contributions to ./play.it.


The collection of supported games growing endlessly, we have started the development of a public API allowing access to lots of information related to ./play.it.
This API, which is not yet stabilized, is simply an interface to a versioned database containing all the ./play.it scripts, handled archives, games installable through the project. Relations are, of course, handled between those items, enabling its use for requests like : « What packages are required on my system to install Cæsar Ⅲ ? » or « What are the free (as in beer) games handled via DOSBox ? ».
Originally developed as support for the new, in-development, Web site (we'll talk about it later on), this API should facilitate the development of tools around ./play.it. For example, it'll be useful for whomever would like to build a complete video game handling software (downloading, installation, starting, etc.) using ./play.it as one of its building bricks.
For those curious about the technical side, it's an API based on Lumeneffectuant that makes requests on a MariaDB database, all self-hosted on a Debian Sid. Not only is the code of the API versioned on our forge, but also the structure and content of the databases, which will allow those who desired it to install a local version easily.

New website

Based on the aforementioned API, a new website is under development and will replace our current website based on DokuWiki.
Indeed, if the lack of database and the plain text files structure of DokuWiki seemed at first attractive, as ./play.it supported only a handful of games (link in French), this feature became more inconvenient as the library of ./play.it supported games grew.
We shall make an in-depth presentation of this website for the 2.13 release of ./play.it, but a public demo of the development version from our forge is already available.
If you feel like providing an helping hand on this task, some priority tasks have been identified to allow opening a new Web site able to replace the current one. And for those interested in technical details, this web Site was developed in PHP using the framework Laravel. The current in-development version is hosted for now on the same Debian Sid than the API.


A regular comment that is done about the project is that, if the purpose is to make installing games accessible to everyone without technical skills, having to run scripts in the terminal remains somewhat intimidating. Our answer until now has been that while the project itself doesn't aim to providing a graphical interface (KISS principle "Keep it simple, stupid"), still and always), but that it would be relatively easy to, later on, develop a graphical front-end to it.
Well, it happens that is now reality. Around the time of our latest publication, one of our contributors, using the API we just talked about, developed a small prototype that is usable enough to warrant a little shout out. :-)
In practice, it is some small Python 3 code (an HCI completely in POSIX shell is for a later date :-°), using GTK 3 (and still a VTE terminal to display the commands issued, but the user shouldn't have to input anything in it, except perhaps the root password to install some packages). This allowed to verify that, as we used to say, it would be relatively easy, since a script of less than 500 lines of code (written quickly over a week-end) was enough to do the job !
Of course, this graphical interface project stays independent from the main project, and is maintained in a specific repository. It seems interesting to us to promote it in order to ease the use of ./play.it, but this doesn't prevent any other similar projects to be born, for example using a different language or graphical toolkit (we, globally, don't have any particular affinity towards Python or GTK).
The use of this HCI needs three steps : first, a list of available games is displayed, coming directly from our API. You just need to select in the list (optionally using the search bar) the game you want to install. Then it switches to a second display, which list the required files. If several alternatives are available, the user can select the one he wants to use. All those files must be in the same directory, the address bar on the top enabling to select which one to use (click on the open button on the top opens a filesystem navigation window). Once all those files available (if they can be downloaded, the software will do it automatically), you can move ahead to the third step, which is just watching ./play.it do its job :-) Once done, a simple click on the button on the bottom will run the game (even if, from this step, the game is fully integrated on your system as usual, you no longer need this tool to run it).
To download potentially missing files, the HCI will use, depending on what's available on the system, either wget, curl or aria2c (this last one also handling torrents), of which the output will be displayed in the terminal of the third phase, just before running the scripts. For privilege escalation to install packages, sudo will be used preferentially if available (with the option to use a third-party application for password input, if the corresponding environment variable is set, which is more user-friendly), else su will be used.
Of course, any suggestion for an improvement will be received with pleasure.

New games

Of course, such an announcement would not be complete without a list of the games that got added to our collection since the 2.11 release… So here you go:
If your favourite game is not supported by ./play.it yet, you should ask for it in the dedicated tracker on our forge. The only requirement to be a valid request is that there exists a version of the game that is not burdened by DRM.

What’s next?

Our team being inexhaustible, work on the future 2.13 version has already begun…
A few major objectives of this next version are :
If your desired features aren't on this list, don't hesitate to signal it us, in the comments of this news release. ;)


submitted by vv224 to linux_gaming [link] [comments]

Big ol' post. How I went about researching top surgery (and to some degree, my identity), therapy, experience with parents, early life and signs, etc. I found personal accounts to be helpful when I was starting to look into things, so here's my contribution.

My therapist keeps telling me that it's good for people to know what's possible, both bad and good. I've been lucky in a lot of areas and I didn't want to post about it because I don't want people to feel bad. But she keeps telling me that hope is an important tool for people so, if this is upsetting, blame her lol.
First some context and personal info about me. I'm nonbinary, but I lean and present masculine. I'm not on hormones. After wanting it for roughly 15 years, I got top surgery this year at the ripe old age of 29 (kidding about being old--sort of. I think this sub tends to skew pretty young, so I feel old compared to a lot of you lol).
I am so sorry about the length of this. I tried to break it down into chunks so if you want to skip headers you can.
Quick TL;DR Timeline:

Early Stuff

Until ~puberty~ and the dreaded body changes, gender was largely not something I thought about. I knew people tended to fit someone into either male or female, and I knew people viewed me as female and treated me as such, but it's not something I felt strongly about for myself at all. Puberty wound up sending me into a bit of an existential crisis. I hated my breasts. I hated how they made my shirts fit weird, I hated how people treated me differently if they were sort of on display, I constantly felt like I was smuggling a pair of grapefruits around.
My grandmother was diagnosed with breast cancer when she was 50, and had a mastectomy. I was like, holy shit? I WISH I WOULD GET BREAST CANCER SO THEY'D HAVE TO CUT OFF MY BOOBS! Yes, in retrospect, holy fuck that is an awful way to go about it. At the time I didn't know you could just like... get surgery. My only experiences with surgery were emergency situations, so I thought something had to be immediately, grievously, life-threateningly wrong in order to get surgery.
So I carried that ungodly wish around for a good several years. Yikes.
At the time I also hadn't heard of the term "nonbinary" and it was also really eating at me. "Woman" absolutely felt wrong, but "Man" didn't quite feel right either. I used to joke about feeling like a shapeless amoeba and being happy like that. But there was no way that was valid... right?? Obviously I was wrong, I found out about different gender identities and was much happier in that regard.
It may sound weird or look the same on the outside, but a lot of my masculine traits and tendencies are less about actually being masculine but really more about being less feminine. I know it looks the same from the outside but internally, it was an important distinction for me.
Still hated having boobs, tho.


This is one of the areas I really lucked out on, and the biggest thing I didn't want people to feel bad about. When it comes to my identity (and unrelated to this but my sexuality as well) my parents have been, well, remarkably chill.
My dad has always been tuned into my social media, so he already knew everything and ultimately was the one who was like "what are you waiting for? Schedule an appointment already!" I had to bring him to a therapy appointment once to talk about surgery strategy, and he basically said "parents who can't support their kids unconditionally shouldn't be parents" without missing a beat so that was nice. Otherwise he basically just lets me take the lead. Let him know what I need from him, and he'll do it.
My mom I was definitely more worried about, though it turned out to be pretty unfounded. My mom and I haven't had the greatest history. It basically boils down to a clash in personalities. I was a pretty shy kid, she was always pushy about it, and neither of us handled my Moody Teenager-ness well. Things have improved a lot since I became an adult and since I started antidepressant/antianxiety meds. I also had to bring her to a therapy appointment to talk about surgery recovery strategy, where it turns out she always knew about my identity in some way, she was just waiting for me to tell her myself. And then she was all hands on deck. She checked in with me after every pre-op and post-op appointment, she asked if there was anything she needed to do or buy, she dug up a bunch of her current husband's old button-ups for me to wear post-op, she stayed with me at the hospital and took me home, etc.
There was never any weirdness or questioning from either of them. I knew my dad would be chill, I was always worried about my mom though, but it was all a pleasant surprise.

Researching Top Surgery (and Therapy)

Thanks to the internet and places like Tumblr, I was introduced to the concept of gender affirming surgeries. I was initially skeptical that I qualified (the good ol' "am I trans enough??" question) but the more I read personal accounts and stories from people, the more I realized that I did indeed fit the bill.
But I was working at CVS at the time, had no health insurance, was (and still am) paying off student loans... it just wasn't going to happen at that time. So for 5 years I did nothing. Just plucked away at life.
Then I got a new job with actual health insurance. Interest renewed. It would still be a couple of years before I even called to make a consultation but, I started looking into everything again.
So I came up with a list of questions and goals that needed to be answered and researched:
I would like to emphasize, I knew NOTHING about insurance going into this. But honestly, it's not that difficult. Go through it slowly, google any terms you don't know or understand, and don't be afraid to call or email your insurance to ask even the stupidest of questions. It's their job to answer your questions.
First, I found my insurance's policy for "Gender Affirming Services (Transgender Services)" which is its official title within my insurance. I read it several times, and in my case I was glad that the language avoided sticking strictly to the binary, because I was worried I wouldn't qualify. They used phrases like "gender identity other than that assigned at birth." I actually just looked at it now and it's been updated even further to be even more inclusive, which is nice. It has a list of services and surgeries that are covered, along with any requirements. I saved the pdf, as well as printed it and stuck it in a big 3-ring binder that would become my go-to resource.
Next I started looking at surgeons that accepted my insurance, and whose results and reviews seemed good enough for me. Transbucket was still working at the time, so I went through the images and wrote a list of surgeons down. I live in NY, which has a few good but long-waitlisted surgeons, so to keep things a little less complicated I decided to narrow the list down to NY surgeons. I read some sketchy things about Mt. Sinai's surgeons at the time, so I decided to nix them from the list. Ultimately I decided to go with Dr. Bluebond-Langner with NYU Langone. Knowing there was going to be a long wait to deal with the rest of my prep, I called to schedule a consult pretty much immediately after I made my choice. The consult wound up being a year later, so that gave me time and a concrete deadline to work toward.
Call date: January 2018
Consult date: January 2019
NYU Langone sent me a pretty comprehensive packet of info, including some requirements for getting surgery. Mainly it was a diagnosis of gender dysphoria and letter from a therapist, which would also cover my insurance requirements.
So my next step was finding a suitable therapist. I had already read about the long wait times between consults and surgery, so I didn't immediately jump into therapy. There was a long stretch of just doing nothing.
Initially I started out by using the "find a provider" tool on my insurance website to try and find a therapist, but it wasn't really getting me anywhere. BCBS's various websites suck ass. After having some initial talks with a few therapists, I found out it's kind of annoying for them to work with insurance in NY, so they work out of network but provide the receipts and codes for you to submit a claim on your own.
So instead I started by searching "WPATH therapist [location]" and scoped out the results. They weren't necessarily registered with WPATH, but they were at least familiar with it and that was the important factor, for me. I reached out to them explaining who I was, what my identity was, and that I was seeking a diagnosis and letter so that I could get top surgery. I told them that I was absolutely okay if they were uncomfortable with this and did not want to continue.
Everyone responded kindly and was down for it, but I was put off by the short responses from some of them or the informal abbreviations. In any other normal everyday situation I absolutely would not care, but I had taken the time to write this formal email where I basically bared my deepest secrets to them, and getting back a "k" was like... nah man. This ain't it.
Except one woman who responded with the kind of thoughtfulness and care I was expecting, and seemed like a perfect fit. I love her to death and I'm still having sessions with her on a regular basis.
Therapy start: May 2019
It was my first time being in therapy at all. Some of it was about my identity, some of it was just general life stuff, but she's great at guiding things along and she's not afraid to ask me if that's what I really think or if I'm just saying what I think she wants me to say, stuff like that. Also I've slipped out a few curses in front of her (I curse a LOT in casual conversation) so it's pretty funny when your therapist isn't afraid to say "fuck" in front of you now.
In November 2019 we worked on and finalized my letter. She had me read it a dozen times before I signed off on it, and we made sure all the pertinent info and requirements were in, including the diagnosis code for gender dysphoria. She faxed it over to the hospital and also gave me a copy. Ultimately the letter was good for one year but she made it clear that she would absolutely change the date and resubmit it if my surgery date wound up falling past that point.
A big source of my info on surgery, recovery, and good stuff to have around has come from blog posts and from this sub. You have been invaluable. It was good to see the gamut of recoveries from "ridiculously smooth" to "absolute hell" and help me plan for the worst case (which thankfully wasn't necessary).

The World's Longest Home Stretch AKA Approaching Surgery

Consult in January 2020 finally arrived. I was in the waiting room longer than I was actually in any part of the consult lmao. Dr. Bluebond-Langner is nice and great, let me be clear. But for her it was just another Tuesday, so she was basically just blasting right along and asking me questions while taking measurements of my chest. I had some questions and she was happy to answer but I was also just kind of nervous and caught up in the expediency of the whole process, so it was all done in like, 3 minutes.
Then the photographer team took photos of me shirtless in several positions and angles. Super, duper weird and awkward but they were extremely nice and professional, and pretty made it as un-weird as possible.
The good news is that they have a stellar patient portal where you can ask questions pretty much whenever you want, and they also sent me another email and another physical packet of information which largely covered anything I forgot to ask in my stupor.
About 3 days later I got my surgery date.
Surgery date: August 2020
Obviously COVID has been a hell of a thing. Appointments were pushed back, masks were worn, hand sanitizer was applied judiciously, temperatures were taken at doorways. I waited with bated breath to see if my appointment would be rescheduled. Thankfully I lucked out big time and hospitals started doing non-emergency surgeries again before my date came up, so they called and told me I was still on for August.
I had to have an appointment with my Primary Care Physician (PCP) and explain that I was having surgery and I was going to need a bunch of tests done, and the results sent to the hospital. My doctor's office is a teaching office, so I basically had to come out to my PCP and the student shadowing her, but it was all chill. My doctor told me that she has several trans patients now and they're seeing an increase in people who are more comfortable to come out, which is nice. So she was 100% down to do whatever tests the hospital needed.
In practice, getting the results in and to the hospital on time was a bit of a pain in the ass. I think technically several of my results were late but it didn't screw me over. The tests had to be done within a certain window before surgery (not too early, basically) but the processing took forever on a couple of them, and I had to ask and triple check with the doctor's office a few times because the hospital was still missing a couple of them. It was a bit of unnecessary stress leading up to surgery lol.
PTO scheduled, bag packed, took a train into the city for surgery.

Surgery Experience

First off, everyone at the hospital was super nice the entire time I was there.
You're not allowed to eat or drink after midnight the night before. That night I woke up every hour from a nightmare that I had accidentally eaten something.
I showed up in sweats and a hoodie, got my patient wrist band (with my preferred name!) and then waited for what felt like an eternity while my mom and I chatted.
Someone came and got me, I had to brush my teeth and use mouthwash (something about cutting down on possible infection), had me pee in a cup one last time, and gave me a gown. My mom was allowed to join me in the "staging area" where other people were stationed and waiting for their surgeries to start. It was just a lot of taking vitals, starting the IV, people introducing themselves to you and what their role was going to be in your surgery, Dr. Bluebond-Langner marking up my chest and asking me how I was feeling.
It was the most chill hospital experience I have ever had. Granted all of my other experiences were like, emergency room visits where things were much more hectic. This was all planned out, everyone was relaxed, everything was fine.
After that, one big nap. The last thing I remember was getting up on the table and apologizing for being in the way while someone said "don't be sorry, you're the star of the show, we're all here for you" and then I was out like a light.
Next time I woke up I was in the recovery wing, where they stash you before they bring you to your permanent room. Initially, I was pretty dizzy and out of it, but I was definitely waking up. They were getting ready to move me, so I had to stand up, but I somehow managed to pull one of the drain bulbs out (NOT the tube that was in my body, thank god) so I looked like I was in a horror movie with a big puddle of blood on my side lol. They had me swap gowns.
While this was going on and I was standing up, it was the only time I felt bad. I felt sick and I told someone I think I needed to sit down. As soon as I sat down in the wheelchair I immediately felt better, and they were ready to wheel me to my room.

Post-Op in the Hospital

Dr. Bluebond-Langner keeps people overnight, so I stayed the night in the hospital.
This is another area where I feel a little bad, but my recovery has been pretty stellar and apparently I'm part Wolverine from X-Men because doctors and nurses keep telling me that I'm healing really well. Almost immediately, I was fairly mobile. The anesthesia hasn't really hung around. I was walking city blocks upon city blocks to my post-op appointments, and I'd say maybe about 1 month post-op I really started getting my range of motion back in my arms. I'm a little over 2 months now post op and can fully raise my arms over my head, etc. My pain management was also basically nonexistent. I used some extra strength tylenol for a few days until I forgot to take it, realized I didn't really seem to need it, and just stopped from thereon out.
STILL NO LIFTING THOUGH! Everyone is adamant about that.
After my initial hiccup with the anesthesia, it wore off pretty fast. I was up and able to walk laps around the hospital without issue. The nurse taking care of me had to keep telling me to slow down. I was wide awake, chatting and eating full meals (side note: the hospital food there was REALLY GOOD). I was able to get in an out of bed on my own, I started stripping my own drains (scared the crap out of the nurse who just saw someone moving behind my door and didn't realize I was able to do it on my own).
A few times throughout my stay, either Dr. Bluebond-Langner herself or someone on her team would come by and undo my compression vest to check things out and make sure there were no issues.
If I had one complaint, it's the IV fluids. I had to pee CONSTANTLY.
My mom stayed with me until the end of visiting hours, chatting and doing her own work, occasionally helping me reach things, flagging down a nurse when I had to pee for the hundreth time, etc.
Otherwise, I was discharged the next morning. The Uber ride and subsequent train ride home were pretty smooth. I was worried that every little bump would kill me, but the tightness of the compression vest kept everything pretty secure.

Recovery at Home

I was pretty self-sufficient. We had already moved a bunch of water glasses onto the counter for easy access, and I had a bunch of reasonably healthy easy-cook food ready to go. I had an adjustable incline pillow for sleeping on my back and keeping me somewhat elevated, coupled with a neck pillow and a total blackout sleep mask. My dog kept me company.
Sleeping is honestly probably the worst part. I am very much a side and stomach sleeper. And although my recovery was pretty smooth, surgery is still surgery and I found it difficult to get a good, restful sleep through the general uncomfortableness.
Showering and bathing was probably the second worst part. Taking a shallow bath was definitely easier but I basically couldn't get really clean because I was constantly worried about accidentally pulling the drains, or getting something wet.
Part of my dismissal included a packet with a calendar for measuring and recording my drains. I tried to do that at about 9am and 9pm every day to keep an even 12 hour spread. I'm not a particularly squeamish person, but even I initially was a bit grossed out by the contents of the drains. I got used to it after a couple of days, though.
My drains were, mercifully, not painful or irritated at the drain sites. The only issue I had was a VERY small hematoma on my right side, down where the drain actually starts in your body. Emptying my drains on that side started to produce a slightly painful pinching feeling in that spot, and putting pressure on it would hurt a bit. I contacted the surgeon's office about it, and they gave me the option to come in, or just ride it out and let it reabsorb itself. I chose to leave it alone, and it started feeling better after a few days.
I had several post-op appointments, 1 each week after surgery for 3 weeks. First week was just a checkup, nothing super notable to be honest. Basically just a "holy crap you're only one week out? I would not have guessed, you're walking around just fine."
At 2 weeks, we took the drains out. Thank god, because I went back to work the next day and really needed a proper shower. I still had to keep the compression vest on, but I was at least allowed to take it off and wash it. That thing was rank. And I was allowed to wear deodorant.
At 3 weeks, I was officially allowed to take the vest off. They showed me how to do scar massaging, they did a quick draining of some fluid in both of my sides (in Dr. Bluebond-Langner's own words, she was being "nitpicky" about it because it was a minor amount, but figured she might as well just do it while I was there), made me promise I'd keep moisturizing my nipple scabs, and said they'll see me in a month.
The scabs fell off eventually by the way. I think one fell off at like 3 weeks, the other at 4. Yes, it looks terrifying. No, they didn't die. Yes, it's normal. It is weird to see the very pink, fresh skin underneath but that's normal.
Now I just oil up my scars with bio-oil every day and massage as part of my morning routine. I already made a previous post about my scars being hypertrophic and how I'm fine with that, and it might be hard to believe when you see hypertrophic scars, but they look and feel much better now than they did, and they're only going to keep getting better.
I was using the silicone strips, but my scars kinda go up near my arm pits and when I get sweaty at work, it makes them come loose. I was taping those parts but the tape irritates my skin, so I just stopped trying to make that work for now.


So that's where I'm at now. I feel much, much better. I stand taller instead of hunching over to try and hide my chest. I'm probably a lot older than a lot of folks in here who probably can't even imagine waiting until nearly 30 to get to some of these points. I guess if there's a takeaway it's 1) sometimes surgery goes pretty smoothly and 2) your life doesn't end if you don't transition before 18.
I THINK it's pretty comprehensive in here but, if there's a particular question you have about something feel free to ask.
submitted by CrimmsonWind to ftm [link] [comments]

The internals of Android APK build process - Article

The internals of Android APK build process - Article

Table of Contents

  • CPU Architecture and the need for Virtual Machine
  • Understanding the Java Virtual Machine
  • Compiling the Source Code
  • Android Virtual Machine
  • Compilation Process to .dex
  • ART over Dalvik
  • Understanding each part of the build process.
  • Source Code
  • Resource Files
  • AIDL Files
  • Library Modules
  • AAR Libraries
  • JAR Libraries
  • Android Asset Packaging Tool
  • resources.arsc
  • D8 and R8
  • Dex and Multidex
  • Signing the APK
  • References
Understanding the flow of the Android APK build process, the execution environment, and code compilation blog post aims to be the starting point for developers to get familiar with the build process of Android APK.

CPU Architecture and the need for Virtual Machine

Unveiled in 2007, Android has undergone lots of changes related to its build process, the execution environment, and performance improvements.
There are many fascinating characteristics in Android and one of them is different CPU architectures like ARM64 and x86
It is not realistic to compile code that supports each and every architecture. This is where Java Virtual Machine is used.

Understanding the Java Virtual Machine

JVM is a virtual machine that enables a computer to run applications that are compiled to Java bytecode. It basically helps us in converting the compiled java code to machine code.
By using the JVM, the issue of dealing with different types of CPU architecture is resolved.
JVM provides portability and it also allows Java code to be executed in a virtual environment rather than directly on the underlying hardware.
But JVM is designed for systems with huge storages and power, whereas Android has comparatively low memory and battery capacity.
For this reason, Google has adopted an Android JVM called Dalvik.


Compiling the Source Code

Our Java source code for the Android app is compiled into a .class file bytecode by the javac compiler and executed on the JVM.
For Kotlin source code, when targeting JVM, Kotlin produces Java-compatible bytecode, thanks to kotlinc compiler.
To understand bytecode, it is a form of instruction set designed for efficient execution by a software interpreter.
Whereas Java bytecode is the instruction set of the Java virtual machine.


Android Virtual Machine

Each Android app runs on its own virtual machine. From version 1.0 to 4.4, it was 'Dalvik'. In Android 4.4, along with Dalvik, Google experimentally introduced a new Android Runtime called 'ART'.
Android users had the option to choose either Dalvik or ART runtime in Android 4.4.
The .class files generated contains the JVM Java bytecodes.
But Android has its own optimized bytecode format called Dalvik from version 1.0 to 4.4. Dalvik bytecodes, like JVM bytecodes, are machine-code instructions for a processor.


Compilation Process to .dex

The compilation process converts the .class files and .jar libraries into a single classes.dex file containing Dalvik byte-codes. This is possible with the dx command.
The dx command turns all of the .class and .jar files together into a single classes.dex file is written in Dalvik bytecode format.
To note, dex means Dalvik Executable.

ART over Dalvik

Since Android 4.4, Android migrated to ART, the Android runtime from Dalvik. This execution environment executes .dex as well.
The benefit of ART over Dalvik is that the app runs and launches faster on ART, this is because DEX bytecode has been translated into machine code during installation, no extra time is needed to compile it during the runtime.
ART and Dalvik are compatible runtimes running Dex bytecode, so apps developed for Dalvik should work when running with ART.
The JIT based compilation in the previously used Dalvik has disadvantages of poor battery life, application lag, and performance.
This is the reason Google created Android Runtime(ART).
ART is based on Ahead - Of - Time (AOT) based compilation process where compilation happens before application starts.
In ART, the compilation process happens during the app installation process itself. Even though this leads to higher app installation time, it reduces app lag, increases battery usage efficiency, etc.
Even though dalvik was replaced as the default runtime, dalvik bytecode format is still in use (.dex)
In Android version 7.0, JIT came back. The hybrid environment combining features from both a JIT compiler and ART was introduced.
The bytecode execution environment of Android is important as it is involved in the application startup and installation process.

Understanding each part of the process.


Source Code

Source code is the Java and Kotlin files in the src folder.

Resource Files

The resource files are the ones in the res folder.

AIDL Files

Android Interface Definition Language (AIDL) allows you to define the programming interface for client and service to communicate using IPC.
IPC is interprocess communication.
AIDL can be used between any process in Android.

Library Modules

Library module contains Java or Kotlin classes, Android components, and resources though assets are not supported.
The code and resources of the library project are compiled and packaged together with the application.
Therefore a library module can be considered to be a compile-time artifact.

AAR Libraries

Android library compiles into an Android Archive (AAR) file that you can use as a dependency for an Android app module.
AAR files can contain Android resources and a manifest file, which allows you to bundle in shared resources like layouts and drawables in addition to Java or Kotlin classes and methods.

JAR Libraries

JAR is a Java library and unlike AAR it cannot contain Android resources and manifests.

Android Asset Packaging Tool

Android Asset Packaging Tool (aapt2) compiles the AndroidManifest and resource files into a single APK.
At this point, it is divided into two steps, compiling and linking. It improves performance, since if only one file changes, you only need to recompile that one file and link all the intermediate files with the 'link' command.
AAPT2 supports the compilation of all Android resource types, such as drawables and XML files.
When you invoke AAPT2 for compilation, you should pass a single resource file as an input per invocation.
AAPT2 then parses the file and generates an intermediate binary file with a .flat extension.
The link phase merges all the intermediate files generated in the compile phase and outputs one .apk file. You can also generate R.java and proguard-rules at this time.


The output .apk file does not include the DEX file, so the DEX file is not included, and since it is not signed, it is an APK that cannot be executed.
This APK contains the AndroidManifest, binary XML files, and resources.arsc.
This resource.arsc contains all meta-information about a resource, such as an index of all resources in the package.
It is a binary file, and the APK that can be actually executed, and the APK that you often build and execute are uncompressed and can be used simply by expanding it in memory.
The R.java that is output with the APK is assigned a unique ID, which allows the Java code to use the resource during compilation.
arsc is the index of the resource used when executing the application.


D8 and R8

Starting from android studio 3.1 onwards, D8 was made the default compiler.
D8 produces smaller dex files with better performance when compared with the old dx.
R8 is used to compile the code. R8 is an optimized version of D8.
D8 plays the role of dexer that converts class files into DEX files and the role of desugar that converts Java 8 functions into bytecode that can be executed by Android.
R8 further optimizes the dex bytecode. R8 provides features like optimization, obfuscation, remove unused classes.
Obfuscation reduces the size of your app by shortening the names of classes, methods, and fields.
Obfuscation has other benefits to prevent easy reverse engineering, but the goal is to reduce size.
Optimization reduces the DEX file size by rewriting unnecessary parts and inlining.
By doing Desugaring we can use the convenient language features of Java 8 in older devices.

Dex and Multidex

R8 outputs one DEX file called classes.dex.
If you are using Multidex, that is not the case, but multiple DEX files will appear, but for the time being, classes.dex will be created.
If the number of application methods exceeds 65,536 including the referenced library, a build error will occur.
The method ID range is 0 to 0xFFFF.
In other words, you can only refer to 65,536, or 0 to 65,535 in terms of serial numbers.
This was the cause of the build error that occurred above 64K.
In order to avoid this, it is useful to review the dependency of the application and use R8 to remove unused code or use Multidex.


Signing the APK

All APKs require a digital signature before they can be installed or updated on your device.
For Debug builds, Android Studio automatically signs the app using the debug certificate generated by the Android SDK tools when we run.
A debug Keystore and a debug certificate is automatically created.
For release builds, you need a Keystore and upload the key to build a signed app. You can either make an APK file with apkbuilder and finally optimize with zipalign on cmd or have Android Studio handle it for you with the 'Generated Signed Apk option'.



by androiddevnotes on GitHub
submitted by jiayounokim to androiddev [link] [comments]

Star Trek games you can get right now

Hi everyone, my last post about wanting to see more star trek games got a lot of comments (if not a lot of Karma) and so I thought you might be interested in what Star Trek games are around right now.
Edit: Please feel free to add your own, or add links to games with mods (though please include the link to the mod as well if you can) that convert them into Star Trek games! I only limited this to official star trek games in the hopes that maybe people might buy them, and thus produce sales data that might make CBS see that there's a good monetary incentive to make more games available.
First off, the original Starfleet Command is a great game that still holds up, even if it's graphics look like they're rendered in cardboard. You can install it, go to skirmish, and make yourself a 9 on 9 fleet battle between any of the TOS factions they included. I just went three rounds in a half hour and it's honestly probably, pound for pound, the best currently downloadable Star Trek game available. Go watch the Battle of the Binary Stars and set yourself up a round, it's real fun I promise!
Next up, Star Trek Bridge Crew. Looks really cool and fun, but I lack a VR headset and playing without one was, for me at least, basically impossible. I imagine it's better with friends and with the appropriate equipment, but unless you've already got those it's kind of hard to justify buying it.
Star Trek Online has been around for a while, and you likely already know it. It's an MMO on the decline and I haven't personally played the expansions, but there is plenty of trek themed content around a serviceable MMO that once upon a time admirably carried the burden of being our only way to play past the end of Voyager in the prime timeline. And hey, some of the stories are cool! (It's great for people who love buying lootboxes!)
Star Trek Starfleet Academy is a flight sim that has footage of the original trek actors, and is well reviewed, though I couldn't tell you how it is personally. Might pick it up on sale, but if I'm being honest, probably not.
I don't really count Star Trek Timelines, because it's basically a fancy UI over a random number generator phone game, but it exists, technically, so here.https://store.steampowered.com/app/600750/Star_Trek_Timelines/
Also, for the sake of completeness, there are some adventure games (that seem neat but I'm not buying for $10 a pop)
And, unless you wanna go trolling around for an old physical copy of Elite Force or The Fallen somewhere, that's it!
Unless of course you consider piracy as an option to get games no longer being sold, in which ca-*transmission lost*
submitted by Wareve to startrek [link] [comments]

11-04 23:47 - 'DON'T USE THIS' (self.linux) by /u/CreeperTyE removed from /r/linux within 6-16min

This is for cyberpatriots, pls don't use this.
# CyberPatriot Ubuntu (Trusty Tahr) Script v0.3.5
# Root is required to run this script, but chmod should not be used on script or run as root.
# User running script must be in group 'sudo'.
# Not everything is covered in this script. Please make sure to review checklist and the Securing Debian Manual.
# This script is only meant to be used for whichever team Keita Susuki is on.
# CHANGES: sed is now more often used to find and replace instead of append to config files
function main {
kernel_info=$(uname -a)
echo "---------------------------------------------------------"
echo "Script version: v0.3.5"
echo "Current User: $display_info"
echo "Team: Binary Bros"
echo "Current Time: $time"
echo "Kernel info: $kernel_info"
echo "Now, what can I do for you today?"
echo "---------------------------------------------------------"
echo -en '\n'
read -p "Press ENTER to continue."
echo -en '\n'
read -r forensic_questions
if [[ $forensic_questions == "y" || $forensic_questions == "Y" ]]; then
echo "Good. Now let's start working."
elif [[ $forensic_questions == "n" || $forensic_questions == "N" ]]; then
echo "Finish the forensics questions and come back."
echo "Error: bad input."
echo "Before using apt, we need to check to see if sources.list hasn't been tampered with."
echo "Redirecting you to /etc/apt/sources.list in 5 seconds..."
sleep 5
sudo gedit /etc/apt/sources.list
echo "Securing /run/shm."
echo "r-- is dangerous, only on servers if there is no reason for /run/shm."
echo "Read only /run/shm can cause many programs to break. Be cautious."
echo -en '\n'
echo "Options:"
echo "Mount /run/shm r-- (read-only) [r]"
echo "Mount /run/shm rw- (read-write) [w]"
echo "Skip this method. [x]"
read -r shared_memory
if [[ $shared_memory == "r" || $shared_memory == "R" ]]; then
echo "none /run/shm tmpfs defaults,ro 0 0" | sudo tee -a /etc/fstab
echo "Done. Restart box after script has run its course."
elif [[ $shared_memory == "w" || $shared_memory == "w" ]]; then
echo "none /run/shm tmpfs rw,noexec,nosuid,nodev 0 0" | sudo tee -a /etc/fstab
echo "Done. Restart box after script has run its course."
elif [[ $shared_memory == "x" || $shared_memory == "X" ]]; then
echo "Understood. Check UnsafeDefaults page on Ubuntu's website."
echo -en '\n'
echo "Next, we will check hosts file. Make sure nothing looks amiss (default config)."
echo "Redirecting you to hosts file in 5 seconds..."
sleep 5
sudo gedit /etc/hosts
echo -en '\n'
echo "See if nameserver is unfamiliar, if it is, change to google public ("
echo "Redirecting you in 3 seconds..."
sudo gedit /etc/resolv.conf
echo -en '\n'
echo "I will now install packages necessary for the security of the system."
echo -en '\n'
sudo apt-get -y -qq install rkhunter clamav clamtk gufw ufw libpam-cracklib vim nmap sysv-rc-conf bum unattended-upgrades logcheck lynis members auditd chkrootkit fail2ban
echo -en '\n'
echo "Configuring automatic upgrades.."
sudo dpkg-reconfigure --priority=low unattended-upgrades
echo "Would you like to manually use gufw or have the script automatically use ufw and close off ports?"
echo -en '\n'
echo "Options:"
echo "g: gufw"
echo "a: auto ufw"
echo "ga: ufw then manual gufw"
read -r firewall_config
if [[ $firewall_config == "g" || $firewall_config == "G" ]]; then
echo "Opening gufw in 5 seconds..."
sleep 5
sudo gufw
elif [[ $firewall_config == "a" || $firewall_config == "A" ]]; then
sudo ufw enable
sudo ufw deny 23
sudo ufw deny 2049
sudo ufw deny 515
sudo ufw deny 111
sudo ufw deny 9051
sudo ufw deny 31337
sudo ufw status
echo "Automatic configuration of firewall completed. I recommend that you look over this again."
sleep 10
elif [[ $firewall_config == "ga" || $firewall_config == "GA" ]]; then
sudo ufw enable
sudo ufw deny 23
sudo ufw deny 2049
sudo ufw deny 515
sudo ufw deny 111
sudo ufw deny 9051
sudo ufw deny 31337
sudo gufw
echo "Error: bad input."
echo -en '\n'
echo "Running nmap on to display open ports..." # nmap isn't considered a "hacking tool"
echo "Would you also like to save output to nmap_output.txt [y/n]?"
echo -en '\n'
read -r nmap_input
if [[ $nmap_input == "y" || $nmap_input == "Y" ]]; then
echo "Sending output to nmap_output.txt.."
touch nmap_output.txt
echo "Running nmap on localhost again so you can see the output."
nmap -sV > nmap_output.txt
sleep 10
echo -en '\n'
elif [[ $nmap_input == "n" || $nmap_input == "N" ]]; then
echo "Understood. Running nmap on localhost.."
nmap -sV
sleep 10
echo -en '\n'
echo "Error: bad input."
echo -en '\n'
echo "Now please disable unneeded processes keeping ports open."
sleep 5
sudo sysv-rc-conf # preferred tool for this
echo -en '\n'
echo "Please make sure there is nothing besides exit 0 and some comments."
sleep 5
sudo vim /etc/rc.local
echo -en '\n'
echo "Checking for sshd_config file"
if [ -f "$sshd" ]; then
echo "sshd is present on this system."
echo "Is sshd a critical service on this machine? [y/n]"
echo "note: selecting N will remove sshd from this system. Proceed with caution."
read -r sshd_critical
if [[ $sshd_critical == "y" || $sshd_critical == "Y" ]]; then
elif [[ $sshd_critical == "n" || $sshd_critical == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
echo -en '\n'
echo "Would you like to restart sshd? [y/n]"
read -r sshd_restart_uinput
if [[ $sshd_restart_uinput == "Y" || $sshd_restart_uinput == "y" ]]; then # may take points and then give back
echo "Restarting sshd..."
sudo service sshd restart
elif [[ $sshd_restart_uinput == "n" || $sshd_restart_uinput == "N" ]]; then
echo "Understood. Remember that changes will not happen until sshd is restarted."
echo "Error: bad input."
echo -en '\n'
echo "Disabling guest user and turning off autologin. Editing /etc/lightdm/lightdm.conf"
echo "Checklist reference: GENERAL/8 Alpha, Bravo"
echo "Remember to restart lightdm or restart box later on."
echo "I will direct you there in 5 seconds."
sleep 5
sudo vim /etc/lightdm/lightdm.conf
echo -en '\n'
printf "Now, would you like for me to add some better settings for /etc/sysctl.conf? [y\n]"
read -r secure_sysctl
if [[ $secure_sysctl == "y" || $secure_sysctl == "Y" ]]; then
elif [[ $secure_sysctl == "n" || $secure_sysctl == "N" ]]; then
echo -en '\n'
echo "Understood, I recommend you do this manually however."
echo -en '\n'
echo "Error: bad input"
echo -en '\n'
echo "Lock the root account? [y/n]"
read -r disable_root
echo -en '\n'
if [[ $disable_root == "y" || $disable_root == "Y" ]]; then
sudo passwd -l root
echo "Root account locked."
elif [[ $disable_root == "n" || $disable_root == "N" ]]; then
echo "Understood, manually lock please."
echo "Bad input."
echo -en '\n'
echo "Limit access to su to all users but the ones in group wheel? [y/n]"
echo -en '\n'
read -r lim_su
if [[ $lim_su == "y" || $lim_su == "Y" ]]; then
sudo chown [link]1 /bin/su sudo
chmod 04750 /bin/su
echo "Done."
elif [[ $lim_su == "n" || $lim_su == "N" ]]; then
echo "Remember to manually limit access to su! All it takes is a single uncomment..."
echo "Bad input."
if [[ -f "$apache_s" ]]; then
echo "Is apache2 supposed to be installed on this system? [y/n]"
echo "If you choose N then you will subsequently uninstall apache2. Be careful."
read -r apache2_que
if [[ $apache2_que == "y" || $apache2_que == "Y" ]]; then
echo "Understood, moving on to securing apache2."
elif [[ $apache2_que == "n" || $apache2_que == "N" ]]; then
echo "Uninstalling apache2..."
sudo service apache2 stop
sudo apt-get purge apache2
echo "Bad input."
echo "Apache2 is not installed, moving on."
if [[ -f "$vsftpd_s" ]]; then
echo "vsftpd configuration file detected."
echo "Is vsftpd a critical service on this machine? [y/n]"
echo "If you choose N then you will subsequently uninstall vsftpd. Be careful."
read -r vsftpd_choice
if [[ $vsftpd_choice == "y" || $vsftpd_choice == "Y" ]]; then
echo "Understood, moving on to securing vsftpd."
elif [[ $vsftpd_choice == "n" || $vsftpd_choice == "N" ]]; then
sudo service vsftpd stop
sudo apt-get purge vsftpd
echo "Bad input."
echo "vsftpd is not installed on this machine, moving on."
echo "Check apparmor? [y/n]"
read -r apparmor_check
if [[ $apparmor_check == "y" || $apparmor_check == "Y" ]]; then
elif [[ $apparmor_check == "n" || $apparmor_check == "N" ]]; then
echo "Understood, moving on."
echo -en '\n'
echo "Error: bad input."
echo -en '\n'
echo "Deny su to non admins? [y/n]"
echo -en '\n'
read -r deny_su
if [[ $deny_su == "y" || $deny_su == "Y" ]]; then
sudo dpkg-statoverride --update --add root sudo 4750 /bin/su
echo "Done."
elif [[ $deny_su == "n" || $deny_su == "N" ]]; then
sudo "Understood, moving on."
echo "Error: bad input."
echo -en '\n'
echo "Secure home directory? [y/n]"
echo "NOTE: potentially dangerous."
echo -en '\n'
read -r home_secure
if [[ $home_secure == "y" || $home_secure == "Y" ]]; then
echo "What is your username?"
echo "I need it so I can chmod 0700 your home directory."
read -r username_uinput
sudo chmod 0700 /home/"$username_uinput"
echo "Thanks!."
elif [[ $home_secure == "n" || $home_secure == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
echo -en '\n'
echo "Prevent IP spoofing? [y/n]"
echo "(/etc/host.conf)"
read -r ip_spoof
echo -en '\n'
if [[ $ip_spoof == "y" || $ip_spoof == "Y" ]]; then
echo "order bind,hosts" | sudo tee -a /etc/host.conf
echo "nospoof on" | sudo tee -a /etc/host.conf
echo "IP spoofing disabled."
elif [[ $ip_spoof == "n" || $ip_spoof == "N" ]]; then
echo "Understood, skipping disabling ip spoofing."
echo "Error: bad input."
echo "Would you like to edit /etc/pam.d? [y/n]"
read -r pam_secure
if [[ $pam_secure == "y" || $pam_secure == "Y" ]]; then
echo "Use subroutine pam_secure? [y/n]"
read -r choose_pam_secure
if [[ $choose_pam_secure == "y" || $choose_pam_secure == "Y" ]]; then
elif [[ $choose_pam_secure == "n" || $choose_pam_secure == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
echo "Redirecting you to /etc/pam.d/common-password. Use checklist."
echo "Checklist reference: GENERAL/10 ALPHA"
echo -en '\n'
sleep 5
sudo vim /etc/pam.d/common-password
echo -en '\n'
echo "Redirecting you to /etc/pam.d/common-auth. Use checklist."
echo "Checklist reference: GENERAL/10 BRAVO"
sleep 5
sudo vim /etc/pam.d/common-auth
echo -en '\n'
echo "Redirecting you to /etc/login.defs. Use checklist."
echo "Checklist reference: GENERAL/10 CHARLIE"
sleep 5
sudo vim /etc/login.defs
elif [[ $pam_secure == "n" || $pam_secure == "N" ]]; then
echo "Understood, will skip securing pam.d. Make sure to use the checklist and do so manually."
echo "Sorry, bad input."
echo -en '\n'
echo "Would you like to delete media files? [y/n]"
echo "Warning: Feature untested due to obvious reasons."
echo -en '\n'
read -r media_input
if [[ $media_input == "y" || $media_input == "Y" ]]; then
sudo find / -name '*.mp3' -type f -delete
sudo find / -name '*.mov' -type f -delete
sudo find / -name '*.mp4' -type f -delete
sudo find / -name '*.avi' -type f -delete
sudo find / -name '*.mpg' -type f -delete
sudo find / -name '*.mpeg' -type f -delete
sudo find / -name '*.flac' -type f -delete
sudo find / -name '*.m4a' -type f -delete
sudo find / -name '*.flv' -type f -delete
sudo find / -name '*.ogg' -type f -delete
sudo find /home -name '*.gif' -type f -delete
sudo find /home -name '*.png' -type f -delete
sudo find /home -name '*.jpg' -type f -delete
sudo find /home -name '*.jpeg' -type f -delete
elif [[ $media_input == "n" || $media_input == "N" ]]; then
echo "Understood, manually search and destroy media files."
echo "Error: bad input."
echo -en '\n'
echo "Would you like to install updates? [y/n]"
read -r update_input
if [[ $update_input == "y" || $update_input == "Y" ]]; then
sudo apt-get -qq -y update
sudo apt-get -qq -y upgrade
sudo apt-get -qq -y dist-upgrade
sudo apt-get -qq -y autoremove
elif [[ $update_input == "n" || $update_input == "N" ]]; then
echo "Understood, moving on."
echo -en '\n'
echo "Error: bad input."
echo -en '\n'
sudo freshclam
echo "Run chkrootkit and rkhunter? [y/n]"
read -r rootkit_chk
if [[ $rootkit_chk == "y" || $rootkit_chk == "Y" ]]; then
touch rkhunter_output.txt
echo "Rkhunter output file created as rkhunter_output.txt."
touch chkrootkit_output.txt
echo "chkrootkit output file created as chkrootkit_output.txt."
sudo chkrootkit | tee chkrootkit_output.txt
sudo rkhunter -c | tee rkhunter_output.txt
elif [[ $rootkit_chk == "n" || $rootkit_chk == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
sudo clamscan -r /
echo -en '\n'
sleep 5
touch lynis_output.txt
echo "Lynis output file created as lynis_output.txt."
sudo lynis -c | tee lynis_output.txt
echo "Enable apparmor? [y/n]"
read -r apparmor_enabling
if [[ $apparmor_enabling == "y" || $apparmor_enabling == "Y" ]]; then
sudo perl -pi -e 's,GRUB_CMDLINE_LINUX="(.*)"$,GRUB_CMDLINE_LINUX="$1 apparmor=1 security=apparmor",' /etc/default/grub
sudo update-grub
elif [[ $apparmor_enabling == "n" || $apparmor_enabling == "N" ]]; then
echo "Understood, you should enable it however."
echo "Error: bad input."
echo "The script has run it's course."
echo "Remember to manually check config files and finish any changes."
echo -en '\n'
echo "--------------------------------------------------------"
echo "--------------------------------------------------------"
echo "Current User: $display_info"
echo "Current Time: $time"
echo "Kernel info: $kernel_info"
echo "--------------------------------------------------------"
echo -en '\n'
read -p "Press ENTER to reboot the system."
sudo reboot
function apache2_secure {
sudo apt-get -y install libapache2-modsecurity
sudo apt-get -y install libapache2-modevasive
sudo sed -i 's/^#?ServerSignature .*/ServerSignature Off/g' /etc/apache2/conf-enabled/security.conf
sudo sed -i 's/^#?ServerTokens .*/ServerTokens Off/g' /etc/apache2/conf-enabled/security.conf
sudo sed -i 's/^#?Options .*/Options None/g' /etc/apache2/apache2.conf
sudo sed -i 's/^#?AllowOverride .*/AllowOverride None/g' /etc/apache2/apache2.conf
sudo sed -i 's/^#?Require*/Require all granted/g' /etc/apache2/apache2.conf
sudo sed -i 's/^#?LimitRequestBody*/LimitRequestBody 204800/g' /etc/apache2/apache2.conf
echo "" | sudo tee -a /etc/apache2/apache2.conf
echo "Order deny, allow" | sudo tee -a /etc/apache2/apache2.conf
echo "Deny from all" | sudo tee -a /etc/apache2/apache2.conf
echo "Check if mod_security module is running..."
echo "
" | sudo tee -a /etc/apache2/apache2.conf
sudo sed -i 's/^#?Timeout*/Timeout 15/g' /etc/apache2/apache2.conf
sudo sed -i 's/^#?LimitXMLRequestBody*/LimitXMLRequestBody 204800/' /etc/apache2/apache2.conf
sudo apachectl -M | grep --color security
echo "Is mod_security on? It should say security2_module somewhere."
read -r security_a2_on
if [[ $security_a2_on == "y" || $security_a2_on == "Y" ]]; then
echo "Good. I will move on."
elif [[ $security_a2_on == "n" || $security_a2_on == "N" ]]; then
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo sed -i 's/^#?SecRuleEngine .*/SecRuleEngine On/g' /etc/modsecurity/modsecurity.conf
sudo service apache2 restart
echo "Error: bad input."
return 1
function pam_secure {
sudo sed -i 's/^#?PASS_MAX_DAYS .*/PASS_MAX_DAYS 90/g' /etc/login.defs
sudo sed -i 's/^#?PASS_MIN_DAYS .*/PASS_MIN_DAYS 7/g' /etc/login.defs
sudo sed -i 's/^#?PASS_WARN_AGE .*/PASS_WARN_AGE 7/g' /etc/login.defs
echo "Setup failed login attempts in /etc/pam.d/common-auth and add some config changes? [y/n]"
read -r fail_pamd_ca
if [[ $fail_pamd_ca == "y" || $fail_pamd_ca == "Y" ]]; then
echo "auth optional pam_tally.so deny=5 unlock_time=900 onerr=fail audit even_deny_root_account silent" | sudo tee -a /etc/pam.d/common-auth
sudo sed -i 's/^#?pam_unix.so .*/password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
remember=10 minlen=8 difok=5/g' /etc/pam.d/common-password
elif [[ $fail_pamd_ca == "n" || $fail_pamd_ca == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
echo "Create brutally paranoid configuration for /etc/pam.d/other? [y/n]"
read -r other_paranoid
if [[ $other_paranoid == "y" || $other_paranoid == "Y" ]]; then
echo "auth required pam_deny.so" | sudo tee -a /etc/pam.d/other
echo "auth required pam_warn.so" | sudo tee -a /etc/pam.d/other
echo "account required pam_deny.so" | sudo tee -a /etc/pam.d/other
echo "account required pam_warn.so" | sudo tee -a /etc/pam.d/other
echo "password required pam_deny.so" | sudo tee -a /etc/pam.d/other
echo "password required pam_warn.so" | sudo tee -a /etc/pam.d/other
echo "session required pam_deny.so" | sudo tee -a /etc/pam.d/other
echo "session required pam_warn.so" | sudo tee -a /etc/pam.d/other
elif [[ $other_paranoid == "n" || $other_paranoid == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
return 1
function vsftpd_secure {
sudo sed -i 's/^anonymous_enable=.*/anonymous_enable=NO/g' /etc/vsftpd.conf
echo "Anonymous FTP login disabled."
sudo sed -i 's/^chroot_local_user=.*/chroot_local_user=YES/g' /etc/vsftpd.conf
echo "Local users restricted to their home directories."
echo "Create SSL/TLS certificate and private key for vsftpd server? [y/n]"
read -r ssl_vsftpd
if [[ $ssl_vsftpd == "y" || $ssl_vsftpd == "Y" ]]; then
sudo openssl req -x509 -days 365 -newkey [link]2 -nodes -keyout /etc/vsftpd.pem -out /etc/vsftpd.pem
echo "Created."
echo "Making config changes..."
sudo sed -i 's/^#?ssl_enable=.*/ssl_enable=YES/g' /etc/vsftpd.conf #enable tls/ssl
echo "SSL enabled."
sudo sed -i 's/^#?allow_anon_ssl=.*/allow_anon_ssl=NO/g' /etc/vsftpd.conf
sudo sed -i 's/^#?force_local_data_ssl=.*/force_local_data_ssl=YES/g' /etc/vsftpd.conf
sudo sed -i 's/^#?force_local_logins_ssl=.*/force_local_logins_ssl=YES/g' /etc/vsftpd.conf
sudo sed -i 's/^#?ssl_tlsv1=.*/ssl_tlsv1=YES/g' /etc/vsftpd.conf
sudo sed -i 's/^#?ssl_sslv2=.*/ssl_sslv2=NO/g' /etc/vsftpd.conf
sudo sed -i 's/^#?ssl_sslv3=.*/ssl_sslv3=NO/g' /etc/vsftpd.conf
sudo sed -i 's/^#?require_ssl_reuse=.*/require_ssl_reuse=NO/g' /etc/vsftpd.conf
sudo sed -i 's/^#?ssl_ciphers=.*/ssl_ciphers=HIGH/g' /etc/vsftpd.conf
sudo sed -i 's/^#?rsa_cert_file=.*/rsa_cert_file=/etc/vsftpd.pem/g' /etc/vsftpd.conf
sudo sed -i 's/^#?rsa_private_key_file=.*/rsa_private_key_file=/etc/vsftpd.pem/g' /etc/vsftpd.conf
sudo sed -i 's/^#?pasv_max_port=.*/pasv_max_port=65535/g' /etc/vsftpd.conf
sudo sed -i 's/^#?pasv_min_port=.*/pasv_min_port=64000/g' /etc/vsftpd.conf
sudo sed -i 's/^#?local_max_rate=.*/local_max_rate=30000/g' /etc/vsftpd.conf
sudo sed -i 's/^#?idle_session_timeout=.*/idle_session_timeout=120/g' /etc/vsftpd.conf
sudo sed -i 's/^#?max_per_ip=.*/max_per_ip=15/g' /etc/vsftpd.conf
sudo sed -i 's/^#?xferlog_enable=.*/xferlog_enable=YES/g' /etc/vsftpd.conf
sudo sed -i 's/^#?xferlog_std_format=.*/xferlog_std_format=NO/g' /etc/vsftpd.conf
sudo sed -i 's/^#?xferlog_file=.*/xferlog_file=/valog/vsftpd.log/g' /etc/vsftpd.conf
echo "Log file set at /valog/vsftpd.log"
sudo sed -i 's/^#?log_ftp_protocol=.*/log_ftp_protocol=YES/g' /etc/vsftpd.conf
sudo sed -i 's/^#?debug_ssl=.*/debug_ssl=YES/g' /etc/vsftpd.conf
echo "Configuration changes complete. Check /etc/vsftpd.conf later to see if they have all been done."
echo -en '\n'
echo "[link]3 "
echo -en '\n'
echo "Adding firewall exceptions.."
sudo ufw allow 20
sudo ufw allow 21
sudo ufw allow 64000:65535/tcp
sudo iptables -I INPUT -p tcp --dport 64000:65535 -j ACCEPT
elif [[ $ssl_vsftpd == "n" || $ssl_vsftpd == "N" ]]; then
echo "Understood. However, this is recommended."
echo "Error: bad input."
echo "Restart vsftpd? [y/n]"
read -r vsftpd_restart
if [[ $vsftpd_restart == "y" || $vsftpd_restart == "Y" ]]; then
sudo service vsftpd restart
elif [[ $vsftpd_restart == "n" || $vsftpd_restart == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
return 1
function apparmor_fix {
if [ -f /ussbin/apparmor_status ]; then
echo "Apparmor already installed."
echo "Apparmor not installed, installing."
sudo apt-get install -y -qq apparmor apparmor-profiles apparmor-utils
echo "Apparmor will be enabled at the end of the script."
return 1
function sshd_secure_config {
sudo sed -i 's/^#?PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
return 1
sudo sed -i 's/^#?PermitEmptyPasswords .*/PermitEmptyPasswords no/' /etc/ssh/sshd_config
sudo sed -i 's/^#?Port .*/Port 2223/' /etc/ssh/sshd_config
sudo sed -i 's/^#?X11Forwarding .*/X11Forwarding no/' /etc/ssh/sshd_config
sudo ufw allow 2223
sudo sed -i 's/^#?Protocol .*/Protocol 2/' /etc/ssh/sshd_config
sudo sed -i 's/^#?PrintLastLog .*/PrintLastLog no/' /etc/ssh/sshd_config
sudo sed -i 's/^#?IgnoreRhosts .*/IgnoreRhosts yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#?RhostsAuthentication .*/RhostsAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#?RSAAuthentication .*/RSAAuthentication yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#?HostbasedAuthentication .*/HostbasedAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#?LoginGraceTime .*/LoginGraceTime 60/' /etc/ssh/sshd_config
sudo sed -i 's/^#?MaxStartups .*/MaxStartups 4/' /etc/ssh/sshd_config
echo "Automatic configuration complete."
sudo sed -i 's/^#?LogLevel .*/LogLevel VERBOSE/' /etc/ssh/sshd_config
echo "ClientAliveInterval 300" | sudo tee -a /etc/ssh/sshd_config
echo "ClientAliveCountMax 0" | sudo tee -a /etc/ssh/sshd_config
sudo sed -i 's/^#?StrictModes .*/StrictModes yes/' /etc/ssh/sshd_config
echo "Use iptables to try to prevent bruteforcing? [y/n]"
read -r iptable_ssh
if [[ $iptable_ssh == "y" || $iptable_ssh == "Y" ]]; then
iptables -A INPUT -p tcp --dport 2223 -m state --state NEW -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport 2223 -m state --state NEW -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
echo "Done."
elif [[ $iptable_ssh == "n" || $iptable_ssh == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
echo "Use public/private keys for authentication instead of passwords? [y/n]"
read -r auth_private
if [[ $auth_private == "y" || $auth_private == "Y" ]]; then
sudo ssh-keygen -t rsa
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/id_rsa
cat id_rsa.pub >> ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys
restorecon -Rv ~/.ssh
sudo sed -i 's/^#?PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config
elif [[ $auth_private == "n" || $auth_private == "N" ]]; then
echo "Understood, moving on."
echo "Error: bad input."
return 1
function sysctl_secure_config {
echo "kernel.sysrq = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_source_route = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.log_martians = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_ignore_bogus_error_responses = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_all = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" | sudo tee -a /etc/sysctl.conf
echo -en '\n'
echo "Disable IPv6? [y/n]"
echo -en '\n'
read -r ipv6_disable
if [[ $ipv6_disable == "y" || $ipv6_disable == "Y" ]]; then
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "IPv6 disabled."
elif [[ $ipv6_disable == "n" || $ipv6_disable == "N" ]]; then
echo "Understood, skipping disabling IPv6."
echo "Error: bad input."
return 1
if [ "$(id -u)" != "0" ]; then
echo "Please run this script as root. I promise I won't dd /dev/urandom into /dev/sda..."
Go1dfish undelete link
unreddit undelete link
Author: CreeperTyE
1: root:admin 2: rsa:2048 3: *modulo.co*/*e*u*e-ftp*s*rvi*e-v*ftp*-linux*ht*l
Unknown links are censored to prevent spreading illicit content.
submitted by removalbot to removalbot [link] [comments]

first binary option service отзывы - Search by - 260MB ... Binary Options traderush Trading Signals Live service review TREND TRADER REVIEW Is TREND TRADER APP Scam Or LEGIT? My First Results! Binary Options Trading Signals Franco Review - Forex Trading Binary Options System 2015 Trading Review: Binary Options Binary.com Review - A Binary Options Broker with a Difference! My First Online Payday Review - Binary Options Trading ... Indicators on Binary Options Review Reviews - Read ... Free Binary Options Live Stream Signal App// 100% Accuracy ...

First of all, you can use any broker, currency pair or trading session you want, since you call the shots as the trader. Using this service ... Auto Binary Signals offers a web-based binary option ... First Binary Option Service’s trading platform is just labeled differently from traditional trading platforms. But it is simple to use as all the main features are labeled clearly and you can easily select options from the provided drop-down list. First Binary Option Service provides their specific web based trading platform. The good news is that demo account is available with them so that one can gain some familiarity of their platform before investing money with them. However, the minimum deposit amount is only 5 units and thus many traders may not mind to fund their account and ... note: this is a review, click here for the official Updown Signals website Before writing about my best binary options signals service I’ll write about the first provider I tried a year ago,I’ll do the Updown Signals review.. I used it for about 2 months before I decided to write my first binary options signals review.Do not make the mistake I did with most of the signals services i tried. Now you should select the expiration time of your Binary Option. There a lot of possibilities for your trade. Some traders like it to trade short-term options and some other traders like it to trade longterm options. Choose an amount you want to invest in your trade. The most time it starts at 1$. At latest trade the Binary Option with a call ... But, using our review directory will help you to simplify the necessary steps by getting all major services in a single place. For instance, you can contrast IQ Option and First Binary Option Service for their functions and overall scores, namely, 8.5 and 7.0, respectively. Similarly, you can compare which broker has superior general user ... Option binary robot is Wrost !! Option binary robot is a total 100% scam I tried to work with my brokerz broker company. They make you more losses and can't get your money back. And they asked to much information to take photo of passport,driver license and Credit card. I want to withdrawal but couldn't works. I'm so angry and regret. They ... How to choose a reliable binary option trading service ; 6. Leading Binary Trading Services ... To review the services of binary options brokers we carefully studied information available on review websites, business sites, and other reliable online sources. We analyzed all the leading binary options brokers and the services they offer. We also examined the information and details available on ... The first steps for your Binary Options success: ... The criteria of the Binary Option Broker Review 2019. If you looking for a good broker, you should following the next steps when you check the company. Sometimes traders get scammed by a bad and criminal broker. With this review and comparison, we try to prevent it. Furthermore, Binary Options are very risky. You only should invest money ... First Binary Option Service is a solid product that our experts evaluated with a 7.0 score and with a 95% user satisfaction rate. It's price starts at $5. However, you may want to consider other Binary Options Brokers products that got even better scores and satisfaction ratings. Here's how First Binary Option Service fares in comparison to these:

[index] [25301] [6483] [22709] [22528] [7455] [27848] [26415] [17178] [102] [4243]

first binary option service отзывы - Search by - 260MB ...

In this review, I will touch on the types of binary option systems that are offered by Binary.com, including higher or lower binary options and the different types of barrier options that this ... Try This Out: https://bit.ly/3a9SdJA - first binary option service отзывы - Search by - 260MB Examine to see what forms of support the finest binary choices ... Read More Here: https://bit.ly/2ChSCNK - Indicators on Binary Options Review Reviews - Read Customer Service You Should Know Tradesmarter: Tradesmarter utili... However, this service may not be suitable for everyone who is trading binary options. Continue reading the full review to find out more or visit Franco’s official website first. Trend Trader is the only binary options trading software in the world that connects to this network 100% automatically and sucks out profits from it 100’s of times per day - making those who use ... http://tinyurl.com/zwon5f2 Binary Options traderush Trading Signals Live service review.Are You Looking To Potentially EARN More Profits Every Week Simply By... For Free Live Signal, Please Visit: https://www.amtradingtips.com Contact Email: [email protected] For More Update Join Telegram Channel: https://t.me/... Trading Review: Binary Options Trading binary options has become more common, but are they profitable to trade? In order to better understand this, let's first take a look at how binary options ... My First Online Payday Review https://youtu.be/u9d6cnAxpMs https://www.youtube.com/watch?v=u9d6cnAxpMs Binary Options Trading System Review http://myfirstonl...