How to enter into ML? - <AUTHOR> I have a couple of years kf experience as SDE and I'm working towards my part time masters in ML. I find it very difficult to get into ML roles as almost no one hires inexperienced ML folks. How to break into it? Is doing a full time masters the only way? <comment><USER2> Hello, I have been in your shoes a couple of years ago. I was working as BI engineer in Silicon Valley and realized the potential of ML and Data Science. So I switched gears towards learning algorithms. I learned from logistic all the way to Keras. But as you said, everything is theoretical. As I wasn't working on the practical part of implementing, it has been difficult for me to crack the interviews as most of the questions are related to the project. They ask about your current project in ML and go deep dive in asking why you haven't used a different algorithm, etc etc. I gave interviews and failed in every one of them. But the good thing is that, I have learned through the process and cracked one finally. it is still a mix of BI and ML. but no complains as I don't have handson experience in ML. I suggest you to pick up python, as almost every company asked me to code an algorithm. As you are already an SDE, it shouldn't be of big concern. And the main reason is that, python has vast libraries for data science. Go through the underlying definitions of all ML algorithms. Pick a ML project which your company is working and try to get as much exposure as possible. Trust me, the part-time masters doesn't really matter in cracking a job. It all depends on how well you explained the project, why you implemented a specific algorithm and not the others, challenges in data analysis before implementing ML and of course, coding interview. Good luck.

