Why I hate the weekends (2017) - <AUTHOR> https://www.cdahmedeh.net/blog/2017/4/15/why-i-hate-the-weekends <comment><USER3> This resonates with me. I love my work, I really like what I do, I think it's mentally challenging, interesting, and important for our world and civilization and I believe I'm compensated well enough. But it's tiring ok? And all I can ever do on weekends is lying on my bed watching netflix. I work 9 to 6 and work out intensely for 2 hours every week day. By the time it's saturday I'm both physically and mentally exhaust. I cannot do anything other than sleeping. Of course this is not a good situation for various reasons: no friends, no relationships, no hobbies. Just work, gym, and recovering from those two. I like this for a lot of reasons (which is why I do it) but I acknowledge that my life is also pathetic. I wouldn't be surprised if I died alone.

<comment><USER4> You should definitely see a therapist, you sound clinically depressed. Laying in bed all weekend is not healthy. Making friends and having lasting relationships takes effort but is a requirement to have a happy and fulfilling life (excluding total hermits who are perfectly happy ignoring family, friends, and social contact, and some of those people do exist on HN and will argue with this comment).

You have a career, now it's time to have a life. You owe it to yourself.

<comment><USER5> "Requirement" is too strong a word. We've all read the Harvard 75 years old study [0] probably here, cause it was posted couple of times on HN, but I for one side with Chamfort: "Happiness is very difficult to find in yourself, but impossible to find someplace else"

I've felt this way all my life, even before I read Chamfort. I always valued quality relationships with people, not just any relationship with anyone. To me, being alone is much better than being in the wrong company.

It's very hard to find good, well-mannered people with moral integrity. At least it is for me. And based on everything I see around me, those people are just rare. Most people tolerate each other, instead of actively wanting to be friends/whatever with each other. I don't fully understand why that is. But is just is. I'm curious to see other's thoughts on this subject, though.

[0] - [https://www.washingtonpost.com/news/inspired- life/wp/2016/03...](https://www.washingtonpost.com/news/inspired- life/wp/2016/03/02/harvard-researchers-discovered-the-one-thing-everyone- needs-for-happier-healthier-lives)

<comment><USER6> "It's very hard to find good, well-mannered people with moral integrity. At least it is for me. And based on everything I see around me, those people are just rare. Most people tolerate each other, instead of actively wanting to be friends/whatever with each other. I don't fully understand why that is. But is just is. I'm curious to see other's thoughts on this subject, though."

So much of this, I feel that 100%. And people who are like-minded to me feel the same. I think I have 6-7 people/friends like that, it took me time to find them, and I said many times no to "regular ok" people who are not ok to me. Additionally (don't take it too seriously) people who say they don't like people in general (like me :D ) are the ones who I like and who "do have a bar" at all.

To me it seems like most people are not in "real friendships " just accidentally sharing similar background in a space and time so they benefit some of the pros of having a "regular" relationship (eg. friendship).

<comment><USER5> > "Additionally (don't take it too seriously) people who say they don't like > people in general (like me :D ) are the ones who I like and who "do have a > bar" at all."

Chamfort, again, put it more eloquently than I can: "If you aren't misanthrope by age 40, you never liked the world anyway"

I guess the initial shock for me was that people _know_ what they are doing and what kind of harm/pain they are causing, and at every step of the way they _choose_ to do it. I've seen this all around me and I've experienced some of it myself and I just don't understand why is it so. There really isn't a need for it, people _like_ and _choose_ to do it. That's kinda scary to me.

Once you start thinking about this subject, you will inevitably realize the same, as a plethora of philosophers did earlier and since always, basically.

The only people content with the situation seem those that never started thinking about it anyway. Ignorance is a bliss? :)

</comment></comment></comment></comment></comment><comment><USER7> What I don't understand here: Why can't we just _work less_?

I know it's not trivial, but it can't be impossible either. I doubt he would starve if he got a part-time dev job (are those easy to find? I have no idea). I agree wholeheartedly with all that he said. I think a life of work-home-work without breathing is almost meaningless unless you can have possibly unreasonable amounts of fun and freedom in the job (few if any industries allow/demand this kind of work). Indeed if a job allows for fun and freedom markets will usually exploit this advantage to try and push you to work even more ( _if you let them_ of course).

I'm still a student but I'll certainly look for a job that's either totally fulfilling (rare) or allows as much freedom as possible while maintaining a reasonable lifestyle and quality of life.

<comment><USER8> The biggest reason is because bosses don't want us to. They want to make as much money as possible, and that's about it really. The good news is we have made progress, through mass action, people have won the right to weekends, fewer hours and other rights. The final battle is one to win control of the workplace itself, a self-managed and owned workplace.

<comment><USER9> In tech in SV, so many stupid things happen because people work too much. Self-organizing is a challenge as well though.

<comment><USER10> So let's legislate a four day work week. The productivity gains to justify it already exist, they've existed for decades.

<comment><USER11> I wonder if that would have to happen globally. We are still competing with companies in other countries. Chinese startups subscribe to the 996 schedule (9am-9pm, 6 days/week). I'm not sure if 954 allows us to compete.

<comment> squeaky-clean Why not? We're currently competing with 955.

<comment><USER12> I'm pretty astonishing about that movement happening in the West(or USA only?). Because, by contrast, in China, 996 is the current trend in tech companies.

<comment><USER13> > Because, by contrast, in China, 996 is the current trend in tech companies.

Only very poorly run ones with crappy per-hour productivity.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Some possible solutions:

1) Ask for a 30 hour work week, or find a company that can offer this. Your salary should still be high enough to aim for a comfortable retirement at 65.

2) Adopt a more frugal lifestyle and increase your savings rate.

You need to save a few million dollars to retire with $40-$80k in investment income. It should be very possible to do this with a backend developer's salary over a period of 10-15 years, and then you should be able to retire in your 30s or 40s. You should also aim to increase your salary by changing jobs every few years (or get a job at a FAANG.)

3) Build side projects or a startup and try to get some passive income (or an exit)

Write all your startup ideas down and keep looking for opportunities. It can be hard to build products in the evenings or weekends, especially if you're already burnt out from your normal job. So this option works best when combined with part-time freelance work:

4) Become a freelancer and work part-time while you work on your own projects

Bonus: Move to a place with a very low cost of living.

Working 10-20 hours per week gives you a lot of free time and much longer weekends. But it also gives you a lot of time and energy to work on your own ideas.

Note that working 10 hours per week is a terrible idea if you just spend the rest of your time working on hobbies that don't make any money. If you do that, then you won't even be able to retire at 65, and you probably won't be able to save money for emergencies. Only do this if you spend the rest of your time trying to build a business.

If you can't get anything to work after ~10 years of trying, then you should still have plenty of time to go back to a full-time job and save for retirement.

<comment><USER15> > You need to save a few million dollars to retire with $40-$80k in investment > income.

You need a lot less than a few million dollars if you're willing to live at a more reasonable retirement income. I mean, you won't have to commute anymore, or buy all those services that did things you never had time for, or pay for daycare, or live in an overpriced city, etc. Hell if you move to a country with a lower cost of living, as you suggested, you'll need even less.

You would be surprised how little of what you consider "necessities" of your lifestyle you actually need, or miss when they are gone.

<comment><USER14> A conservative "safe withdrawal rate" is about 3.5%, so you need around $1.1M invested in index funds in order to have $40k income per year.

I'm living in Thailand, and $40k goes a long way. Many people would be happy with this lifestyle, but it's not quite enough for me, and I wouldn't want to spend the rest of my life here. I'd much rather have $80-100k and live somewhere like Toronto. But to each their own.

<comment><USER16> I'm in Japan. Last year I remitted $16k. My residence is paid for and I spent an additional $12k cash. In total, I live on 28k / year. Add in a residence if I had to rent, down where I am it's $500/mo for a 3 br "home". It's really a shanty by western standards but enough for me. On 34k if you rented, one can live comfortably in Southern Japan. Of course, this is not possible without a valid visa. I have lived in Midwest, California, Washington and visited most of US. I would still choose to live here than anywhere else. I think most Americans who have not done enough travel do not seriously consider living outside of their country (if they had the chance) just due to a mindset that America is the best place to be (hint: it's not).

<comment><USER17> But you said it yourself: you need a visa. It's not simply a question of whether an American or anyone else finds it satisfying to live in another country. The government has to want/permit you to be there. And in the case of Japan in particular, that's a difficult situation to navigate, especially if you are looking for a place to live for your retirement years.

</comment></comment></comment></comment></comment><comment><USER18> > _I feel like my whole life is centered around work. Even though I work a > (what is considered) reasonable 40-hour work-week, I feel like too much of > time is taken away from me. Not only is it actually being in the office but > commuting too. My morning are devoted to getting ready for work: dressing > up, packing up a lunch and so on._

As someone who also works a reasonable 40-hour a week job, I cannot emphasize enough how much of a difference working remote has made.

I used to commute an hour each direction in the DC area, and (like the author) spent time preparing meals, getting dressed, etc. I have since moved to the NC area to work remote, and quality of life improvement is incredible:

\- I can get to work immediately with no commute, and when I'm done, I don't have to get in a car to get home.

\- Lunch break involves making a healthy lunch in my own kitchen, then reading a book while I eat in the comfort of my own home.

\- I am a coffee enthusiast, and I love being able to make a french press, pour-over, or cold brew right in my kitchen.

\- Crappy weather and accidents on the roads no longer have any effect on my workday.

\- I get the exact office setup I want.

\- I can go work at a coffee shop, an outdoor park, or even at the beach (all of which I have done), if I want a change of scenery.

WRT to the central point: I hate the _concept_ of living for the weekend, and have taken intentional and proactive steps to ensure that I don't fall into that trap.

