How I Beat Repetitive Stress Injury - <AUTHOR> http://henrikwarne.com/2012/02/18/how-i-beat-rsi/ <comment><USER2> I had pain in my right hand, that I fixed with trigger point therapy.

Using a mouse, typing, or using an iPad all made the top of my right hand hurt and feel very tired.

The trigger point therapist pushed on a few points in my forearm. When pressed, I could feel tension in the usual spots on my right hand.

Having found the right spots, the therapist simply pushed on them really, really hard, and maintained the pressure. It hurt, but immediately afterwards my hand was useable for everything except the iPad.

I went in for another session a few months later, he found another small spot that again referred pain to my hand, and after that session I could use my iPad normally.

It's a year later, and I'm totally pain free. If you have an insurance plan that covers trigger point therapy (most likely under "massage"), you should definitely try it.

Note: It can be hard to find a good practitioner. I'm not talking about deep tissue massage. Trigger point therapy is sustained applied pressure more than massage. The technique should hurt if it's being done properly, but the results are worth it.

<comment><USER3> Trigger point therapy has made a world of difference for me, too, both for RSI and for neck problems due to and old motorcycle accident. Check this out:

[http://www.amazon.com/Trigger-Point-Therapy-Workbook-Self- Tr...](http://www.amazon.com/Trigger-Point-Therapy-Workbook-Self- Treatment/dp/1572243759)

I was first introduced to it by a physiatrist (no, not psychiatrist), which is a real MD. They had a team of essentially physical therapists that worked on trigger points. Even if your insurance doesn't cover massage, most will cover visits to such places, since it's under the care of a doctor.

<comment><USER2> I may get that book.

Also useful is a theracane. Lets you self-massage and apply trigger point therapy to your back and other hard to reach areas. Not too expensive either, only $40. It helped clear up a tight trapezius muscle which was causing a shoulder ache.

<http://www.theracane.com/index.html>

(this was recommended by the same therapist who helped my hand)

<comment><USER3> Yeah, the Theracane is pretty good. My favorite gadget for forearm trouble is the ArmAid: <http://armaid.com/> It's very good for kneading your forearm extensors and flexors. When my forearms get tight, a few sessions with this usually fixes it.

<comment><USER2> wow, I'm glad I posted, that looks to be very useful. Do you need the leg strap, or do you just balance it on your leg?

<comment><USER3> I never use the leg strap, personally, though I can imagine that, if your hands are in bad shape, it would reduce the force needed to hold it in place.

It's actually also really good for kneading your calves for people like me that have perpetual trigger points there. It's a bit undersized, so I've been meaning to email them and suggest they make a "LegAid" that's larger and more robust...

</comment></comment></comment></comment></comment></comment><comment><USER4> It's all in your head. This is a must read for any _stressed out_ programmer, founder, new parent -

[http://aaroniba.net/articles/tmp/how-i-cured-my-rsi- pain.htm...](http://aaroniba.net/articles/tmp/how-i-cured-my-rsi-pain.html)

<comment><USER5> Please, everyone reading these comments, read the above linked article.

If you have not read about the psychosomatic theories of RSI and are affected in any way by the disorder, you owe it to yourself to read this article before you spend the rest of your lives blithely following unproven advice about ergonomics.

There is very compelling scientific evidence that suggests that the accepted medical hypothesis connecting RSI, ergonomics, and typing is flat out wrong. Read the article and if it piques your curiosity, do what you do best as hackers and evaluate the evidence and decide for yourself.

<comment><USER6> _unproven advice about ergonomics_

What makes you say that such advice is unproven? I know many people, myself included, who had serious RSI problems. _Everyone_ I know, including me, who addressed their ergonomics, and perhaps also did some physical therapy, has seen massive improvement.

<comment><USER7> I think his point is that there is no scientific evidence linking ergonomics to RSI. So it's possible that your belief that improved ergonomics improved your RSI is the placebo effect in action (which is remarkably powerful!).

<comment><USER6> _"The National Academy of Sciences and the Institute of Medicine recently released their long-awaited report on Musculoskeletal Disorders and the Workplace. The report, requested by industry groups and conservative Republicans who opposed an OSHA ergonomics standard, finds that there is strong scientific evidence showing that exposure to ergonomic hazards in the workplace causes musculoskeletal disorders and that these injuries can be prevented. Prepared by some of the world's top scientific and medical experts in ergonomics, the report calls MSDs an important national problem and strongly supports the approach that OSHA took in its now-defunct Ergonomics Program Standard. This is the third comprehensive review of the scientific literature in the past four years that has come to the same conclusions. The National Institute for Occupational Safety and Health (NIOSH) published a comprehensive review of the data on the relationship between MSDs and the workplace in 1997. The NAS also came to similar conclusion in an earlier report published in 1998. The NAS report puts to rest, once and for all, the claims by some industry groups and conservative Republicans that there is no scientific evidence that workplace exposures cause musculoskeletal disorders. It shows without question that an OSHA ergonomics standard is needed and justified."_

If you ask me, any claims stating that there is no scientific evidence that ergonomics is linked to RSI are abuses of science of the kind put out by the cigarette industry. It is bad science by those who want to create FUD about the proper remedies. It is a cynical agenda by those who would rather treat employees as disposable, rather than spending a single penny to help their employees continue on with their means of feeding and sheltering themselves. And then the same such cynical people, after putting employees with such ailments out on the street want to tell them, "Just get a job!"

</comment></comment></comment></comment></comment><comment><USER8> I find trackballs where the hand rests on top and the ball is manipulated only with the thumb are much better than mice and trackpads for cursor movement. Our fine motor skills are more refined in the thumbs, not in the fingers or forearm, which is something video game controller vendors have known for years...

Logitech makes these - this is the newest version: [http://www.logitech.com/en-roeu/mice- pointers/trackballs/dev...](http://www.logitech.com/en-roeu/mice- pointers/trackballs/devices/7365)

They've been making variations on the same thing since the early 90's - I have an ancient Mac ADB version in beige somewhere around here, which predated the invention of the scroll wheel...

<comment><USER9> I humbly suggest the cheaper model: [http://www.logitech.com/en-roeu/mice- pointers/trackballs/dev...](http://www.logitech.com/en-roeu/mice- pointers/trackballs/devices/4786)

The high-end model just didn't work for me.

<comment><USER8> That model still uses the forefingers to move the mouse.

While I've tried those, I've never found them to be comfortable or functional.

To each his own, I guess.

</comment></comment></comment><comment><USER10> I tend to get considerable pain in my forearms when I've been typing too much for too long, and I've found the easiest thing that helps is rock climbing. As little as an hour a week is enough to keep the pain and discomfort away, and it only takes two or three times of doing it after a "break" before the pain is gone.

I'm not sure why adding more muscle strain to the equation (when I'm in shape I climb 5.10/low 5.11) helps, but I've read that it's important to balance strength with agility, so maybe that's related somehow. Anyhow, climbing is a ton of fun, and anybody with bad RSI who's already using a trackball and an ergo keyboard should give it a shot.

<comment><USER9> My guess: you're stretching the muscles overall and strengthening the ones that get neglected while you type. You're not far off from my own approach of lifting weights and using an elliptical to shake off the pain. Finally, there's probably some endorphins in the mix...

</comment></comment><comment><USER11> Has anybody read "pain free" by Pete Egoscue? His aproach is that due to the continuous bad position certain back and shoulder muscles become weak and the other (not properly suited) have to make the force of the original ones. They finally contract or create pain due to the forced possition( take this explanation with a grain of salt as is from memory). He gives some easy exercices to recover the possition and strengthen the muscles. It is very straight forward. BTW he is no MD, but the system seems to work. Just as a note my wife is reumatologist and used to be very sceptic of this kind of "structural" theories, as there is very little of this on the medic literature. Now acter trying some of them herself, she thinks they have their place for some kind of pains. ( caveat this only a n=1 enviroment). I think is worth a shot.

<comment><USER6> I haven't read this book, but had terrible back pain due to these very issues. Certain muscles in my back had atrophied to the point that I could not hold my shoulders down and back without a lot of strain to do so. This resulted in a great deal of tension in my neck and other muscles that had to take up the slack. I went through physical therapy to strengthen the back muscles that had atrophied. The exercises were very hard and rather painful, but after several months, they worked like a charm.

</comment></comment><comment><USER12> I had (1) RSI too. The solution is in ergonomics, not a new mouse or keyboard or wrist support or whatever.

It's all about the way you sit in front of the computer.

Your wrists should be around elbow-level or a little lower when typing, your feet should be on the floor, and the upper half of your screen should be roughly at eye-level or a little below.

All of this is affected by the height of your desk, your chair, and of course your monitor.

      - Are you using a laptop and looking downwards at the screen? -Expect neck pain.
      - Are you sitting too low? -Expect pain in your forearms.
      - Are you sitting too high? -Expect wrist pain.

1) I still kind of have RSI. If I'm doing something wrong, my forearms get irritated quite fast.

</comment><comment><USER13> I posted a similar story here on Hacker News last week: <http://news.ycombinator.com/item?id=3592000>

Long story short: Using keyboard shortcuts and taking frequent breaks helped reduce the tension and pain I was getting from long hours at the computer.

I highly recommend AntiRSI if you're looking for a Mac OS X utility to remind you to take breaks: [http://itunes.apple.com/us/app/antirsi/id442007571?mt=12&...](http://itunes.apple.com/us/app/antirsi/id442007571?mt=12&partnerId=30&siteID=cxyf8xxWmGo)

</comment><comment><USER14> I've spent thousands of dollars on ergonomic keyboards and chairs. In the end all of them were nothing more than a crutch.

Here is the comment I left on the original blog post, since I think most readers will miss it; I've shared this before here to one degree or another:

I can one up you on this, I cured my RSI.

My story is similar to yours (short of the rolfing and acupuncture.) Around 2005 developed extremely painful RSI. Just using a non-ergonomic keyboard hurt like hell within 10 minutes. The only thing that really helped was limiting my work and typing.

That was, until I started doing body weight exercises back in late 2010. Back in 2005 when it hit me hard I was lifting weights regularly. That led me to believe that the weight lifting was at least half responsible. I backed off all upper body strength training completely. I felt like I was physically damaging myself when I did.

I wanted to build up some basic strength so I got this book "You Are Your Own Gym." I hadn't done a pushup in years so I started out doing them against a wall. By the end of the month I was doing normal pushups no problem. Then one day I got really sick and sat in bed on my laptop. Hours in I realized I had no pain whatsoever. It was mind blowing. Just months earlier things had progressed so my hands were partially numb _all_ of the time.

Its been over a year and a half now. I had a few tiny incidents were I developed minor pain. I can do pull ups all day long. I can do clapping pushups. I can do handstand pushups. No wrist pain using a laptop 12 hours straight. I was really cautious saying this at first but I'm pretty sure now that I'm cured — assuming I get up with my workouts.

<comment><USER15> I've had a lot of success keeping my hands and wrists in shape by doing a couple of fingertip pushups every day. If you can't support your bodyweight on your fingers, do them against a wall or put your weight on your knees instead of your feet.

</comment></comment><comment><USER6> Here's what worked for me to cure my RSI:

(1) Kinesis Contour Keyboard.

(2) BodyBilt ergonomic chair with linear tracking arms.

(3) Stretch Break, a program which stops you periodically to do some stretches, which are illustrated by computer animated figures.

(4) Physical therapy to identify muscles that had completely atrophied in my back and to do (hard!) exercises to build them back up.

I'm sure I would have had to go on disability without these things, but I've been fine now for the last 18 years.

<comment><USER16> I love my collection of Kinesis contoured keyboards. I have one huge grip with them, though: the function keys are spongy and too closely spaced. I regularly hit F1 when I meant to hit Escape. Do you (or others) find this irritating as well? It would be a flawless programmer's keyboard if only it used regular, evenly-spaced, mechanical function and escape keys.

<comment><USER6> Yes, the function keys suck, but I don't use them all that much, so it's not so bad. Also, I mapped Esc onto one of the thumb keys.

My bigger gripe is that it sometimes misses _up_ -key events, so a key will start repeating, or the Alt or Shift key will be virtually stuck down. All it takes to fix this is to press the key in question, but that's a pain in the butt. I've complained to Kinesis, but they claim to have never heard of the issue. This despite the fact that it happens on all of my Kinesis keyboards, and all my friends with Kinesis keyboards complain about the very same issue.

On the other hand, these issues are a minuscule price to pay for how good the Kinesis keyboard has been for my hands. More than anything, I credit this keyboard for allowing me to continue to be gainfully employed.

I've recommended this Keyboard to a number of my friends when they've started to have RSI problems. At first they always call me back in a couple of weeks and tell me that they can't believe I recommended this terrible keyboard to them. Then a year later they call me back and thank me profusely for having saved their hands!

Where I work, half the people in my group use them, and they all came to the Kinesis keyboard independently. Everyone who uses one loves them.

<comment><USER16> _I mapped Esc onto one of the thumb keys._

That's a good idea, and one I hadn't thought of. Which one did you give up?

 _My bigger gripe is that it sometimes misses up-key events_

I experience that fairly often with this particular keyboard, with the shift key. They have a note on their website about it[1]. Another not-uncommon problem is for a vertical row of keys to go out. I think that's due to a failing PCB trace. I've had keys get flaky on one side or the other, and it turned out that the ribbon cable connecting the hand pocket had wiggled a bit loose, so it was an easy fix. The worst problem I've had is when one of my keys just stopped working altogether. I emailed Kinesis and they sent me four or five Cherry MX switches, no charge. Ten minutes with a screwdriver and a soldering iron, and it was fixed.

 _recommended this Keyboard ... they always call me back in a couple of weeks and tell me that they can't believe I recommended this terrible keyboard_

I should probably mention my own experience, for the benefit of HNers. When I first bought the keyboard, it seemed awful and I regretted wasting so much money. I went from being an 80-100 wpm typist to a snail's pace. I had to interrupt my muscle memory and force my fingers to their new positions. It wasn't as bad as learning to type the first time, but it was tough. Learning to use the new arrow keys (two rows under home row, no hand movement necessary) was mind-bending. My wrist pain actually _increased_ for about two weeks.

After that, it became more natural, and I started to appreciate how smooth and consistent every key was. Spreading more responsibility to my thumbs, and changing the vector of thumb pressure began to feel much better.

I always warn people that the first couple of weeks will be difficult, and not to switch in the middle of a work crunch. :-)

[1] <http://www.kinesis-ergo.com/tech_support/trouble.htm#q5>

<comment><USER6> >> I mapped Esc onto one of the thumb keys.

>> That's a good idea, and one I hadn't thought of. Which one did you give up?

I have done a bunch of remapping. I

(1) mapped Esc onto End so that Esc is on my thumb.

I can still do Home and End by going into Keypad mode, but I don't use these keys too much.

These are other remappings I did:

(2) Reversed up and down arrow so they match vi cursor movement. (I don't use vi, but gmail uses the vi mappings for up and down.)

(3) Put Meta (aka Mac's Option) (for Emacs) on Home and Page Up so that I have a meta key on both thumbs. Put Page Up on Right-Alt so that I still have a Page Up key.

(4) Swapped Delete and Tab so that Tab is on my thumb.

I think that's about it.

</comment></comment></comment></comment></comment><comment><USER17> I started wearing one of these while I'm working

[http://www.amazon.com/Mueller-Reversible-Splint-Wrist- Brace/...](http://www.amazon.com/Mueller-Reversible-Splint-Wrist- Brace/dp/B001ICYL1S)

Mueller wrist brace with splint

It only worked with a full-size keyboard and mouse. I can't wear it while typing on my laptop. I'll occasionally pop an Aleve in the morning if my forearm is bothering me.

Previously I was having occasional numbness and tingling in my right wrist. That has gone away.

Doc also suggested wearing a soft wrap on my wrist at night. Keep the area warm to promote healing, and keeps it in a relatively neutral position to prevent further inflammation.

[http://www.amazon.com/Mueller-Wrist-Support-Wrap- Black/dp/B0...](http://www.amazon.com/Mueller-Wrist-Support-Wrap- Black/dp/B000UTI6KW)

I also have started lifting weights, though my doc said that could actually be putting further strain on the area. I think that was the case at first, but now I feel like my arms are strong, but more importantly my core and upper body and back are stronger. Helps with posture, and a lot of times the root of the wrist pain originates with other parts of you body being in a poor position all day. (skip the isolation exercises and just do compound exercises, especially deadlifts, probably the most underrated and unsexy, but its one of the best exercises)

Make sure your desk is low enough. It was subtle, but lowering it an inch put a lot less pressure on my forearms and less reaching.

And I drink a ton of water all day, which ensures I get up at least once an hour to pee or fill my water bottle. As others have said, taking breaks could be the most important.

</comment><comment><USER18> Near the beginning of my career, I started getting really bad pain in my wrist, arms and back, and numbness down my right arm. I went through all the requisite things like the OP, even going to a rheumatologist, and nothing worked, and I was worried that my career was going to be cut short from this problem.

But the question that really bothered me was why I could spend most of my life writing for hours at a time with a pen, and not have similar problems.

I figured out, at least for me, was that the problem was my mouse. The way the current mouse is designed is to have your hand flat with the tabletop. When you use a regular pen, your hands are almost perpendicular to the tabletop . Your hands normal position relative to your body is essentially at a 90 degree angle to your body.

When you use your mouse with your hands flat to the table, it cause you to twist your hand out in a completely unnatural way and your elbows tend to flare out from your body, for hours at a time, and it pinches and eventually hurts some of the nerves in your arm and write.

My solution was to hold my mouse in different manner, with my thumb almost near the top of the mouse, and about half of my hand on the right side of the mouse, so that my hands were at an angle to the table. It also allows me to keep my elbows flush against my body instead of flared out. It's a similar hand position to how the trackball mice are, but I get away with using my $10 wired mouse.

I also switched to the original Microsoft Natural Keyboard (and I still use the same one today despite several drink spills).

This was roughly 15 years ago, and I haven't had any problems since. I work at my desk for hours at a time, without any breaks, and I'm generally okay, except for the weight gain from my sedentary lifestyle.

<comment><USER19> I use the evoluent vertical mouse for this reason: [http://www.amazon.com/Evoluent-Vertical-Mouse-Right- Handed/d...](http://www.amazon.com/Evoluent-Vertical-Mouse-Right- Handed/dp/B00427TAIK/).

It has been fantastic (though I have the 3rd gen model).

</comment></comment><comment><USER20> I've switched to using a laptop style, short-travel keyboard. As a matter of fact, I just stocked up on some spares, anticipating the product's inevitable demise.

I also have a comfortable but firm 3M gel palm rest (I don't actually rest my wrists on it). No longer sold -- of course.

I was finding the normal keyboard stroke length -- combined with the increasing binding during travel that inevitably occurs with today's budget keyboards -- to be increasingly tiring. To the point where I think I was subconsciously adjusting my workflow to avoid typing.

I'd just use the laptop keyboard, but they insist these days on manufacturing laptops with a "ginormous" shelf in front of the keyboard. As a result, the edge of that shelf ends up pressing into my wrists.

(On older models, years back, the shelf would end somewhere under my palms and so was not a problem. I may try a small form factor laptop (e.g. Lenovo X220) the next time I change machines, if I have a choice.)

</comment><comment><USER21> Over the past 15 years, my RSI symptoms have been extremely well correlated to how much I read and hear about RSI.

Now my wrist hurts.

</comment><comment><USER22> I'm surprised that none of the doctors suggested taking a break. That's the first thing the doctor I saw recommended: get up and walk around for a minute or two every hour. That was in my first year of professional programming, over ten years ago, and the problems never came back.

I think there are some doctors who make a blanket assumption that patients never successfully maintain lifestyle changes, so you might as well jump straight to drugs or surgery. That is probably 95% accurate, but I believe the 5% who are able to improve their lifestyles deserve consideration even if that means treatment is delayed for the 95% who won't, and there are plenty of doctors who agree. It was just the author's bad luck that all the doctors he saw ruled out lifestyle changes because of ignorance or cynicism.

On another note, an important thing for people working at computers to know is that typing may not be the culprit. Simply sitting at your computer can damage your body if you're tense, have bad posture, or maintain the same posture for long periods of time. The problems I had originated in my neck, not my hands or arms.

Also, for years I only had good posture when I was paying consistent attention. When my attention to my posture lapsed for too long (at the keyboard or anywhere else) I would sag back into my bad posture. I made a breakthrough when I discovered that a session lifting weights or kettlebells makes it easy for me to maintain good posture for the next couple of days. My "good" posture now is better than my old "good" posture, and if I've been in the gym recently, it comes naturally instead of requiring constant effort. I invested a significant amount of thought and effort into developing decent weightlifting form, but the effect on my posture is a physical aftereffect of the lifting itself -- knowing isn't enough, and apparently simply being in shape isn't enough, either, because my posture starts to slip after just a few days. My slack posture now is a little better than the sagging posture that used to come naturally, but it's still pretty bad.

</comment><comment><USER23> I'd say I'm pretty heavy keyboard user - a touch-typing programmer, about 15 years in the profession. So what do I have to say about this? When your RSI begins, ergonomic keyboard may help you, may not help you, and often can make the problem even worse.

The way I see it, there are 2 main causes of RSI:

1) you work under stress, and you are hitting the keys much stronger and you are flexing your muscles much more than when you are more relaxed - this is a tremendous strain on your hands,

2) you are using a certain keyboard shortcut or successive combination thereof, or you are repeating certain specific movement which is causing you the RSI, while the RSI feels as if it's coming from the general usage of the keyboard, from generally using it too much.

3) (bonus point) It's something unrelated, like a missing vitamin or mineral in your body, or a heightened presence of a free radical or some other negative element. (I'm not a doctor so I won't elaborate here.)

I don't know how many ergonomic keyboards from Microsoft I destroyed while I was still on PC, but now I'm on a MBP 17" and at one point I had to work with a bandage on my left hand, in pain. Turned out the cause were the shortcuts for application and window switching on OS X. This was CMD+Tab and CMD+` (on an US keyboard layout, so the both Tab and ` are kind of higher). So what I did, I searched for an app[1] to remap the keys to a much more sane[2] combinations, and that fixed my hand.

[1] KeyRemap4Macbook, my config here: [https://github.com/ypocat/misc/blob/master/keyremap4macbook/...](https://github.com/ypocat/misc/blob/master/keyremap4macbook/private.xml)

[2] this just made me realize the default shortcut combinations for app and window switch are in fact insane. And I don't think Lion solves this with the 2 finger swipe, which is one hell of a long movement, if you have to do it hundreds(?) times a day. At least the swipe gives you a switching direction, as otherwise, generally, app and window switching is one of the weakest design points of OS X, IMHO.

</comment><comment><USER24> RSI began. I switched to Dvorak. It never came back.

(Yes, I've read the critiques of Dvorak's research on alleged _speed_ and _accuracy_. But your fingers definitely don't travel as far - it could hardly be otherwise - and my fingers were a lot less sweaty afterward.)

</comment><comment><USER25> What worked for me:

\- 1.5 hour of weekly yoga (or more)

\- changing hand for mouse at the end of each pomodoro

\- learning more keyboard shortcuts instead of using mouse when possible

I applied this after nerves pinched me in the back, which stopped me from working during almost two weeks and was really, really painful.

</comment><comment><USER9> This guy's experiences are very similar to my own except that mine started in 2004 when I moved my own stuff from location A to location B, injuring my wrist in the process.

And that started a two-year saga during which several doctors told me to quit my job. Obviously, I beat RSI (mostly), and still code to this day. Observations:

1) Avoid long-term use of NSAIDs: initially they work but ultimately they make you feel crappy, possibly because they do something to your liver causing your liver enzymes to rise.

2) Ice, ice, baby: A key aspect of the cure for me was submerging my forearms in icewater for 10 minutes daily until they became mostly numb. They were inflamed, and cold (though above freezing) is about the only anti-inflammatory with no really negative side-effects

3) Lose the mouse, lose the laptop: I use a logitech trac-ball now (though that penclic pen looks tempting) and a really big screen. If I want to revisit my pain, all I need to do is use a mouse for a couple days or try to use a laptop to be productive. Strangely, touchscreen tablets are fine. This tends to run head-on into the insane focus on laptops at tech companies these days.

4) Yes, it does seem like part of the problem is in your head: I hate hate hated my job in 2004 but I needed the money. I changed that in 2006 and started knocking everything out of the park. That's right about the time the symptoms gradually went away. Also, I started hitting the gym again and lifting weights despite the pain (losing the 15 lbs I had gained during the experience). It seems like once there's been a long-term physical trauma, one's awareness gets rewired to focus on it despite it being mostly healed and then the only way out is to deny its existence to the best of one's abilities.

5) I've become acutely aware of how many extraneous mouse motions and button presses exist right now and that's a real sore point with me.

Stuff that didn't work: yoga, rolfing (felt nice though), acupuncture (except for one time I needed to get something out by a deadline and one needle blocked the pain long enough to get there), various alternative mice and keyboards (Dvorak touchstreams and Kinesis were awful for me), and supplements (though I suspect more Omega-3s might have helped had I known about them)

<comment><USER26> Yeah, acupuncture seems to be short-term effective for many people but long- term not so much.

Better for you than NSAIDs, though :)