</comment><comment><USER3> Please give a try to [http://www.fast.ai](http://www.fast.ai) free courses on practical machine learning. These courses had huge impact on people wanting to enter into the world of machine learning like me.

</comment><comment><USER4> Several ways to get noticed in the application process: * Go to Kaggle and participate in some of their competitions. * Build an ML program from the ground up to help build your portfolio (something like a dog door that only opens to your dog). * Implement a paper from arxiv - try to understand what the paper is about, then download the data set and implement the model they are talking about and see if you get similar results. Then, write a blog post about what you did....

</comment><comment><USER5> Why? What's this obsession with ML? There are tons of interesting problems in the embedded/distributed systems/security spaces.

<comment><USER6> Maybe they're interested in it?

</comment></comment><comment><USER7> It may be easier to get a position as a more general purpose engineer (full stack or whatever you're most comfortable in) with a team that has ML engineers, and work your way into the role you want from there.</comment>


Meeting A Troll - <AUTHOR> http://www.traynorseye.com/2012/09/meeting-troll.html <comment><USER2> For those of you who claim that the right thing in this situation would be to turn the child over to the authorities - what exactly do you think the authorities are going to do to make this situation better? The child obviously has some darkness that he needs to work through - to work through darkness he needs the support of a loving community. I find it very sad and disturbing that some commenters (who I assume are adults) believe that the right thing to do is to hand a child like this over to the police or mental institutions. This idea that the police are some sort of magical wand that you can wave at problems to make them go away is at the center of our (our here meaning the US & Britain's) social decay (c.f. the current treatment of drug abusers, ethnic minorities, and the "mentally ill" in the United States).

Assuming this story is true, what OP did was the right, human, adult thing to do - to treat the child as a human being capable of change and growth and to see to it that the community accepted him and moved him towards change. Concepts like "justice" and "psychosis" are easy to throw around and are very practical, but their use is typically the root of more harm than good.

<comment><USER3> Stop. Rewind.

You are calling a 17 year old person a "child". This is wrong, and perfectly in keeping with the trend of failing to raise children into mature adults.

17 year olds will be able to vote on their next birthday. They can hold jobs, they can drive cars, they can fly planes, they can even serve in the armed forces with their parents' permission. 17 year olds fought in the battle of Iwo Jima.

Calling this person a child diminishes them, and takes away their capacity for agency and responsibility. A big part of being a healthy, functional adult in society is responsibility. You can nurture them within a loving community all you want but if you protect them entirely from the consequences of their actions they will never become anything more than children.

<comment><USER4> Just because he's 17 doesn't mean he has grown up. He obviously hasn't and treating him like a grown-up and expecting him to take responsibility when he obviously hasn't reached that part of his mental development would be very detrimental. That's why the article writer made sure to impress upon his parents that the boy needs counselling - to work through and correct whatever mental/behavioural issues he has.

That argument of course only holds if your goal is utilitarian with regards to the well-being of society as a whole and that family in particular. If you just seek to satisfy your inner craving for "justice", by all means - call the cops, destroy his life, create another criminal and drug user and watch him and his parents lose any hope of normal life, while you laugh and twirl your moustache from atop the moral high tower.

<comment><USER3> If it would be detrimental to him to "grow up" then will it not be detrimental to society to put him out in a world where he could do harm to others? Especially given that he already has a history of doing exactly that?

If the premise here is that this man-child is too immature to take on the responsibilities of adult society (such as the right to own firearms, the right to drive automobiles, the right to drink alcohol, etc.), that he is in some way developmentally disabled, then should he not be kept away from society and denied the ability to hurt others?

You are setting up a false dichotomy here. You are saying that the choice is either that this person be sheltered by a nurturing and loving community who protects him from the consequences of his actions and if not then his life will be ruined utterly. He needs to face the consequences of his actions. He needs to learn that it is necessary to abide by just laws in order to live in society and to fail to do so will result in very serious consequences. If he cannot accept any responsibility then he has no place in civil society.

What are the possible consequences of someone being sheltered from the consequences of their vile, hateful, violent acts? That person can become mentally and emotionally twisted and their hatred and lust for wanton destruction can grow. And this can occur _even within the sheltering arms of a loving community_. And then the hurt they cause others and the irreparable damage they do to themselves becomes even greater until they become a monster. A rapist, a serial killer, or merely an outcast who cannot mesh with society.

This is not about moral high towers, this is about ensuring that society does not become burdened with so-called adults who have never faced true responsibility and are incapable of functioning properly within society.

<comment><USER5> "then should he not be kept away from society and denied the ability to hurt others?"

How long do you think he should be kept away from society?

His actions don't justify a life sentence or the death penalty, so he's going to be part of society at some point.

Is taking him out of society going to make him a better person? No.

The best way to rehabilitate someone is for them to have something to lose.

If this 17yo had a wife/child of his own then it is far less likely that he would have done this harassment.

<comment><USER6> I think it is highly unlikely that any of his actions would result in any significant jail time. Community service, a fine, and/or some sort of probation are all more likely.

I had a childhood friend who got in with a bad crowd in high school. At some point, when he was about 17, he was caught illegally entering a business at night. His parents refused to go pick him up from the police station, so he had to spend the night and most of the next day in a cell. I don't believe his ultimate punishment involved any jail time.

I respect his parent's decision. That sort of action teaches a troublesome kid that there are real consequences for breaking laws beyond just upset parents. While a criminal record might make it harder for him to get a job in the future, it certainly doesn't make it impossible. I also suspect it is better than letting a kid think that other people will protect him and he can get away with whatever he wants.

<comment><USER3> A criminal record for a misdemeanor as a minor can be expunged fairly easily.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> For what it's worth, if you're the target of especially terrifying harassment like this, it's important to keep two things in mind: the more targeted the harassment is, the easier it is to identify the harasser, and the more likely it is that there's some sort of personal connection.

If you're receiving stuff in the mail (like the lunchbox with ashes) or stuff literally just dropped on your doorstep (the dead flowers), it's extremely unlikely that someone on the internet you have absolutely zero connection with just randomly picked you to ruin your life that badly just for some lulz.

I'm glad the OP was able to take the steps he needed to identify his harasser, which I'm sure was a lot more empowering than living in fear and checking his door locks every night.

<comment><USER8> A security professional once recommended Gavin de Becker's "The Gift of Fear" [1] to me as a source of excellent information to always have in mind.

One of de Becker's insight is exactly what you say here -- that most potential attackers are motivated by a personal connection, and that animus is also what makes it possible to identify and uncover them. He also has extensive thoughts about identifying if/when the harassment will cross over into physical attacks. I would recommend anyone read it, especially if you have loved ones who have lived in fear of stalkers.

[1] [http://www.amazon.com/Other-Survival-Signals-Protect- Violenc...](http://www.amazon.com/Other-Survival-Signals-Protect- Violence/dp/0440508835)

<comment><USER9> That seems interesting. Will the book make me more or less obsessed with walking-on-the-street safety?

</comment></comment></comment><comment><USER10> It's difficult to read this and not think that a psychopath was let off the hook because he was young. Outing and labeling these kinds of people is important to curbing the amount of future damage they can do.

There is bullying, there is harassment, and then there is what the OP experienced. No reasonable, rational individual who is just "acting out" in adolescence takes it to these levels. As much as I feel for the OP he should have taken legal action and had the youth examined by a credible mental health professional if only as a favor to others.

<comment><USER11> As much as I loathe being the guy defending trolls, the level of judgement expressed in this thread is a bit troubling.

Labeling this kid a 'pyschopath' might feel nice, but it's rather inaccurate. [1]. Specifically when he saw the damage he'd caused, a very human emotional response of remorse and regret kicked in. We have no reason to believe it's fake, especially given we weren't the one's there, and the author believed it to be genuine.

That said, I found this to be a really touching story, and am amazed at the kindness and wisdom of the victim.

[1] <http://en.wikipedia.org/wiki/Psychopathy>

<comment><USER10> First, I'm well aware of the definition of psychopathy. Second, psychopathy is not a binary condition. An individual can be on a spectrum of severity, or (as has been noted by people researching the condition) psychopaths can and do mimic the responses to emotion that they see in others but do not feel themselves. Perhaps he is or perhaps he isn't, but without additional action of the part of the OP and the kid's parents there is no way he will be properly diagnosed until something similar, but more severe, might happen.

So, yes, we are making judgements in this thread, but not everyone here is being "judgmental." Making a considered decision about available evidence is a reasonable act. The repercussions of this young man's actions should not have been watered down because of his age, and especially not in light of the toll it exacted on his victim. Others might be calling for extreme punishment, but I am calling for appropriate response.

</comment></comment></comment><comment><USER12> Interesting. I don't think I would have done the same, and even with time to think long and hard about it, I still would have gone after him with all my might. I don't think letting him off with just a warning is in any sense "justice" nor in the end was the smart choice.

There's something _psychotic_ about harassing someone you know for YEARS, anonymously, in such a vicious way as he did. It's just cruelty on a level akin to torturing dogs for fun. "It was kind of a game" is hardly an excuse. "I will kill you, I will rape your wife, I will do <unspeakable things> to your wife's dead body..." Sending ashes. Putting dead flowers on the door step. Causing the man to be paranoid in his own house. Causing him to cry over the safety of his family. This is beyond harassment, and lasted daily/weekly over a period of years.

I almost don't believe this is real. How could a psychotic 17-year old be let off with a handshake and a look in the eye? He's going to kill someone someday. I'm stunned.

<comment><USER13> I can't imagine that, as part of the deal, updates proving that counseling is happening aren't a part of the story. I agree with you that I wouldn't let it go without having some knowledge that he _is_ getting the help he obviously needs.

I wouldn't want to ruin a 17-year-old's life, either, but I wouldn't hesitate for a moment if I felt my family was in _any_ danger. We don't know the relationship between the OP and his friend that might mitigate the "any danger" part.

On the other hand, kids' lives are ruined in the US (and possibly other countries; I don't have enough experience to know) on a regular basis because we want to have "justice" at all costs. Justice is important, but so is mercy. Mercy (NOT rolling over!) is, ultimately, what will progress society.

<comment><USER14> If a person takes such a personal, aggressive, and malicious position towards you and your family, by reporting them to the proper authorities you haven't "ruined" their life. You shouldn't feel guilty bringing the perpetrator of a serious crime to justice.

<comment><USER13> If our penal system was able to rehabilitate, I would 100% agree with you. Unfortunately, given the incredibly high recidivism of convicts, I don't think that is true. Worse yet, prison appears to be a criminal training ground. As a result, I, personally, would be hesitant to throw somebody into that environment if I felt another option that could lead to rehabilitation existed.

The important piece is "another option". If it were my kid, you can bet he wouldn't he getting off easy, but I would hope for an opportunity to rehabilitate. On the other hand, if it were my kid, I would be he first to call the cops if that's what was necessary.

It's unfortunate that our zeal for "justice" has put us in a situation that we say "to hell with the people".

</comment></comment></comment></comment><comment><USER15> Wow ... I'd like to shake your hand because I think you handled your friend's son with an amazing amount of grace. It's horrible that you had to be tormented like that, but at 17 he may have learned how to be human. In my experience, not many of us understood empathy at that age.

Let me know when you're in the U.S. and perhaps I can buy you a dinner.

<comment><USER16> Agreed. Always refreshing to see somebody putting in hard work to make this world a better place rather than taking the easier road (whatever that would have been).

</comment></comment><comment><USER17> My wife and I just had a baby and it has made me realize that I would burn the world to cinders in defense of my family. I have no idea how this guy reached through the fire and shook this kid's hand. Wow.

<comment><USER13> It is an amazing experience to learn that there is somebody who is more important to you than you, isn't it? Whatever combination of biology, psychology and sociology that brings that about, it is something to experience!

<comment><USER18> I've got a nine-week old. Loved your comment and I'm passing it on to my wife. So true.

</comment></comment></comment><comment><USER19> That's not a troll. And that's not harassment. That's a stalker. I'm shocked Twitter did nothing about this kind of repeated targeted abuse. And I'm very surprised that the police did nothing for someone who was receiving death threats at his front door.

<comment> mike-cardwell The bit about the police not being "able" to do anything struck me as a bit bizarre as well...

"I got on to the authorities again but, polite and sympathetic as they were, there didn't seem much that could be done."

Err... Death threat... Contact Twitter and get the IP address of the user, then contact the ISP to get the home address.

Maybe the police couldn't be "bothered" to do anything, but they were certainly capable of it.

<comment><USER20> This should be the top comment. Again and again we see Twitter, Facebook etc. being blamed for this type of stuff. But in truth these companies have well established processes to deal with requests from law enforcement authorities, as do ISPs. This situation is scandalous when you see how much time and effort is devoted to revenue raising through traffic and parking violations, but there is apparently no time to follow up death threats.

</comment></comment></comment><comment><USER21> I remember reading a story about a man who was knocked unconscious by a group of kids as he was riding past them on a bicycle not too long ago. That story followed a similar trajectory including the writer not pressing charges under the conditions that he would be able to meet with the attacker and ask him questions about why he did what he did.

One of the things I remember about the article was the reaction from the police who said that the show of remorse from the attacker was a well- practiced show and that they had seen it many times in repeat offenders.

Does anyone remember more details about this that would help find it?

</comment><comment><USER22> that is not "trolling", that's (pretty bad) harassment. I get the feeling this is a story written to prove a point. Nobody would refer to this as "trolling".

<comment><USER23> How would you define trolling and a troll? I'm sincerely asking since it is my understanding that these days harassment over the internet is often cited as trolling, as in for example "We trolled Jane by spamming her inbox full of animal abuse and violence lol".

I work part-time at a school with kids ranging from 7 to 16, and of what I've tried to inquire them about the subject(I'm 22 myself, so it's quite easy to go into the subject by mentioning some local websites and memes, kids open up voluntarily very well), it's exactly the online harassing and _bullying_ which is considered(perhaps a form of) trolling. These are exactly the imageboard kids who find it _cool_ to "piss people off". Why? "I dont know. For the lulz". It's like a hobby for some.

I personally find this stuff disgusting and directly relate it to bullying in school. Just because it happens online is not _any_ more tolerable. Turns out many people disagree.

<comment><USER22> Trolling is short term, it's fucking with someone for the sake of fucking with _someone_ , anyone. If you attack one person over multiple years that becomes more than trolling, it becomes personal. Trolling is not personal. As you say, it's "for the lulz", it's to get a reaction, any reaction. If someone wants a reaction they don't care who from.

I've never met anyone that would call years of harassment that extended into real life "trolling". That's personal and it's a serious problem. I run a large forum (I'd guess some of the kids you mention use it) and I've had all manner of insults and threats, all of which are trolling, they're from people that want to annoy me or upset me but only because they see me as a target _at that moment_. If someone were to come to my house and leave things in my postbox, or mail me stuff, or follow me around the internet for years that would be harassment.

I just asked a bunch of my staff members (people that deal with this sort of thing every day) and everyone considers what the OP went through harassment, it's not in anyway considered trolling.

<comment><USER23> I am not saying it is _not_ harassment. Though, I don't consider the terms to be orthogonal(as in, they can co-exist within the same context). I am saying it is my understanding that many kids(not all) consider the stuff in the blog post as _very successful_ trolling in fact. The act of trolling, as I see it, is to delibirately cause harm and grief to the victim regardless of means. What differs it from just simply bullying the victim is that it happens online, and that's how many (victims) have put it too.

<comment><USER24> The term "trolling," as the folks I know use it, doesn't refer to stuff intended to cause harm or grief. Rather, it usually refers to something that would cause fleeting annoyance, or perhaps an eye roll. Or something designed to stir up a tempest in a teapot, e.g. an exaggeratedly controversial forum comment.

What the OP describes wouldn't be called trolling in my social circle. It would be called stalking. I think this goes far beyond a source of lulz.

<comment><USER25> >* The term "trolling," as the folks I know use it, doesn't refer to stuff intended to cause harm or grief.*

That's very interesting. I don't think you'd have to look very hard to find someone who would include harm and/or grief short of murder as "trolling." Just making someone feel like they have a target painted on them can cause substantive harm to someone. Do this in the context of gender, and it can be called sexual harassment. Do this in the context of race, and it could be called racism or a hate crime.

I remember the time before 9-11 and McVeigh when talking about a bomb in the US was a joke, because it was inconceivable such a thing would really happen. Amazing how a change in _experience_ changes that. All of you college students and suburban kids in your teens and 20's out there, keep in mind that there's a whole lot of experience out there you don't have.

<comment><USER26> We shouldn't let sociopaths define the language we use to describe them. That's how "hacker" came to mean "criminal."

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> > _He wanted to call the authorities there and then and turn him in. But I > said no._

That's an impressive show of self control, but I wonder if his next victims will have preferred that you did contact the authorities. Presumably, at age 17 this guy won't be living with his parents for much longer.

<comment><USER13> I really hope the OP didn't just leave it with "get him counseling" and then walk away. I hope he required follow-up that the counseling was happening and progress was being made.

In fact, if I was in that situation, I think I would want to be given the ability to talk to the counselor about the progress (or lack thereof) being made. Even if I knew he was going to counseling, I don't think I would be comfortable just washing my hands beyond that, for exactly the reason you point out.

<comment><USER28> Isn't that sort of information confidential between the counsellor and the patient? Even if it's not legally protected I don't think many counsellors would be happy telling you that sort of thing

<comment><USER29> You can always ask for copies of the bill.

</comment></comment></comment></comment><comment><USER30> I have to ask. Why was this young man given the opportunity to escape the law despite committing a hate crime. He threatened murder and rape. Would he have been afforded the privilege of a hand shake rather than hand cuffs if he was... say a member of a outgroup, say for example, an Arab?

<comment><USER31> Because the police were never involved directly. "He" was still legally a child, for one. For two, the author was unbelievably gracious enough to not take him straight to the cops.

A happy ending all around, really. Hopefully the teen idiot will have something good come of his counselling and the world will be a slightly better place.

<comment><USER32> > Hopefully the teen idiot will have something good come of his counselling > and the world will be a slightly better place.

Sociopaths benefit from counseling in that they become better able to fool counselors. We can only hope whoever he goes to realizes this.

<comment><USER33> You trolling? It never ceases to amaze me that people who read a blog post suddenly form hard lined opinions about a real world situation.

To me, it's a bit sociopath-like to be so vindictive about a situation that you know next to nothing about. What's the relationship between the poster and the kid? He most likely knows the boy's past, he knows the family, and yet it's all too easy to forget all that and condemn someone.

If only there were more people in the world like the OP, and less knee jerkers.

<comment><USER32> I hope I'm wrong and that the troll isn't a sociopath.

<comment><USER33> In all honesty, I didn't mean to jump all over your comment, there's plenty of worse offenders in the thread for that kind of reply.

However, it still stands that we just don't know enough to make any judgement call. It's in society's hands as it were now anyway, and all the best we can do is hope for something good to come out of this.

</comment></comment></comment></comment></comment></comment><comment><USER34> That is a pretty compelling story. I'm not sure I could let it go without a bit more narrative around the 'game thing.' It sounds too much like 'making your bones' in a street gang.

<comment><USER35>
      About how he'd become engrossed in conspiracy sites.

Anti-semitism is rife on conspiracy sites. I just assumed 'the game' thing was started on one such conspiracy site. Paranoia, hatred and naivety can be breeding grounds for these attacks.

I view it less as a street gang game, and more of a game of 'hunt the Illuminati'. Doesn't make it any less despicable. If anything these conspiracy sites (and its posters) carry part of the blame for incitement.

</comment></comment><comment><USER36> > I responded: "I'm not criminalizing a 17 year old kid and ruining his > future.

I really hope restorative justice works. Well done for doing something that must have been incredibly tough.

</comment><comment><USER37> I'd love to have an update in a few years. Do things end up better for having let him off, or does he cause even more damage?

I think it's unlikely that the author was the only person threatened, and also unlikely that a "talking to" will prevent others from being victims as well. While I'd like to think that people can make a full turn around from evil to good, in this case I'd bet against it. If things are as described, the kid is not a wayward youth but a psychopath.

Certainly from the child's perspective it's better not to involve the authorities. But my greater concern is for the rest of society. No, there is nothing magic the authorities can do that will help this individual, but unlike a counsellor they might be able to restrict his ability to further harm others.

</comment><comment><USER18> Do we have to be careful not to brand this sort of behaviour as trolling? Trolling to me is often mild and more for a laugh rather than for quite malicious purposes. It's easier to ignore.

Anything that constitutes targeted harassment, stalking, bullying and the like should always be framed around those stronger terms. They cannot be things that kids grow up doing for a laugh with friends. They need to be clearly framed as the sort of things that have repercussions, put you on the flipside of society, etc.

</comment><comment><USER38> compelling story, but I'd like to know how he translated an ip address in to a street address.

<comment><USER39> Well, there's a few possibilities. For example, if the ip address was associated with a DN, you could do a reverse-lookup and then do a whois.

<comment><USER40> Also he might know the friend's ip if the friend sent him an email.

<comment><USER36> Knowing the IP is the easy bit.

Taking that IP and finding a street address is the tricky bit.

It can be done with court orders. (In England. I have no idea how Ireland does it.)

<comment><USER40> If he knows the friend ip, he knows that they both match (friend = troll).

<comment><USER36> Ah yes, sorry. I missed that.

</comment></comment></comment></comment></comment></comment><comment><USER41> One potentially but as of yet unmentioned aspect is the "game thing" itself. The fact that he refers to this as a "game," indicates that by means of some conspiracy theory site or other, he was more or less interacting with others in competitive harassment.

Take the following potential scenario:

      Impressionable youth joins conspiracy site, finds lots of anti-semitic information.
      The youths of the forum are encourage to pick a Jew and harass them, recording both their creations (i.e. a plastic container filled with ashes), and the responses of the person they are harassing.
      Within the context of a game this harassment can immediately seem quite harmless. I am actually not thinking much about the person who is on the receiving end of my "prank" anymore, I am simply thinking of the optimal reaction I can get from my "innovative" creation in the harassment sector.

      Anyways, easy to see how something like this could get out of hand. Very out of hand in this case.

<comment><USER42> My thoughts as well. It was likely too difficult or embarrassing for him to reveal his true motivations and intentions in front of his family and his victim. Leo should have dug deeper.

</comment></comment><comment><USER43> There is an alarming amount of laziness in the conclusion of this affair. I'm hoping that significant actions were left out of the post.

Who has the kid been talking to online? What else has he been up to? Who else is he harassing? How was he going to escalate the "game"?

It seems that the author wanted a peaceful resolution so badly that he manufactured one falsely.

</comment><comment><USER44> I hope that The Troll learned something from this experience. It is truly interesting to me what kind of mental processes drive this kind of behavior.

<comment><USER45> Let's hope it wasn't "use a proxy."

<comment><USER26> Or "cry when you get caught."

<comment><USER46> No worries, eventually he' ll darn goof and the cyber police will be there to take care of the rest ;)

</comment></comment></comment></comment><comment><USER47> I am truly amazing by this post. What an incredible human being the OP is. If faced with a similar situation I'm quite certain I lack to moral fiber to conduct myself with that level of class. Odds are excellent I would have pasted that kids guts all over the street.

<comment><USER12> Having someone arrested is not "lack of moral fiber". It may be the opposite - the courage to bring a criminal to justice, testify against them, potentially lose his friendship... What the 17-year old did was vicious and clearly criminal.

<comment><USER8> Courage, as a word, stems from _cor_ \-- one's heart and innermost feelings, and so courageousness is the resolve to express one's heart.

Therefore, it is _literally_ more courageous to confront an attacker directly and to express one's feelings honestly, than it is to run to the authorities, even when one is entitled to do so. It's more courageous to confront someone face-to-face, tell him how you were hurt by what they did, and communicate that you still care about him and want to be involved with his correction.

To say that "it may be the opposite..." _i.e._ it may be cowardly to directly confront someone who hurt and frightened you, is just bizarre and I suspect reactionary tough-guy talk. In what world would it be cowardly to confront and attacker and show both your vulnerability and your determination to work with him, but courageous (in any sense of the word) to send the police over to his house to pick him up?

</comment></comment></comment><comment><USER48> Here's a funnier take on confronting an internet troll. Comedian Chris Gethard talks to a commenter who really didn't like his performance in the show "Big Lake."

<http://www.youtube.com/watch?v=9s10F4ulkLY>

</comment><comment><USER49> If you've ever seen very young puppies playing, you know that it's not as cute as it sounds. There's yelping and pain, and often even blood as the puppies bite one another mercilessly. But as the days and weeks pass, that stops; by being bitten, the puppies learn that biting hurts. It takes a little while, and is perhaps not the most pleasant of methods, but it's what their minds can process.

Some people are the same way. It's a cruel thing to force a bully (or its net- cousin, the troll) to look in the mirror and see what they've really done; what they really are. It messes with a person's head in a way that those who haven't experienced it cannot understand. But many of them legitimately NEED that kind of cruelty; it's the language they speak, the stimulus they know how to sense.

It's still cruel, mind you; it shouldn't be shied away from, but it shouldn't be glorified or looked forward to either. Sometimes it's not even possible, especially in the age of the Internet. But when it can be done, I'd call it preferable to bringing in the authorities. It's less wasteful, on account of not throwing up lifelong obstacles for the troll to overcome, and when properly applied it hurts worse than the law would allow our authorities to inflict anyway. Justice and vengeance, all wrapped up in a nice, neat package.

</comment><comment><USER50> It's disturbing how terrifying and malicious this suburban 17-year old kid could be.

</comment><comment><USER51> Am I the only one who feels like this story is hugely, hugely embellished? It is just too picture perfect. And absolutely none of the comments herein seem to question any aspect of it whatsoever. It is straight-up revenge-porn. My bet is that certain aspects of this actually happened, but things just don't happen this smoothly in real life.

</comment><comment><USER52> Pains me to see this kinda stuff go on...

Troll doesn't quite cover it in my eye, its pure criminalized harassment.

</comment><comment><USER53> I would have prosecuted the little shit.

<comment><USER54> Deliberate and targeted anti-semitism, stalking, death threats that moved offline from a 17 year old who says "thanks for giving me a break dude" and parents who don't want to go to the police themselves? All Leo wants to do is write about it.. I would've either prosecuted or put his name and photo (and all the threats and screenshots he sent) on my blog for 10 years.. that could've been the choice for the parents.

<comment><USER55> This story is all about empathy...

<comment><USER54> No it's about pacifism.

</comment></comment></comment></comment><comment><USER56> I'm honestly astonished at how little Twitter seems to care about abuse and spam. I actually wrote an article about this last night ([https://tyler.menez.es/articles/twitters-empathy- problem.htm...](https://tyler.menez.es/articles/twitters-empathy- problem.html)), when - after going through blog posts - I realized the spam problem there hadn't gotten any better since I first wrote about it in _2007_!

<comment><USER57> Seems like a hard problem to solve.

</comment></comment><comment><USER58> I'm very sorry you went through that. I actually couldn't finish reading it - too unsettling. I hope you and yours are okay and this is behind you.

<comment><USER59> If it helps, it has a restorative ending. I would recommend trying to get trough it knowing how it ends.

</comment></comment><comment><USER60> That's not a troll, that's just a run-of-the-mill dickhead.

Trolling is a art.

</comment><comment><USER61> I do not believe that this is an act by an individual. Even though the author tracked it down to one attacker, there is something much bigger behind attacks of this caliber.Right now there is a movement underway, a Troll movement.It has been around for no longer than a decade, but already it has shown the signs of a serious problem to come. It's essentially a gang mentality that ropes these "kids" in to participate in trolling. In the 90's I was lucky enough to have not grown up in the circumstances that would lead me into joining a gang. A desire to feel like your a part of something combined with the desire to feel powerful is a tool for whoever is recruiting these trolls(mostly older siblings or friends cause them to want to imitate).Just as these kids,imagine your self put under the wrong(for a successful life) circumstances at that age,you may have been persuaded into trying new drugs, or gang banging.

By meddling with the lives of others, one can get a feeling of true power. This feeling of power when combined with the comradeship of fellow trolls can be a very dangerous mix. Gangs recruit new members by playing on both those desires, first they are given a gun (they are now powerful, They hold the power over human life in their hands), next they are given comradeship (a feeling of belonging, they are now a part of something). At the age of 17, these kids, placed under the right(to this way of life) circumstances are soooooo susceptible to the gang mentality. The gang mentality is present everywhere you look, its just at different levels of activity. Give a kid a bat or ball, surround him with teammates, and give him something to do; Compares with giving a kid a computer, surrounding him with fellow trolls, and something to do (harassing and cyber attacking);Now lets throw in actual street gangs for a third level of comparison with the past. Give a kid a gun, surround him with fellow gang members, and something to do. Although baseball has stayed offline and in the ballpark to this day; The street gangs have moved online in the form of a 17 year old kid with a computer.

This is only a preview of whats to come. Imagine second generation trolls. These kids have had access to a computer, ipad, laptop, cell phone, since they were truly children(3-12). These trolls can hack,they are tech savvy, they can find your address, access all your online resources. They now have the power over a human life. Unlike street gangs of the 90's, the internet has allowed them to be apart of something big, bigger than any street gang has ever had the opportunity to reach. Where a gang was always limited by location, Trolling is only limited by language. A troll hierarchy has formed in several different hives. Troll soldiers are dispatched in the thousands, maybe even millions, in strategically placed cyber attacks. Worse these troll soldiers, at the easily corruptible age of 17, will have the mentality of an anarchist,ego of a street banger, and posses the technical ability of a hacker. Where a banger would steal and old ladies purse, they will get into her bank account. Where a banger would shoot someone for initiation, these trolls would attack every online outlet you use, ruin your name and image. Even worse, for the most part they need not be money motivated, their parents are paying the cable bill.And since this would for the most part be completely anonymous, they wouldn't have to watch as they shoot you in the face just as a street banger has to. They wont feel the blood splash their face as your life crumbles beneath you.

I can only hope measures are taken against the Trolls fast. It is not a hacker mentality they posses, but that of an anarchist and street banger.Those in power at the time it becomes apparent, will, as with every other threat to humanity, not act until it is too late.These kids do this because there is a lack of communication from the ones who raise them, they need attention, advice,something to do (baseball?). The authorities cant fix this, further separating the parents from the kids will only strengthen the bonds of the trolls. Who do you think they will go to after their parents have further distanced themselves from their kid by sending him off to juvy? Their friends who were a part of their bad way of life? The gang?

</comment><comment><USER62> 17 is OLD. This is a high school kid, and maybe he's immature, but he crossed a very serious line. The line between prank phone calls, and the types of coercive intimidation tactics he employed shouldn't be glossed over.

One other comment about this anecdote: I've said it before, and I'll say it again. Revealing your true identity online, on the internet can be very, VERY risky. Downright dangerous. The fact that Google+ and Facebook encourage this as a normal, casual practice is irresponsible.

The internet is high-powered super-charged tachnology, which needs to be respected as such. It's not like putting your name in the phone book. VIPs who retain attourneys, hire personal assistants, and hire other staff (possibly even professional security) have adequate countermeasure to cope with online stalkers. Average individuals do not.

Consider that in ye olden days, predating even dial-up, there were notorious problems with local TV stations who would hire pretty women as their meteorologists. These were professional broadcasters that had problems with public exposure.

Craigslist has a firm understanding of some of the cold realities of the internet, in particular, prostitution, and they advise their users with very little whitewash. Twitter, Facebook and Google+ should do the same.

</comment><comment><USER63> Theres something about this story that just doesn't sit right with me. Why would a 17 year old go through so much trouble to harass someone just for the heck of it? The guy had to have done something to the kid. Normal people don't spend hours of their lives to harass a single person for no reason.

I call bullshit.

<comment><USER64> The son had become engrossed with conspiracy sites - the ones that blame jews/zionists/everyone for all the ills on the planet, and was a shutin, unable to attach a human face with the victim of his trolling attempts.

I admire the author for his actions, I hope the Troll will take a good lesson from it all.</comment></comment>


Ask HN: Why we assume software developers don't know math? - <AUTHOR> <comment><USER2> Well it depends, some people think of software developers as self taught people who make websites and phone applications. In that way, this is kind of true.

On the other hand, most of people working in the software industry hold a degree in computer science or software engineering from a university and do much more stuff than just coding webapps, at least in my country.

</comment><comment><USER3> Do we?

"Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."

\- Edsger Dijkstra

</comment><comment><USER4> Why does it matter? As long as you are producing good results of course.

What I mean is, if someone is mainly focused on webapps where, in my experience, advanced math skills are not always needed what good would it do to the final product?

That isn't to say the entire profession shouldn't care, but what does it matter if we "assume software developers don't know math"? Why not just assume "That software developer must not use advanced math in his daily coding"

</comment><comment><USER5> That's definitely some kind of local myth. Here in Uruguay (and South America in general), it's the opposite, programmers are viewed as math nerds. I believe the same happens in Europe (especially Eastern Europe), and Asia.

A lot of programmers here have to get an Engineering degree, which includes a LOT of math.

Same for CS degrees. Even Information Systems degrees (like the one I ended up getting) belong to the Engineering school and have quite a lot of math.

<comment><USER2> Exactly, but usually I don't tell people I am a software developer but a software engineer and they immediately know I am good at math

</comment></comment><comment><USER6> It's not an assumption, my experience confirms that (of course there are exceptions). I think it's the result of not paying too much attention to theory/math in undergrad education.

</comment><comment><USER7> I tend to assume the opposite (and have been brushing up on my math skills as a result).

</comment><comment><USER8> You gotta say something more than just that.</comment>


Don't use -Werror - <AUTHOR> http://blog.schmorp.de/2016-02-27-tidbits-for-the-love-of-god-dont-use-werror.html <comment><USER3> > Enabling -Werror in distributions virtually guarantees that they won't > build: Even if you took care of all compiler warnings in all compilers for > which you enable this switch, it's just a question of time till a new > compiler version comes along that has a new warning message and - BOOM.

This is a feature. This triggers a review of the new warnings introduced by the new compiler version, to see if they have found bugs, or should be squelched per false positive, or should be squelched project-wide.

> Two recent examples are squid and qemu-linaro, two packages I had to compile > from source as Debian GNU/Linux didn't have (good enough, or any) packages > for them.

The fundamental problem here is using a contributor's build environment (where I want -Werror to get them to contribute warning-induced bugfixes, or squelches/ignores if they're really false positives) for a non-contributor's task (where they just want the final binary, and aren't going to bother reporting the warnings even if I want them.)

