Executive accused of harassment at Alphabet 'X' unit is out - <AUTHOR> https://www.axios.com/executive-accused-of-harassment-at-alphabet-x-unit-is-out-6f583d1e-91e3-4a8b-ae2b-51fd4517ec74.html <comment><USER3> The problem for Google is that the company has condoned these sorts of inappropriate behaviors right from the start and from the very highest levels of the company.

>Here Fisher quotes Google's first executive chef, Charlie Ayers, and Heather Cairns, the company's first HR manager:

Charlie Ayers: Sergey's the Google playboy. He was known for getting his fingers caught in the cookie jar with employees that worked for the company in the masseuse room. He got around.

Heather Cairns: And we didn't have locks, so you can't help it if you walk in on people if there's no lock. Remember, we're a bunch of twentysomethings except for me—ancient at 35, so there's some hormones and they're raging.

Charlie Ayers: H.R. told me that Sergey's response to it was, "Why not? They're my employees." But you don't have employees for fucking! That's not what the job is.

Heather Cairns: Oh my God: This is a sexual harassment claim waiting to happen! That was my concern.

[https://qz.com/work/1326942/sergey-brin-started-google- with-...](https://qz.com/work/1326942/sergey-brin-started-google-with-some- strange-ideas-about-his-female-employees-according-to-a-new-book/)

<comment><USER4> > The problem for Google is that the company has condoned . . .

That is _a_ problem, but it is not _the_ problem. _The_ problem is developing good practices for handling harassment situations going forward. We can fret over what has been done, but we can only change the future.

</comment></comment><comment><USER5> It seems like many leaders fall down when it comes to protecting the company. It seems like leaders may fail to understand that no one person makes or breaks a company, not a great company anyway. There are many more people willing and able to step up, then their are opportunities to step up into - <USER2> matter what the job is.

I find it impossible to believe that lawyers are giving sub-optimal advice. Generally, it's probably situations where lawyers say "x is the best practice", leaders say, "what else do you have" and they end up with some sort of compromising, risk-accepting solution - a la any number of Google recent announcements or any other number of companies that bury things until it makes the headlines.

</comment><comment><USER6> They've got an awful lot of house-cleaning to do, this is just the start.

<comment><USER7> All their posturing and positioning lately is looking more and more like over compensating.

Cut out this sort of crap first.

<comment><USER8> That's always how it works. To make sure everything stays hidden for years it has to be combined with a robust yet superficial call for antiharrasment. Lots of blogs and talks about it. This is not unlike say Harvey Weinstein showing up at the Women's March.

<comment><USER9> Someone gave a clear way to prevent abuse: prohibit sexual/etc relationships with subordinates. Well, except for couples that were already in one.

A lot of places have this rule. Why doesn't Google adopt this rule?

<comment><USER10> That's a good start but insufficient. In large, complex matrix organizations someone at a high level has a lot of power over others even if they aren't formally his subordinates.

</comment></comment></comment></comment></comment><comment><USER11> > Alphabet CEO Larry Page, who was aware of the allegations and the > investigation's findings, did not disclose publicly Rubin's reason for > leaving, saying in a statement at the time, "I want to wish Andy all the > best with what's next."

Maybe Google could invest in his next venture, like they did with Andy Rubin...

</comment><comment><USER12> If the allegations about Rubin are true, whoever greenlighted Rubin's exit package should also resign.

<comment><USER4> Exit package that big? You'd be looking at the CEO and the Chairman. Fat chance. :-/

<comment><USER12> And some board members possibly. In any case whoever it is has lost any respectability.

</comment></comment></comment><comment><USER13> Do no evil apparently does not extend to doing the right thing. It should not take publicity to force companies/people to do the right thing.

<comment><USER14> It was "Don't be evil." and they dropped it a while ago. At least they're being honest by omission.

<comment><USER15> Open [https://abc.xyz/investor/other/google-code-of- conduct.html](https://abc.xyz/investor/other/google-code-of-conduct.html) and ^F "evil".

You should verify your facts before repeating provably false information.

<comment><USER16> I mean, it is a verified fact that they dropped it from the code of conduct.[1,2] My understanding is that, consistent with your link, they added it back later.

[1] [https://gizmodo.com/google-removes-nearly-all-mentions-of- do...](https://gizmodo.com/google-removes-nearly-all-mentions-of-dont-be-evil- from-1826153393) [2] [http://time.com/4060575/alphabet-google-dont-be- evil/](http://time.com/4060575/alphabet-google-dont-be-evil/)

<comment><USER15> Your sources disagree with your statement.

In [1]: > The updated version of Google's code of conduct still retains one reference to the company's unofficial motto

[2] is not about Google and explicitly says: > Google, which will going forward be a subsidiary of Alphabet, is retaining the creedo however.

<comment><USER16> Thank you for the correction. I see now that Google dropped the 'Don't be evil' clause from their code of conduct, but left in one instance of the phrase itself.

</comment></comment></comment></comment></comment></comment><comment><USER17> Url changed from [https://www.theverge.com/2018/10/30/18045230/alphabet- google...](https://www.theverge.com/2018/10/30/18045230/alphabet-google-rich- devaul-resigns-sexual-harassment-andy-rubin-investigation), which points to this.

</comment><comment><USER18> The hubris displayed by Google and other tech companies in their response to sexual harassment claims suggests to me that they have become poorly run. They have benefitted from an enormous bull market and so bad or wasteful behavior has been ex post facto rationalized as correct or inconsequential. In this time, the cost of keeping an alleged harasser on the payroll is nearly infinite. A good recession will clean house.

Maybe it's just me, but I get the impression from these articles that Google et al. has been an auspicious hidey hole for well-pedigreed sexual deviants.

<comment><USER19> Bias up front: I work at Google. I obviously don't speak for the company here.

We are definitely hearing a lot about this stuff from Google and other tech companies lately. I don't know what we can reliably infer from the absence of that kind of news what that says about other industries.

My intuition is that workplace sexual harassment has been rife in all aspects of human endeavor since the dawn of time. The "boss screwing the secretary" trope isn't exactly a new one. It may be that we're seeing a combination of things:

1\. Thanks to the #metoo movement, people who get harassed now have enough power to actually be able to stand up and cause the person they accuse to face some scrutiny. Before, it was just swept under the rug. "Boys will be boys", "that's what you get for dressing like that", "you should have known better to stay late at work with him", etc.

2\. The very rapid rise of tech as a cultural dominator makes them a prime actor in our moral narratives. The average person sees a handful of giant tech companies dramatically changing the way we all live, and they naturally want to know if they are a force for good or evil. Those kinds of journalistic narratives sell.

For all we know, sexual harassment could be 10x worse in the insurance industry but we won't know because who wants to read articles about the insurance industry?

3\. There's also the obvious bias that if something happens too much, it ceases to be news. "Newsworthiness" is a combination of significance and novelty. The former is where good investigative journalism can show the scope of a sweeping hidden problem. The latter is the old "dog bites man" isn't news but "man bites dog" is. It's easy to mistake the latter for the former and assume that something being reported indicates a trend, when really it indicates the exact opposite.

So, it may be that things really are worse at Google than at other places, but I don't know if we can rely on the presence of news articles to judge that.

<comment><USER20> These are all good points. Certainly, there are tons of examples of sexual harassment in other industries. I'll submit, however, that tech is a bit outside the mainstream on this. While sexual harassment happens for example at law firms, nobody in the legal profession (and I suspect, most of "sanitized corporate America") would try to defend with a straight face the practice of relationships between supervisors and underlings, as is typical here on HN.

<comment><USER21> In the legal profession which is prestige driven, relationship based, artificially supply constrained and very lucrative, you would fear for your career over most else especially if you're lower on the totem pole.

This creates a perverse set of incentives to hide all misbehavior even if you're a victim of it.

So I don't know where you're getting this idea that lawyers would automatically defend themselves in those kinds of situations when the incentives are heavily weighted towards ignoring the situations and moving on.

As a software engineer in the tech industry though (especially at a place like Google), you can tell your employer to fuck off and you can find a new high- paying job tomorrow.

<comment><USER22> > _As a software engineer in the tech industry though (especially at a place > like Google), you can tell your employer to fuck off and you can find a new > high-paying job tomorrow._

A white or asian man can do that, sure. But that's not necessarily true for women and other marginalized groups in the tech industry. Especially if this means they won't get a reference from their current employer.

<comment><USER23> Many tech companies that I know actually huge preference to "marginalized" group. I don't know if it is still done but Microsoft used to have a reputation that they would call females in for a second interview as long as the first wasn't terrible.

<comment><USER22> It's rather dehumanizing to refer to woman as "females". Please don't do that.

<comment><USER23> Sorry, not my first language

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> > In the Times story, DeVaul allegedly invited hardware engineer Star Simpson, > who was interviewing to work at Google, to the art and culture festival > Burning Man, telling her he and his wife were polyamorous. Simpson attended > the festival in hopes it would improve her chances of getting hired — she > brought her mother with her and "professional attire," according to the > Times. Yet DeVaul encouraged her to remove her clothing and asked to give > her a massage.

> Later on, Simpson learned that she did not get the job, and that DeVaul knew > this when she chose to attend Burning Man.

> he thought Simpson had been aware that she did not get the job when she > attended the festival.

This is all kinds of weird, and I am not sure how I feel about any of it. It seems like a failure to communicate all around, with some information asymmetry muddying the waters.

On one hand, what the hell are you discussing your sexual relationship with your wife to an interviewee for? How _does_ that come up in an interview process?

On the other hand, Burning Man is not a place one goes to for professional reasons. Unless you've been under a rock, you know what Burning Man is, and what goes on there.

<comment><USER25> I know exactly how I feel about this: Gross!

Telling someone that's interviewing "you should come to burning man because my wife and I are swingers" is gross and inappropriate (borderline illegal?).

If you're inclined to ask someone who you were interviewing for a job to come do sex to you and your wife, I think it's a very reasonable expectation that you confirm this person is aware they have not gotten the job. Doubly so when you're an executive of one of the largest companies in the world. Seems like this is extremely poor judgement at best, and abuse of his position/the implication of a job at worst.

<comment><USER26> What kind of person would consider going or being interviewed after they heard that statement? Regardless if they wore a suit and brought their mother to the event. It shows that you may be interested but are testing the waters? If this person really wanted the job, it looks like she would have done almost anything to get it.

I do not condone the behavior of either party involved. But at least one person should be strong enough to say no thanks, I don't believe in compromising my integrity for an interview with those requirements attached. I'd report this to HR ASAP too.

peace.

<comment><USER25> Spoken like someone who's never been jobless long enough to wonder when, not if, the electricity is going to be turned off...

Great that you have such high moral standards. Here's the thing: You're victim blaming. This is a bad look. This sort of "there are bad people on both sides" choice is ignoring that you're only condemning her behavior because she responded to his horrible behavior. She did report this behavior to google. She also said she didn't have sex with the guy, and only gave him a neck massage after constant badgering.

TL;dr- You're being part of the problem here bro, and you need to knock that off if you want to maintain this air of moral superiority.

</comment></comment></comment></comment><comment><USER27> One consequence of this naming and shaming type editorial is that you end up with paragraphs like these:

"In the Times story, DeVaul allegedly invited hardware engineer Star Simpson, who was interviewing to work at Google, to the art and culture festival Burning Man, telling her he and his wife were polyamorous. Simpson attended the festival in hopes it would improve her chances of getting hired — she brought her mother with her and "professional attire," according to the Times. Yet DeVaul encouraged her to remove her clothing and asked to give her a massage."

<comment><USER28> Wow, small world.I think this is the same girl who was arrested as a suspected terrorist a few years back because as far as the BoPo is concerned, exposed circuit board + blinking lights = bomb.

<comment><USER29> For those of us wondering, here's a link:

[https://en.wikinews.org/wiki/Student_arrested_over_%22art%22...](https://en.wikinews.org/wiki/Student_arrested_over_%22art%22_shirt_with_exposed_wiring_at_Boston_Airport)

<comment><USER30> Thanks! Do you have a link to how her case turned out? That article stops after her not guilty plea and her release on bond.

<comment><USER31> In her words on the record, "... the deal made with the D.A. was to perform 50 hours of community service, to not be arrested in Massachusetts, for an entire year, and that I had to issue a public apology to Boston."

[https://boingboing.net/2008/09/22/star-simpson-one- yea.html](https://boingboing.net/2008/09/22/star-simpson-one-yea.html)

<comment><USER30> Thanks. It's still more than the "be careful of uninformed non-scientist public perception" warning that she should have gotten, but it's probably the least the DA could politically speaking get away with and still save face. Society's reactions to this kind of thing are messed up in a complicated way.

Good interview there.</comment></comment></comment></comment></comment></comment>


Offer for Chinese Repos on GitHub Trendings - <AUTHOR> http://github.com/us/hey-you <comment><USER2> Is this satire? I really can't tell.

If it is, kudos for misusing a Stalman quote to promote english-centrism gatekeeping, which is the orthogonal of promoting knowledge sharing that the quote is about.</comment>


Writing code with multiple overlapping side effects with a straight face - <AUTHOR> https://blogs.msdn.microsoft.com/oldnewthing/20170719-00/?p=96645 <comment><USER3> "...who firmly believed that the terser your code, the faster it ran. The author crammed multiple side effects into a single expression, used ternary operators like they were going out of style, and generally believed that run time was proportional to the number of semicolons executed, and every variable killed a puppy."

How does one go about countering that mentality in some rule of thumb fashion if at all possible? Could a disassembly illuminate identical push/pop operations on the memory stack as explicit intermediate variables would? Maybe a simple intermediate result expansion timing profile side by side the terse code's profile?

<comment><USER4> I once went to a code review in a very, very large (but now defunct) corporation. The author of the code did not allocation the memory they were writing into. There were 8 people at the code review. I could not convince a single person that writing into unallocated memory was a bad idea. "Allocating the memory would be slow", they countered. "And besides, we've tested it and it doesn't crash".

Sometimes you can help people become better programmers. Sometimes you can't. Try not to stick around in positions where you don't have the ability/opportunity to make a positive contribution, is my best advice.

But assuming that the person is willing to listen to you, all of the above seem like good approaches.

<comment><USER5> What memory were they using? How did they get a pointer to it? Perhaps there was reason to believe it would not be used but they had lost that reason to time. For example on many micro controllers you can have the linker reserve space for various things (mapping structures over memory mapped peripherals is common) so maybe the memory they were using was guaranteed to be available somehow. Or perhaps they really were clueless.

<comment><USER4> Keep in mind that this is more than 20 years ago, so my recollection of the details may be (probably are!) completely wrong. But this is what I recall.

It was an embedded system with a proprietary language. The compiler didn't clear the variables when they were created (again, for performance reasons). For some crazy reason, the language allowed you to declare a pointer without initialising it. So what would happen is that the pointer would end up being whatever happened to be on the stack previously. The reason that it didn't crash in testing was because most of the code in the system was essentially copy and pasted from other parts of the system. As long as the previously run function had a pointer in the same location that happened to allocate some memory in the heap, and then deallocate it, this function would end up using the same memory and it would be fine. And this is exactly what happened in this case (because most of the functions had similar shapes and pointers were declared at the top of the stack frame). The main reason they were reluctant to change the code was because they had copied it from somewhere else and didn't understand how it worked. Because it didn't crash, they didn't want to touch it.

<comment><USER5> OMG that's insane.

</comment></comment></comment></comment></comment><comment><USER6> I wonder if the first one was meant to be

        a -= a * a;

which evolved from

        a *= a;

after the author thought "I need to subtract its square from itself, not just square it". I can see how this could occur in numerical code.

I've noticed there are two opposing schools of thought on issues of "insane code" like this; on one side there's "use the language to the fullest if it makes sense to", and on the other is "avoid anything that might be the slightest bit confusing". I think that taking either of those to their logical conclusion is not a good idea --- in the former case, you'll end up with extremely dense and (initially) difficult-to-understand code, but the latter case will cause a gradual degradation of code into something approaching the verbosity of Asm, but with none of the benefits (e.g. "ternary operators are confusing, don't use them; multiple levels of precedence are confusing, so always fully parenthesise expressions; nested parentheses are hard to read, so don't use them either and only do one operation per statement; boolean expressions are confusing, so always use if/else; nested if/else are confusing, so don't nest and always refactor to use a function call, etc. etc.)

It does seem that different languages vary in where they are on this scale, with more "exotic" ones like APL tending highly towards the former (interesting related discussion: [https://news.ycombinator.com/item?id=13565743](https://news.ycombinator.com/item?id=13565743) ) and C#/Java towards the latter. The ideal is probably somewhere in the middle.

<comment><USER7> "I've noticed there are two opposing schools of thought on issues of "insane code" like this; on one side there's "use the language to the fullest if it makes sense to", and on the other is "avoid anything that might be the slightest bit confusing".

This is a false dichotomy. How about "use the language to it's fullest, within reason (avoiding things like multiple side effects per source line), but when non-obvious code is written, document it."

At least, I'd say that describes my approach.

<comment><USER8> Pretty sure that's why he said, "The ideal is probably somewhere in the middle." :)

</comment></comment></comment><comment> d--b Well, maybe a good way to avoid this is to have the compiler email the manager rather than printing a warning.

<comment><USER9> In all seriousness, management who takes things like static analysis results seriously is a valuable asset. We should consider teams that have management like this as superior to the ones who don't. They clearly value foresight and planning and will probably be less likely to host a chaotic/careless work environment.

<comment><USER10> Except when they take it too seriously.

At my $dayjob, I have a problem with a cow-orker with a position slightly superior to mine ("first among equals", former team lead of the group of projects to which I'm assigned) taking results of static analysis _too_ seriously - to the level of cargo culting. When bored, he'd introduce "fixes" to reduce number of issues reported by SonarQube - "fixes" I have to revert every now and then, because they reduce quality of the code (sometimes also introducing bugs through carelesness), all to optimize the Sonar metric.

To be clear: tools are fine. It's people that are the problem (as usual).

<comment><USER11> It also strongly depends on the type of tool you use. If by "static analysis" you mean "Clang screams at me if I'm juggling with razor blades", the results mostly seem to be rather useful.

But I've yet to see one of those code-visualizing tools based on metrics that convinces me. The results I've seen so far are either obvious ("I already knew that, thanks") or inconclusive and hard to interpret. So, to me those tools seem to be more of a way to try and convince your manager that you should be given time for refactorings than actual utilities.

I've been wondering if there could be a benefit in analyzing the commit history of a project instead so that one could somehow at least visualize obvious problem areas ("every third bugfix has to touch this piece of code, so we should really have a proper cleanup there...").

<comment><USER12> A "churn" metric would show if a given piece of code is getting changed frequently. That can identify hot spots in the code.

</comment></comment></comment></comment></comment><comment><USER13> I use the ternary operator all the time.

      result = boolean_flag
          ? do_this()
          : do_that();

I think it's less noisy and nicer to look at then an if-else, provided the statements aren't too long. God forbid multiple side effects though, even in languages with less complicated sequencing rules than C/C++.

<comment><USER14> I think that the ternary operator should only be used for side-effect free code.

So:

        auto result = boolean_flag ?
          compute_property() :
          compute_another_property();

        if (boolean_flag) {
          do_this();
        } else {
          do_that();
        }

<comment><USER10> Since everyone agrees, I'll disagree :).

Seriously though, there's nothing in ternary operator that says it should only be used for side-effect free code. _Especially_ in C++ (or Java), which doesn't even differentiate between stateless and stateful code on the language level.

IMO ternary is a perfect solution for the case where you want to assign or return a different value based on a boolean condition. Whether or not the code in branches is side-effect free is irrelevant.

Personally, where I try to avoid using ternary operator, is places where I don't care about returned value. So "yes" for:

      auto foo = [condition] ? possibly_stateful_then() : possibly_stateful_else();

no for:

      [condition] ? then_statement() : else_statement();

<comment><USER15> > Personally, where I try to avoid using ternary operator, is places where I > don't care about returned value.

As i asked below: Why though?

<comment><USER10> No solid reason, just a feeling. I feel that if-else block communicates intent more clearly when you're dealing with statements - because it _can 't_ return a value in languages we're discussing, it's _specialized_ for that job. The same motivation makes ternary better when we care about a value.

<comment><USER15> To be honest, with that explanation the decision you made has nothing to do with ternaries, and is entirely just the mirroring of the decision the if forced on you.

Also,

> in languages we're discussing

Don't bury that lede. If you're restricting what you're saying to a specific language say that bold and as the very first thing, so people don't end up wasting their time parsing your post in a different context. Rude.

<comment><USER10> > _To be honest, with that explanation the decision you made has nothing to do > with ternaries, and is entirely just the mirroring of the decision the if > forced on you._

I like to think of it as using the dedicated tool for a job it was designed for. In my mind, it's a good rule of thumb because it enhances readability (compare "the principle of least surprise").

> _Don 't bury that lede. If you're restricting what you're saying to a > specific language say that bold and as the very first thing, so people don't > end up wasting their time parsing your post in a different context. Rude._

Why? Come on, at this point in the thread we'll _still_ discussing C++ derivatives. I thought it was obvious.

Also: if a lanuguage has an if/else as an expression _and_ has a ternary operator, then IMO there's a problem with that language being cluttered with duplicate syntax for the same thing.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> > First of all, there will be a lot of false positives. For example, you might > write

        total_cost = p->base_price + p->calculate_tax();

> This would raise the warning because the compiler observes that the > calculate_tax method is not const, so it is worried that executing the > method may modify the base_price, in which case it matters whether you add > the tax to the original base price or the updated one. Now, you may know (by > using knowledge not available to the compiler) that the calculate_tax method > updates the tax locale for the object, but does not update the base price, > so you know that this is a false alarm.

I think the warning in that case is still fair, and I'd be perfectly happy to get it. calculate_tax() could be modified to affect base_price with this compilation unit being none the wiser.

<comment><USER17> Agree. calculate_tax should be declared const. Or it should not be used on an expression like that.

</comment></comment><comment><USER18> v8 at one point made inlining decisions based on character count. Terse code would be inclined more aggressively, and even adding comments could defeat inlining: [https://top.fse.guru/nodejs-a-quick-optimization- advice-7353...](https://top.fse.guru/nodejs-a-quick-optimization- advice-7353b820c92e)

<comment><USER19> I can maybe understand why v8 would do that, but why on earth would comments be included in that?

<comment><USER20> Because its faster to get the length of the string before you strip out the comments I guess?

<comment><USER21> It's because back then V8 didn't save the AST in `SharedFunctionInfo`, so AST was inaccessible, so to avoid re-parsing and generating the AST to use AST- specific heuristics for inlining big function bodies, it used just the source length as part of the inlining strategy. This has been fixed for a while now with TurboFan[0] (also, now you can call `ast_node_count()` and get the AST count directly).

[0]: [https://github.com/v8/v8/wiki/TurboFan](https://github.com/v8/v8/wiki/TurboFan)

EDIT: added information about `ast_node_count()`

<comment><USER19> That makes sense. I figured there had to be a reason why they didn't just check the AST directly.

</comment></comment></comment></comment></comment><comment><USER22> Two unfashionable lessons that I learned when I was a practicing programmer rather than a hobbyist and loathsome manager.

1\. Code is a communication system : between you and the next person to touch it. You are telling the other person how you made this work. Invest in this because the next person will probably be you in six months.

2\. Compilers and type systems are your friends. Write code that extracts errors from the compiler by explicitly constraining things as much as you can afford to do. Avoiding typing or checking via long methods or low level datatypes is bad. Short typed, functional methods and high level data types are good.

</comment><comment><USER23> After gaining a bit of experience programming, I've developed for myself the following rule:

If I feel particularly smart and proud after writing a piece of code, I look at it again and remove some smartness in favour of readability.

Unless it's absolutely performance critical, in which case I try to comment the hell out of what's going on.

<comment><USER24> First, I am not at all contradicting this. :) I just want to get that out of the way.

I have found it pedagogical to read some more difficult programs, without trying to find ways to make them necessarily "read" better. In particular, generic and/or high performance versions of algorithms.

To your point, this is precisely why I will refuse to generalize some parts of my code on the first pass. First, solve my problem specifically, then try and generalize. (This is not a waterfall style approach, but I do try and keep it somewhat phased.)

<comment><USER23> IMO don't generalize unless you find out later you need the same algorithm somewhere else.

Otherwise, just leave the specific version in and stick some info in the comments (like a link to the high level description of the algorithm, if it's a common one that has a name, plus some pointers to your specifics).

<comment><USER24> Completely agreed. I do recommend playing with it (in like a repl or some other place) to see if you can possibly improve the algorithm, but have specific metrics for what an improvement would be.

I'm reminded of a section in Programming Pearls where they explore several versions of a function, each time improving it. Too often I'm impatient and want the final solution first.

</comment></comment></comment></comment><comment><USER25> I used to think I had a pretty good grasp on how the compiler was going to encode things.

After spending months looking at disassembled FreeBSD kernel C code in a profiler, trying to hunt down cache misses, I'm realize that it is hard to count on anything and that my instincts, even after 25+ years of C programming, are often wrong.

</comment><comment><USER26> I wonder if, from this: He gave as one example a book from an apparently- successful author (sales of over four million and counting) who firmly believed that the terser your code, the faster it ran. The author crammed multiple side effects into a single expression, used ternary operators like they were going out of style, and generally believed that run time was proportional to the number of semicolons executed, and every variable killed a puppy.

If the described author could be identified? Perhaps not absolutely, but they do have some specific stylistic quirks combined with a particular sales level.

<comment><USER3> I noticed that books in general have different constraints as well in not having an infinite vertical view of the code unlike a text editor. The act of publishing to physical paper imposes constraints on line length both horizontally and vertically. I wonder if that drove part of it.

</comment></comment><comment><USER9> > The people who would benefit from the warning don't have the necessary > background to understand it.

In my experience, this is accurate, but underscores a teaching opportunity. If you show Joe Beginner how to get the warnings, explain how they apply to the code and why the warning was good, they may slowly begin to appreciate the warnings. So that even if they don't understand, they won't necessarily dismiss the warning next time -- instead they'll go ask for help.

<comment><USER27> "Did you mean..." or "this is a bad idea because..." type notes in error/warning messages are underrated teaching tools.

The R package "data.table" does a good job at this. Just scroll through [https://github.com/Rdatatable/data.table/blob/master/R/data....](https://github.com/Rdatatable/data.table/blob/master/R/data.table.R) and search for "warning(".

</comment></comment><comment><USER28> From one of the comments there,

" _Nathan Reed_

" _July 19, 2017 at 4:34 pm_

" _Didn 't you just write such code with a straight face yourself only yesterday? ;) In your bytecode interpreter example:_

       memory[NextUnsigned16()] = NextUnsigned8();

" _Presumably the NextUnsigned8 /16 functions have side effects of advancing a buffer pointer, so this is nearly the equivalent of p[x++] = ++x._"

</comment><comment><USER29> Somehow I thought this would be about monads and using them to control side effects.

</comment><comment><USER30> Closest I've come to really embracing that kind of thing is [https://github.com/serprex/pythonaes/tree/master/aespython](https://github.com/serprex/pythonaes/tree/master/aespython)

NB it really is faster

edit: nvm, Crumb is way more that kind of thing: [https://github.com/serprex/Crumb/blob/master/C3.py](https://github.com/serprex/Crumb/blob/master/C3.py) I forgot I concocted that little devil

<comment><USER31> Are you expecting that code to be maintainable? It looks like it's been run through a minifier...

<comment><USER30> Nope, haven't had to maintain it in years. I did have to port it to Python3 which was a pain & grew it by ~30 bytes. The minifier was myself. It could actually be tighter but I optimized it for gzipability since I put it through a build tool to produce [https://github.com/serprex/Crumb/blob/master/Crumb.py](https://github.com/serprex/Crumb/blob/master/Crumb.py)

I even did a C version [https://github.com/serprex/Crumb/blob/master/Crumb.c](https://github.com/serprex/Crumb/blob/master/Crumb.c) which is a pretty boring implementation besides

        while(p>q?(j=d==b?:i*q/p,i++<p):(i=c==a?:j*p/q,j++<q))

</comment></comment></comment><comment><USER32> What does:

        a -= a *= a;

Do?

Looking through C# docs (which I assume this is, but don't have experience with), it seems A's value is changed to be the previous value of a, minus itself (ie 0) multiplied by a? In other words:

        a = 0

    ?

<comment><USER27> I would hope it's equivalent to

        a = a * a
        a = a - <USER2>

That would be the "least astonishing" outcome for me.

</comment></comment><comment><USER33> A lot of these pitfalls and concerns would just completely go away in a language that used immutable data structures pervasively

</comment><comment><USER34> The pythonic example I've seen not once:

{"some": "dict"}.setdefault("some", foo())

while expecting foo() to be short-circuited.

<comment><USER35> That's awful

What are people expecting with that?

<comment><USER34> They expect to have some form of "lazy caching":

      conf = {}

      def get_conn():
        return conf.setdefault("db_conn", expensive_creation_of_db_conn())</comment></comment></comment>


Facebook deliberately bans Grooveshark from its services - <AUTHOR> http://arstechnica.com/gadgets/2012/05/facebook-deliberately-bans-grooveshark-from-its-services/

<comment><USER2> I'd always avoided using Facebook to sign into any third party service due to privacy concerns (and eventually deleted my Facebook account altogether). But this is another good reason not to that I had never even really considered before. I wonder what will happen to user data for Facebook users... Will Grooveshark be able to let those users create a new local account and somehow tie their old data to it? Seems unlikely to me.

I never understood the one account to rule them all mindset. It drives me nuts when my wife uses the same password for every service she ever signs up for, and it seems that using the same account for everything is only mildly better (reduces the recovery time if your password is compromised to updating a single account instead of dozens).

Thank goodness for KeePass and random password generators!

</comment><comment><USER3> What Facebook giveth, Facebook can taketh away.

<comment><USER4> Yeah,

Adding Facebook as your sign-on adds another significant point of failure.

<comment><USER5> Not if you also ask for the user email though the Facebook API. In this case people can get access by getting a password reset sent to their email. This is what Grooveshark is doing right now and what most people using Facebook for signing in do too.

</comment></comment></comment><comment><USER6> GrooveShark must be the most legally attacked business ever. I'm surprised they haven't gone down. I still pay the monthly $3 plan, just to do my part keeping them afloat, even though I rarely use it these days.

<comment><USER7> Hey ricardobeat, Grooveshark developer here. Thanks for the support! It just so happens that we're currently making an effort to reach out to users who haven't been back in a while to find out why and see if there is anything we could do to improve the service. If you'd like to contribute your thoughts, just shoot an email over to firstname.lastname@example.com

Thanks!

<comment><USER3> I spend about half my time in other music services (Turntable.fm, Last.fm, Spotify, etc.). What I would really like to see is better playlist import/export capability. For instance, I would love to have the same songs available whether I'm spinning in Turntable or just playing music for myself.

I realize that by the nature of the problem, you can only fulfill half of it. I also know that it's probably a pipe dream since lock-in is so valuable, but that is what I would really like to see from my music services.

<comment><USER7> Thanks for the feedback. One of our other developers created <http://groovebackup.com/> to make exporting playlists easier. It's not officially supported, but it should get the job done. :) Another dev was working on playlist importing as a side project but I think it fell by the wayside.</comment></comment></comment></comment>


How Facebook Is Stealing Billions of Views - <AUTHOR> https://www.youtube.com/watch?v=t7tA3NNKF0Q <comment><USER2> This video is going quite viral since the past few days.</comment>


Show HN: DruMVC, a simple drum machine built in the main JavaScript frameworks - <AUTHOR> http://drumvc.com <comment><AUTHOR> I built this mainly to teach myself Angular, React and Vue. As the title suggests it's inspired by todomvc.com, though it's got a long way to go before it hits those dizzy heights. A few new examples are in the pipeline (React- Redux, Ember and Vuex).</comment>


Ask HN: What keeps you from writing a blog? - <AUTHOR> <comment><USER2> I've blogged on and off since finishing college 11 years ago. Some posts about programming got millions of hits.

But this was mostly a decade ago. Today it is very difficult to find readers for blogs. This is due to:

1\. Professional content-farms having thoroughly won the SEO game.

2\. A shift in people's media consumption preferences from text to video and podcasts/audio-books

This year I replaced all my blogging with YouTubing and am finding it vastly easier to build an audience and connect with people.

I don't see myself going back to blogging and would strong recommend vlogging or podcasting instead. Be a person of your times.

</comment><comment><USER3> Since I started a wiki, I haven't wrote a single post. I think the reason is that writing a 'blog post' feels like too much friction when I can just drop a note somewhere in my corpus of knowledge.

Makes it easy for querying too.

[https://github.com/nikitavoloboev/knowledge](https://github.com/nikitavoloboev/knowledge)

<comment><USER4> This is the exact reason that I started writing "posts" or "articles" even though I haven't put any on a site yet. I was putting stuff in a wiki and felt like they were unfinished ideas. I've found that the wiki is where the idea goes and the article is where I can really flesh out understanding. When you take the time to write something out with an outline and real consideration, you understand it better. It has helped me figure out my own thoughts on a subject when previously I only had surface opinions.

</comment></comment><comment><USER5> For the most part, branding. I don't use my real name online, or have much interest in doing so.

So I'm not entirely sure how I'd brand a blog that doesn't have a specific subject to cover.

</comment><comment><USER6> Being unable to find a point at which I'm happy with the outcome. I have an uncontrollable fear that what I create is not good enough to share, be it articles or code, while my rational self acknowledges that the quality is more than ok and might help others.

I never wrote about basic "How to FP in X language", "Here's a script I wrote over the weekend, it's amazing", "How to git" articles. This limitation I have on myself pisses me off when I read most of the content on medium / dev.to. I see that people are going for cheatsheets / how-to-x-in-10-minutes-but-not- really-understand-what's-going-on content, and I feel that either my content will not be consumed, or it will be discarded as pretentious.

Add to this that English is my second language, and other personal insecurities and flaws (vanity - "I need to appear smart to my peers", vanity guilt - "I'm trying to pose as someone else", etc), and you've got a pretty bad recipe.

Over the years this has turned into over countless abandoned blogs and side projects.

Lately I'm trying to fix this and other issues (not connecting to people, etc) by streaming while I do stuff, but often I don't manage to convince myself to do it.

This is very much an emotional problem that I am aware of, and I notice the harmful patterns as the thoughts surface in my mind, but I'm not strong enough to block yet.

^ everything here applies to comments as well

</comment><comment><USER7> What I'd like to blog about is a niche of a niche of a niche which I'd like to someday consult in and I'm afraid I'd give too much away

<comment><USER8> You might shoot yourself in the foot with this attitude.

</comment></comment><comment><USER9> I can write but I'm afraid of exposing lack of technical excellence. It seems like I should be a true expert if I'm going to write a technical blog, and I'm not sure I'll ever feel like I'm that competent. Or another way of thinking about it, there are so many awesome technical blogs out there - what do I have to say that they're not saying but with more skill?

<comment><USER10> I can relate to this fear; it's closely related to imposter syndrome. But I think when we read established blogs we accept that they're probably accurate, and we readily forgive mistakes and slight inaccuracies. We don't afford ourselves that same forgiveness.

Writing a blog post, or any form of technical writing, is an exercise in laying out what we know, and watching the conversation that follows. A willingness to revise what we've written goes a long way toward addressing this fear. I view public technical writing as a way to fill in my knowledge gaps; when people point out my mistakes, it's like working on a larger team, where there are more people to offer feedback.

That said, you do have to do your own research. There's a big difference between writing a post that misses a couple nuanced points, and writing a post that's entirely misdirected. Few people will criticize you for the first, but if you make regular posts that are way off base you won't do anything good for your reputation.

</comment></comment><comment> non-entity Mostly just not having something to write about. I probably will if I ever get started on one of my numerous backlogged project ideas. Of course even then there's issues to tackle, like choosing a domain name and getting anyone to even see it.

</comment><comment><USER11> How would I get people to read it? The search engines of today won't show my tiny blog when they can show a huge, popular site instead. It would take years of work to get any kind of a decent following.

</comment><comment><USER12> (a) memories of Dave Winer promoting blogging.

(b) a preference for long-form discourse.

<comment><AUTHOR> Could you elaborate a bit about Dave Winer? Has he somehow traumatized you?

<comment><USER12> Not traumatised, but at the time I did view going from shared discourse spaces to sharded discourse (albeit with comments & blogrolls) spaces as having been a backwards step. Looking back from today, I'll admit blogging was an improvement upon its successors :-)

related: [https://news.ycombinator.com/item?id=23337759](https://news.ycombinator.com/item?id=23337759)

Edit: props for turning off analytics on your blog. Молодець!

</comment></comment></comment><comment><USER13> Botnets hacking Google rankings</comment>


Microsoft Releases Emergency Out-Of-Band Patch - <AUTHOR> https://technet.microsoft.com/library/security/MS15-093 <comment><USER2> > _The attacker could also take advantage of compromised websites and websites > that accept or host user-provided content or advertisements by adding > specially crafted content that could exploit this vulnerability._

So ad networks are a delivery vector.

Interestingly, both ESC and EMET could help mitigate this, so I wonder if it's a JavaScript or similar exploit.</comment>


Ask HN: How Can I Be More Hardworking? - <AUTHOR> I work from home. I make enough money to work about 10 hours a week so I often work 10 hours a week. The rest of the time, I don't really do anything. "Nothing" can range from hours on Stack Overflow, spending 4 hours filling a form, vacuuming the office, or having an hour long morning tea.
I have a very productive workspace; own room, fast equipment, good workflow. I eat healthy, sleep early, wake early, get enough exercise.
I've tried all the major productivity tips - meditation, Pomodoro, gamification, watching motivational videos, RescueTime, nootropics, plain grit, keto. They help for about a week, but then I build immunity to them.
I can easily cold turkey something like Facebook but this just ends up replaced by something else like breadmaking or reading books.
I tried working full time. I can work 14 hours/day full time just fine. But when I'm done with it, I still go back to working minimum hours.
I like my job and I have above average motivation and discipline. I have no willpower issues otherwise.
What else is a good way to increase my work rate? <comment><USER2> You've had a _really_ poor response from the HN community here. Barely a single comment even attempts to speak to your question! HN is normally pretty good at resisting Sturgeon's Law, but not today.

muzani isn't asking to be talked out of working more hours, everyone.

Anyway, my suggestion: it sounds like you work alone. Maybe try working with other people, for a day or two per week. (I don't know if that's compatible with your line of work, or if you'd consider taking on a different one.) The camaraderie may help you make a habit of it.

Also, a formal commitment to turn up each week is likely to work much better for you than a take-it-or-leave-it arrangement.

<comment><AUTHOR> Yeah, that sounds like something I haven't tried. I actually work really well remotely; my most productive time was idling in chat rooms. But unfortunately, forums like this and reddit are too distracting. I'm not so fond of coworking spaces as they come with productivity hits of their own.

Oddly enough, it is quite reassuring that there are not a lot of helpful responses, because it means it's a problem that nobody has a solution for.

<comment><USER2> I think arandr0x has captured the reason for the poor replies -- people aren't clear on what it is you're really after.

If you're committed to work that's fundamentally just _you_ working alone, there's probably not as much value in my suggestion as I'd hoped.

Even so, perhaps finding some way of turning your planned extra-work-day-per- week into a formal commitment, would help.

</comment></comment></comment><comment><USER3> Why do you WANT to work more?

You are in the enviable position of being able to work for just 10 hours per week to support your quality of life. Perhaps you could pick a new hobby and dedicate your free time to becoming a master woodworker? Perhaps you could find a cause you care about and volunteer your free time to helping in some capacity? Perhaps you want to learn to paint or travel or meet new people or, hell, just sit in the park and feed the ducks.

Or if you really do want to do more income generating work, what do you want to work ON? Just saying "I should work more" isn't going to cut it.

> It is not enough to be busy. So are the ants. The question is: What are we > busy about? - Henry David Thoreau

<comment><USER4> Why is the top answer to "how can I work more" always "work less"?

If you don't agree with that the poster is trying to do just don't answer instead of undermining their motivation.

<comment><USER5> Perhaps because a desire to spend more time working is, in the grand scheme of things, a colossal mistake.

You get top answers advising the OP to work less because some of us lived through the same problem and in the end realized what a colossal mistake it is to waste your life living to work instead of working to live.

How many people have laid in their deathbed complaining how they didn't spent more time at the office pushing some paperwork? Hoe many complained they didn't spent enough time with their loved ones?

Yes, the top answer is always "work less" because that's alwayd the right answer.

<comment><USER6> I disagree with this. Some people do not want to have families, and some people are really competitive and ambitious. Not everyone's goal is to spend their time with others or leisure.

Furthermore, I know for myself I feel like shit after a lot of social activity or leisure, and feel actually really great after working for a long amount of time. The only hard part is starting.

<comment><AUTHOR> This hits the nail on the head. I feel like shit after too much social activity, and feel great after working very hard. I thought it was a given that everyone feels better after it and didn't see the need to mention reason in OP.

</comment></comment></comment></comment></comment><comment><USER7> In my experience, you have to build habits. Motivation and willpower can fluctuate, but forcing yourself to do something for awhile until it becomes the norm tends to work for me (assuming it's something I value).

Now I have a question for you. How did you end up in a situation where people will pay you for ten hours of work a week instead of forty?

</comment><comment><USER8> Surrender to yourself. Acknowledge your limits and accept them. Know that you are enough and you are not the hours that you work or the effort you put into things. You are not your works. Through surrender and acceptance you'll allow yourself to stop focusing on how you aren't doing enough and instead reframe into a perspective of gratitude for what you are doing and can do.

</comment><comment><USER9> It sounds like you're trying to deal with boredom rather than a need to work harder. Working from home only ~10 hrs/week, I could certainly see myself going a little stir-crazy.

Have you considered changing your routine a bit? Maybe try working from a coffee shop, or rent a co-working office for a couple of months.

<comment><AUTHOR> I've tried working from other places. It's actually a little less effective. It's tempting to procrastinate other ways - walking a little further for lunch, taking long walks around the nice co-working building, or just making small talk with people.

Coffee places tend to cut the internet after an hour, which straight up kills flow. I have issues starting, not continuing work, and this limited time brings enough dread to not start at all.

</comment></comment><comment><USER10> This was my life in college and I eventually realized I just had an above average prioritization mechanism. If it doesn't really matter, and I don't feel like doing it, it's not getting done.

It's actually pretty productive at baseline since I can do the things that do matter lightning fast, so if you're like that, just try to do more things/more varied things (for example start a class not related to your job or get a second job not in the same field). (Also different/more intense physical activity. I don't know if you're like that but I'm a standard issue adrenaline junkie in addition to having selective motivation.)

<comment><AUTHOR> This is true. I think I get paid way more per hour than average, and a good reason is doing things quickly and effectively.

However, the bottleneck is just doing more work. I do secondary less paid jobs like teaching and mentoring for events, where I can work 10 hours per day just fine, because it's mostly physical/social. But it doesn't help things and makes me too tired to be productive coding, which is where the real money is.

<comment><USER10> So it _is_ for more money.

At 10h/week I'm assuming you're a consultant. Have you tried accepting more jobs than you feel you can do (not a lot, a little more) and then giving the client a deadline? It's not usually recommended because it's stressful but you're essentially having issues not having a boss and as a freelancer the clients are your boss.

It seems like your efforts to work more are very self-directed (working on ideas you had vs things customers are asking for) -- in my experience some clients will definitely bring you metric tons of coffee and breathe down your neck for hours if you'd let them, so doing client work may be easier (and well, more lucrative). Smaller clients are more agile(/annoying). Clients who are local are more likely to engage in high-pressure behavior to remind you they're important, like, pick up the phone.

</comment></comment></comment><comment><USER11> Have the same problem here.

The only thing that motivates me is the EXTREMELY interesting work.

So I'm starting thinking that I don't need the tools to improve my ability to work harder, instead I need the work I want to work harder.

If not - then I should not worry about this.

</comment><comment><USER12> Why do you want to increase your work rate? I find having an external goal can help drive productivity, at least a bit.

<comment><USER13> Similarly, what do you want to work on? (Motivation for working on your job can be very different than motivation for a side project)

</comment></comment><comment><USER14> It really takes obsession, you have to be obsessed with what you do to output > 40-50 hour work weeks. <—- this is excluding extremely high pay which can be another motivator albeit a short term motivator

</comment><comment><USER15> 3 months ago I started waking up at the same time every day, and immediately having a breakfast with good amount of healthy fat. It's been a game changer for my consistency. Some days are more productive than others, but in general I hardly ever have the useless days I used to have where i couldn't seem to get anything done. I initially had a hard time waking up on time, but I got the philips Hue smart bulbs and the sunrise routine on them has really helped me wake up. It's much more pleasant than an alarm.

<comment><USER16> what are you eating for the healthy fat?

<comment><USER15> There are a few good approaches, but an easy one is adding chia seeds. A tablespoon of chia seeds has 9 grams of fat (omega 3 mostly but not DHA), 4 grams of protein and 11 grams of dietary fiber. I usually soak them for about 5 minutes while i prepare a protein shake or coffee, and then add them into said protein shake or Greek yoghurt. Most people don't get enough dietary fiber, so this is especially helpful to your productivity if it means less miserable constipated toilet time, like it did for me.

</comment></comment></comment><comment><USER17> I think the most important thing is wanting to do something. The problem in front of you shouldn't just be work - you should actually be interested in solving it.

That would probably range from something that's so easy you just want to drop the hammer and knock it out to a massive problem that you'll spend months or years chipping away at. Either way if you really are interested in working on it you'll think about it in the background and approach solutions from multiple angles. When you're excited about working on the problem you'll have no issues with working more than 10 hours per week if that's what it takes.

Everybody is different but I've found that when a problem is actually fun to work on "productivity" techniques don't really do much. It's mostly making a plan for what to do, working a bit, learning more, and either solving or starting the work cycle over again with new information.

So I think you probably need to work on more problems that you're actually interested in.

<comment><AUTHOR> This worked well a year into my first job. After several death marches, I've developed an aversion to work. The problems are still interesting and it's hard to stop when I start, but starting has become increasingly more difficult.

You're probably right in that productivity techniques don't work. They treat the symptom but not the root.

</comment></comment><comment><USER18> IMO, any response to this question is tightly associated with specific contexts of your current workspace and only gets more complicated when considering what kind of company you work at / where your current goals for the next 2-5 years stand.

You want to maintain progress and improve your output, but not at the cost of compensation or burnout. This is very hard to answer without those contexts.

From your post I think you're going about this the wrong way. External acts like meditating or "optimizing time" are easy ways to burn yourself out doing stupid things and end up flat out not enjoying your life. I tried this during a gap year I took to work at a startup in college while I was considering dropping out and one other time after I'd graduated.

Genuinely wasn't worth it.

My best simple advice is to just focus on work while you're at work or set 4hrs aside each day to really focus. Otherwise, live your life. In time if you follow these simple rules I think you'll find surprising gains.

</comment><comment> d-sc Find a purpose that drives you. Volunteer your time, start a business, have kids, get another degree, build a house start to finish. From the purpurse, the desire to get thinks done and associated time management will follow. Jobs can serve the function of having a purpose, but can also not be sufficient. Do something hard, not easy.

<comment> d-sc Heck: for what it's worth. If you or anyone else on HN is interested: I'm in college right now working part time, so I'm low on spare time, but I come up with seemingly profitable business ideas pretty regularly. If you want something to work on, drop me a line and we could discuss starting a side gig. I contribute leadership / project management, you contribute operations/ getting stuff done, split 50/50.

</comment></comment><comment><USER6> Getting into a flow state is most important, at least for me. Starting is the hardest part, but if you force yourself to start then it becomes much better. That being said, some people don't ever seem to hit that flow state or have trouble hitting it for certain things. In that case, I would advise doing something like a Pompadour clock type of thing, 30 minute sessions (or whatever time limit you want) of continuous work, then break, then another timed session.

Like others have said, a lot of it is just developing the habit of doing it. Habits are defined by cues, so you want to be in an environment that is associated with work, so you should avoid trying to work at home or any place you have associated with leisure.

</comment><comment><USER19> One thing that I've realized over years is that discipline beats motivation. Motivation to work on something hardly lasts a couple of weeks, but if you are disciplined enough to wake up every morning and work on it, you'll work on it longer.

Now coming to the main question - You need to have something to work for. I did the mistake of wanting to work more without having a solid goal. Unless you have a pressing deadline or a challenging goal, human mind always tends to slack off. Think by asking yourself this question - "What is the problem you want to solve?" and then work backward and allocate time to things.

</comment><comment><USER20> I'd say you _think_ you should want to work more but what you actually want is do the things that you do instead.

So I'd explore these thought patterns "I should work more" — maybe use Byron Katie's "the work" process?

</comment><comment><USER21> That's called living your life. I think you need to work on your mental blocks. i.e the fact that you feel the 'need' to work as opposed to 'wasting' time by living your life.

</comment><comment><USER22> you haven't mentioned your goals here anywhere - do you have any that you're pursuing? Working harder should be a means to an end (pursuing a passion, advancing a career, etc) and it's much harder to work hard on something without having a reason to do so. Also, arguably pointless.

</comment><comment><USER23> You might find it helpful to make to-do lists and only work on one thing at a time. By limiting your work in progress and context switching you might find that you don't need to work as many hours in order to get the same results.

</comment><comment><USER24> Can I ask why you think you should be more hard working? Social norms?

</comment><comment><USER25> TBH bullet journaling has been great for me. Making monthly, daily, and future logs has dramatically increased my productivity/anxiety.

I used to keep all these thoughts cluttered in my head and then they became blockers because if I did one I'd be thinking about the other.

While I use it to organize my thoughts and put plan to action, some may use it just an outlet for whatever.

</comment><comment><USER26> Not to get off topic, but what do you do out of curiosity?

</comment><comment><USER27> Change nothing. You are living the good life.

</comment><comment><USER28> Get a mortgage.

<comment><USER29> And 5 kids, in metro California

</comment></comment><comment><USER30> Go see a doctor and discuss ADD.

</comment><comment><USER31> You need to not work more. The bug numbers out of Luquillo are terrifying: 98% gone in the forest floor, 80% gone in the canopy. These are supported by numbers elsewhere.

Productivity is a self-destructive idea. Forget climate change; if the bug numbers are correct, we're going to lose the pollinators within a few years, and all your money won't another minute buy.

We all need to do the absolute minimum necessary to survive and stop reproducing until our numbers and lifestyle return to a sustainable level. This is now a dire and desperate matter of survival of our species.

<comment><USER32> I have to ask, why does HN seem to have a high number of these weird conspiracy-esque ramblings.

It almost seems as if they are generated by a neural net, and not a person.

<comment><USER22> California.</comment></comment></comment>


Jurassic Park OS in your browser - bra-ket http://jurassicsystems.com/ <comment><AUTHOR> Some nice easter eggs in the code:

        http://jurassicsystems.com/js/jurassicSystems.js</comment>


Silicon Valley's T.J. Miller to Host the Crunchies - <AUTHOR> http://techcrunch.com/2014/11/20/silicon-valleys-t-j-miller-to-host-the-crunchies/?ncid=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29&utm_content=FaceBook

<comment><USER2> Life imitating art?</comment>


Zero Tolerance for Slow Pace – Specific Steps for Rapid Development - <AUTHOR> https://betterhumans.coach.me/zero-tolerance-for-slow-pace-specific-steps-for-aggressively-fast-software-development-8f81f5c6ba00 <comment><USER2> The author lays out an overly idealistic approach to software development that has blinders to all other metrics but the speed of feature development.

> For ten years, I've been trying to make the case for a higher pace of > software development.

I suppose an obsession would be a good explanation for the blinders.

> In Rails, that mostly means testing at the controller level only

FWIW, controller testing in rails is frowned upon and has been abstracted to a separate library. The recommend way is to combine unit tests with fullstack feature specs.

> Now, several years later, I count 183 interactors. That's a pretty clear > indication that refactoring over time worked for us.

News to me that the number of interactors reflects the success of refactoring in a codebase.

> Now that we've gone remote, those notifications are basically the only way > to show people that you're at your desk.

Great leadership there. You could also make them keep their webcams on so you can literally watch them.

It's not all bad... but it's also nothing new.

Overall, i'll agree dev speed matters, but "zero tolerance for slow-pace" is a toxic motto to try and cement because tradeoffs are all about...tradeoffs. And there are a number of ideas the author raises that are... disagreeable, and particularly of concern coming from a leadership position.

<comment><AUTHOR> Author here. I think you're picking a fight just to pick a fight.

For example:

> News to me that the number of interactors reflects the success of > refactoring in a codebase.

In the context of the article, that was given as a proof of refactor as you go. The team chose a direction that they wanted to refactor towards. The 183 interactors are proof that they made significant progress in that direction without having to do any sort of full stops.

<comment><USER2> I'm disagreeing with the article you wrote and the way you wrote it. It read of fluff and arrogance, and I tried to respond to the points I found most objectionable; I'll be honest there were more. But nobody wants to read all that.

If my feedback was not constructive enough for you to improve your writing off of, I apologize. While I found what you wrote to be disagreeable, idealistic and in some cases downright toxic, it's only my perspective of the writing.

<comment><AUTHOR> I'm saying that I think you misread it. The example I gave flat out doesn't support your conclusion.

<comment><USER2> Why must my opinions be disregarded as picking a fight, or as a misread? You appear more intent to dismiss than understand. I've given my honest reaction to the article - that's the best I can do.</comment></comment></comment></comment></comment>


There are monsters out there. They hide in the edges of your social circle - <AUTHOR> https://email@example.com/for-good-men-to-see-nothing-c1be3e65c52f <comment><AUTHOR> I'm guessing this won't get much discussion, many votes, and that lots of people will be uncomfortable and say it doesn't belong. However, I think it's important, and relevant to this community, and so I've submitted it.

Even if you don't upvote it, even if you flag it, please, at least read it.</comment>


Crystal 0.34 - <AUTHOR> https://crystal-lang.org/2020/04/06/crystal-0.34.0-released.html <comment><USER2> If only all the attention and love for Golang goes for Crystal. I will keep dreaming... :)

<comment><USER3> Indeed. I don't know much about this language, but the x86-64 OS written from scratch in crystal was one of the most impressive things I've seen during my time on HN [1]. In the thread about it [2], it was mentioned that the author was in high school.

[1] [https://github.com/ffwff/lilith](https://github.com/ffwff/lilith)

[2] [https://news.ycombinator.com/item?id=21860713](https://news.ycombinator.com/item?id=21860713)

</comment></comment><comment><USER4> I hope someday Crystal will supplant Java.

<comment><USER5> That is unlikely to happen. Crystal has no corporate backing, it has no distinguishing features (in comparison to other, more popular languages), and most of all, it has no Rails.

<comment><USER6> Does Java have a Rails?

<comment><USER7> It has Play.

[https://www.playframework.com/](https://www.playframework.com/)

<comment><USER8> Why Play instead of spring?

<comment><USER7> Is that closer to a "Rails for Java" than Play is?

</comment></comment></comment></comment></comment></comment><comment><USER9> Recent and related: [https://news.ycombinator.com/item?id=22725829](https://news.ycombinator.com/item?id=22725829)

[https://news.ycombinator.com/item?id=22331005](https://news.ycombinator.com/item?id=22331005)

Other threads in the past year:

[https://news.ycombinator.com/item?id=21883882](https://news.ycombinator.com/item?id=21883882)

[https://news.ycombinator.com/item?id=21860713](https://news.ycombinator.com/item?id=21860713)

[https://news.ycombinator.com/item?id=21053366](https://news.ycombinator.com/item?id=21053366)

[https://news.ycombinator.com/item?id=20897029](https://news.ycombinator.com/item?id=20897029)

[https://news.ycombinator.com/item?id=20110253](https://news.ycombinator.com/item?id=20110253) (small)

[https://news.ycombinator.com/item?id=19694006](https://news.ycombinator.com/item?id=19694006)

Other large threads can be found among various crystals:

[https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=%22crystal%22%20comments%3E20&sort=byDate&type=story&storyText=none)

<comment><USER10> I'm sorry but this is a new post (posted yesterday) which appears to be specifically about 0.34, which should be worth discussing about the changelog?

<comment><USER9> Links don't imply that something shouldn't have been posted! They are just for curious readers to explore further. It's a way of sharing the riches of HN's archives.

Sometimes I spell this out explicitly: [https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20links%20curious&sort=byDate&type=comment). But it gets tedious to keep repeating. I'm still looking for a brief, unambiguous wording that doesn't lead to misunderstanding.

(Separately, it's true that HN normally shouldn't have a new front page thread for each incremental release of a project, because there are many more of those than there are slots on the front page. Users tend to upvote them reflexively as a sort of referendum on projects they like, and the threads is almost always a discussion of the project in general rather than of the specifics of a release. Those do get repetitive. But I wasn't implying anything about that with links.)

<comment><USER11> You could use the first paragraph of this comment in every post with links. For me that's explicit enough, even if a bit long to type. But you could save it somewhere and paste in the comment.

<comment><USER9> Alas, that would be too pasty. The hivemind breaks out in hives with that much repetition.

</comment></comment></comment></comment></comment><comment><USER12> Today I found out Crystal was a language that I didn't know existed until now, however one thing I couldn't work out about Crystal was a simple outline of its intended reason for existence/purpose?

i.e. You should consider Crystal instead of Ruby/lang-other for xxx because yyyy... or is this someone attempting to write a new language simply because they want to have what they think is 'the right thing' (which is perfectly acceptable, but not clear if this is the only reason).

I guessed it was inspired by Ruby from the syntax, but aside from not having too many variations of do..while, I couldn't easily discern what its intended reason for being is.

(I kind of got the comment about the best thing about it is there is no Rails for Crystal).

I did poke around quite a bit and it's not in the FAQ, so it probably should be.

<comment><USER13> Types and speed. Also native.

<comment><USER8> How is this an innovation? Kotlin and C# are probably faster on average. Also Kotlin can be native

</comment></comment></comment><comment><USER14> I worked on a simple cli-tool using crystal over the last few weeks, and it has been pretty great. The standard-library is nifty, and there are shards for common problems (not everything though).

Waiting eagerly for a way to cross-compile to Windows so I can build/release binaries the way golang projects do.

</comment><comment><USER15> Apart from Lucky [1], what other Web Framework are there for Crystal?

[1] [https://luckyframework.org](https://luckyframework.org)

<comment><USER16> There's [https://amberframework.org/](https://amberframework.org/)</comment></comment>


The Case for Tyranny - <AUTHOR> https://fakenous.net/?p=1720 <comment><USER2> > This isn't exactly an argument "for tyranny" (as my title colorfully puts it > — I have to attract clicks, you know)</comment>


Ask HN: How do you make use of traffic surges from sites like HN and Reddit? - <AUTHOR> Last week one of my projects made it to #12 on reddit.com (from /r/InternetIsBeautiful), and I've had sites or blogposts do well on ProductHunt, Reddit, and here on HN in the past.
What are the best ways to make use of surges of traffic like this?
Getting 250,000+ hits helps with search ranking, but I don't run ads, so it doesn't translate directly into revenue. It'd make sense to use it to grow a mailing list for future projects, but traffic from link aggregators converts 90% worse than normal referral / search traffic. So I have two questions:
1. What do you do when one of your sites does well on HN / Reddit / Producthunt?
2. Is there any way to improve the abysmal optin rate that usually goes along with link aggregator traffic?
Thanks! <comment><USER2> I've have a few massive traffic surges from Reddit in the past, as much as a few 100k visitors, and have been wondering the same. Usually it amounts to just a handful of opt ins, fewer than I get from about 1k of organic traffic.

My impression is that people are most just interested in taking a peek before returning to reddit, so unlikely there is much you can do. I think the real value from scoring well on these sites comes not from the traffic, but from journalists and bloggers who monitor reddit for things to write about. I've found a high scoring link on reddit often leads to several secondary backlinks, which bring more engaged visitors.

<comment><AUTHOR> Sounds like we have a similar experience. I noticed HN and ProductHunt resulted in more press than Reddit, even though they drove far less traffic to the site.

But maybe success on Reddit / HN / PH could be used as social proof when pitching journalists?

</comment></comment><comment><USER3> In the past I have included a "contact us for API access" email address, even if what I was posting was just an MVP. This helps me gauge interest in a potential SaaS, and has resulted in beta testers for a few of my projects.

</comment><comment><USER4> If the sites are on a root domain, then you can put ADWords on the site and get paid, but not much. Typically a thousand impressions is a dollar. Depending on how long the URL stays on the frontpage, you could be looking at 20,000 - 50,000 impressions which roughly translates as USD 20-50.

You get paid even more when ADs are clicked on.

To be honest this is a rather dated way to monetize a site now with the sudden surge of visitors using ADBlockers, and you might want to look into other ways to monetize, such as

\- Affiliate links

\- Premium/paywalled articles / content

\- Donation buttons, using PayPal / Bitcoin/Litecoin

Also keep in mind that since getting frontpage on HN is so rare, then it can't be a sustainable source of income

<comment><AUTHOR> Thanks. That's the impression I got, too: I looked at the numbers and decided running on ads wouldn't be worth it until I was getting far more steady traffic.

Do you know how the visitors:dollars ratio for less intrusive methods -- such as affiliate links or donation buttons -- compares to the ratio for display ads (~1000:1)?

</comment></comment><comment><USER5> Consider that most people coming from these sources are just looking for a quick read; they don't have a problem they're trying to solve (referral/search traffic), they just want to be entertained.

So I've gotten same number of subscribers from endorsement tweet that was probably seen by a few hundred people as I've gotten from thousands of visitors from HN.

It's important to have a good call-to-action for subscribing to the mailing list that is tied to your page content, rather than generic or unrelated. Gotten 3x improvement from that. But it's still a low sign up rate.

</comment><comment><USER6> Do you charge for a product? Why don't you run ads? Do you have affiliate links?

I'm not sure what can be suggested if you don't have some revenue generating conversion goals. Trying to get mailing list signups, social follows and social shares can't hurt though.

<comment><AUTHOR> 1\. I do charge for products — just not the more interesting open-source ones that tend to do well on HN & Reddit. (Also, my income from client web design & writing is probably loosely affected by the success of my blogposts and open- source side projects.)

2\. I don't run ads (at the moment) for both practical and philosophical reasons. (Practical: most of my sites don't get enough steady traffic to generate much revenue. Philosophical: ads are annoying and I block them, targeted ads invade privacy, and ads are designed to get people to buy things that they (probably) don't need.

3\. I've considered affiliate links in that past, but haven't used them yet: like ads, the benefits don't yet seem to outweigh the costs. Aside from Amazon, which seems to be the most popular, what affiliate networks would you recommend?

<comment><USER6> Fair enough, but I don't understand what the big deal is. I'd try ads, affiliate links and monetising existing free projects myself. If you're going to make your interesting projects free, avoid ads and avoid affiliate links you're not leaving yourself many options. Would you have any income at all if you extended these ideas to your client work?

</comment></comment></comment><comment><USER7> What are you trying to accomplish? What are your goals?</comment>


Your New TV Ruins Movies (about LCDs and motion smoothing) - <AUTHOR> http://prolost.com/blog/2011/3/28/your-new-tv-ruins-movies.html <comment><USER2> This is a long-winded version of the old "24 FPS film look" argument, with extra snobbiness and grumpiness. See extensive previous discussion here: <http://news.ycombinator.com/item?id=2397246>

I have a Westinghouse "HDTV monitor" with minimal processing (although still built-in speakers, sigh); I wonder if they still make those.

<comment><USER3> The author's apparent belief that 24fps is the only good way to make movies might be wrong, but his (central) thesis that interpolating / smoothing 24fps video up to higher frame rates is spot on. Regardless of the future popular frame rates, right now the vast majority of film has been shot at 24fps and it is wrong to change that to something else while watching it. That is not how the movie was intended to be viewed. The people who made the movie did so with 24fps in mind. When you view it smoothed at 120fps, you are warping it, you are watching a different movie.

So, I think it is wrong to dismiss this piece, following its advice will upgrade your movie viewing experience.

<comment><USER4> Movies also weren't intended to be viewed compressed down to 1% of their original size in a room with lights and coloured walls. The people that just want to watch movies at home don't care, and grumpy film snobs will know better and turn the setting off.

<comment><USER3> To be fair, the screen may have 1% of a theater's surface area, but the angle of view is more like 30 - 40% of what you get in a cinema.[1]

I agree that going to see a movie in a theater is superior to seeing one at home but that is no reason to dismiss the OP's very real issues with the default TV behavior. The whole point of this post is to educate people who _aren't_ grumpy film snobs on how easy it is to improve the way your TV lets you watch movies and to point out that the incentives for selling TVs do not align well with actually watching a movie. Dismissing the author as a "grumpy film snob" doesn't make sense to me. His arguments seem completely valid.

[1]: assuming 40 foot wide screen sitting 30-40 feet away compared to a 4 foot wide screen sitting 10 feet away

<comment><USER4> I was referring to data compression not the size of the screen. A Blu-Ray is about 1% of the size of an uncompressed HD film. Of course if you're seeing a digital copy in the cinema it's been compressed down already so a Blu-Ray is about 13% of that. But a Blu-Ray is a tiny amount of data compared to what you see on film. So if you're already prepared to live with that, does tweaking a setting on your TV make that much of a difference to the average consumer? How much of a difference does it make?

<comment><USER3> I'm not sure how the amount of data is very related to the importance of the settings on your TV. Now, of course, all these things are sort of ephemeral, so it is pretty difficult to quantify their effect on the viewing experience, but the article brought up two different settings on TVs that have bad defaults.

1\. Color. As the images in the article show, changing the color profile makes a real difference in how you see the movie. Color can set the tone in a movie very effectively, so when it is wrong by the amount seen above, I think it can have a tangible effect on how you see the movie. Home video may carry a lot less information than film, but I've met people who work on color and an enormous amount of effort goes into making the colors look good on TVs and computer etc.

2\. Smoothing. It is possible that TV's have gotten better at this, but I have watched movies with pretty aggressive interpolation on and it is jarring. It is a common reaction to feel like the movie has been soap opera'd, but more importantly, panning shots often seem strange because everything moves on screen a little differently than you expect. At least one other commenter in this thread says that they have gotten used to the smoothing effect, so it is possible that over time this will have less of a negative impact than it does now. But I do believe that the best filmmakers understand their medium well and that interpolating does more harm than simply losing 99% of the information to deliver the movie on Blu-Ray.

Anyway, I agree that without changing your defaults you could live a long and happy life watching movies without missing too much. But, my main take away is that no one _wants_ the default settings on your TV except the TV companies. It is trivially easy to make your TV better by changing two settings, and it is a crying shame that the defaults picked by the manufacturers are bad.

</comment></comment></comment></comment></comment></comment><comment><USER5> I can't speak for anyone else, but my experience with the motion smooth was that at first it was distracting, because it created that 'home video' feel. But you know what? I've had that television for nearly a year now, and I have got used to professionally shot film looking like that. The result is that I have lost the association with home video in my mind. Watching films without this feature now just makes me feel as though I'm watching a low quality product.

<comment><USER6> You're not alone. We are a minority though.

</comment></comment><comment><USER7> Gah, motion smoothing. More than once, I've been asked by friends why their brand new huge LCD TV "makes movies look like they're filmed with a handicam." Always the same answer: turn off motion smoothing. It's a silly feature to ship with enabled by default.

</comment><comment><USER8> Does the OP really think directors intend to shoot at 24fps because of the artistic beauty of 100 year old technology, or because thats how it will be played and they do the best the can with it? It's clear from the IMAX, etc versions of movies like Avatar and James Cameron pushing for 48fps that this is a severe restriction on what a film maker can do.

I think most film makers would love to be able to control all the things a modern HDTV can do to an image.

I think this article is the equivalent of saying that we shouldn't have rounded corners on websites because designers have to work with IE in mind. OMG look how badly Chrome is screwing up those beautiful square corners.

<comment><USER9> Was double 24fps needed for the left and right view of the 3d version?

</comment></comment><comment><USER10> Your new TV only ruins them if it's running with the 120hz or 240hz smoothing interpolation turned on. Chances are, you turned that off as soon as you set your television up, just like I did.

There's no question that 24fps film looks awful using these gimmicks. The real question is will film running at a higher rate (like 48fps) will also look bad? I know that the show The Event seems to be filmed at a higher frame rate (it looks like it was filmed in Video rather than Film) and it is disconcerting to watch. It actually makes the acting look bad, which I don't think it would otherwise seem.

However, like 3D, it's now a gimmick that it is included on so many sets that you almost have to go out of your way to _avoid_ buying one that has them.

</comment><comment><USER11> We got our LED Samsung last year, and one of the firs things my wife (and I've noticed, but tried to get it) was the 240Hz smooth thingie. She hated it, she said all movies look like a game, theater, etc...

Okay, it's cool technology to speed up the frame rate (and some video games would be using such in the near future, some are to some extent)... But not for movies.

While games would always have difficulties reproducing true motion blur (because you won't know where you are going), movies captured that very well - do a still shot, and you would see the motion captured....

<http://freespace.virgin.net/hugo.elias/graphics/x_motion.htm>

Anyway thanks for the great page!

</comment><comment><USER12> I always though there was something strange about how movies on the newer 120Hz LCDs looked to me and this article explains why. Interesting read.

</comment><comment><USER6> This is a really pretentious article. Everything described there as a huge problem is just a setting away.

Want to improve your movies?

Invest in a TV with a huge gamut, so dark areas or areas with a color gradient will not show bands or borders where the color changes and also have those huge compression artifacts.

However, the same Plasma TVs recommended in the article have better color gamut than LCDs.

</comment><comment><USER13> My Philips 9404H has a "movie mode" which tones down the colors (contrast), switches to 24p where available and turns off all smoothing. It's set to be activated automatically on my Xtreamer and Blu-Ray, and the local-dimming LED's provide deeper blacks.

I don't need a plasma for that.

</comment><comment><USER14> I actually just got the Panasonic TC-P42GT25 mentioned in this article for $700 this weekend and while I was there to pick it up they sold their last in stock, the floor model. If you want one, call your local retailers cuz they're quickly becoming sold out.

</comment><comment><USER15> Is there a good example showing how motion smoothing works/looks?

<comment><USER16> If you have a TV near by that has the feature, watch a movie and toggle the motion smoothing every few minutes. It's pretty obvious.

</comment></comment><comment><USER9> Get a projector. Much easier to move when you move.

</comment><comment><USER17> Another offender is Netflix on the PS3: The PS3 has a 24p mode (for Blueray playback) but the Netflix app appears run at 60Hz.

</comment><comment><USER18> I'm so glad I haven't owned a television for over a fifteen years. Setting up and using one wasn't exactly straight-forward even back then and the situation apparently is only none the better but actually worse. I get shivers from looking at the preferences settings of VLC already: I wouldn't want that in a television as well if I had one.

</comment><comment><USER19> It's a shame that LCD's won out in the market... Totally agree that Plasmas are far superior.

A few issues with plasmas caused them to fail though 1) Early models had "burn-in" issues where an image would stay on the screen too long

2) You can't make them lighter or as thin as LCD's, they require glass panels

3) They require more energy (although the gap has narrowed significantly)

You can barely find a plasma in Best Buy these days.

<comment><USER20> how do video games play on the newer model plasmas?</comment></comment>


Moving to Gitlab Yes, it's worth it - <AUTHOR> http://www.akitaonrails.com/2016/08/03/moving-to-gitlab-yes-it-s-worth-it? <comment><USER2> If you are on the fence trying to pick up a Git Repository for self hosting, I'd recommend having a look at: [http://softwarerecs.stackexchange.com/questions/867/self- hos...](http://softwarerecs.stackexchange.com/questions/867/self-hosted- replacement-for-github/)</comment>


The original Common Lisp version of Reddit - <AUTHOR> https://github.com/reddit/reddit1.0/ <comment><USER2> I love the frontend markup in Lisp. Honestly, it's exciting to see a developed web application in Lisp outside of a standard web framework (granted these are all just files without context).

I feel that the syntaxlessness of the Lisp makes it fun to see how different people approach writing the same thing in a way that is a lot more reminiscent of creative writing than software.

This is super cool!</comment>


Campaign messaging war that's pelting our phones with texts - <AUTHOR> https://www.fastcompany.com/90469445/inside-the-2020-campaign-messaging-war-thats-pelting-our-phones-with-texts <comment><AUTHOR> All I know, is that if I receive a text from a volunteer from ANY candidate, they will immediately be on my "do not vote" list.</comment>