Just a few examples:

\- Get up early, and make time for what matters. I like to work out in the mornings, and also make sure to do any hobbies or side projects during this time, as my brain is fresh.

\- Make yourself stop working at the appropriate time. This will differ depending on your job and your personal preference, but I draw a line in the sand and do not let myself work any later than 6 PM. My personal time is very important to me, and even though I love my job, I will never choose it over my personal time.

\- Make sure to do things you like during the week, too. This really just involves not allowing yourself to believe that you can only make time for yourself on the weekends. Sometimes I'll get up early and meet someone for breakfast at a restaurant, sometimes I'll do a fun hobby in the evening, like rock climbing. If your job is flexible enough you could even step away for a quick break during the day to do something outside, like bicycling or kayaking, if that's your thing.

edit: Formatting

<comment><USER19> I've been working remotely my whole life (freelance developer).

It's interesting how jaded I am of driving in general. There are certain intersections in my town where it's common to get stuck at a red light that lasts for minutes. Things like this put me on complete life tilt. All I think about is "how can anyone put up with this every day?". I'm no longer surprised why people go berserk out of no where.

I really don't know how people do it. Getting stuck in traffic or waiting on long red lights sucks the life out of you because it's such an utter waste of time. Maybe I'm just not used to it (I drive, but it's usually outside of rush hour), but man, I am pretty sure I couldn't exist in a world where I had to do the traffic grind daily.

<comment><USER20> Yes - once you have full control of your time things like traffic and lineups drive you bonkers.

Honestly, one would think that 'less stress' and a more peaceable mindset give one more resilience in dealing with such things, but just the opposite.

To deal with traffic you almost have to 'give up' on the notion of doing something quickly and resign to the reality of it, which is what happens if you have to deal with it daily.

When working from home I avoid doing absolutely anything during rush hour.

<comment><USER21> _To deal with traffic you almost have to 'give up' on the notion of doing something quickly and resign to the reality of it, which is what happens if you have to deal with it daily._

That's the only way to treat driving IMO. If you let yourself get upset at 'delays', you will drive rashly to make up for it, and eventually you will cause an accident.

Every time you get in a car you should expect delays, and expect dangerous driving from others.

</comment></comment></comment></comment><comment><USER22> I used to work a 4-day week (a true 32-hour week, not 4 x 10 or something) and it was the greatest thing I've ever done. All the "weekend stuff" you can do on your extra day, and get two full days off. I can't believe how great it was.

<comment><USER23> Though I'm young and have little work experience, I've already started to think that a ~30-hour work week would be optimal for the rest of my life. My current work place is very flexible in work hours and days, so I decided to do 6-hour days. I think it leaves me enough time to get daily activities & hobbies done and relax.

I really enjoy my work. However, I still occasionally think to myself "man, this kinda sucks". I think it's because I feel the need to put my productivity in something original, something that is born from my personal passion only.

After I graduated from college, I actually kept a year-long "break" and just stayed at home. On this "break", I set up daily tasks for myself to see what I could accomplish on my own. I did creative, productive stuff from 5 to 7 hours a day. I was learning Spanish. Programming. Piano. All on my own. It was a really awesome year. The problem in the long run, of course, is that I don't get any money from those. It was only possible because I was still living with my parents. I would really like to do all of those activities as often as I could back then, but it's just not possible now with a job.

I hope to soon have a solution for this: a business. Currently I'm slowly working on a software project on my free time, with the aim of it eventually creating a solid income, with a relatively small need of maintenance. Not overly confident that it'll work out, but I'll do my best to be able to do the stuff I want, as long as I want, while also being able to live comfortably. That's the dream.

<comment><USER24> I'm in a similar state of mind. Would love to hear about what you're working on!

<comment><USER23> I'm afraid I can't go to very specific details on what it's about, but it's a web service. In my country, there's only one firm offering the same kind of service and they make a lot of money out of it. I think there is room for competition; I'm going to offer an equal-or-higher quality service with cheaper pricing.

</comment></comment></comment></comment><comment><USER25> I've tried to think of a way out of this, but so far none of my ideas are very good.

1) Use my spare time to study a more lucrative field, and negotiate a four-day work week. The pitfall here is that I need to spend all of my spare time working, so that I may be able to work less in the future (and it's not guaranteed that I will).

2) Move to a country where the cost of living is cheap, and freelance with international clients. The pitfall here is that I have to move away from all the people I care about. I may also end up introducing more stress into my life by living as a foreigner and relying on a freelance income.

3) Invest all of my time into starting my own business (for pitfalls, see 1).

4) Negotiate a four-day work week on my current wage, live a much more ascetic lifestyle, and only save a small amount of money for my future.

5) Marry into a wealthy family.

6) Find a duffel bag with a few million dollars in it.

Does anyone have any better ideas?

<comment><USER26> > Use my spare time to study a more lucrative field

assuming you are in software development field, it is tricky to get into a more lucrative one, probably easier to just stay here.

> Move to a country where the cost of living is cheap, and freelance with > international clients

Not long-term sustainable. Might work for couple years (especially if you are single and have perfect health), but after a lot of problem will show up – relatives, friends, connections, etc. Also, you might want your own home.

Overall, you listed it. Other ideas are:

1\. embrace it. Be consistent in your hobbies, and dedicate one day to it (like Saturday). It is tough for new hobbies, but if you are already in it, might be just fine. Not everybody has to produce something artsy and from their passion – your family, what you like might be enough. Try to reflect on it sometime, it might clear some things for you.

2\. Retire early. If you live more frugally (or not so posh, depending on your preferences), you can easily save plenty of money, which will allow you to retire not in 65, but around ~45 (number depends heavily, but you got the idea).

3\. Aggressively negotiate vacation days, and take off 1–2 days at the end/beginning of the week. You'll work much less (you'll notice it), and taking 2 days off reduces 2 weeks into 4 days work week.

</comment></comment><comment><USER27> To add insult to injury I find doing things on the weekend often a chore because everything is so crowded. Around here finding a parking place at the mall, movie theaters, etc is very difficult. There's a beautiful state park that my wife and I love. But to go there on the weekend you gotta arrive either at 6am or 6pm. The parking lot fills up solid, complete with people lurking in their cars waiting for someone to leave. Want to get out of town? Be prepared to sit in lots of traffic. I sometimes seriously wonder if living in such a crowded part of the country is worth it.

<comment><USER28> I had to take a blood test today. Normally if I go my local clinic the wait time is 15 minutes. But because I went on a Saturday the wait was 1-2 hours!!

</comment></comment><comment><USER29> My technique is to remember where the job ranks in my "give a shit about" list and it's not as high as you might assume. I am not irreplaceable, and either is my job. So I try to give a good value for the work I'm paid to do, but at the end of the workday I flip the switch, as it were, and my life is my own. I am militant about not letting my job control me. I am polite but firm with coworkers and managers, and they respect my off-hours time, and I respect theirs. We all have families so that probably helps.

</comment><comment><USER30> We moved from a 7 day working week to a 6 day working week about 2000 years ago, and to 5 days about 100 years ago, it's time to move to 4 days. In addition the 5th day should be used for lifelong education, people should be expected to learn about all the new things that have been invented since they left school, or refresh what they're not good at.

<comment><USER31> In many rural societies work and leisure were constantly intermixed. An craftsman/shopkeeper/farmer could spend 110 hours a week on the workplace while doing 20 hours of active work.

<comment><USER32> I think this is a good point and shows how there is more depth and complexity to the conversation. I find that my work isn't as draining as it could be, but part of that is I often spend over an hour a day chit-chatting with coworkers at work. If it's not all meetings-go-go-build-go-go, then work can be quite pleasant, while still being productive.

And given the problem of loneliness that is arising, it might be less smart to reduce the work week (giving people more time to be alone), than to just make work less intense and forgiving. I.e, I suspect 5 _6.5h is better than 4_ 8h.

</comment></comment></comment><comment><USER33> Today I just wasted the second half of the day doing nothing at all; just watching mind-numbing videos on Youtube.

I had been working on a side project most weekends for the last 10 years and been particularly busy in the last year so I forgot what it felt like to just waste time. Wasting time feels great.

In this cut-throat competitive industry, it does feel like a luxury through.

As a software engineer, I can't afford to not be on the cutting edge. I have the feeling that if I stopped working for just 6 months, my career would be over.

<comment><USER34> Just as a counter-point: I took off 3 years to stay home with kids.

I recently started a new position after very little time looking with a >80k raise.

I've felt the same pressure to stay current. But, turns out it's all about how you can frame what you bring to the table vs what you can't.

<comment><USER35> More and more I think this is true. But with a huge caveat that you actually have to be able to bring something to the table and know well what it is.

</comment></comment></comment><comment><USER36> The "no free time" issue for me is not due to work; it's due to being married — which is a choice I made knowing that I would lose a lot of "me" time. Every so often my wife visits family on the opposite coast for a week or two and suddenly it feels like bucketloads of time have appeared out of nowhere. I imagine once I have children (which I hope to have in the next few years), I will feel even more pressed for time, but I accept that this is just the nature of that decision.

Everything is really about trade-offs, but I think if you are single, a 40 hour work week is probably not enough to make you feel like you are on a hedonic treadmill. I'm currently working at my dream company, but over the next few years, my goal is to reach financial independence as quickly as possible via some side project. 95% of startups fail, but at least in the valley, most of these startups are VC funded and have big ambitions. I'd say if your goal is to simply reach $2-3 million for financial independence, the failure rate is a bit lower for some small project that fills a niche market need.