Non-contributors building from source isn't a relevant niche to me (I generally ship binaries), but I can sympathize with the request for a warnings-as-warnings fast build path for them.

But make -Werror the default build path, for developers. This needs to be opt- out, not opt-in.

<comment><USER4> It might be okay for _your_ project, but there are many cases where warnings seriously get in the way (e.g., indirect throw/longjump but leaving out a return statement).

Besides, the warnings depend on the compiler (which may be non-gcc/clang/vs) — and may not even make sense on a given system. So shipping with -Werror is not really a good idea. Put the important stuff in the tests.

<comment><USER3> > It might be okay for your project, but there are many cases where warnings > seriously get in the way (e.g., indirect throw/longjump but leaving out a > return statement).

I'd prefer to explicitly annotate the indirectly throwing function as non- returning, when possible. Longjumps are rare enough for me I'd be willing to individually suppress them, or suppress them over a range of code where they happen to be common. I've seen return warnings catch enough bugs that I believe this will save more time than it spends in the long run. If I didn't, I'd explicitly lower that individual warning's severity. I will also lower the warning's severity on a given compiler, if (but only if) I can't properly annotate it away on a given compiler.

> Besides, the warnings depend on the compiler (which may be non-gcc/clang/vs)

Again, feature. More coverage. Good.