</comment></comment><comment><USER27> Keep in mind that a split-keyboard like the Goldtouch might mitigate wrist deviation and pronation, but it does not eliminate them completely. If you want a completely neutral wrist position, I recommend the SafeType keyboard ( <http://safetype.com/> ).

</comment><comment><USER28> There is a video here of someone just pointing at the screen to control the mouse. This site hasn't been updated since 2009. There must be something even better out there by now, right?

<http://www.mgestyk.com/>

<comment><USER29> Similar, but without specialised hardware: <http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html>

</comment></comment><comment><USER30> Switching from a mouse to using a Wacom tablet full time made a _massive_ difference for me. Learning curve is a bit steep, but I think I'm actually faster now with most tasks. And using photoshop is definitely more fun.

</comment><comment><USER28> Anyone know if there is a pen mouse like the one he shows, where you tilt it up/down/left/right instead of using a wheel motion? That wheel motion can't be good for your finger over long periods of time.

<comment><AUTHOR> The wheel is only a scroll wheel. To move the cursor, you move the whole pen, just like you move a regular mouse.

<comment><USER28> I get that. But the wheel motion on any mouse is bad and I use it a lot. It seems to be on a lot of "ergonomic" mice as well and I'm looking for some other method of wheeling too.

<comment><AUTHOR> I see. Yes, this one uses traditinal "wheeling", but I don't use that a lot, so it's been fine for me.

</comment></comment></comment></comment><comment><USER31> Is it bad that I thought this was going to be a joke about quitting emacs?

<comment><USER32> I know you're joking, but it's not the fault of emacs that the de facto PC keyboard layout has the control key in a stupid position.

If you've been a heavy user of emacs (or any tool that requires a lot of control key sequences) for any amount of time, you've likely already remapped it.

I use a Kinesis Advantage keyboard which has a cluster of keys positioned for the left thumb to use where I have important modifier keys (control, meta/option, command) mapped. Besides being fast, I can hack all day and my hands/wrists/forearms don't hurt.

</comment></comment><comment><USER33> A standing desk eliminated my arm and wrist pain, for whatever reason. I think I move around more when standing and maybe tend to rest some body weight on my arms when sitting.

</comment><comment><USER34> It also helps to remap mouse buttons to some keys on the keyboard (moving left/right click to the left hand, if your right has rsi pain).

</comment><comment><USER16> I developed bilateral De Quervain syndrome (tendinitis in the wrists, starting near the thumb, spreading across the wrist) in college. I went out into the work field and suffered so much pain that I could barely shift my car on the way home from work. I was absolutely panicked.

I got physical therapy (where they told me the exact type of tendinitis I had), learned stretches, did strengthening exercises, and started tracking down better keyboards.

In the end, the Kinesis Classic contoured keyboard proved to be the one that saved my wrists. You'd be amazed at how much of a difference consistent, light keystrokes make. The other major element was stretching and light friction massage. By working on several wrist stretching exercises throughout the day, and making them part of my unconscious routine, my pain was alleviated within about six months. I also wore high quality wrist braces for the first couple of months, which provides an important rest for your joints.

Several years later, I discovered rock climbing. As pointed out by another commenter, this is _fantastic_ for wrist health. The stretching and strengthening of the wrist (while having fun) is hard to match anywhere. Within about two months of beginning rock climbing, I ceased to have _any_ wrist pain at _any_ time. Not even a twinge.

Another few years later, I developed a bulged disc in my neck (ironically, it may have been initiated by a couple of preventable climbing accidents!). The entire left side of my neck and left shoulder became a bundle of tensed muscle, in a vicious cycle of self-defeating automatic body response to injury. The solution was ultimately to do more things that improved my posture. I've done weight training, focusing on my back and rear shoulders, and perhaps most importantly I've started _walking_ more. Walking has an almost magical ability to reset your posture, provided you break out of your old habits of slouching. The other huge key for me was a Steelcase Criterium chair. The amount of relief provided to my neck and shoulders by having proper back and elbow support is simply indescribably.

If I point out that someone is slouching, or using devices that are an ergonomic catastrophe, many people respond with things like, "but I've been sitting like this for years without any problem." Well, I used to think that, too. Certainly, there are people who go their entire career slouching, leaning, and mousing on their outstretched arms. But here's the catch: you don't really know if you're prone to these issues _until you've already developed them_. So, for the sake of your future, I encourage all of you to 1) exercise 2) stretch and 3) get an ergonomic setup and use it properly.</comment>