<comment><USER16> We had a kid last year. My time went from some availability to NONE. Granted, we don't have a babysitter, both myself and wife stay at home (I work from home, she doesn't work). Despite both of us being available, just the daily chores and things that must be done with a little one are insane. Ours could be a unique case because my kid is kinda difficult, but it's definitely a huge change from not having kids. That being said I think anyone who recently had a kid and works from home can attest to forming new abilities to manage time super effectively. Before I would waste a lot of time on non-important things, now I know what my priorities are and get things done really fast. I am a lot more focused because of this.

<comment><USER37> And if you have a second kid your availability will go from NONE to negative balance. I remember when I had just one, suddenly now it feels like I had so much time then!

<comment><USER16> Haha, I am not looking to find out but I'm sure it'll happen soon enough. Oh god.. just thinking about the exhaustion that comes with that, maybe I'll run off into the desert.

</comment></comment></comment></comment><comment><USER38> Ah, someone wrote down some of the reasons I'm terrified to go back into tech. Not because it's unavoidable to be sucked into working a 60 hour week for a soulless company that doesn't care other than to use you as cheaply as possible... but because I am afraid I will let it happen to myself again.

You know the phrase, "working for the weekend"? From the actual hours in office, piled up non-work responsibilities, _constant_ stress from the job... I was working _all_ of the time for... for what, retirement? That's a horrifying thing to think through end-to-end, especially when you step back from your job for a while to realize, in most cases, for most people, _it 's just a job_.

American culture is masochistically obsessed with attaching human value and worth to "work ethic" or "career success". It's a nice distraction (probably not on accident), but I'm fairly there's more to life and I glad it didn't take 30 straight years working to figure that out. And now I guess I'm repeating it here to try and solidify it for myself.

</comment><comment><USER39> Huh, for what it's worth, this doesn't resonate with me at all. I appreciate the author sharing how they feel but really don't like the "we"s and "our"s, since they're not expressing some universal truth.

<comment><USER40> When I was younger, it didn't resonate at all (I've obviously heard this complaint before). The older I've gotten, the shorter everything has gotten. Whether it's based in the natural warping of time perception as we age, or stress from greater responsibilities pushing me towards burnout, my weekends go too quickly and my work weeks take too much time.

<comment><USER41> I find that the work week flies by very quickly as well. I get less done than I used to/wanted to.

</comment></comment></comment><comment><USER42> > _Our lives are high maintenance. We need to maintain our relationships with > our spouses, friends and family. We need to take care of ourselves with > exercise, hygiene and so on. Our houses need to be kept clean and our fridge > full of food. And to be able to do all that, we need work to make a wage so > we can pay for what keeps us alive._

Nothing that a short stint in the developing world doing a non-desk job for a month or so can't help put perspective on...

<comment><USER34> Just because there are kids starving in Africa doesn't make me any less hungrier.

<comment><USER42> I'd say it does.