> and may not even make sense on a given system.

In which case, upon reviewing said warning and determining said warning indeed does not make sense, said warning can be individually suppressed as mentioned.

> Put the important stuff in the tests.

This is a statically typed language. Successfully compiling is the first test. Successfully passing static analysis is the second test.

Undefined behavior bugs can lead to some very subtle behavior that can be very difficult to unit test for, and tends to be quite sensitive to things like compiler flags, which call site they were inlined at, allocation patterns, etc. to even manifest in the first place. Given how nasty they can be to debug, they're also some of the bugs I'm most interested in catching - <USER2> before I commit, definitely before I ship. Taking full advantage of compiler diagnostics is way easier than e.g. writing enough unit tests to catch all UB caused from falling off the end of a non-void function without a return statement.

<comment><USER5> The time you're spending reviewing warnings, determining warnings don't make sense, and individually suppressing warnings sounds like it could be considerable. Worse is that it's never ending - each new gcc/clang (or change from gcc to clang etc.) could bring hundreds of new errors…

Otoh, gcc and clang now support colorized output. Warnings stand out a lot if you're building with make, and can be noted and disabled or fixed (if it's an actual problem) ${WHENEVER}, without having to drop everything now.

I wonder if the argument for/against -Werror is really the difference between the beliefs "a compiler warning is probably a problem in my code" vs "a compiler warning is probably a problem in the compiler"