120K distributed consistent writes per second with Calvin - <AUTHOR> https://fauna.com/blog/120-000-consistent-writes-per-second-with-calvin <comment><USER2> This seems cool, and I sincerely wish them nothing but success. That said, I had a major sense of déjà vu while reading this post -- I worked at FoundationDB prior to the Apple acquisition, when we published a blog post with a very similar feel:

[http://web.archive.org/web/20150325003241/http://blog.founda...](http://web.archive.org/web/20150325003241/http://blog.foundationdb.com/databases- at-14.4mhz)

I'm not trying to make a comparison between a system I used to work on and one that I frankly know little to nothing about; rather, I'd suggest that building a system like this just isn't enough to be compelling on its own.

<comment><USER3> Bah! I was so dissappointed when I heard about the Apple acquisition of FoundationDB. Will any of the technology behind it ever see the light of day?

<comment><USER2> Unfortunately I'm the last person to ask. While I did start at FoundationDB pretty early (second employee), I ceased to be involved at the point of the acquisition, and beyond that I've only heard a few rumors from former coworkers.

As a business it was always an ambitious effort, and I'm not sure what could or should have been done differently. But since then I've used a number of other systems and thought to myself "boy, I wish I had FDB right now."

<comment><USER4> Another former-FoundationDB guy here (hi Ian!), and I actually think the business case for Apple open sourcing is very strong. I'm a fan of the layered architecture we chose, but building efficient and powerful layers on top of the core key-value store is a serious engineering effort in its own right. By encouraging an open-source layer ecosystem (and operational and deployment tools), Apple could leverage its investment in the core technology more effectively.

Whether Apple's leadership agrees with me is another question. :)

<comment><USER5> We specifically chose a monolithic architecture for FaunaDB, since performance improvements invariably come from breaking interface boundaries and sharing additional information. It's been working out well.

<comment><USER4> Yes, this is the argument that VoltDB made as well:

[https://www.voltdb.com/blog/foundationdbs-lesson-fast-key- va...](https://www.voltdb.com/blog/foundationdbs-lesson-fast-key-value-store- not-enough)

My feelings on this topic are mixed. On the one hand, I think many of the specific examples chosen in that post are false (and have told John as much in person). On the other hand, the general point that you can squeeze out constant factor performance improvements by violating abstraction boundaries is obviously usually true.

Nevertheless, I still think this is a bad argument. While it's true that abstractions are rarely costless, they can often be made so cheap that the low-hanging performance fruit is elsewhere. And in particular, cheap enough that they're worth it when you consider all the other benefits that they bring.

When I built a query language and optimizer on top of FoundationDB, my inability to push type information down into the storage engine was about the last thing on my mind. Perhaps someday when I'd made everything else perfect it would've become a big pain (and perhaps someday we would've provided more mechanisms for piercing the various abstractions and providing workload hints), but in the meantime partitioning off all state in the system into a dedicated component that handled it extremely well made the combined distributed systems problem massively more tractable. The increased developer velocity and reduced bugginess in turn meant that I (as a user of the key- value store) could spend scarce engineering resources on other sorts of performance improvements that more than compensated for the theoretical overhead imposed by the abstraction.

I won't claim that a transactional ordered key-value store is the perfect database abstraction for every situation, but it's one that I've found myself missing a great deal since leaving Apple.

But I'm glad to hear that things are going well for you guys. Best of luck, this is a brutal business!

<comment><USER6> Hi Will. Thanks for the shout-out.

I still think many of the arguments in that blog post hold up for non-embedded KV stores. I think you can mitigate a lot by aggressively caching metadata, but eventually you end up moving the SQL engine closer and closer to the storage layer to get performance. And yeah, you end up more monolithic and testing gets harder. Sigh.

Some of this is workload dependent. If you're not touching many rows in your queries and transactions, then you can get away with a lot more. But if you give someone SQL, they're going to want to scan.

I wouldn't mind being proven wrong. Maybe Apple made FDB run SQL at legit speeds. I haven't seen much from public projects that work this way to change my mind yet.

> I won't claim that a transactional ordered key-value store is the perfect > database abstraction for every situation, but it's one that I've found > myself missing a great deal since leaving Apple.

How does Spanner not satisfy that itch? Not ordered matters?

<comment><USER4> > How does Spanner not satisfy that itch? Not ordered matters?

I was probably unclear in my previous comment. Spanner is great! (And Spanner is ordered). The particular aspect of FDB that I miss is what some of our old customers called "the bottom half of a database" or "a database construction kit". In fact FDB was an awesome modular building block for all kinds of distributed systems, not just databases. We hacked up prototypes for a whole bunch of these but sadly never got around to releasing them.

Spanner is a full-fledged enterprise grade database with opinions about your data model, query language, types, etc. For the vast majority of customers, that's much more useful than what FDB provided. But for me as somebody who enjoys kicking around silly new ideas for distributed systems, it's a bit less fun.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Including your 9x write amplification in the number of "consistent writes" doesn't count -- like at all. I'm amazed nobody called you out on this yet.

You're doing 3k batches per second with 4 logical writes each, right? So that is at most 3-12k writes per second using the way that every other distributed database benchmark and paper counts.

Or otherwise - if you continue counting writes in this special/misleading way - you'd have to multiply every other distributed db benchmark's performance numbers with a factor of 3-15x to get an apples-to-apples comparison.

The 12k batched writes/sek through what I assume is a paxos variant is still pretty impressive though! Good to get more competition/alternatives for zookeeper & friends!

<comment><USER5> No, that's not write amplification. Replication and storage engine fanout are not included. Instead, that number is the number of logical partition updates per row, per transaction. This makes the test comparable to tests of key-value stores that can only update one key per transaction. The FoundationDB test mentioned elsewhere here was reported the same way.

If you want to include write amplification, then multiply by 6x again to account for the replicated log and the tables themselves.

<comment><USER7> It's doing 12k rows in 3k user-issued write operations/transaction per second.

Counting any kind of "internal write effects" that result from a user write (i.e. write amplification) is obviously done to mislead in the benchmark and does not make it comparable to key-value stores.

12k writes/s is the number of rows that are written from a user perspective. So 12k/s is also the number you have to use when comparing it to key value stores. But of course, comparing Fauna with eventually consistent systems is not a really fair comparison. You don't make it fairer by misleading in your benchmark though.

Also, just because some other vendor posted a misleading benchmark on hn (I don't know if they did) that doesn't make it right or means you should do it. Just call them out on it too.

<comment><USER5> Indexes aren't internal write effects, they are user-defined. But we will have additional benchmarks later on that focus on row commits only.

We tried to replicate a realistic workload rather than just target the best case or worst case performance profile.

<comment><USER5> For purposes of this benchmark, the first yes, the second no. But neither of them are free.

<comment><USER7> Well fair enough but that method of counting is not what everyone else does or assumes, so somebody just reading the title "120k writes per second" gets the wrong impression of whats going on.

(An uninitiated reader would assume you're comitting 120k rows per second from the title, whereas it's "only" 12k rows and "only" 3k actual operations over the wire. Still, 3-12k is pretty impressive)

</comment></comment></comment></comment></comment></comment><comment><USER8> This description is very misleading.

120,000 writes per second is accurate, talking about actual durable storage (disk) writes. But it's only 3,330 transactions, which should be the number that a user cares about.

I don't have proper data and I'm a bit rusty, but I feel like Cassandra could blow that away if you set similar consistency requirements on the client side (QUORUM on read, same for write?). Am I understanding this correctly, or does Fauna/Calvin give you something functionally better than what C* can do?

<comment><USER9> A more apples-to-apples comparison with Cassandra would be FaunaDB transactions and Cassandra's atomic batch mutations, or its PAXOS-based lightweight transactions as opposed to single-cell writes tested in most Cassandra benchmarks.

YMMV, but we've found the performance of Cassandra writing out similar-sized multi-row atomic batches at QUORUM to be similar in this hardware configuration.

FaunaDB transactions are quite a bit more powerful, as they can span multiple keys, use conditionals and read-modify-write logic, and still resolve with serializable semantics.

<comment><USER8> That makes a lot more sense then. It's still a misleading statement to say "writes" vs "transactions" since you could (potentially) make fewer writes and support more transactions. The ratio between the two is a measure of efficiency, but only transactions matter to end-users.

<comment><USER5> You're right that one number trades off another. I'm not sure that only transactions matters, though.

Tracking logical writes makes the test comparable to tests of key-value stores that can only update one key at time, which is pretty much every other distributed database.

</comment></comment></comment></comment><comment><USER10> Maybe I am missing some special point but a decent PG box will do 1,000,000+ TPS vs 3,000+ TPS here. When pgXact lands it will do close to 2,000,000 TPS. So reading all the posts about the amazing new db "X" that can do about N times less than PG on a multi-node cluster I get confused why the numbers are being presented as some sort of achievement.

<comment><USER11> That doesn't sound right. Even the newest NVMe devices can't do 1M writes per second; they're maxing out at around 330k IOPS.

The 1M "TPS" you're referring to is a read-only benchmark (e.g. [http://akorotkov.github.io/blog/2016/05/09/scalability- towar...](http://akorotkov.github.io/blog/2016/05/09/scalability-towards- millions-tps/)). Those are reads (most likely from the buffer cache), not writes or transactions in any real sense.

<comment><USER10> 330K iops for a single device you are very unlikely to be running a single device. There are Fusion IO models that can do 1M IOPS but they are on the exotic side. If you are optimising for throughput you can configure commit_delay so you will fsync multiple commits.

<comment><USER12> Relaxing disk commits is a quick route to data loss. Might as well use mongo at that point.

<comment><USER10> commit_delay does not relax anything it's just increases latency to group multiple commits

</comment></comment></comment></comment></comment><comment><AUTHOR> This is a new one to me...the referenced paper is here: [http://cs.yale.edu/homes/thomson/publications/calvin- sigmod1...](http://cs.yale.edu/homes/thomson/publications/calvin-sigmod12.pdf)

How does this algorithm compare to whatever Google Spanner does?

<comment><USER5> That's a good and complicated question. They both are fully ACID-compliant systems. The biggest difference as a developer is that Calvin never blocks reads, contested or not. You get causally consistent single-replica reads with no coordination.

This makes the read performance equivalent to something like Cassandra at CONSISTENCY.ONE, without giving up the cross-partition write linearization of something like Spanner.

<comment><USER13> Can Calvin scale beyond the OP claim?

I've personally seen a Cassandra ring go to more than 2M ops/sec.

<comment><USER14> Yes. This isn't near the top end, more like what happens when we run benchmarks on a reasonable web infrastructure class cluster. This is still only 5 machines in each datacenter.

</comment></comment></comment></comment><comment><USER15> "Calvin's primary trade-off is that it doesn't support session transactions, so it's not well suited for SQL. Instead, transactions must be submitted atomically. Session transactions in SQL were designed for analytics, specifically human beings sitting at a workstation. They are pure overhead in a high-throughput operational context."

Is this specifically for distributed SQL only? I think there are some scalable SQL systems that don't support sessions either.

<comment><USER14> Calvin is a generalized consistency protocol, that we use in FaunaDB to support relational semantics (but not SQL) in our database.

Multi-query transactions can be useful, but the FaunaDB query language is functional, rather than declarative like SQL, so composing queries that can do everything you want is usually easier than SQL.

<comment><USER16> How would you perform the classic "transfer money from one account to another" operation?

Would you create a single operation that reads one record, checks that it's enough, then adds the amount to another record?

Or maybe you'd first read both accounts, then issue a conditional write operation that makes sure the data hasn't changed before doing the write?

<comment><USER9> FaunaDB's query language makes it straightforward to do it the first way. All queries are serializable, so any preconditions checked would gate transaction commit as you would expect, and read-modify-write style transactions work.

edit: here's an example in our Scala DSL:

      Let {
        val amount = 50
        val balanceA = Select("data" / "balance", Get(Ref("accountA"))
        val balanceB = Select("data" / "balance", Get(Ref("accountB"))
        If(Gteq(balanceA, amount),
          Do(
            Update(Ref("accountA"), Obj("data" -> Obj("balance" -> Subtract(balanceA, amount)))),
            Update(Ref("accountB"), Obj("data" -> Obj("balance" -> Add(balanceB, amount)))),
            "Transfer Success"
          ),
          "Insufficient Funds"
        )
      }

<comment><USER16> Is the wire format roughly isomorphic to the structure above? Or does the Scala library convert this code-like structure into something simpler/flatter?

(BTW, would be nice if I could read your API docs without signing up for an account.)

<comment><USER5> It is isomorphic; right now it's layered onto JSON, but eventually we will support CBOR on the wire as well. Internally everything is CBOR with LZ4 block compression.

The docs will eventually be available without an account.

</comment></comment></comment></comment></comment></comment><comment><USER17> 2011: Benchmarking Cassandra Scalability on AWS - Over a million writes per second

[http://techblog.netflix.com/2011/11/benchmarking- cassandra-s...](http://techblog.netflix.com/2011/11/benchmarking-cassandra- scalability-on.html)

Also a single SSD from 2015 is rated at 120K writes per second:

PM1725: [http://www.samsung.com/semiconductor/global/file/insight/201...](http://www.samsung.com/semiconductor/global/file/insight/2015/11/pm1725-ProdOverview-2015-0.pdf)

</comment><comment><USER18> Consistent writes to a permanent storage or didn't happen.

<comment><USER5> They are durable; will clarify.

<comment><USER18> Otherwise it would be like Mongo did - we have put your data in the OS buffers - what could possibly go wrong?

<comment><USER5> Haha no...it's the opposite of that.

</comment></comment></comment></comment><comment><USER19> Is it possible to download fauna to play with it on my own?

<comment><USER14> You can sign up for the cloud version in a few seconds here: [https://fauna.com/serverless-cloud-sign-up](https://fauna.com/serverless- cloud-sign-up)

<comment><USER19> With the cloud version, it's impossible to run jepsen-like tests to validate consistency and to observe cluster's behavior when the network is unstable and nodes tend to crush.

<comment><USER14> We have some correctness results coming that should address your concerns. Watch this space for updates.

<comment><USER19> Will you release binaries or it's gonna be a pure cloud solution like DocumentDB or DynamoDB?

<comment><USER5> We already have enterprise customers in production on-premises; there will also be a downloadable developer edition. There are no service or library dependencies other than the JVM.</comment></comment></comment></comment></comment></comment>


Crate.io - an improv(ed|ing) Python Package index - <AUTHOR> http://crate.io/

<comment><USER2> Wow, bootstrap really does allow for a much nicer looking front page doesn't it? This seems like a great step forward. I was recently looking to set up a local chishop server to act as a mirror.. it seems like the cacheable url's thing means you're thinking to enable people to set this up locally and have it pass requests that 404 through to the crate.io server? I would love to do that. Is that workable now?

My one suggestion would be to make a simpler to type url than 'simple.crate.io' since people may have to type it in on the command line from time to time. Perhaps '<http://crate.io/s/>?

<comment><USER3> This is a good idea! I used the subdomain because I plan on hosting the "simple" interface in EC2 (Packages are hosted on S3/CloudFront) in multiple availability zones while my main site is hosted on Gondor.io.

However I could enable a short url that redirected to simple.crate.io to allow easier command line access.

Thanks!

<comment><USER2> Is the expectation that someone should be able to do what I described? Run a local copy that proxies 404's up to the main crate.io server and then caches the result locally to disk?

This would be a very nice way to deal with build-time dependencies. You can get similar behavior today by setting multiple mirrors in pip but this would allow the grabbing packages on-demand instead of having to mirror everything.

<comment><USER3> pip supports a download cache (off by default) that stores packages as their urlname. It works similar to how you describe. It will see it needs the package at url xyz.com/package.tar.gz, it'll check it's download cache and if it doesn't exist there it will download the file from the url and save it to the cache.

The cacheable urls stem from the fact that currently on PyPI you can delete an existing file you've uploaded, and reupload a file of the same name. Pip (and any other cache like varnish etc) isn't notified of the fact that what used to be at url xyz.com/packages.tar.gz is gone and now something else is at xyz.com/packages.tar.gz. This can cause issues with installing packages, especially on remote deployment infrastructures. With crate I place the sha256 of the file in the url, so if someone deletes + uploads the same name, it should still (unless you get (un)lucky and get a collision somehow) have a completely different url, so pip and other caches will see it as a different file.

As a side effect it would allow a simple caching proxy to be installed at someones office, or wherever that easily does the behavior you describe as well. It could function similarly to pip but be shared amongst multiple people.

</comment></comment></comment></comment><comment><USER4> The name bothers me: the Rust team has chosen "crates" to designate Rust libraries (technically compilation and distribution units for Rust, crates can yield libraries or binaries): [http://doc.rust-lang.org/doc/rust.html#crates- and-source-fil...](http://doc.rust-lang.org/doc/rust.html#crates-and-source- files), and I don't remember ever seeing this kind of lingo around Python modules and distribution units.

<comment><USER3> Purely coincidence. To be honest I've never seen Rust before, when I was trying to name it I just hit a thesaurus up until I came up with a word that had something to do with "packaging" (Shipping Crates!) that was available that I liked.

<comment><USER4> > Purely coincidence.

I'm sure it is, and I didn't intend to suggest malfeasance, I'm sorry if it came out wrong.</comment></comment></comment>


Rate my startup: FirstRoundX.com - Fantasy football meets stock exchange - <AUTHOR> http://www.firstroundx.com

<comment><USER2> This is awesome. If you ever decide to release the code on github, please include it in your blog - this could be re-purposed for so many different local sports across the world.</comment>


The Last of the Neanderthals: Eurasia was theirs alone for 200,000 years. - <AUTHOR> http://ngm.nationalgeographic.com/2008/10/neanderthals/hall-text

<comment><USER2> There's one thing that keeps bugging me about every depiction of a Neanderthal.

The thing started bugging me after I had been watching a Neanderthal special on TV, for almost an hour it went on and on about how cold adapted they were.

A huge list of cold adaptations due to 200,000 years of living in an ice aged Europe.

Then modern man comes on the scene, fresh out of Africa. And what do you know, the newly arrived African is snow white and blue eyed, facing a brown haired, brown eyed, Neanderthal.

That's when the light bulb went on over my European blue eyed head, this is bullshit.

The Neanderthal in the linked article has brownish red heir and brownish green eyes, and so is the by far the fairest depiction I've ever seen.</comment>


Process Managers: The Good, the Bad, and the Ugly - <AUTHOR> http://blog.crocodoc.com/post/48703468992/process-managers-the-good-the-bad-and-the-ugly

<comment><USER2> For years, I used daemontools (it still runs a bunch of machines) then moved to runit, which follows the same philosophy. Both are excellent tools and have worked extremely well under many different circumstances. Simple tools that do one thing extremely well. Every managed service requires a short, 1 to 3 line, script to actually start the target program, which may, initially, seem off- putting, but actually provides the often missing opportunity to easily customize the program environment.

BTW, runit also comes with svlogd and chpst, both of which have frequently proved invaluable. The latter is useful in its own right.

Most of the tools discussed either lack flexibility, try to do too much, or simply don't offer any benefits over runit and company.

<comment><AUTHOR> I agree with pretty much all of what you said about how a system like this should work. daemontools was next on my list of solutions to try out. I wish I had discovered runit before doing this rundown...my google-fu is apparently lacking a bit :)

</comment></comment><comment><USER3> FWIW, from a few months ago:

[http://jtimberman.housepub.org/blog/2012/12/29/process- super...](http://jtimberman.housepub.org/blog/2012/12/29/process-supervision- solved-problem/)

tl;dr use runit

</comment><comment><USER4> I've always used (and loved) daemontools / runit (<http://smarden.org/runit/>) - it's a little bit minimal, but it's well-documented, does what it claims to do, and it's rock-solid.

<comment><AUTHOR> daemontools is high on the list of other options I want to evaluate, I just haven't gotten around to it yet!

</comment></comment><comment><USER5> Was surprised not to see God (<http://godrb.com/>) here, has it fallen from grace?

<comment><AUTHOR> There are several other systems (including God) I still really want to evaluate, unfortunately I just haven't had the time to do so yet. I'll add a note to the post saying this isn't meant to be an exhaustive list yet!

<comment><USER6> Don't forget Angel and systemd :)

</comment></comment></comment><comment><USER7> The article is a bit wrong about supervisord. You can load environment variables from a defaults file - just use a wrapper script. Eg:

      #!/bin/sh
      source /etc/myservice/defaults
      exec celeryd $@

And start that from supervisord.

Also, another nice thing, very useful for daemons that spawn their own subprocesses is killasgroup option. This is worth mentioning given the celery examples - celery can and will leave orphan processes around between restarts ...

</comment><comment><USER8> I swear this is one of the hardest problems in computer science, which is crazy - how hard should it really be to say "run this process, and restart it if it crashes"?

<comment><USER9> It's not a hard problem at all; it's a rather simple loop:

      while true:
        pid = fork()
        if pid:  # parent
           wait(pid)
        else:    # child
           exec("/path/to/supervised/process")

The key here is not to let the supervised process daemonize itself. If it does, the parent can no longer wait() on the child.

</comment></comment><comment><USER10> "The convenience of custom commands like /etc/init.d/nginx configtest to check my nginx configuration syntax without affecting the running nginx service is useful enough to keep me from migrating my nginx daemonization to Upstart."

Needing to run "nginx -t" instead of "/etc/init.d/nginx configtest" seems like a minor tradeoff for the benefits Upstart provides. It's even shorter to type!

</comment><comment><USER11> Timely, since I spent some time over the weekend digging into the internals of Supervisor.

One of the most interesting features, for me, is that Supervisor has an XML- RPC interface[1], allowing for some creative interaction with supervisor and the processes it manages.

[1] <http://supervisord.org/api.html>

</comment><comment><USER12> Another recent comparison: <http://tech.cueup.com/blog/2013/03/08/running- daemons/>

</comment><comment><USER13> Thanks very much for this! It's great to have someone else's insight into several of these.

<comment><AUTHOR> You're welcome! Would love to hear your thoughts and insights on the topic. :)

</comment></comment><comment><USER14> This is a super helpful writeup on a topic I needed an intro to, thanks so much!

<comment><AUTHOR> You're welcome! I'm glad it was helpful. A lot of these devops and sysadmin related topics can be difficult to break into...especially with the rise of PaaS.

<comment><USER14> Any experience with 'God', written in ruby? That's the one tool in this class that I've heard of a lot, that wasn't covered. (My guess is you're a pythonista over a rubyist)

</comment></comment></comment><comment><USER15> systemd is the way to go. Don't waste time debugging someone's half-baked pile of {shell,Perl,Python} scripts</comment>


An inside look at Google's data-driven job interview process - <AUTHOR> https://www.washingtonpost.com/business/capitalbusiness/an-inside-look-at-googles-data-driven-job-interview-process/2013/09/03/648ea8b2-14bd-11e3-880b-7503237cc69d_story.html <comment><USER2> Speaking as someone who passed the phone-screen, the all-day interview, and the hiring committee, only to be nixed by some exec, I call bullshit. Their hiring process is pretty much like everyone else's--filled with randomness.

(I realized later that getting turned down was a stroke of great luck, self- serving as that might sound.)

</comment><comment><USER3> (2013)</comment>


Show HN: Send an email to email@example.com or email@example.com - <AUTHOR>

This is a small service for poorly connected users who can access the web only in a limited way. You just send an email to "email@example.com" and get back the corresponding manual page in a nice HTML format.
So if you want help on the branch command, just email@example.com.
Your email address is not stored, no logs are kept. <comment><USER2> I'm curious, is there a significant number of people who need the manual for a git command, but can't do `git help command`?

<comment><AUTHOR> But you do not have it in a nicely easy to read HTML format. This is for my brother, he works for the nuclear industry where the web is a white listed list of sites. He cannot even access <http://gitmanual.org>

In a not so sensitive area (bank, insurance), I know a couple of people without real web access.

<comment><USER3> If that's the case, could there be an option for just say 'firstname.lastname@example.com' and have it return a ZIP file of all of the commands nicely zipped?

<comment><AUTHOR> This would be a 6MB file, why not. But not yet, I am getting a lot of emails because of HN so better waiting a bit before receiving 100's of firstname.lastname@example.com requests :)</comment></comment></comment></comment>


Diana Walker's Photos of Steve Jobs - <AUTHOR> http://lightbox.time.com/2011/10/06/in-a-private-light-diana-walkers-photos-of-steve-jobs/#1 <comment><USER2> My fave is the last photo of Jobs in his home office. Despite being one of the wealthiest, most powerful executives in the world it looks like any other guy's man cave.</comment>


Show HN: Custom Filters, SQL Alerts, SQL Snippets and More Released for Cluvio - <AUTHOR> https://blog.cluvio.com/cluvio-news-4-our-biggest-release-yet-c7d32e0d39da#.brv604v4a <comment><AUTHOR> Hi, I'm Marius, one of the founders of Cluvio ([https://www.cluvio.com](https://www.cluvio.com)). We just released a huge update to our SQL / R based BI platform that we wanted to share with you.

Would love to hear your feedback and thoughts!

<comment><AUTHOR> Original HN announcement: [https://news.ycombinator.com/item?id=12684089](https://news.ycombinator.com/item?id=12684089)</comment></comment>


How to Organize Your Monolith Before Breaking It into Services - <AUTHOR> https://medium.com/weebly-engineering/how-to-organize-your-monolith-before-breaking-it-into-services-69cbdb9248b0#.jzck927qp <comment><USER2> I find the silver bullet method to be most effective here.</comment>


Work Culture Toxicity in Tech - <AUTHOR> https://www.nadyaprimak.com/blog/career/work-culture-toxicity-in-tech/ <comment><USER2> >What makes it worse is that tech elevates this capitalist propaganda, glorifying workaholic ism

A desire to throw yourself into your work isn't capitalist propaganda. The fact that one doesn't want to compete at this level is not an excuse to dismiss it as such. The people who are best at anything are the ones who obsess over it and dedicate themselves to it. That is the nature of a reality where time and resources are limited.</comment>


Clear Channel billboards to start tracking mobile phones in Europe - <AUTHOR> https://www.theverge.com/2020/8/10/21361734/clear-channel-billboards-privacy-ad-tracking-europe <comment><AUTHOR> Earlier discussion when this was rolled out in the US 4 years ago: [https://news.ycombinator.com/item?id=11196671](https://news.ycombinator.com/item?id=11196671)

It seems like they are combining location data sold to them by mobile carriers with limited GPS data that they might be cobbling together from several sources.

</comment><comment><USER2> I can't imagine how this is going to work with the GDPR in place? How should someone give their consent to this data collection and how do you remove it again?</comment>


Where to Find Open Data on the Web - <AUTHOR> http://readwrite.com/2008/04/09/where_to_find_open_data_on_the

<comment><USER2> Jacques Mattheij (hn:jacquesm) put together a nice list of open data sets:

<http://jacquesmattheij.com/Free+Public+Data+Sets>

<comment><AUTHOR> Thanks!</comment></comment>


Wetland ORM for Node.js - <AUTHOR> https://wetland.spoonx.org/ <comment><USER2> It looks interesting, but I couldn't find the most important piece of information: What's the license?

<comment><AUTHOR> Good feedback.. MIT, It's on github. I'll push it to the docs, too. Thanks!

Updated.

<comment><USER2> Awesome! Thanks!</comment></comment></comment>


What is the best way to learn programming?  - <AUTHOR>

I'm interested in programing (as many others) and just don't know the right approach to get into into it. Suggestions or ideas? <comment><USER2> First, this post: <http://blog.zackshapiro.com/want-to-learn-to-code-start- here> gives a good foundation of troubles you should expect, although point #1 is more than a little impractical for most people.

You should also be aware that the only way to learn to code is to actually do it.

Try going with a book tutorial, such as <http://eloquentjavascript.net/>

You can click on the buttons next to code entries to try stuff out.

Learn how to develop code outside of a browser. Pick a text editor and learn it. Sublime text (<http://www.sublimetext.com/>) is a great choice for beginners. Learn how to use the command line.

After you have an OK foundation, check out the problems at <http://projecteuler.net/> working your way through them sequentially (apparently, most people don't go beyond ten problems)

Create a GitHub account. Learn basic git, and start putting your code out there.

Come up with something you want to make and start a project to actually do it. Be sure to start small, since a lot of software development skills only come with practice.

</comment><comment><USER3> There's no one universally best way, but there are lots of available ways that are good, and you need to try some out and find which is best for you (self- study from books; traditional classes offered via, e.g., local community colleges; MOOCs like EdX, Coursera, Udacity, etc.; non-MOOC online interactive-learning tutorials like those offered by CodeAcademy, etc.; etc.) -- and there is no reason to limit yourself to one of these approaches. Try more than one, and keep doing more than one if you find they work together for you.

Whatever basic approach(es) you use, the most important thing is to take whatever you are getting through it and find ways of applying to problems that interest you -- that is, the most important thing to learning to programming is to _practice programming_.

Personally, I think the mix of convenience, structure, and cost (free) of the MOOCs is hard to beat; the self-scheduled nature of Udacity makes it the easiest of the big 3 MOOC providers to jump into an intro programming class since you can do it whenever you want. So, I'd probably recommend that as the first thing to try if you want to start learning right now. But the introductory programming offerings from other MOOC providers (particularly EdX's MITx 6.00x class) are also worth exploring, as are other approaches.

</comment><comment><USER4> Write programs.</comment>


Ask HN: Consultants: How has COVID19 affected you? - <AUTHOR> For those of you that are software / design / product / whatever consultants, how has COVID19 affected you?<p>- Have you lost clients? - Have clients been unable to pay or late on payments? - Have you been able to source new projects recently? - For those of you with enterprise clients, what is their appetite for bringing on consultants in this climate?<p>Thanks everyone! <comment><USER2> The UK market was already dead thanks to IR35 and while that was postponed due to the coronavirus, the market is still very bad.

Haven't had any late payments so I'm lucky on that side, but sourcing projects is a major challenge. I've been out of work for a month now.

</comment><comment><USER3> I work at a consulting company which had a contract from Jan 1st 2020 up to June 30th but the latter was shortened to May 1st as a part of cost-cutting measures (including hiring freezes, consulting contract renegotiation, etc.) from the client company.

I have been on unemployment benefits since. Despite the current context, Can't quite look for another job (3-month notice still in effect if I resign) nor work for another company for my own benefit (non-compete clause). Projects here and there are being cancelled due to budget cuts, so I am not sure how long I am going to last at the current company.

Fortunately I still have my salary every month, and LinkedIn is my friend.</comment>


How I came to love Typescript - <AUTHOR> http://developer.telerik.com/featured/how-i-came-to-love-typescript/ <comment><USER2> > My fundamental problem with typed systems is that they force you to know – > in advance – the exact format of every incoming data structure you're going > to be working with, which is often impossible.

I am at a loss as to what could have caused this kind of confusion.

<comment><USER3> > I spent so much of my time as a C# developer just fighting types. That's > all. And that's not even considering things like reflection, a trivial > affair in JavaScript that equates to an absolute circus in C#.

 _sigh_ what do you need reflection for? (beyond making "magic" APIs, which have their own issues) Overly dynamic programming is overly dynamic.

<comment><USER4> Usually reflection gets used to project ORM classes onto data transfer objects. That's an unsolved problem and the struggle is real.

</comment></comment></comment><comment><AUTHOR> I was in the "why bother with typescript", then I worked on a project with 5+ developers and it massively proved itself time and time again.

I'm now hankering for a strict typescript compile. I still come across code where I've written function () rather than () =>

We pretty much have one golden rule:- You better have a very very very good reason to use "any".</comment>


Whistleblower talks banned at Australian cyber security conference by govt - <AUTHOR> https://www.csoonline.com/article/3444596/speaker-disinvites-at-cybercon-spark-controversy.html <comment><AUTHOR> [https://twitter.com/Thomas_Drake1/status/1181301190983704576](https://twitter.com/Thomas_Drake1/status/1181301190983704576)

[https://twitter.com/SueletteD/status/1181314052376559616](https://twitter.com/SueletteD/status/1181314052376559616)</comment>


Ask HN: Sold my Apple Watch: Quadcopter or 3D printer? - <AUTHOR> I just sold my Apple Watch for $250. I was now going to by a new tech toy.  I was thinking of either a Quadcopter or a 3D printer.  I have a GoPro that I could mount to the Quadcopter. <comment><USER2> There is a substantial learning curve to setting up and flying a competent quadcopter, but it is a great hobby. If you get both, you can make parts for the quadcopter. I'm not sure about the relevance of selling your watch for $250?

<comment><AUTHOR> I never thought of making parts for the quadcopter with the printer. That's amazing.

</comment></comment><comment><USER3> Where are you going to get a 3D printer for 250$</comment>


Our preoccupation with gender identity is a cultural step backwards - <AUTHOR> http://www.prospectmagazine.co.uk/features/gender-good-for-nothing <comment><USER2> Man, I really enjoyed this author's viewpoint. This passage in particular voiced something I've been unable to express:

> Yet consider: in order to construct this spectrum, it is necessary first > firmly to establish what it means to be "man" and "woman." Even if you are > "genderqueer"—convinced that your gender identity does not conform to the > social norms associated with your sex—alienation from social norms depends > on the perpetuation of social norms. Thus if you are a gruff, muscular, > assertive woman who has adopted the genderqueer label, girlishness must > continue to be associated with garrulousness, weakness, and passivity for > your identity to scan.

> In short, the spectrum depends on stereotypes.

About a year ago I started to question my sense of gender, and ended up arriving at the "genderqueer" label. But not because it felt most right, just less wrong than the other labels. About six months later I came to a similar conclusion as the above passage: so what if I don't do stereotypical $GENDER things, why should that prevent me from identifying as $GENDER? Doing anything else seemed like a special sort of narcissism, or a hobby -- not sure of the right words, but it seemed like a needless/useless waste of time and energy. That, combined with realizing that I don't want to define myself by my gender, helped me stop thinking about this for the most part and, i think not coincidentally, feel a lot happier about myself.

<comment><USER3> I battled with a lot of the same challenges, but ultimately, I am much more like the men in my life and much less like the women in my life.

At a certain point, every gendered action, from saying my name (very female) to walking into the women's bathroom honestly felt like lying! So I transitioned.

I've been so at peace with myself since transitioning! Ironically, I've also been able to be a more effective advocate for all genders because now I'm in the "boys club". By that I mean, pointing out when someone is treating men or women differently just because of gender, but also helping highlight when someone is expecting different treatment just because of their own gender.

I'm both happier about myself and a more effective advocate for treating everyone equally!

<comment><USER2> I'm happy to hear that you were able to make a series of choices that made you happier! I hope that you didn't feel attacked by my comment -- the "needless/useless" comment was intended to be with regards to my own situation, not a prescription for others. I think it's an easy trap to fall in to, wanting to prescribe your own beliefs upon others and make the world in your own image ("if only they'd all just listen to me!"), but ultimately ineffective.

> Ironically, I've also been able to be a more effective advocate for all > genders because now I'm in the "boys club". By that I mean, pointing out > when someone is treating men or women differently just because of gender, > but also helping highlight when someone is expecting different treatment > just because of their own gender.

That's awesome! I like to think that I'm still an effective advocate for equality despite not identifying as genderqueer or taking any particular pains to present a certain way. As a logical extension of the beliefs and decisions described in my original comment, I try to do my best to set a positive role model by making myself happy while presenting as $GENDER rather than genderqueer. Be the change you want to see in the world, and all that.

<comment><USER3> > I hope that you didn't feel attacked by my comment

While I'm human and may have a visceral reaction to some things, I've also learned to regularly take a step back to check myself and my reactions. Written communication requires this even more so than face to face!

> the "needless/useless" comment was intended to be with regards to my own > situation, not a prescription for others.

This is one of the hardest things for many people to understand. In a group therapy setting, one of the most common tenets (next to confidentiality) is the concept of "I" statements. In other words, the speaker should never speak for another person or tell another person what to do. You absolutely used an "I" statement approach, and I really appreciate that you did so!

> > Ironically, I've also been able to be a more effective advocate for all > genders because now I'm in the "boys club".

It took me a while to embrace this perspective, precisely because it shouldn't matter. But there are people, men and women, who simply respond better when a person of a specific gender says something. Typically men have more authority. (There's actually a fair bit of research about this. For example, in the 'intelligent agent' community an agent that is given a white male appearance will be trusted more than the exact same agent with the appearance of a white female or a black agent of either gender). So, I've tried to harness this when it seems to be the most effective approach to address discrimination. Every now and then, I suspect the person I'm interacting with will respond better if they know my background, so on occasion I've come out so that I can more effectively communicate with the person.

There are a couple of the reasons it took me so long to embrace this perspective. First, I want everyone to have an equal voice, in other words, I don't want my voice to count more now just because it's deeper and comes from a hairy face; unfortunately, we're not there yet. Second, I just want to be me, I don't constantly want to be in trans/gender advocacy mode. About a year after transitioning, I realized that because I was treated as a girl/woman by the world for so long (and a non-gender conforming one for many of those years) and I absolutely pass as a guy now, I really am in a very unusual place. So as much as I want to just hide out in the closet, I feel responsible to everyone to fight discrimination in a way that very few can.

Based on your language and my time in the LGBTQ community, I'm assuming some things about your age. If I'm correct, just the fact that you questioned your gender and are discussing that process is a very different type of advocacy, but it is absolutely advocacy none the less! It's been nice being able to see the generational differences, and there's been so much progress since I first realized I was different!

Interestingly, my mother went through a questioning period (long before there was any language for it) and came to a conclusion much like yours. So when I first came out to her as a young kid, she thought my questioning was normal, that I would outgrow it, and that it meant she needed to fight even more for women's rights (because she thought that was the root of it for me). In many respects, she was my strongest ally but also the most painful thorn in my side. Several years after I transitioned, there was an incident in which her language actually put my well-being in severe jeopardy. It took that incident before she realized her experience is not my experience, and that neither of our experiences is definitively right or wrong. Rather our experiences, reactions, and identity are simply our own. It was a painful period for both of us, but she's become an even stronger ally as a result.

I look forward to a time when race, gender, age, etc. aren't used to justify violence or discrimination. Until then, I'll keep using my unusual position to advocate for movement toward that goal. Be the change, and all that. Between all of us, progress will continue.

</comment></comment></comment></comment><comment><USER4> Interesting read, and I agree with a great deal of it. I've had quite a few interesting conversations with my hyper-PC eldest step daughter on the subject - all of whose female friends (aged 16-17) don't identify solely as female, and yet all of whom haven't had any significant relationships, and all seem to have succumbed to pressure to identify on a subject they haven't really had much experience of. And as time goes by, more of them are finding out that they are normal, and attracted to males.

We're all on a continuum of nearly every characteristic about us. I find the constant desire to have to self identify on every variable is becoming tiresome. Had I been at school today, I'm sure I would be diagnosed as on the autistic spectrum, but fortunately I was a child of the 1970s, and unless you were truly afflicted you were just considered "a bit odd". The kids who I teach now mostly find labels they are given as a reason for their behaviour, rather than a starting point for any change they may wish to undergo, and while it's well intentioned, my experience of it (in a school with about 75% with some firm of SEND requirement) is that it is viewed as an explanation of current behaviour, rather than anything constructive. Not in every case, but in the majority.

<comment><USER2> > I find the constant desire to have to self identify on every variable is > becoming tiresome.

Right? This is super frustrating to me as a current university student. It seems like gender identity is just another way of tribe-association that is particularly popular among the rich and well-educated. It functions in the exact same way as identifying as a supporter of a particular football or baseball team. Deeply frustrating to have to engage with this, especially because honestly it is tiring and hard to think about.

<comment><USER5> Ate you familiar with fraternities and sororities? But you think that he genderqueer folks invented this obsession with gender identity?

<comment><USER2> > But you think that he genderqueer folks invented this obsession with gender > identity?

No, I do not think that genderqueer folks invented this obsession with gender identity. It's very unclear to me how you read that meaning from my original comment.

</comment></comment></comment></comment><comment><USER6> A lot of the controversy about gender today only makes sense in light of broad historical context.

Gender was synonymous with biological sex until John Money introduced a distinction in 1955. That distinction has been amplified across the decades to a the point where cultural consensus considers gender to be primary and biological sex irrelevant. We can and should ask why this is happening in Western Culture first. The reason is because it is part of a long cultural war that is being fought over the idea that inequalities can and should be fixed by culture and the idea that inequalities will inevitably persist due to our nature as humans. The progressive impulse has animated a lot of positive change in the West but it stumbles when it comes up against actual differences. It either pretends that they don't exist in order to maintain the narrative or it assumes that differences must be bad and opts toward a view that any difference that leaves a group with less perceived power must be eradicated by adopting the trappings of power.

Transgenderism is ground zero for this cultural/biological clash. Boys/Men generate about 17x the amount of testosterone as women [http://www.mayomedicallaboratories.com/test- catalog/Clinical...](http://www.mayomedicallaboratories.com/test- catalog/Clinical+and+Interpretive/8508). Estrogen and oxytocin have real effects on self-perception and behavior. When someone says "I feel like a man" or "I feel like a woman" we are hearing them through the filter of their biology (do I feel the urge to smash things or nurture?) along with cultural self-perception.

In non-Western societies, without the overlay of our culture, hormones influence roles and sense of life without much mediation. In the West we struggle with this. Is the burka oppression or a choice? Is it a valid choice to forgo a career and feel fulfilled as a mother and then a grandmother if that feels right to you? Can you be oppressed if you don't feel oppressed? It's hard to escape our narrative and consider it something we impose on our nature.

</comment><comment><USER7> I've always found the idea of gender identity a bit odd because it seems to present this idea of discrete 'identities', negating human personality, drawing patterns where none need to exist.

Talking about appearance (which covers race, gender, basically stereotyping in general) - a human might look at another human, see that they have certain attributes (I dunno, wonky teeth, not well shaven, particular gait, whatever) and decide to box them.

The idea of gender identity seems to be a way of trying to break out of that box of judgement. So yeah, I look like I have a penis, sexually I can interact with those with vaginas and produce children, but that's where it ends, I figure.

What I personally don't understand, at the moment, is what makes it different from anything else - identifying as working/middle/upper class, as a nationality, as whatever, really. They all seem like patterns of the same thing to me. If you're working class and you waltz about in a suit with links, providing you can even afford such a thing, you're not going to be treated well by your peers. And that sucks! But what does the identity help? Being able to find others who want to do the same things?

Is it just that we're doomed to try to simplify our models about society by creating these groups, so gender identity is about trying to move the groups a bit to limit damage? Or what?

Fundamentally I'm not sure I even understand what it means to 'identify' as an X. What if I think that all of the groups are nonsense? That I don't feel working class, or middle class, or male, or female, or whatever? I sort of am one of them, by birth and inheritance, I guess, but my feelings about it seem kind of immaterial?

edit: Turns out that reading the whole article properly, rather than skimming it, means that my comment is almost entirely superfluous. :)

</comment><comment><USER8> This brouhaha about gender identity requires some 'fixed points' about gender that I thought we progressives had all already agreed were nonexistent!

But I don't think the point about the author's personal experience of not "feeling like a girl" proves anything - see "cis by default", or [http://slatestarcodex.com/2013/02/18/typical-mind-and- gender...](http://slatestarcodex.com/2013/02/18/typical-mind-and-gender- identity/). It's possible that there are people who _do_ feel strongly that their body doesn't match what their mind is telling them, and it's a cause of suffering. As I understand it, it really _is_ all about sex in this case (which makes the author's quip about her "true self not having arthritic knees" irrelevant).

</comment><comment><USER9> > _I have no idea what it "feels like" to be a woman—and I am one._

The crux of her argument seems to be that because _she_ can't imagine feeling like she has the wrong sex, nobody _actually_ feels like they have the wrong sex, and it's all about identifying (or not) with cultural expectations of femininity or masculinity. But,

> _the statistical rarity of true gender dysphoria_

So she doesn't actually dispute that gender dysphoria exists.

She asserts that _claimed_ gender dysphoria is more common nowadays and most such claims are not _genuine_ gender dysphoria, presumably because she doesn't believe that sociological changes could influence the prevalence of psychological conditions, and/or people's ability and willingness to identify as having the condition.

> _the whole trans movement does seem to have awfully [much] to do with > clothes_

Clothes are one of the ways people in our culture signal their gender. It shouldn't be surprising if people who believe they are female want to wear clothes which are culturally associated with females. But, if you don't believe that (most) trans people have gender dysphoria then, sure, all you see is people worrying about clothes.

> _But I hate to break it to the converts to my sex: women who were born women > schlep around most of the time in jeans and trainers. The version of > femininity offered up by Caitlyn Jenner is foreign to me—exaggeratedly > coiffed, buffed and corseted_

But you've heard of the Kardashians, right? It isn't as though almost always looking glamorous when in public is a _trans_ trait. It's a trait that some _people_ have.

</comment><comment><USER10> As a whole it comes down to narcissism and desire to feel 'special'. Sexuality is a spectrum with nearly infinite points and we're all fluid on the spectrum. Labeling a select hundreds of points on the spectrum is needles. Being happy doesn't require a label. It requires the acceptance of your peers, and I don't think insistence on corrrect labels or new pronoun's help with that.

</comment><comment><USER11> tl;dr: "Gender isn't important to me, so it shouldn't be important to anyone else either!"

</comment><comment><USER12> Gender and other forms of identity remain because they are a) convenient and b) lucrative.

<comment><USER13> I see it more as social capital and power

</comment></comment><comment><USER14> As a free thinker I tend to reject social constructs.

If sex is biological expression, and gender is a social construct then I acknowledge sex and reject gender.

<comment><USER15> > As a free thinker I tend to reject social constructs.

</comment></comment><comment><USER16> > For me, my very self has no gender. While obviously I can only testify to my > own experience of being a person—to my knowledge, I've only been this one—I > cannot imagine that I alone enjoy such a self-perception.

It may be anecdotal but the case of David Reimer certainly contradicts her theory.

Reimer was castrated as an infant and raised as a girl after a botched circumcision. He had surgery and hormone therapy. Nevertheless he identified as a boy and displayed many of the same symptoms that trans people do.

I would say his 'self' had a gender.

[https://en.wikipedia.org/wiki/David_Reimer](https://en.wikipedia.org/wiki/David_Reimer)

<comment><USER17> No argument that starts with "sample size: 1" is ever a convincing one.

</comment></comment><comment><USER18> And race too! Stop fighting for equality; know your place.

One thing I did like and agree with about about the piece, though, was this:

> and save the conniption fits; I'm not on social media and > never read > online comments)

That's how you deal with trolling!

<comment><USER19> > And race too! Stop fighting for equality; know your place.

Comments like this do nothing to generate an intelligent discussion and make one wonder whether you even bothered to read the article.

<comment><USER18> It certainly doesn't seem to have provoked anything particularly interesting in the way of responses.</comment></comment></comment>


Most VPN Services Are Terrible - <AUTHOR> https://gist.github.com/kennwhite/1f3bc4d889b02b35d8aa <comment><USER2> I recently cancelled my PIA account. It was so incredibly slow as to be unusable most of the time. Thought through my threat model and decided it wasn't worth the hassle. I use tethering with my mobile provider when I am in dodgy places and make sure that I have an SSL connection to anything important.

</comment><comment><USER3> VPN services are terrible because most people using them are downloading torrents/abusing bandwidth limitations.

<comment><USER4> I use mine for neither of those. Primary use:

* Simply browsing the internet while at work, since our "guest network" is poorly configured and has a bunch of things blocked. (not for any valid reason, other than "this is what was blocked by default and nobody feels like changing it.")

* Watching the European version of NFL Game Pass. We simply want to watch football and not have to purchase a cable subscription or deal with media blackouts.

I barely even look at torrents anymore.</comment></comment>


Visual artist Noelia Towers on being compelled to create [NSFW] - <AUTHOR> https://thecreativeindependent.com/people/visual-artist-noelia-towers-on-being-compelled-to-create/ <comment><USER2> I respect that she uses herself as the subject of these paintings.

On difficult subjects, if the artist is also the model, then you neatly sidestep the problem of the potential that they didn't know what they were doing, or that they were coercing the model, or that they were debasing the model by objectifying them.

Now, it is possible for someone to coerce someone else to be both artist and model, but that meta-level of coercion would happen off the page/screen/canvas.

</comment><comment><USER3> Should probably add [NSFW] to the title

<comment><USER4> Good thing I'm currently working from home.

</comment></comment><comment><USER5> How many HN karma points are required to flag an article?

Edit: Ah, there actually was a flag link, I overlooked it.

<comment><USER6> Before you do that, it seems quite an interesting site:

[https://thecreativeindependent.com/people/](https://thecreativeindependent.com/people/)</comment></comment>


A CSS Snippet That Makes Any HTML Page Look Good - <AUTHOR> https://www.geffrey.io/css-snippet-html-pages/ <comment><USER2> Very nice. For those of us who'd appreciate a live demo (like me), I wrote this script:

      document.querySelectorAll('link[rel="stylesheet"], style').forEach((style) => style.remove());

      const style = document.createElement("style");
      style.appendChild(document.createTextNode("body{font-family:sans-serif;line-height:140%;max-width:38rem;padding:2rem;margin:auto}h1,h2,h3,h4,h5{margin-bottom:.6rem;line-height:120%}p{margin:0 0 1rem}"));

      document.head.appendChild(style);

<comment><USER3> Thanks for that!

</comment></comment><comment><USER3> Hi! Geffrey from … geffrey.io here. Thanks for posting!

That website is a bit wonky, sorry for that.

Thanks again!</comment>


ASK – Who wants to hire me? - <AUTHOR> I'm a game developer on the Unity platform with 3 years of experience. In my career, I have worked with Google Firebase integrated to the unit for user database (Unstructured Query Language) and I have experience with system chat and system questions using the C # program language. I have moderate experience with developing games on the Construct, Unreal, modeling and 3D animation platform using the Blender and 2D animation in Spriter. But I can develop whatever you want.<p>Location: Campina Grande - PB, Brazil Remote: Yes Willing to relocate: Yes Technologies: Unity3D, Unreal, C#, Python, Java, javaScript, HTML5, CSS, Blender, Spriter and more. Email: firstname.lastname@example.com <comment><USER2> Job posts are not allowed, see [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

Add yourself to the monthly "Ask HN: Freelancer? Seeking freelancer? (May 2018)" if that applies to you [https://news.ycombinator.com/item?id=16967544](https://news.ycombinator.com/item?id=16967544)

You can also see the list of job openings [https://news.ycombinator.com/item?id=16967543](https://news.ycombinator.com/item?id=16967543) every first of the month.

<comment><AUTHOR> Oh, I'm sorry, I don't knew. how I can delete this?</comment></comment>