[https://youtu.be/YYfajPXdvSM?t=67](https://youtu.be/YYfajPXdvSM?t=67)

</comment></comment></comment><comment><USER43> I find the typical work in developer jobs very fatiguing. It involves reading through loads of old code that other people have written over the years, trying to figure out how it all hangs together and where I inject my change in. For some reason that does my head in.

Greenfield work is a lot less tiring, but much more rare in my experience. It's also a career path of it's own and hard to get on. I.e. you need greenfield experience to get a coveted greenfield job role.

I am considering getting into tutoring/teaching programming and I might find that a lot less tiring, covering the basics X times rather than wrangling the spaghetti code day in and day out.

<comment><USER44> _" One mans greenfield project is in a year, another's old code"_ \- proverb 66

</comment></comment><comment><USER45> Once you have kids, you cherish Mondays and weekdays _much_ more..

<comment><USER46> [https://static.boredpanda.com/blog/wp- content/uploads/2017/0...](https://static.boredpanda.com/blog/wp- content/uploads/2017/02/parenting-comics-89-58a431c0d84d4__700.jpg)

</comment></comment><comment><USER47> As others mention here and there in the comments: you can get a 3-day weekend at many tech jobs. It's just a matter of asking, and asking in the right way.

E.g. this guy I interviewed has been working 4 days a week for 15 years: [https://codewithoutrules.com/2018/01/08/part-time- programmer...](https://codewithoutrules.com/2018/01/08/part-time-programmer/)

I've personally not worked 40 hour weeks since 2012, because, too much stuff to do, especially with a family.

If you don't have negotiation experience, well, I started out a terrible negotiator and eventually figured out how, so you can too. And if you'd like to skip over all the mistakes and research I did and just know what it takes to negotiate a shorter workweek as a programmer, I've written a book that can help you: [https://codewithoutrules.com/3dayweekend/](https://codewithoutrules.com/3dayweekend/)

</comment><comment><USER48> Rather than have a job, become financially independent. Work to make money, when you have acquired enough money, take a break. Even if you have to work non-stop to get to "enough to take a break", it's MUCH LESS stressful than being on someone else's clock. I look forward to Mondays, that's what happens when you become your own boss. [https://boldanddetermined.com/t-g-i-m-thank- god-its-monday/](https://boldanddetermined.com/t-g-i-m-thank-god-its-monday/)

<comment><USER16> I can attest to this. Being on your own clock is still stressful in some ways, but compared to a standard work week - not even close.

</comment></comment><comment><USER49> If the OP's post resonates with you and you are a software engineer, consider hiring a part-time personal / virtual assistant.

I haven't heard of software engineers in VC startup land or corporate world hiring personal assistants but in the freelance / consulting world it's very common and an amazing way to "level up" yourself as a professional. It's ok to need help and it's ok to hire someone who enjoys helping with personal or professional admin tasks.

You can start out with a virtual assistant for a few hundred bucks a month and can find one on Craigslist or a branded service like Zirtual.

I have a VA help with routine marketing / admin tasks in my business and then impromptu one-off personal tasks like booking flights, hiring task rabbits, booking doctors' appointments, etc.

I know not everyone is in a place to afford this but I think most engineers are if they are thoughtful about their finances. I'd highly recommend trying it out.

<comment><USER15> This is such an SV answer. Have a problem with work related stresses? Don't consider changing your relationship with work, take advantage of our new Personal Assistant as a Service platform!

<comment><USER16> It makes total sense. If your time is worth way more than theirs (in terms of pay), why not outsource as much of your daily boring, time-consuming work to someone else?

</comment></comment></comment><comment><USER50> We're definitely ready for a 4 day week. It might be the best way to reduce inequality within wage-earners too when you consider how many people are underemployed or are part-time workers who want to work full time - <USER2> people stand to massively benefit.

However I do think the author is making it sound harder than it is... if you don't have kids, I don't see how you can run out of time on the weekends to do basic things or not do those things during the week (esp. chores and errands). I also experience a general feeling of malaise thinking about time wasted during the weekends on internet/games/socializing when I could have been cultivating new skills or working on entrepreneurship but that's definitely mostly my fault.

<comment><USER48> work on entrepreneurship... you may be working 24/7 at first but the freedom it creates is worth it in the end

</comment></comment><comment><USER51> If you work 5 days, 2 day weekend, that's 150% more workdays than days off. Replace just one of those workdays with a day off, and it drops radically - just 33% more workdays than days off.

<comment><USER52> I went one further and dropped down to 3 days a week. I earn less now sure but I get 3 full days to commit to hobbies/activities AND a no-guilt dedicated rest day.

I'm in my mid-late twenties however, where the time is certainly much more valuable to me. A lot of the things I find most fun are rather physically demanding, you can go much harder for much longer on a mountain bike or on skis the younger you are.

I guess there's an argument that you can retire earlier if you work more right, but I think I'd get less out of that than having more time now. Maybe that'll prove to be a mistake in the long run, who knows.

<comment><USER53> How do you do it? In which industry/role are you working? Employed or freelance? Asking for a friend.

<comment><USER52> Software developer for a financial services company. Employee at first, went freelance for unrelated reasons.

Honestly there wasn't much to it I just asked, but also made it clear I'd be leaving if the answer was no. Company already had some part-timers (though they are mostly new parents, so our motivations differ.)

</comment></comment></comment></comment><comment><USER54> I agree strongly with the author's feelings. Machines and automation have taken on most of the repitive work.

Also if the wealth disparity between the rich and the poor is growing, clearly there is room in the budget to relax work schedules for most who want or need it. For jobs that require mostly problem solving, one might argue that a shorter workweek could actually increase productivity.

I've been thinking about this a lot lately. I actually started a newsletter for job listings with shorter hours and other related stuff just last week:

[https://30hourjobs.com](https://30hourjobs.com)

</comment><comment><USER46> This is funny because I've always actually _hated weekends_. I try to do something "fun" or at least whatever people think of as "weekend-y", go out for a hike, work out, whatever, but ... most of the time I feel like it's just time wasted.

I'd far rather have a six-day work week, or perhaps even seven, and then three consecutive months off per year to do some real travel or something.

Pretty sure this is a minority viewpoint, but curious if anyone else feels the same.

<comment><USER55> I certainly don't hate weekends or days off here and there generally. That said, if I were to take more time off (and I get reasonably generous for the US time as it is) I would definitely want it in a form where I could use it for extended travel time rather than extended weekends.

</comment></comment><comment><USER56> This has already been solved thousands of years ago and it's called Shabbat, one day of the week of true, strict rest. No doing the laundry, no cooking, no driving the car. In general, no creative activities which modify the world in some way.

<comment><USER57> Doesn't this just exacerbate the issue? It means instead of a 5/2, you're restricted to 5/1\. I definitely feel that more people should take the time to rest and reflect, but I don't believe that taking 1/7 of my life and devoting it to neutrality would have a positive impact on me, my relationships or even the world!

<comment><USER56> That one day should be spent with family, friends, taking a stroll, meditating, praying, studying, reflecting, napping. It's not just the negation of work. Some say it's an "island in time."

</comment></comment></comment><comment><USER58> The workplace is a means of exhausting humans with mundane labor that enriches a few while making the rest suffer. If you work 9-5 a 5 day week or longer, consider yourself a hamster on a wheel. Business does not share the same values us humans share. To see change you must be the change. Personally, if I ran a company or a startup I'd mandate a 3 day work week - Tuesday to Wed if we absolutely had to meet. Otherwise it would be fully remote and you choose your work days.

When I first went out on my own, the line between weekends and workweek melted so I always felt like I was working even on weekends. As time went by I realized that I did not share that feeling the author mentions and it feels great! I can go shopping any time, see a movie at 11 am if I want to on a Monday and skip the crowds when everyone is out doing the same things on the same day.

Modern workplaces are not built for productivity- they are places where you go to waste time, time that could be spent on yourself.

I used to think business would not compete on a shorter work week but then I looked at how I spent time at work - most of t was idle time once you count the breaks, lunch, chit chat, browsing when you're fried. All of this added up to a significant amount of time no matter the position I occupied. It gets worse when you are in a managerial position. Why on earth anyone would want to subject themselves to wasting time at work instead of enjoying it at home (unless they had problems at home) is not clear. I think we are stuck in this perpetual need of having to outwork the other. To show that we are hard working and will do anything to provide for our families. Except, in many cases more time does not directly result in more money. Sure, you spend more time sitting on your butt and claiming working hours or because your boss demands it, but are you really getting more done? In an office environment I can tell you with absolute certainty the answer is no.

So if you are a manager, a CEO or anyone in a position to do something about this insane self-infliction, please evaluate your values, how you think employees spend their time and be the change.

</comment><comment><USER59> It seems to me, this has nothing to do with a 40 hour work week.

This person has overcommitted themselves in their personal life to the point where it is conflicting with their work responsibilities.

<comment><USER60> /s(arcasm) ?

</comment></comment><comment><USER61> I used to think I had no spare time. Now I have 2 kids under 3. It turns out I used to have a TON of time in comparison.

</comment><comment><USER62> All of this is a choice.

You can choose to live a different life. In 20 years in tech, its the rare person who asks "should we?" instead of "can we?"

Should you work yourself to death? Probably not. Can you? Sure. Was it a well considered choice to do so?

</comment><comment><USER63> When I was younger, I had a fulltime contractor job where I only worked 4 days a week, and also had flexible starting times. The freedom was incredible and having just 1 extra day made work vs personal time seem much more equal (4 work, 3 off). I also got more done because longer days allowed me to get into flow more and I suspect most salaried workers already spend more than 8 hours a day anyway.

I've yet to really see any other companies do it, and I'm thinking of instituting that policy in our current startup, but it deserves serious consideration.

</comment><comment><USER64> I solved most of this for myself purely by relocating closer to work. If you have an hour commute (hour to, hour from), that's 40 hours/month sitting in traffic being unproductive. That's an entire 3 months worth of full-time work in a year. Just eliminating a long commute gives you back a _lot_ of time during the regular week that's currently being completely wasted. Now I mostly just work remotely.

</comment><comment><USER65> My impression is that the author needs to take entrepreneurship more seriously instead of ranting about changing the universe to fit its current comfort zone.

</comment><comment><USER66> "It's Monday, the dreadful countdown has started. You're already thinking about the end of the week, and it barely started. As the days go by, you are fixated on Friday 5pm."

I felt this doing data entry for $20/hr at Elections Ontario. My single most effective co-op term because it really motivated me to get into a career I love and bust my ass to never work a day in my life again.

</comment><comment><USER67> When I was younger I had this job I absolutely hated, and for a while I had these really boring, mundane, night-long, recurring dreams about being at that job. It was the worst. Felt totally trapped.

I can relate to the feelings in this article. But, for what it's worth I've found that cognitive behavioral therapy, meditation, and sleep, and exercise, really help.

</comment><comment><USER68> > I want to spend time partaking in my hobbies on the weekend. However, I > often find myself lifeless and staring blankly out the window. My mind is > tired, my body is fatigued. By the time I'm fully rested it's Sunday night. > At that point, it's time to head to bed and start the cycle of work again.

This in particular resonates. I used to be in the same sitch. Eventually it became unbearable, a random 3 hours errand would ruin my week. How much could I have accomplished in those 3 hours, I was telling myself.

I was also trying to work on a startup in my spare time but it wasn't possible. Sometimes, you spend half day fixing some build system and by next week, you'll forget where you left off.

Eventually I had to quit my job to maintain my sanity. It's insane how much you can accomplish in a good week. I recommend it to anyone questioning their current employment situation. Hit me up (email is in my profile) if you want to explore this life style. The crazy thing is that even if you fail, you'll be ten times the programmer as when you left.

Two IRL friends quit their jobs to work on their own startups or freelance. I've also convinced one person here on HN to do the same.

Those startup ideas might be more realistic than you realize, if you are given enough time.

</comment><comment><USER69> I think making time for hobbies really helps reduce the pain of this cycle. I suck at the guitar, but I can play it for 15 minutes or so, and it breaks up the monotony of the day and provides a different creative outlet than I get at work. Even if you have to put off some chore, it's crucial to make some time to just be alive.

</comment><comment><USER70> I think the malaise stems more from a personal sense of dissatisfaction than it does the objective conditions of an oppressive work week. Either accept the trade-off, develop a better attitude toward it, or change your life.

</comment><comment><USER16> I am thinking of launching a course on how to become a UX consultant / designer if anyone here designs and wishes to go down that path. Let me know... You can expect 60-150k, work from home.

</comment><comment><USER71> John Maynard Keynes said that we would be working 15 hours a week by now. That would so great.

</comment><comment><USER72> Honestly I hate these self-absorbed, live-is-tough posts by Software Developers doing creative work in a nice air conditioned office.

Get a real job, try milking a few hundred cows at 6am, work as a cop in a bad city, or outside in construction when its freezing or scorching hot. Not to mention doing it on a 20k wage with a few kids.

I get it, figuring out how to get our software working can require a lot of thinking, but compared to most of the people out there its a sweet gig. Stop complaining.

Edit: I don't want to sound snarky as this is. I realize lots of us do work really hard and don't have much time for anything else, but that's just adult life.

<comment><USER73> So by your logic you can work 80 hours a week but because you're inside an office and not a barn you lose you're right to want a better work life balance? Where is the cut off for not being able to complain or is it like a spectrum? 20k wage with kids is bad you say what about 30k with 1 kid? Is that too easy? Cop in a good neighborhood? How good does the neighborhood have to be before you can't complain anymore? You said a few hundred cows at 6 am is rough? What about 99 cows at 7am?

People can be overworked in all kinds of jobs. Who are you the complaint police?

<comment><USER74> > Where is the cut off for not being able to complain or is it like a > spectrum?

Wherever the cut-off happens to be, software developers are far past it.

<comment><USER75> That's absurd. I've worked in call centers, as a mover, and as a software engineer. There are perfectly valid reasons to complain across the spectrum. Worker rights are not some limited good that only need to go to the most vulnerable, and even white collar workers should be aware and proactive about fighting for better treatment in the workplace. Being well paid has not prevented me from seeing egregious workplace interactions across many of my past jobs, or observing that workers could likely get a more generous slice of the tradeoffs we give our employers without in any way being inequitable.

<comment><USER76> Sure, worker rights shouldn't be limited to tge most vulnerable. This post however wasn't about work ethics, but about having too little time for yourself if you are working 40hrs/week. It's actually not even about work/life balance, but rather work/chores/hobbies balance. In my opinion you can't blame the 40hours of work.

</comment></comment></comment></comment></comment><comment><USER77> Oh my, no mention of kids. Just wait how much he hates the weekend after that happens.

</comment><comment><USER78> Weekends are meant to fulfill obligations.

</comment><comment><USER79> You don't hate weekends, you hate capitalism.

<comment><USER80> For those unfamiliar, this is a riff on an anticapitalist slogan: "You don't hate Mondays, you hate capitalism". If you're baffled as to why someone would say this, you might consider Marx's theory of alienation [1].

[1] [https://en.wikipedia.org/wiki/Marx%27s_theory_of_alienation](https://en.wikipedia.org/wiki/Marx%27s_theory_of_alienation)

</comment></comment><comment><USER81> if you don't like what you're doing, stop doing it

<comment><USER29> That is pretty trite.

Most people don't have that luxury.

<comment><USER82> True. It's also true that most people don't have the luxury of complaining that 40 hours of indoor office work is too hard (even downright unethical and inhumane). _Most_ people in the world wouldn't even be able to conceive of the concept of complaining about the inhumane torture of having to do 40 hours of indoor office work per week.

<comment><USER83> The fact that they alluded to their predicament being unethical or inhumane made me actually laugh out loud. The author is absolutely delusional.

Even funnier, my initial response was that there must be some dietary or medical/hormonal issue, prior to reading the article. I was downvoted for this almost immediately. Then, whilst reading the article, came across this gem >On top of that, I'm mentally ill and thoroughly medicated< So, I was correct, and yet was downvoted. Really makes you think, doesn't it?

</comment></comment></comment></comment><comment> black-tea My dad had real weekends. No grocery shopping, no laundry or other chores. He got stuff done, but he didn't have to do it and most weekends he truly relaxed.

How did he manage this? He had a wife. She did the chores during the week while he worked.

Now that women have been told that they should work they do, even if they're not particularly good at it. And now we don't have weekends. We are single people working full time to support ourselves and we're completely trapped by it. What a tragedy.

</comment><comment><USER83> Tired after a 40-hour week + commute? lol... hormonal imbalance or diet/health problem.

</comment><comment><USER84> LMAO the author complains about all the chores that come with high maintenance life. well, go minimalist.

</comment><comment><USER85> TLDR: Author doesn't have enough time in weekends to rest properly.

</comment><comment><USER86> The short answer to this, is that this is the lazy form of thinking pestering people's minds (especially young) nowadays. People who don't know how to plan their lives, finances, time, studies, family, work, health or whatever it is that needs a solution, and blame it on the system. Just like my ex-girlfriend, she used to talk on and on (and on and on, and on again) about "our system", and then after I broke up with her and she graduated college she didn't start working, she is traveling the world for the past 6 months with government welfare that Europe is so stupid to give. As the years go by she will keep complaining about "our system" but she never did anything to improve "our system", she only consumed. This is called leeching.

Take some responsibility & get what needs to be done quickly and well, and you will buy yourself some freedom, nothing in life is free, and it shouldn't be, since no one should be working and not getting paid for it.

</comment><comment><USER87> Get 4 weeks off, then spend it off grid, the more primitive the better, fighting the elements and hunting for food. When you get home you will be really happy just having a warm bed. That's for motivation. But then there's your brain being completely fried by the end of the weekend, be glad that you do not have a mundane repetitive work (or be glad if you do).

</comment><comment><USER88> Many software developers are 9 to 5-ers meaning when they get home they don't do any more programming and don't do programming on the weekend either. They do most of their learning while on the job. These programmers are of course mediocre at best and typically work at slow paced large companies with lower pay but they're satisfied with their work/life balance and there is nothing wrong with that.

If the author is complaining that work leaks into the weekends then perhaps he should communicate with his colleagues and managers to figure out which processes in their workflow can be fixed to avoid that. He also has the ability to jump to another company if he feels his current company is too demanding.

Everyone has 24 hours in a day; use it wisely, especially doing something you're good at that makes you money but also enjoy.

<comment><USER89> > These programmers are of course mediocre at best

This is very elitist and not true. 40 hours a week for 20 years is more than enough to be considered "good" at the very least.

<comment><USER88> > for 20 years

Yes 20 years, but the majority of developers don't have anything remotely close to that many years in the field.

I've worked with many developers over my career and the ones who do programming on weekends and off-hours tended to produce significant more output than those who didn't.

Anybody who puts any effort to improve themselves and skillsets by working off-hours means they're rising above mediocracy.

<comment><USER83> ^This. First Slashdot, then Ars, now HN filled with an ever-increasing amount of mediocrity. But, I passed bootcamp! I have more structured hours of experience sleeping at my desk and slacking off in the nap room -- that makes me a better programmer, I promise! If it wasn't covered in a test or in my assignments, it doesn't exist! The Office Space meme has come full circle, two decades later.</comment></comment></comment></comment>


Booksteam Online Appointmentand Class Scheduling Software - <AUTHOR> http://booksteam.com Get your clients to book online and eliminate hassle of phone booking. <comment><AUTHOR> Awesome</comment>


Another meta-comic: Garfield Minus Garfield - <AUTHOR> http://garfieldminusgarfield.net/

<comment><AUTHOR> While we're on the subject of Marmaduke Explained and XKCD Explained, this is one of my favorite meta-cartoons on the web.

<comment><USER2> briliant. Most meta comics usually strike me as trying too hard - but that has such a rigidly set formulae it is excellent! Thanks,</comment></comment>


Large-scale wind and solar farms in the Sahara increase rain and vegetation - <AUTHOR> http://science.sciencemag.org/content/361/6406/1019 <comment><USER2> In theory.</comment>


Why is 2 * (i * i) faster than 2 * i * i in Java? - <AUTHOR> https://stackoverflow.com/questions/53452713/why-is-2-i-i-faster-than-2-i-i-in-java <comment><USER2> _So it 's an issue of the optimizer; as is often the case, it unrolls too aggressively and shoots itself in the foot, all the while missing out on various other opportunities._

In my experience, loop unrolling should basically never be done except in extremely degenerate cases; I remember not long ago someone I know who also optimises Asm remarking "it should've died along with the RISC fad". The original goal was to reduce per-iteration overhead associated with checking for end-of-loop, but any superscalar/OoO/speculative processor can "execute past" those instructions anyway; all that unrolling will do is bloat the code and work against caching. Memory bandwidth is often the bottleneck, not the core.

<comment><USER3> > In my experience, loop unrolling should basically never be done except in > extremely degenerate cases

Not true. Like many such optimizations, loop unrolling can be useful because it makes downstream loads constant.

For example:

        float identity[4][4];
        for (unsigned y = 0; y < 4; y++)
            for (unsigned x = 0; x < 4; x++)
                identity[y][x] = y == x ? 1 : 0;
        ... do some matrix math ...

In this case, the compiler probably wants to unroll the loops so that it can straightforwardly forward the constant matrix entries directly to the matrix arithmetic. It'll likely be able to eliminate lots of operations that way.

(You might ask "who would write this code?" As Schemers say: "macros do.")

See LLVM's heuristics: [http://llvm.org/doxygen/LoopUnrollPass_8cpp.html#ad7c38776d7...](http://llvm.org/doxygen/LoopUnrollPass_8cpp.html#ad7c38776d74075aa393534236d5a3d64)

<comment><USER4> I didn't understand dead elimination until I wrote enough macros. It is a lot easier to generate code and have the optimizer fix it than to make sure to always generate efficient code.

This is also how compilers do things, but it is only that we schemers can see the intermediate result much easier using simple source->source transformations.

<comment><USER4> As an example: I wrote a clone of racket's for loops. They use #:when and #:break clauses. Instead of generating them when they were present the break clauses just defaulted to #f and the when clauses to #t, meaning that the break clause of the generated code was just optimized away if the user didn't have any break clauses and the test for the when clauses was optimized to a regular (begin ...).

It simplified the code a lot and the optimizer was a lot faster than having to do it all myself at expansion time. I lazily just generate about 30 lines of code for a simple loop that in the end sometimes even is unrolled to the final reault due to guiles optimizer and partial evaluation.

</comment></comment></comment></comment><comment><USER5> You should translate your program to C++ and build with clang ; it turns the loop into a single constant load. [https://godbolt.org/z/slznbU](https://godbolt.org/z/slznbU)

<comment><USER6> Did you read TFA? The author did that (though using GCC), and the reason the optimizer does what you see is undefined behavior due to signed integer overflow.

<comment><USER7> > does what you see is undefined behavior

Just to be clear, undefined behavior means the standard allows implementations to do what they they feel is the right thing to do under that scenario, and the outcome will still comply with the standard.

<comment><USER8> No, that's implementation defined behaviour.

</comment></comment></comment></comment><comment><USER9> With all the optimisations being implemented in compilers today, it is impressive to see how this opportunity to optimise is missed. Put differently, compiler writers bother about optimisations that gain 0.1% performance in some special cases, but others that could gain 20% performance are not implemented.

Why? Is this optimisation particularly difficult to implement? Or is it just missed low-hanging fruit? It sure looks easy (like: rearrange expressions to keep the expression tree shallow and left-branching to avoid stack operations).

<comment><USER10> Compiler developers have tons of benchmarks which they run. I'd bet that this is as simple as not being significant in their test suite, with a good chance that it's both not as simple as it might seem or that there are impacts on more complicated code which is in their benchmark suite or a big customer's app.

</comment></comment><comment><USER11> That just might be the most dedicated answer I've ever seen on Stack Overflow.

<comment><USER12> It is a good answer, but my favorite by far is an answer about branch prediction to explain why processing a sorted array is faster than unsorted: [https://stackoverflow.com/q/11227809/938695](https://stackoverflow.com/q/11227809/938695)

<comment><USER13> I find it interesting that there are developers out there that know to look at these nuances when respond to Stack Overflow questions. I'm been developing professionally for 10 years and probably went over branch prediction in my computer architecture class in college (I'm guessing I did, if I didn't then I never encountered it at all!).

The person who answered the multiple question dove into byte code...but also answered questions on Angular.

I am unworthy...and this is what impostor syndrome looks like.

<comment><USER14> That person works in financial services, which I'm guessing is basically some form of automated trading. It is an industry where every cycle counts (so much so, that often times light speed latency between two edges is something you need to consider when placing servers).

He probably has actual experience with branch prediction. He probably dabbled or had experience with angular in other jobs (he worked at google apparently, so maybe there).

He'll most likely be stumped if you provide a graphic problem that a graphic designer with a few years of experience would solve in an instant, or an ML problem for a data scientist with similar experience.

That doesn't mean he isn't extremely smart. He most likely is (it takes a lot of brain to do these things), but the fact that you can't tell branch prediction problems even though you had some computer architecture class in the past is irrelevant.

<comment><USER15> The author of that answer wrote y-cruncher, which has been used to set world records in the number of digits of pi calculated. So I'm not surprised at all to see that they how know branch prediction works.

<comment><USER16> > they how know branch prediction works.

Can't tell if clever joke, or typo

<comment><USER15> Typo, but I'll leave it up to brighten someone else's day.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I thought at first this was because integer squaring is potentially faster than general integer multiplication and the compiler wasn't seeing the square operation in the second case, but that's not the explanation here.

<comment><USER18> There isn't an integer square opcode on any major processor architecture though, right?

<comment><USER17> Not that I know of. It's not really worth it for short integers (64 bits or less). But it's helpful with bignums.

</comment></comment></comment><comment><USER19> I'm surprised it's not doing a left shift for the x2.

<comment><USER20> It is in the first example (the sal instruction)

<comment><USER21> However, if you look at the second, you won't see any left shifts, which is also interesting

<comment><USER22> I find it weird that he doesn't mention this difference as part of the performance difference. A left shift should be considerably faster than a mul operation?

<comment><USER10> I believe this is far less true than it used to be, but it's a good example of why these decisions really need to be data driven as compilers and processors change faster than most people can afford to optimize code. I don't know that this would be the case for something that simple but I've seen a fair amount of heavily-tuned C/ASM code which was replaced with the now-faster "reference" code when someone noticed that the old assumptions weren't true.

</comment></comment></comment></comment></comment><comment><USER23> The graal behavior is a lot more sane:

        graal:
        [info] SoFlow.square_i_two   10000  avgt   10  5338.492 ± 36.624  ns/op   // 2 *\sum i * i
        [info] SoFlow.two_i_         10000  avgt   10  6421.343 ± 34.836  ns/op   // \sum 2 * i * i
        [info] SoFlow.two_square_i   10000  avgt   10  6367.139 ± 34.575  ns/op   // \sum 2 * (i * i)
        regular 1.8:
        [info] SoFlow.square_i_two   10000  avgt   10  6393.422 ± 27.679  ns/op
        [info] SoFlow.two_i_         10000  avgt   10  8870.908 ± 35.715  ns/op
        [info] SoFlow.two_square_i   10000  avgt   10  6221.205 ± 42.408  ns/op

The graal-generated assembly for the first two cases is nearly identical, featuring unrolled repetitions of sequences like

        [info]   0x000000011433ec03: mov    %r8d,%ecx
        [info]   0x000000011433ec06: shl    %ecx               ;*imul {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_two_i_@15 (line 41)
        [info]   0x000000011433ec08: imul   %r8d,%ecx          ;*imul {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_two_i_@17 (line 41)
        [info]   0x000000011433ec0c: add    %ecx,%r9d          ;*iadd {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_two_i_@18 (line 41)
        [info]   0x000000011433ec0f: lea    0x5(%r11),%r8d     ;*iinc {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_two_i_@20 (line 40)

while the third case does a single shl at the end.

        [info]   0x000000010e2918bb: imul   %r8d,%r8d          ;*imul {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_square_i_two@15 (line 32)
        [info]   0x000000010e2918bf: add    %r8d,%ecx          ;*iadd {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_square_i_two@16 (line 32)
        [info]   0x000000010e2918c2: lea    0x3(%r11),%r8d     ;*iinc {reexecute=0 rethrow=0 return_oop=0}
        [info]                                                 ; - add.SoFlow::test_square_i_two@18 (line 31)

Both graal and C2 inline, but as usual the graal output is a lot more comprehensible.

</comment><comment><USER24> I don't see how generating different code for the same mathematical expression can be a good thing.

The compiler should detect that the two expressions are strictly equivalent and generate whatever code it believes is the fastest.

Any idea why it is this way?

<comment><USER25> Because of integer overflows and floating-point operations, the notion of equivalent mathematical expressions is tricky.

        fn main() {
            let a: i8 = 125;
            let b: i8 = 3;
            let c: i8 = (a + b) / 2;
            let d: i8 = b + ((a - b) / 2);
            println!("{} {}", c, d);
        }

This program outputs `-64 64` although the computations of `c` and `d` are equivalent.

Here's another example using floating point numbers:

        fn main() {
            let mut total1: f32 = 0.0;
            let mut total2: f32 = 0.0;
            let mut counter1: f32 = 0.0;
            let mut counter2: f32 = 100.0;

            for _ in 0 .. 10001 {
                total1 += counter1;
                total2 += counter2;
                counter1 += 0.01;
                counter2 -= 0.01;
            }
            println!("{} {}", total1, total2);
        }

The output of this program is `500041.16 500012.16`, a difference of 25 for a program that computes the same result (unless I made a mistake).

<comment><USER24> Right! thanks

</comment></comment></comment><comment><USER26> TIL about printing ASM from debug JVMs.

<comment><USER27> If you use Oracle Studio you can even see it on the IDE.

[https://www.youtube.com/watch?v=_cFwDnKvgfw](https://www.youtube.com/watch?v=_cFwDnKvgfw)

There are also other tools like JITWatch.

[https://github.com/AdoptOpenJDK/jitwatch/wiki/Videos-and- Sli...](https://github.com/AdoptOpenJDK/jitwatch/wiki/Videos-and-Slideshows)

[https://vimeo.com/181925278](https://vimeo.com/181925278)

</comment></comment><comment><USER28> Is Overflow UB so the compiler can choose to ignore the fact that 2x(i x i) could overflow differently from 2 x i x i?

I'm not sure it does overflow differently but I would expect overflow to behave consistently as written, and not be dependent on optimization, is that not the case?

<comment><USER29> Nothing you can do in pure Java code is UB in the C/C++ sense.

<comment><USER28> Without UB it must be very hard for the compiler to optimize arithmetic. Even obvious things like (2 x A) x B vs 2 x (A x B) are only equivalent without overflow. I guess it can be _specified_ as being up to the jitter to decide - so not UB but not known from looking at the source either? Would be interesting to know what .NET and Java specifications say on it

<comment><USER29> You can usually optimize integer arithmetic just fine, including the example you gave (both forms are equivalent - try it!).

Floating point arithmetic is different, but Java gives itself wiggle room by not exactly specifying many results unless you choose "strict math". That's not UB though: it's just a range of possible outcomes.

Java can't have UB in the C/C++ sense, since it would break the security sandbox. It certainly has things without specifically defined values, such as hashCode() and what happens under data races isn't entirely deterministic, but it doesn't approach UB in the C/C++ sense.

<comment><USER28> Yeah I'm painfully aware of the FP gotchas. But are you saying there are usually never any issues with integer arithmetic and overflow vs. optimizations (reordering, common subexpressions etc)? A branch like "if a+1 < a" seems like it could under a clever compiler (allowed to do what it wants in unchecked overflow) optimize to a completely removed branch but with less optimization it will not, so the addition is carried out and the wraparound means the branch is entered?

Seems that not checking for overflow and not being able to assume there _is_ no overflow, would give the worst of both worlds (slower because of lack of some optimizations but still not safe against overflow like C#'s "checked").

I thought a deref of a possibly overflown value was what could risk security, ie so long as all array indices and similar are range checked then nothing bad can happen?

<comment><USER29> > But are you saying there are usually never any issues with integer > arithmetic and overflow vs. optimizations (reordering, common subexpressions > etc)?

I'm saying that it is uncommon. For example, the example you gave works fine! Most examples work fine since you can do most of the same type of transformations. The exceptions are largely operations where the _upper bits affect the lower bits_. Division is one, and right shift is another, but nearly all the other bitwise and math operations do not have this property.

The other place where signed-wrapping-is-UB is often used for optimization is in things like loop bounds. Given something like:

        for (int i = start; i < end; i++)

Due to the UB of signed wrapping, the compiler can assume that initially i < end, and more importantly that the loop will iterate exactly (end - start) times, and that all accesses will be to contiguous, increasing addresses. This helps in vectorization, among other things.

In Java, the compiler couldn't take advantage of that. However, the impact isn't as big since in any loop that accesses arrays based on the index, bounds checks have to be made, and a typical pattern is to do some up front bounds checks [1] which can guarantee than the main body of the loop can then be run without additional checks: and this subsumes the checks that would be needed due to wrapping signed values anyways. So basically you have to do those checks anyways in many cases.

> A branch like "if a+1 < a" seems like it could under a clever compiler

Sure, but these cases aren't very interesting for comparing the effectiveness of the signed overflow optimizations. It's a case where the optimization breaks the (wrongly expressed) intent of the programmer, so the difference is only between a fast, broken program and a slower, perhaps correct one.

Presumably in the signed-overflow-is-UB world, such a check will have to re- written in a different way (which might even end up slower).

> Seems that not checking for overflow and not being able to assume there is > no overflow, would give the worst of both worlds (slower because of lack of > some optimizations but still not safe against overflow like C#'s "checked").

Not exactly - it's just a different point on the spectrum. On the one side you have overflow is UB, which leads to some (fairly limited) optimization opportunities, but also more unexpected results and broken programs, and on the far other size you have overflow is an always-caught checked error. Java is somewhere in the middle: overflow is well-defined (it wraps), which gets you most of the speed of the UB approach (no checking needed, only a few relatively minor optimizations are lost) without the unexpected results of UB - but you still have broken programs when overflow actually occurs (unless it was unexpected). See also Rust's strategy here which is interesting.

> I thought a deref of a possibly overflown value was what could risk > security, ie so long as all array indices and similar are range checked then > nothing bad can happen?

When "nothing bad can happen" from the point of view of the JVM, i.e., the security sandbox isn't broken, you can't access arbitrary memory, violate the type system, interfere with unrelated code, etc. Of course, overflowing an index and then accessing into the array could still do plenty of "bad things" depending on the higher level semantics of the program, since you are now executing an unexpected code path. You might return sensitive data to an attacker, whatever.

\---

[1] More details: [https://wiki.openjdk.java.net/display/HotSpot/RangeCheckElim...](https://wiki.openjdk.java.net/display/HotSpot/RangeCheckElimination)

<comment><USER28> Thanks that's very kind to take the time to write that much!

> leads to some (fairly limited) optimization opportunities,

Ok, I was just mistaken in my belief that integer overflow shenanigans was a major contributor to how a modern compiler optimized e.g. loops.

> you can't access arbitrary memory, violate the type system, interfere with > unrelated code

Right. I was considering the sandbox in the sense only of process security rather than program/type soundness.

<comment><USER29> > Ok, I was just mistaken in my belief that integer overflow shenanigans was a > major contributor to how a modern compiler optimized e.g. loops.

Yes, there is _some_ impact but I think it's large, at least based on looking at a lot of assembly, and going over the typical examples of where it helps. In the cases it _does_ help, it could make a big difference on a loop, let's say 2x the speed, but these aren't all that common.

> Right. I was considering the sandbox in the sense only of process security > rather than program/type soundness.

Usually those two things end up tightly bound together: it's hard to impossible to enforce a sandbox if the user can escape the type system.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> At first, I thought it was because i * i == -1.

</comment><comment><USER31> I guess they do not use value numbering, which is typically how you get equivalent results for cases like this.

</comment><comment><USER32> IMHO some kind of logic preprocesor should take care of this before the actual compilation.

<comment><USER33> How? Java is compiled to bytecode, you don't know the architecture of the system the code is going to run on. It's one of the reasons javac only implements the simplest optimizations possible (constants folding and the like)

<comment><USER27> Compiling to bytecode is just one of the possibilities.

Since the early days of Java, OEM vendors targeting embedded targets do support AOT compilation, with possible PGO feedback.

Some vendors like IBM, also provide similar capabilities on their regular Java toolchains.

And Maxime finally graduated as Graal/Substrate, which is also another way of compiling Java.

But all in all, everyone is transitioning to the benefits of bytecode as intermediate executable format.

Even some cool LLVM optimizations, like ThinLTO, are only possible thanks to using bytecode.

</comment></comment></comment><comment><USER34> I wonder if the same applies to .net (fx/core).

<comment><USER27> Depends on the runtime.

You have the old JIT, replaced by RyuJIT on .NET 4.6 and .NET Core.

Then .NET Native, which does AOT compilation via the same backend as Visual C++.

Followed by Mono's JIT/AOT implementation.

Windows/Windows Phone 8.x used a Bartok derived compiler for the MDIL format.

Same applies to Java though, as the answer only goes through what Hotspot does, but there are many other JIT/AOT compilers for Java as well.

</comment></comment><comment><USER35> Has anyone tried this with Go?

<comment><USER36> No, because come back when you're a real language with a runtime error handler

<comment><USER37> thank you for this!

<comment><USER36> Go's an OK language but

1) This is not the forum to bring it up

2) Given its warts it gets FAAAARRRRR too much attention IMHO

Sorry for snark.

</comment></comment></comment></comment><comment><USER38> The database is fast enough for a few extra trips to it, so this is definitely what we should be focusing on.

(My cup of bitterness doth overflow.)</comment>


Ask HN: How to Keep Improving as a Machine Learning Engineer - <AUTHOR> I am finishing my Masters in Computer Science in May, 2018. I am interested in becoming a Machine Learning engineer but currently I have got a job as a software engineer. I have a background in Machine Learning because of the courses I have taken at my university and following the Deep Learning Specialization in Coursera. However, I am not good enough to get a job as a Machine Learning Engineer now. I want to know how I can keep improving my skills and what should be my study plan? <comment><USER2> Does your new employer have a data science or machine learning team? Is there any way you can position yourself to work on projects/products that involve those teams? If you have interest and aptitude in ML, perhaps (i) do whatever you can to learn what these folks have already done, and what they're working on now, (ii) offer a helping hand, or even just ask them for a training set for one of their production models, and see if you can replicate or beat the results.

</comment><comment><USER3> I think Kaggle is the way to go.

Their competitions are great, people are very open about their solutions and methods so you can learn a ton.

That being said, this is a right recommendation in my opinion for the engineering part of ML. You probably won't do much research there - it's mostly about implementing and testing pipelines, different hacks etc.

</comment><comment><USER4> Ive been studying ML for a while and the best way that seems to work for me is by working on smallscale experiments every 2 weeks. Havent found any hackathons yet, otherwise that'd be a good way as well.</comment>


Gandi.net having major issues - <AUTHOR> https://status.gandi.net/ <comment><USER2> Note that this does not affect your domain if it's already purchased (at least as far as I can see) -- I'm a gandi customer (they offer a fantastic service when it's not down). I'm not affected by this becuase I only use gandi for purchasing and managing my domains.

I use:

\- Gandi.net for domain purchasing (for the TLDs they support anyway. I own some TLDs I can't use them for and am pretty sad about it since I like their DNS management UI so much)

\- Let's Encrypt for TLS

\- My own email server for email

So this downtime doesn't affect me but glad to see they're transparent about it at least

</comment><comment><USER3> Looks like yesterdays 2hr DDOS attack came back.

<comment><USER4> Are they under fire for any particular known reason?

</comment></comment><comment><USER5> Looking at the timeline at this page, they have a lot of problems. [https://status.gandi.net/timeline](https://status.gandi.net/timeline)

<comment><USER6> I feel like this is a normal amount of problems combined with a very high level of transparency

<comment><USER7> Indeed.

AWS likely has significantly more problems spread across their entire set of services but Amazon rarely updates the dashboard[0] unless it hits a news article. I've had entire availability zones seemingly go offline, and the dashboard changes to a "some customers are having disruption" message. It is almost comical how under-stated the AWS status dashboard is... Almost...

[0] [http://status.aws.amazon.com/](http://status.aws.amazon.com/)

<comment><USER8> Twitter is probably a better indicator if there are AWS problems than their dashboard unfortunately...</comment></comment></comment></comment>


Efficiency comparison of Word and LaTeX for academic papers - <AUTHOR> https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0115069 <comment><USER2> And if you use/collaborate with someone who uses Linux they can't use Word and any alternatives muck up the formatting if others use the default docx/doc file format.</comment>


Ask HN: How do you code while dealing with personal problems? - <AUTHOR> I had some personal problems this weekend and it's been on my mind all morning to the point where I can't concentrate at work.
Unless it were some urgent bug fix, I find coding to be extremely hard for me as my mind is always wandering.
Any advice? <comment><USER2> In short, compartmentalization. Ymmv, but here's what works for me:

1) first, grab a real pen(cil) and paper (even if it's scrap), sit down somewhere comfortable, and take some time to write down what's bothering you. How it makes you feel, and why, and what you want to do about it, and everything that's been running through your mind about it. Until you have no more to say. This helps your mind feel like you have given the problem the attention it deserves.

2) write down 2-3 finite, specific tasks that are important for you to get done today, and that you know that on an ordinary day you can complete all of in just half a day. This is a point of focus for your workday. Even if you accomplish nothing else, completing these tasks should be considered a victory on a bad day.

3) take a walk or meditate for 15 minutes to clear your head and refocus. Don't beat yourself up if your mind wanders or even returns to what's bothering you, but if you can empty your head, do. The purpose of this time is to create a mental break between the thinking about this problem and thinking about work.

4) don't force yourself to start coding. Do force yourself to open up your text editor to the place you need to be to get the first of your 2-3 tasks done.

5) if, at this point, you're still unable to code, take a mental health day or two. Focus on taking care of yourself, because you'll be more productive tomorrow if you heal yourself today.

<comment><USER3> I second the "brain vomit" approach. I'm not entirely sure it works for everybody, but for people like me who are introverted and not so emotionally coherent, writing everything down like this is like burrowing through to the main route of a problem. It's like going into a photo lab with your negative, and you sit there slowly watching your neuroses / problems / bullshit appear before your eyes on paper. Magic.

The older I get, the more I realise the most important thing we owe ourselves and each other is greater self awareness, and this tool/process is invaluable in achieving that. At the very least, will give you the clarity needed for coding.

</comment></comment><comment><USER4> Try to find something easier to work on until it passes.

At my company, I switched over to our new stack (all ReactJS) at the end of last year and then had a whole bunch of personal/family drama hit me right after. It was so overwhelming I had to ask my supervisor to move me back to our old (Ruby) stack. I'm grateful he did. Not having to suddenly learn 10 new technologies at once gave me back the mental space I needed to deal with the other stuff.

</comment><comment><USER5> Take the day off. Your mental health is likely much more important than any of the work you'll do over the next day or two.

</comment><comment><USER6> I am going through the same right now. The problems are of the kind which won't be fixed overnight, but I realise that it is important to make your peace with it, even if you are not able to solve it right now.

I am going to take a small break now to mindfully approach all the problems and think of what I can do to solve them today. If there's nothing I can do today, I can at least know that I did whatever I could for now and can move on from the thoughts temporarily.

Listening to music which you usually listen to while programming can put you back in the zone, if the problem is not too serious or not too distracting.

</comment><comment><USER7> Try to figure out how you can talk about this issue with someone. When my mom died I couldn't do much (it wasn't as important b/c i was in management 1/2 ;-)), and I eventually left the company, looking for something new. Maybe see a therapist, or find someone to talk about it with. I have no idea what happened, maybe you got a dui, maybe you broke up, maybe you witnessed a tragedy. In any case, talk it out with someone. Good luck, life goes on. Even if you made some bad choice that affected someone else, you could try to help improve the world as partial compensation.

</comment><comment><USER8> Try going for a run. You get some alone time, the exercise does you good and the endorphins released afterwards can ease the problem

I find myself more energized getting straight to work after a run.

Hope you work it out

</comment><comment><USER9> Nothing wrong with taking a mental health day off of work. Especially if it's bothering you so much you can't concentrate.

<comment><USER10> And I strongly suggest to do this - take couple of days break from coding in month or two.

</comment></comment><comment><USER11> Been in that boat. Got nothing done for a couple of days. Fortunately I was at the company a while and could get away with it as I wasn't being micromanaged. In heinsight a couple of days leave might have been wiser. If they try to make you feel guilty for taking it, increment the red flag counter :-)

</comment><comment><USER12> Your personal problems (and health and family) should always come first before work. Any reasonable manager should be able to recognize that and help you out. Worst case take a day or two off to solve your problem. Long run - day or two won't make a difference.

</comment><comment><USER13> Here are some options you can take. \- If you work for someone, then talk to your manager about your issue and see if you can get a lighter work load \- Another option is to take some time off in order to address the issue

</comment><comment><USER14> It's a natural thing. Handle your personal issues first. But make sure you do not suffer from Anxiety Disorder - you need help in this case.

</comment><comment><USER15> It is ok if you aren't 100% productive sometimes.

</comment><comment><USER16> You can use coding as a kind of meditation to clear your mind from negative emotions.

</comment><comment> d--b Multiple techniques:

\- take some time off

\- work out

\- do free expression exercises

\- meditate

<comment><USER17> Second to meditation, even on days where everything is fine. The app Simple Habit is a good one for a variety of themed meditations.

[http://www.simplehabit.com/](http://www.simplehabit.com/)

</comment></comment><comment><USER18> Firstly - good luck! I hope whatever it is, that it resolves itself sooner rather than later, and that it's not too serious.

For suggestions, it's going to depend on what type of problem it is.

For a short term (or not overly personal) problem, like extended family issues or similar, take day off and either:

* Sort out the issue (if you can)

* Relax - just taking a day for yourself and doing what you feel like doing (even if it's lying in front of the TV all day) can do wonders for your mental state

Like another poster pointed out, the issue can be more productively dealt with or processed with a dedicated day, rather than trying to do it inbetween work commitments.

For longer term issues (serious illness in immediate family, relationship problems, etc), there is no surefire way to deal with it, but there are ways to make it impact your work less (note: it WILL impact your work - the goal is to make that impact as minimal as possible). Keep in mind that your health and mental health impacts your ability to work and provide for yourself (and family). Protect this at all costs, and remember that family responsibilities should come first (any reasonable employer will understand this to some degree).

Some things that worked for me:

* Inform a superior that you trust about the issue. Tell them that you will do your best to minimise impact on work, but it's important that someone knows you're not just 'slacking off', but dealing with problems. Ideally, this is someone that will have your back.

* Talk to someone, be it a friend, professional, family member, etc. Talking to someone helps you process the issue quicker, and takes some of the worry off your shoulders.

* If you have elements of your job that involves close interaction with other people, do those. Interacting with another human (with the knowledge that you can't let them down while working with them) is a quick way to focus, and also has room for lighthearted interaction, or deep technical discussion with someone to take your mind off things.

* Focus (in the short term) on things that you're good at, and can do almost 'mechanically'. If you're good at coding, but hate documentation, do the coding. If your superior knows what's going on, they'll understand.

* Find things that are mechanical to do - if you need to test things, and there are test plans and procedures in place that you can follow systematically without too much thinking involved, do those.

* Meetings. Everyone jokes about them, but they are good in this case (unless you have to prepare/present them).

* Lower your expectations for daily output, so that you are not disappointed at the end of a day. Do, however, try and absolutely stick to these lowered expectations. Start small with tasks, and once you're in the groove, keep running with it. Try your best to not overthink things - break them down into small, manageable chunks.

* Try and avoid unnecessary interruptions when you're in the zone, because at this moment, it will take you much longer to get back in the zone.

* Try and avoid things that will remind you of the issue while at work - deal with them after or before work. Do not check personal e-mails, etc. Obviously this is not applicable in all scenarios, but helps for things that you can't do much about short term.

* If it all gets too much, take a day off, and relax. A 'mental health day' can buy you another month work of mostly productive work days.

I hope this helps!

</comment><comment><USER19> When u code ... U just code ...Imagine if you coding a critical software a bug left due to your personal problems can cause many other ...</comment>


Ballmer: Google leads because 'they did it right first' - <AUTHOR> http://blog.seattlepi.com/microsoft/archives/196284.asp

<comment><USER2> The way Ballmer brings up how is family is "all Microsoft products all the time" scares me on some level. It just seems kinda creepy for a CEO to repeat that about every product.

<comment><USER3> Its also worrying that he does not want the best products for his family but only the ones in the Microsoft family. Somehow he seems to place his image as Microsoft's CEO above what his closest people think about him.

Strange bloke!

<comment><USER4> I'm pretty sure Steve Ballmer isn't terribly worried about his image.

</comment></comment></comment><comment><USER5> This interview raises pro-Bing questions.

</comment><comment><USER6> no shit I'd say.</comment>


The concept of an internet "troll" makes little sense if you care about substantive debate - <AUTHOR>

According to Wikipedia, "An Internet troll, or simply troll in Internet slang, is someone who intentionally posts controversial or contrary messages in an on-line community such as an on-line discussion forum with the intention of baiting users into an argumentative response."
There are problems with this concept.  First, it is based on intent (why do you care about someone's intent?!).  Second, it discourages discussion on controversial topics.  Third, it seems to imply that debate is bad if it upsets some people.
So essentially, by accusing people of being trolls and discouraging them from further posts, you get discussion groups where posters have similar views and where debate is restricted to mostly minor issues.
That doesn't sound good at all. <comment><USER2> You and have different opinions about how to define a troll. A strong opinion, forecefully presented on a controverial topic obviously does not make someone a troll. I would identify a troll through a combination of personal disrespect and off-topic commentary.

Here's an example that shows up now and then:

Orig Post: "I'm trying to decide if I should locate my startup in silicon vally or in san francisco. I'd like to be near my potential buyers, which would mean locating in the valley. But I think my developers would be happier living in the city."

Here are two strong responses, one legit, and one from a troll:

Non-Troll: "San Francisco isn't as much fun as people make it out to be. I don't think it would help you attract developers at all. I'd much rather be in the valley where the action is."

Troll: "The city? San Francisco isn't a city. New York, now that's a city..."

Both of these posts are clearly going to attract some argumentative responses. The first may goad a few people, but it is on-topic, contains something that can be defended or refuted under the terms of the original debate, and continues the discussion. The second tries to provoke the thread into something kind of stupid and off-topic.

Argumentative people can further debate, but Trolls always degrade a discussion until there is no longer anything substantive.

I hope for the best for this discussion forum. Craigslist is essentially unusable because of the trolling, but hackernews is still pretty great.

Will hackernews be like that chilly bar you found that got overrun by jackasses six months later, forcing you to look for a new spot? Man, I hope not, because this is a good site.

</comment><comment><USER3> You're focusing on the wrong word. The critical word in that definition is "baiting," not "intention."

There is a difference between saying controversial things and baiting people.

<comment><AUTHOR> How would you know whether someone is baiting people? Again, this has to do with inferring intent -- reading his/her mind.

And so what if it is baiting anyway?

If a post gets voted up, then presumably the debate is of potential interest irrespective of whether it is baiting.

<comment><USER4> it sounds as if you've never encountered a troll. they don't enhance or inspire substantive debate, in fact they hinder one by arguing baseless positions for the sake of raising blood pressure.

<comment><AUTHOR> That's what voting is for.

<comment><USER5> That's what motivates some trolls - treating the discussion as a game in which they manage to trick people into voting them up. That's the difference between a "good" and a "bad" troll, isn't it? A bad troll will be exposed right away, a good troll manages to pass for legitimate arguments for a long time.

You can't really say voting is the solution if part of a troll's purpose is to subvert the voting process.

<comment><AUTHOR> _...a good troll manages to pass for legitimate arguments for a long time.

You can't really say voting is the solution if part of a troll's purpose is to subvert the voting process._

Who cares what the person's motivations are?!

Why do you care so much about the pattern of electrical activity in his/her brain?

If his/her posts/comments are voted up a lot, then they are good ones in an objective sense.

<comment><USER5> I care what the motivations are.

A person with a strong but controversial opinion will stick to and defend their point of view throughout the debate. The end result might be that I now understand a new point of view, or that they alter their point of view.

A troll will duck and weave, change topics and backtrack. The goal isn't to express an opinion they believe in, but to annoy people and get responses. The end result is that I waste my time reading their posts, since they're not going anywhere with it.

Sometimes you can only tell the difference after the dust settles. I'm still trying to make up my mind about this thread ;)

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> In practice, the word "troll" has come to replace "dissenter" and "devil's advocate" and other terms with good connotations. It does encourage groupthink --as soon as someone differs from the party line, _bang_ , that person gets labeled as a troll, end of discussion. This is very common on political sites (viz, sites that _have_ party lines).

A real troll starts out making small, reasonable claims, and then, after getting people to agree with him at first, makes larger and larger claims. The precedent is "A modest proposal".

<comment><USER3> A troll is not a devil's advocate. A devil's advocate is making one side of a case in order, ultimately, to clarify a question. A troll just wants to make people mad.

<comment><USER6> The term "troll" is sometimes misused where "devil's advocate" should apply.

</comment></comment></comment><comment><USER7> Intent is 9/10ths of the law, and also of troll identification. You can wax about how it is impossible to infer intent, but we all know that's BS.

<comment><AUTHOR> Intent is important for law. Killing someone in a car accident should be treated differently from premeditated murder say.

But it's not clear why intent is relevant to web forums where voting mechanisms are in place.

</comment></comment><comment><USER8> This post is obviously a troll.

</comment><comment><USER9> A troll is someone who is engaging in an argument because he gets satisfaction from the argument itself, not because he has any interest in the topic at hand.

Interesting way to respond to my question, amichall. What's wrong with just answering it when I asked, back at <http://news.ycombinator.com/item?id=66297>

<comment><AUTHOR> What do you think of debating societies?

<comment><USER9> In my experience, those who manage to last long in debating societies typically have some interest in the topics they debate.

</comment></comment></comment><comment><USER10> The world needs random pie throwers, even online.

</comment><comment><USER11> I define a trolling attempt thus: 1\. incensing, and 2\. redundant.

That is, a troll is not a troll when they are voicing original thoughts. It is only when they bring up a discussion that has long been tired out that people really grow sick of them.

</comment><comment><USER12> Amichail is a post-modern meta-troll.

</comment><comment><USER13> Everyone else's opinion in this matter is wrong. Mine is the only one that is correct. End of discussion.</comment>