<comment><USER6> > The time you're spending reviewing warnings, determining warnings don't make > sense, and individually suppressing warnings sounds like it could be > considerable. Worse is that it's never ending - each new gcc/clang (or > change from gcc to clang etc.) could bring hundreds of new errors…

Writing good code is time consuming. Remember warnings are potential bugs in your code, they should be investigated. Also if you start a project with -Werror you won't introduce lots of warnings at a single time.

> Otoh, gcc and clang now support colorized output. Warnings stand out a lot > if you're building with make, and can be noted and disabled or fixed (if > it's an actual problem) ${WHENEVER}, without having to drop everything now.

If you ignore warnings that are benign, over time there will be more and more warnings and it becomes harder and harder to notice new warnings that are bugs.

> I wonder if the argument for/against -Werror is really the difference > between the beliefs "a compiler warning is probably a problem in my code" vs > "a compiler warning is probably a problem in the compiler"

Compilers are remarkable pieces of software, in the last 4 years or so I can remember 3 compiler bugs I found in Clang and GCC and all were segfaults not incorrect warnings. That's after running Clang and GCC thousands of times on hundreds of projects. So as a rule of thumb if the compiler reports a warning it's correct.

Here's one of the compiler bug reports, I can't find the others:

[http://lists.llvm.org/pipermail/llvm- bugs/2015-February/0387...](http://lists.llvm.org/pipermail/llvm- bugs/2015-February/038746.html)

<comment><USER5> > If you ignore warnings that are benign, over time there will be more and > more warnings and it becomes harder and harder to notice new warnings that > are bugs

I -Wno-XYZ the common ones that I don't feel are issues

> > I wonder if the argument for/against -Werror is really the difference > between the beliefs "a compiler warning is probably a problem in my code" vs > "a compiler warning is probably a problem in the compiler"

> Compilers are remarkable pieces of software, in the last 4 years or so I can > remember 3 compiler bugs I found in Clang and GCC and all were segfaults not > incorrect warnings. That's after running Clang and GCC thousands of times on > hundreds of projects. So as a rule of thumb if the compiler reports a > warning it's correct.

What I mean is that, for example, gcc warning me about "if(x = y)" is a problem in gcc, as it's generating superfluous output for my correct, intended input

<comment><USER3> > What I mean is that, for example, gcc warning me about "if(x = y)" is a > problem in gcc, as it's generating superfluous output for my correct, > intended input

FWIW, it's now automatic for me to write if((x = y)) if that's actually what I meant. Or if (type x = y).

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I always argued compiling/looking for errors are two different things and should be two different tools. Developers need linters/warnings.

Packagers don't need this information unless it will stop the software from functioning as it has previously been functioning (prexisting bugs included).

</comment><comment><USER6> > There is a common complaint about my software - some compilers sometimes > emit warnings when compiling some code, which some people sometimes find > somewhat offensive. They can be very useful though, which is why I > investigate the ones I know of.

If you don't take care of every warning you may miss a new warning amongst all the old warnings. That's why -Werror is nice, it forces you to deal with every warning as they pop up. Also when I compile someone else's software and there is a bunch of warnings popping up it makes me question the quality of the codebase. The code quality may be fine but it doesn't look good to the outside world.

> Even if you took care of all compiler warnings in all compilers for which > you enable this switch, it's just a question of time till a new compiler > version comes along that has a new warning message and - BOOM.

Great if a new warning pops up with a different compiler I want to know about that. It's either a bug in my code or a false positive. Using -Werror is more work but it improves code quality.

</comment><comment><USER8> Summary:

Enable -Werror in debug builds, disable it in production builds (in publicly released builds).

Reason: -Werror is helpful for you, useless for a 3rd party.

<comment><USER9> Better if the third parties hit you up with the bug report and you come back with a patch.

<comment><USER8> A warning doesn't stop them from filing a bug report.

It doesn't have to be an error though.

<comment><USER9> Sure it does. 99% of the time it _is_ an error and will lead to unforseen behavior.

</comment></comment></comment></comment><comment><USER10> I use -W4 and -WX with MSVC to enable the highest warning level and flag all warnings as errors. Then I disable a couple of the more pointless warnings (unreferenced formal parameter, unreferenced local function, unreachable code...) that would otherwise keep me from being able to use -W4 without jumping through arbitrary hoops.

The problem with GCC, at least at the time I was using it several years ago, is that there seemed to be no way to disable individual warnings. Is that still true (or was it ever?)

<comment><USER11> -Wno-specific-warning (I think it's always had this, or at least for a very long time).

<comment><USER3> And:

      #pragma GCC diagnostic push
      #pragma GCC diagnostic warning "-Wspecific-warning"
      #pragma GCC diagnostic ignored "-Wspecific-warning"
      ...
      #pragma GCC diagnostic pop

For warnings you want to disable in a smaller scope. s/GCC/clang/ for clang. Bonus points:

      #define MM_WARNING_IGNORE_GCC(x)   MM_IF_GCC(   _Pragma(GCC   diagnostic ignored x) )
      #define MM_WARNING_IGNORE_CLANG(x) MM_IF_CLANG( _Pragma(clang diagnostic ignored x) )
      #define MM_WARNING_IGNORE_MSVC(x)  MM_IF_MSVC(  __pragma(warning(disable: x))       )
      #define MM_WARNING_PUSH() \
        IF_GCC(   _Pragma(GCC diagnostic push)   ) \
        IF_CLANG( _Pragma(clang diagnostic push) ) \
        IF_MSVC(  __pragma(warning(push))        )
      #define MM_WARNING_POP() \
        IF_GCC(   _Pragma(GCC diagnostic pop)   ) \
        IF_CLANG( _Pragma(clang diagnostic pop) ) \
        IF_MSVC(  __pragma(warning(pop))        )

      MM_WARNING_PUSH()
      MM_WARNING_IGNORE_GCC("-Wspecific-warning")
      MM_WARNING_IGNORE_CLANG("-Wspecific-warning")
      MM_WARNING_IGNORE_MSVC(1234)
      ...
      MM_WARNING_POP()

Defining MM_IF_*() is left as an exercise to the reader.

<comment><USER12> clang understands #pragma GCC diagnostic fine, no need to have special code for it.

<comment><USER3> Hmm. I could swear this wasn't the case in one of the build environments I ran into (possibly an older version of clang or something? or perhaps I'm thinking of some other non-diagnostic pragma...)

</comment></comment></comment></comment></comment><comment><USER13> For fun case of "I get an error but you don't", here's a bug: [https://bugs.launchpad.net/ubuntu/+source/gcc- defaults/+bug/...](https://bugs.launchpad.net/ubuntu/+source/gcc- defaults/+bug/305176) \- around 5 years of GCC versions which ignore the explicit `(void) write(...)` and still report an error.

</comment><comment><USER14> This article is basically a corollary of the Robustness Principal, "Be conservative in what you do, be liberal in what you accept from others". In this case we're accepting certain dependencies from others and we SHOULD be liberal/tolerant of dependencies that work but generate warnings.

</comment><comment><USER15> There are some legitimate reasons for leaving -Werror enabled all the time. In the embedded world, for example, I'm less interested in supporting a wide variety of compilers, and more interested in rigidly complying with my particular toolchain's definition of "correct." In that case, I'm going to ask it to be as pedantic as possible because I'm never going to compile the code with any other toolchain, and I'd like to minimise the possibility of a bug because the code is going somewhere that a human won't be able to follow.

</comment><comment><USER16> Go has the equivalent of -Werror on all the time. How does it address the issue of "your compiler might emit a warning that my compiler didn't?"

<comment><USER17> Go has something of an imposed rigidity that a lot of C programmers I think wouldn't tolerate well (culturally, viscerally),- one example: the whole comment out all unused variables because you commented out a function for debugging purposes during development (couldn't just pass a flag to the compiler, at least last time I used Go).

Aside - I seem to remember a Blog post you wrote on your experience with the Go language and I think it pretty accurately reflected a lot of my own experience with it.

edit: found it [0]

[0] [http://ridiculousfish.com/blog/posts/go_bloviations.html](http://ridiculousfish.com/blog/posts/go_bloviations.html)

<comment><USER18> Commenting out code correctly, in a way that avoids complaints about unused code, should be possible to do in a proper IDE.

<comment><USER17> I upvoted this (apparently it's been downvoted again) -- for the record I totally disagree with the premise but I think it's a serious enough point to merit being addressed rather than down-voted[0].

> Commenting out code correctly, in a way that avoids complaints about unused > code, should be possible to do in a proper IDE.

First of all, failing to compile, in an of itself should be reserved to a particular class of failures not to _linting_ , I feel pretty strongly about this and I think a lot of other people do.

Further, I would say, that the complexity of an IDE that supports this - e.g. suppose you previously declared `uin64_t a, b, c, d;` and someone commented out the only function which uses c ? The editor should than make a new line with `//uint64_t c;` and than contract the old line correctly. That isn't a _simple_ procedure to be sure and it's perfectly reasonable to use nano/vi to write code (you might say it's not effective) but at least in my opinion programtically correct code shouldn't fail because I'm not using super- advanced-ide-X.

[0] Aside - I tend to dislike this down-vote on disagree trend lately, imho the discussion would benefit from respecting and responding to disagreeable opinions and downvotes should be reserved for where (exclusively, but I guess subjectively - the comment isn't/worth the time effort to disagree or respond to e.g. blatant spam, highly condescending, personal attacks etc.)

</comment></comment></comment></comment><comment><USER19> I see the issue as: there are warnings and warnings

One thing is for the compiler to warn about something like implicit conversion of one type to another.

Another, _very_ different, if warning for things that are correct but might be in error (like 'for' without brackets, etc)

<comment><USER20> Non idiomatic code is an error. Not because computers have an issue, but because it wastes fractions of a second every time someone reads the code.

PS: It's the same reason you capitalize the first letter in a sentence.

<comment><USER19> 1 - That's the job of a linter

2 - automatically generated code has no obligation to be idiomatic

3 - If I had a cent for every time "idiomatic" code got in the way of readability I'd be a millionaire right now

<comment><USER20> If writing idiomatic code is causing readability problems your doing it wrong. Successful code is read far more than it's written and even machine generated code needs to be well written to locate bugs etc.

iF YoR CodE LoOks lIKe tHIs, yOu FaIl.

<comment><USER19> > If writing idiomatic code is causing readability problems your doing it > wrong.

Sure, because breaking a 82 char line in python in 2 lines (because pep8) is much more readable than leaving it at 82 chars.

<comment><USER20> A 65+ character line is already ugly. 80 is an arbitrary but sensible cutoff.

<comment><USER19> Speak for yourself

a = "a long message with 70 chars..."

vs

a = ("a long message..."

         " with 70 chars...")

<comment><USER20> You should not be using long messages in code, for one thing you can't localize them across multiple languages. You can do:

      A = \
      "A really long string"

But, the odds are _really_ good you are making a mistake.

<comment><USER19> Readability is still bad in your example, and not all projects require localization (not to mention usage of \ is not encouraged)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> To generalize: Don't put debugging shit in production code.

</comment><comment><USER22> In general don't listen to "Don't use, or use only ...." advice, there is often the case for when you may need it, no need to get religious over it.

</comment><comment><USER23> Why can't developers, y'know, ACTUALLY READ THE BLOODY WARNINGS? And then, y'know, they could FIX MORE THAN THE FIRST ONE after a single build pass?

<comment><USER24> In my observation, the problem is recompilation avoidance. If you miss it the first time around (maybe you're just trying to get the thing to run) they won't come back unless you do a full rebuild. With a little care you can build a build system that will print them out every time you run, but it takes some care.

<comment><USER23> Why avoid recompiling? Why this reluctance to do a full rebuild?

I started programming in a world where you had to wait a day to get 300 lines of Fortran built. Now I routinely build the whole 44Gb of community ports of a major Linux distro in three days on a three hundred buck box at home.

There are 24 hours in a day, and your full rebuild will go just fine while you sleep, so long as you _DON 'T_ use -Werror.

<comment><USER3> I don't want to eat a 24h overnight full rebuild every time I fix a single typo. I _do_ want to verify it still builds (i.e. I haven't missed one of the use cases of a renamed variable.)

The shorter the feedback loop, the less context I have to rebuild for errors, the faster I can fix the error, the more efficient I am.

I'm not so far along that I make much use of the red squiggly lines generated by my IDE to highlight syntax errors before I even hit save - I use too many languages that can't be adequately parsed that fast for them to be terribly accurate - but it's a sign of just how much people want to shorten that feedback loop.

Have the CI server do full rebuilds overnight? Sure. Although I still have to bug my coworkers to pay enough attention to the CI server to even notice it's gone red from their changes, at times. Convincing them to read through the warning logs is a nonstarter.

</comment></comment></comment></comment><comment><USER25> So, clever bloke declares error checking is wrong or something.

As a non serious programmer it would seem to me that -Werror is either not granular enough or simply not fit for purpose.

I wonder if -Werror is defined in a standard somewhere and hence has a clearly defined meaning.</comment>


Malthus Says I Told You So - <AUTHOR> https://secularhumanism.org/2019/12/malthus-says-i-told-you-so/ <comment><AUTHOR> "We're clever enough as individuals, but not enough as a collective, especially a collective of seven billion people. We can't get everybody to act in the interests of everybody, and we can't get our present selves to act in the interests of future people. Put the two together—billions of people, and a century from now—and you get the stampede toward the edge."</comment>


45 Excellent Blog Designs - <AUTHOR> http://www.smashingmagazine.com/2007/08/28/45-excellent-blog-designs/ <comment><USER2> This isn't just good for blogs -- a bunch of these are nice inspiration for site design in general.

</comment><comment><USER3> Truly excellent web design is never found in such lists. A good webpage, especially something as simple as a blog, makes the text easy to read and the structure of the site easy to see, and gets out of the way. It's more or less a solved problem by now, and seeing a bunch of good web designs is like seeing a bunch of good spoon and fork designs.

The stuff in this link is impressive if the aim is to look like futuristic Macromedia Fireworks mockups from five years ago.</comment>


Qihoo 360 and Go - <AUTHOR> http://blog.golang.org/qihoo <comment><USER2> It is shocking to see a post from Qihoo 360 appear on the official golang blog. This company is notorious for at least the following:

* Their flagship products, "360 Security", provides an alternative Windows-update facility; they take use of this to disguise another product of theirs, "360 Browser", as a Windows update: [http://www.ipc.me/360-fa-bu-jia-xi-tong-bu-ding.html](http://www.ipc.me/360-fa-bu-jia-xi-tong-bu-ding.html) (Chinese source)

* "360 Security" and "360 Browser" spies extensively on the user, including uploading "suspicious" files for their "cloud antivirus" service, uploading the browsing history: [http://www.ce.cn/cysc/tech/07hlw/guonei/201302/26/t20130226_...](http://www.ce.cn/cysc/tech/07hlw/guonei/201302/26/t20130226_21431285.shtml) [http://tech.163.com/10/1231/17/6P8I1JPR000915BF.html](http://tech.163.com/10/1231/17/6P8I1JPR000915BF.html) (Chinese source)

* "360 Security" was caught cheating in AV software tests: [http://www.pcworld.com/article/2919554/tencent-qihoo-antimal...](http://www.pcworld.com/article/2919554/tencent-qihoo-antimalware-firms-are-accused-of-cheating-stripped-of-rankings-in-antivirus-tests.html). More interestingly, after the denunciation from the test bodies, Qihoo 360 pretended that it quit the test voluntarily and announced that these tests are no longer suitable for "Internet-era AV software".

* They recently announced a "pregnancy mode" in their router product, due to widespread concern about the effect of WiFi signals on the fetus.

Their wrongdoings are uncountable.

<comment><USER3> Qihoo also has a tight connection with China's GFW

<comment><USER4> Qihoo is one the notorious companies in China which block Google. It is ridiculous its article published in golang.org.

<comment><USER5> Qihoo was known to help Chinese govt preventing people from bypassing GFW, but not the one blocks Google.

The one suspected notorious Company which helped GFW to grow is Baidu.

<comment><USER3> Try google Qi Xiangdong, president of Qihoo, and inventor of some GFW patents.

</comment></comment></comment></comment></comment><comment><USER6> This is slightly off topic, but when my dad couldn't install his printer, he called a random tech company online....

They basically requested full access to his computer, for about $99, and set up his printer, but they also installed a bunch of software, one of the things they installed was Qihoo 360.

This wasn't requested, and it made me wonder whether or not Qihoo pays a bounty for each install to these random companies.

It made me really suspicious of the software.

Has anyone had any experience with their tools?

<comment><USER2> Qihoo 360 is very successful in starting a hype in China and some tech company believe that installing it is good practice.

<comment><USER6> Why do they believe that? What does it offer that other tools don't?

<comment><USER7> when my friends want me to clean his/her computer(too many autostart programs and unnecessary softwares installed), I usually install 360 security. It is simply the easiest to use and do not have free equivalent. It may do some aggressive things, but that is the price if you want the good part.

<comment><USER6> What are the specific features it has that other tools don't have?

<comment><USER7> see xiaoq's reply above

3) a "janitor" tool, for inspecting and disabling auto-boot software, removing software otherwise tricky to remove, and removing temporary files;

I need this feature especially.

<comment><USER8> There are other legitimate free tools that do that.

<comment><USER7> suggestion?

it is all about easy to use.

<comment><USER9> [http://sourceforge.net/projects/hjt/](http://sourceforge.net/projects/hjt/)

Is pretty standard.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> We have a lot of Chinese students that come to the school I work at. All of them have this software and similar installed and it causes nothing but headaches.

They believe they actually need it installed even when the school supplies them with a laptop that has all the necessary protection pre-installed.

</comment><comment><USER11> It's a shame for Go's official blog to put a post from the shameless company.

They should remove the article.

<comment><USER12> @golang is the official twitter for the site, i suggest others message them to take this article down. They have already mentioned this article on twitter [https://twitter.com/golang/status/618096409137393665](https://twitter.com/golang/status/618096409137393665)

</comment></comment><comment><USER13> Can people please discuss the technology stack and the content of the blog post here? Thanks.

<comment><USER14> Upvoted, it's a legitimate request coming from an existing HN user. But I think you are being downvoted since there is clearly some astroturfing going on the comments to this post.

</comment></comment><comment> li-ch jsno2, jsno3, jsno4 are accounts created within an hour only to comment positively for Qihoo. Are there any rules on HN against this kind of behavior or can someone ban these fake accounts?

<comment><USER15> Flag the comments by clicking the timestamp to see the comment as it's own thread.

</comment></comment><comment><USER16> I was told many times that Qihoo360 is crapware. Anyway I hope this brings our cultures together as technology should be apolitical.

<comment><USER17> It is. The browser also doesn't complain about the Chinese government SSL certificates used in SSL stripping. As someone who has lived in China for a while now I'm always wary about using any Chinese software.

<comment><USER18> I just don't use any chinese software wherever possible. Even the games contain malware rootkits that start at os boot, ring0 (tenprotect).

<comment><USER16> It's the way the communism is required to work. If everybody is doing why should not you ?

</comment></comment></comment></comment><comment><USER19> I am a user of Qihoo 360 softwares like Cloud Storage and Mobile Phone management etc.

In the past(Probably 6 ~ 7 years ago) Qihoo had bad reputation, because it once made its softwares like virus that the user cannot un-install them for competing with the competitors.

After that, I think the company has changed its behaviors that it started emphasizing user experiences. And it also developed an anti-virus and anti- spyware software to be used by the user for free. The company changed the business of anti-virus and anti-spyware softwares in China.

Now I think the company is an good innovative company in China.

<comment><USER20> Not at all.Just people get use to it.Those can accept, accept it.Those dislike, never touch it.</comment></comment>


Messaging App Line Now Brings in Nearly $100M a Quarter - <AUTHOR> http://techcrunch.com/2013/11/10/messaging-app-line/

<comment><USER2> My friends and I are are huge users of line (we're in the US) and have been for a long time. When a large portion of our group of friends went to Japan it allowed us to message in a group without any extra charges and stickers (the digital kind) are REALLY REALLY fun.[1] I would say I've spent around 10-12 dollars (5-6 packs) on stickers in the last 6 months alone. I was actually more confused when I came across things like Group Me and WhatsApp because they're not as fun as Line imo (I later figured out that it wasn't really marketed in the US). The gimmicks for me to get new stickers are also insanely effective, e.g. downloading other Naver/Line apps/games and adding sponsored accounts (like Rafael Nadal) to get free stickers.

[1]They have stickers for basically everything, from Japanese animes to Disney Characters to Snoop Dog. They also do special occasion stickers, like Halloween etc. The original stickers were none of those though, just a few original characters they thought up. In fact my favorite sticker is one of their originals, "Brown": [http://4.bp.blogspot.com/-RNLBc7XVLm8/UVl9flhwIiI/AAAAAAAAAO...](http://4.bp.blogspot.com/-RNLBc7XVLm8/UVl9flhwIiI/AAAAAAAAAOE/1ZbFUbfHq7o/s1600/photo+%281%29.PNG)

</comment><comment> daniel-levin > followed by stickers, which make up another 20 percent of their sales

That's a shitload (approx 20m USD) of stickers

edit: a line

<comment><USER3> They have 49MM users in Japan alone, and Japanese users are famously loose with digital goods spending (their mobile gamers spend many times that of counterparts abroad).

<comment><USER4> But it's not recurring revenue. I can't imagine someone keep buying 10+ packs of stickers. Only stickers, no game credits? There's something I fail to understand here.

<comment><USER5> You simply lack the imagination ;)

People buy the new sticker packs so that they'll have stickers nobody else has. Other people will start getting these new sticker packs, and thus the "trendsetters" need new sticker packs in order to maintain their uniqueness. LINE is happy to keep releasing new stickers to feed this cycle.

</comment></comment></comment></comment><comment><USER6> I have a hard time understanding how WhatsApp could take any market from Line where they dominate, and this is not only because of the stickers, but mostly because the application itself offers an objectively superior experience.

Line feels like an universally available, polished, and wannabe cute version of iMessage, while WhatsApp feels like a clunky and poorly designed app that you're supposed to pay. Moreover, Line has a desktop client, which, even if not as well done as their mobile app, does not have the bloat of Skype.

Where I live, in Japan, people use Line so much that even without a Facebook account, I do not feel disconnected anymore. I know what is going to happen, and my friends have no overhead to reach me.

This said, I would totally understand if it can not reach the US or some European countries, where people would not be attracted by the very Asian cuteness that comes with it.

</comment><comment><USER7> Living in the Philippines where I watched Line take control I asked many Filipinos what they like the most and why

\- More free stickers, larger variety (this is by far the #1 reason. The line stickers are fantastic and there's many different characters and expressions. You get at least 100 free and they release new free ones often)

\- First to allow sending short videos

\- Constant commercials running on major television

\- They don't send as much notification spam as KakaoTalk or Viber

</comment><comment><USER3> Bemusing to see this after my friend (who is an engineer at LINE) bemoaned the seeming lack of recognition of the company in the States.

<comment><AUTHOR> I think they are trying hard to localize their emoji to crack into the States, based on this blog post: [http://www.oneskyapp.com/blog/secret-monetizing- messaging-ap...](http://www.oneskyapp.com/blog/secret-monetizing-messaging- apps-localizing-emoji/)

</comment></comment><comment><USER8> I joined Line in the last month mainly because my girlfriend thought the stickers were really cute and as we started to use it more and more we have found it a very effective way to convey how we're feeling or for a quick check-in with a "sweet dreams" or a "hi!" sticker without having to type out a message.

I started creating new group chats with different sets of friend and find myself sharing photos and texts to selective groups instead of broadcasting them on Facebook and tagging those I want to notice it. I also feel like I have a choice on whose messages/stickers I want to see whereas on Facebook I'm constantly ingesting the entire feed.

</comment><comment><USER9> From my _personal_ experience, Line isn't as reliable as WhatsApp in bad network connection. And the "Line Event" account is somewhat spammy.

</comment><comment><USER10> Can someone figure out if they are selling more in digital stickers than traditional stickers.

If they sell $80 worth of stickers per year (If they keep up $20M per quarter in sticker revenue) I wonder what the output for all USA sticker sales would be.

</comment><comment><USER11> So this is an Asian WhatsApp type thing that capitalized on its stickyness to push games and stickers? What is the formula for the meteoric rise?

<comment><USER12> > WhatsApp

That's funny, because the only people I ever saw WhatsApp were Chinese.

<comment><USER13> Don't forget the Dutch, it's used by pretty much every smartphone user over here.

<comment><USER12> Oh I'm sure it is. I've heard it's popular in Southern America as well?

I'm just speaking from my experiance in Australia: WhatsApp is a Chinese thing.

<comment><USER14> FWIW, WhatsApp is huge in Nigeria; at least the major cities like Lagos.

</comment></comment></comment></comment></comment><comment><USER15> I also use LINE, mainly because stickers are... a lot of fun, surprisingly (though I just use the plentiful free ones).

</comment><comment><USER16> Can someone explain the stickers thing? Basically, people are buying new created emoji to use in their messages?

</comment><comment><USER17> Does anybody know what technology stack Line is running on? Do they use Erlang for their backend like WhatsApp?

<comment><USER6> IIRC, No Erlang to be seen there. Line uses mostly C++ and Java, and this is reflected in their job offers[1].

[1]:[https://linecorp.com/career/position/](https://linecorp.com/career/position/)

</comment></comment><comment><USER18> It's been pronoun for messaging service in Japan. like I will line you. Meet in the line. like..google it

</comment><comment><USER19> Ye good stuff. Prefer line over the spying app Viber

<comment><USER20> spying app ?

I think i am missing something here. I use Viber all the time.

<comment><USER19> This is what I got from a quick search.

[http://grahamcluley.com/2013/07/viber-hacked-syrian- electron...](http://grahamcluley.com/2013/07/viber-hacked-syrian-electronic- army/)</comment></comment></comment>


Intel Clover Trail is Windows-only; nothing to do with drivers - <AUTHOR> http://semiaccurate.com/2012/09/27/intels-clover-trail-is-a-bloated-nightmare/

<comment><USER2> tldr if you want to know why this article is different than the others that have been on HN: Intel is making this chip Windows-only because they expect Windows8 non-RT on tablets with this chip to fail. And they want it to fail because the chip is too big to sell cheaply.</comment>


App that automatically cancels subscriptions after free trial, launches in UK - <AUTHOR> https://www.bbc.co.uk/news/technology-49688309 <comment><USER2> I feel like this solves a problem which shouldn't really exist - In a perfect world a free trial really should be free and should allow you a choice afterwards to either cancel or continue.

That said I think the concept of using essentially fake bank accounts seems somewhat legally dubious. Surely when you start the subscription you are entering a contract with the company, so when the company is unable to retrieve any money I would assume the individual would be the one liable to legal action? Would make pretty bad press though so I can't imagine any company actually doing this.</comment>


What every programmer should know about memory (2007) - <AUTHOR> http://lwn.net/Articles/250967/ <comment><USER2> [https://hn.algolia.com/?query=What%20every%20programmer%20sh...](https://hn.algolia.com/?query=What%20every%20programmer%20should%20know%20about%20memory&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

</comment><comment><USER3> What every programmer should know about memory:

Even though it may not seem so at first, memory is very lossy, especially in old age. So, write comments, write documentation, make notes. Diagrams help too.

It's best to acquire these skills at early age, since at older age memory stores also require more cycles.

There are also ways to boost memory. One option is that emotionally charged events are very well remembered. Thus, don't be afraid to experiment; the bigger mistake you make, the better you will remember it.

Edit: Ah, nevermind. Apparently this is a different type of memory that programmers have to deal with. Still, I hope this advice was useful.

</comment><comment><USER4> Obligatory "Latency Numbers Every Programmer Should Know"

[http://www.eecs.berkeley.edu/~rcs/research/interactive_laten...](http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html)

</comment><comment><USER5> What every programmer should know: large capacity and blazing fast NAND is poised to change everything you used to know. JEDEC is working on standardizing large capacity NVDIMMs [1][2][3], and that will probably mean at the very least a new tier in this hierarchy. And perhaps changes to swap, filesystems, databases, and boot/initialization will come to capitalize on this new tier.

[1] [https://www.jedec.org/news/pressreleases/jedec-announces- sup...](https://www.jedec.org/news/pressreleases/jedec-announces-support- nvdimm-hybrid-memory-modules)

[2] [http://www.jedec.org/sites/default/files/files/Brett_William...](http://www.jedec.org/sites/default/files/files/Brett_Williams_Server_Forum_2014.pdf)

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

<comment><USER6> Unless they get CAS latency down(the little I know about flash points to probably not) I don't know if it's going to change that much.

</comment></comment><comment><USER7> I would love to read an updated version of this. The fundamentals won't have changed much. But the details are changing and Urlich went into a lot of detail in this doc.

Great Read.

<comment><USER8> Wiki could work for updating this writeup efficiently, good example is the way linux booting was described using github.

[https://github.com/0xAX/linux-insides](https://github.com/0xAX/linux-insides)

</comment></comment><comment><USER9> this is way to low level for every programmer to know. While there probably is some use for this, the average java/python/ruby/node.js programmer will never need this information.

When working with embedded systems this information is more usefull, but very few programmers actually do work in that industry compared to others, e.g. web

<comment><USER10> > the average java/python/ruby/node.js programmer will never need this > information

That's what every kid in school ever says about a subject they don't care about. They're usually proven wrong.

Just in the first few pages you'll find this gem:

      This leakage is why a DRAM cell must be constantly refreshed. For
      most DRAM chips these days this refresh must happen every 64ms. During
      the refresh cycle no access to the memory is possible. For some workloads
      this overhead might stall up to 50% of the memory accesses (see [highperfdram]).

You don't think a Java, Python, Ruby, or Node programmer might need to know this at some juncture?

Having a deep understanding of how things work helps you visualize everything going on and see potential problems before they happen. This kind of deep thinking is helpful in all kinds of activities.

<comment><USER11> "Would benefit, eventually, at some point when butting up against resource limitations if they're advanced and do this for a while and no one's around to point this out of them on code review" != "everyone needs to know"

<comment><USER10> I think I get what you're saying here. You don't "need" to know this to write code. Which is true - heck, you don't "need" to know how a tcp/ip connection works, or how disk storage works. But one day you might.

When you put fuel in your car and you turn the ignition and step on the gas, the wheels move. So all you need to know is where the fuel goes and how to turn the ignition and where the gas pedal is. But one day, I guarantee you, the wheels will stop moving.

When your boss storms up to your desk and says "Why aren't the god damn wheels moving?! We're losing ad revenue every minute!!", I hope Code Review Guy is around to tell you how fuel injectors work.

<comment><USER12> You know, I have a really hard time imagining a situation where your boss storms up to your desk and says "Why aren't the goddamn wheels moving? We're losing ad revenue every minute!!" and you reply "Aww goddamn, I forgot to account for DRAM refresh cycle."

There's knowing how fuel injectors work, and there's knowing how copper crystal in the wire admits an energy band for free electrons.

<comment><USER10> The point isn't to know the answer to every problem. The point is to be educated enough to even have a _guess_ as to where to start _looking_ for the problem, and then start trying to figure out the answer.

</comment></comment></comment></comment></comment></comment><comment><USER13> That one is quite the evergreen (and probably needs a '2007'):

[https://hn.algolia.com/?query=what%20every%20programmer%20sh...](https://hn.algolia.com/?query=what%20every%20programmer%20should%20know%20about%20memory&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

</comment><comment><USER14> Article is from 2007. (And as someone else writes, details have changed and the article is rather detailed.)

<comment><USER15> I wish that was the case. I wouldn't have to worry about DRAM latencies anymore

</comment></comment><comment><USER16> On a similar note, for the difference in timings and sizes on a scale you can relate to, is this:

[https://plus.google.com/+PeterBurnsrictic/posts/LvhVwngPqSC](https://plus.google.com/+PeterBurnsrictic/posts/LvhVwngPqSC)

</comment><comment><USER17> Memory product guy here.

Great content & relatively current. FWIW, the subject gets even more interesting if you consider how switches & routers manage the flow of packets. The memory hierarchy gets even more esoteric.

Regarding the "this is too low level for programmers" comment: only if you don't need to understand how latency, bandwidth & power works at a fundamental level. Every programmer I know _wants_ to understand this stuff.

</comment><comment><USER18> there are just three things i wish programmers knew about memory... none of them are especially low-level or require depth of understanding.

never dynamically allocate it unless forced.

really. never allocate at run-time it unless you are absolutely forced by your algorithm.

if you absolutely really must allocate memory on the fly, have a budget so you can do one big up-front allocation and carefully reuse it. even better, don't allocate it to start with.

<comment><USER19> I'll remember that the next time I'm using python.

<comment><USER20> Or Java or go or ruby or Scala or php or....

<comment><USER6> Still very much relevant in Java if you don't want your GC to churn like mad.

Heck even some of the cache aware algorithms can be taken advantage of with some smart use of ByteBuffers to get a 10-50x improvement in performance.

<comment><USER20> Few applications need this... mostly in the financial space. The GC is quite good at quick temp objects these days.

</comment></comment></comment></comment></comment><comment><USER21> Definitely start off with a huge preamble about the olden days and document structure and how to report problems. Sheesh

</comment><comment><USER22> wait.. I have to know ALL of this?! is there a TL;DR?

</comment><comment><USER23> Again?</comment>


Robotic insect: World's smallest flying robot takes off - T-A http://www.bbc.co.uk/news/science-environment-22380287

<comment><AUTHOR> "It will take "a few more years" before the robo-flies will be able to carry a power source".

I'm not so sure. I have a feeling that if these can be made even smaller, it would effectively require _less_ power than it currently needs.

Right now, the material weight is adding a proportionally greater burden to the wings and the required power goes up. but if these can be made with even lighter materials and in even smaller scales, they may be able to scavenge solar power or receive wireless power via radio waves.

In fact, it's exactly these types of gadgets that can benefit the most from wireless since they just need to waft into the vicinity of a transmitter to absorb energy. A smaller battery (or super capacitor) can store it quickly before it has to move away to do whatever job it needs to do.</comment>