skysight-inc/HackerNews huggingface dataset:
Some other basic issues i have with Slack:

* Spell-checking is semi-broken on macOS when you have more than one system language specified.

* A few months ago they broke the holding-Shift thing when uploading files.

* The fake Markdown is awful. Aside from the fact that the syntax is just close enough to actual Markdown to be confusing — and i realise that's probably not something they'll ever fix, due to inertia if nothing else — the parser is extremely naïve (maybe based on regular expressions?). Notably, it doesn't support escaping, and it has weird issues with certain special characters (for example, it can't render the string `a|b` as in-line code because it contains a pipe).

* The cost for the paid version is really steep if your project/organisation is on a limited budget. I wish they would introduce a lower-priced tier.

* Maybe they aren't interested in this demographic, but a lot of people really want to use Slack for non-business-related purposes, and they've done nothing really to make that easy in terms of administration/management. Many people with this use case are moving to Discord, which is a shame in my opinion because the Slack client, despite its problems, is still (for now, at least) vastly superior for text-based communication.

* I know it's kind of petty, but they haven't updated the client to support the emoji added since Unicode 8.0 in summer of 2015.
Start-up R&D Tax Credit Question
An outside accounting firm has informed us we can count a percentage of engineering salaries in 2016 toward a payroll tax credit that can be used in 2017.

I'm concerned their fee is too high for the work. The cost is <50% but >30% of the credit so it's in the end the engagement is worth it.

Does anyone know what this type of advice typically costs on an average hourly rate?
Google has actually released a paper on codifying what discrimination looks like for lending (https://arxiv.org/abs/1610.02413 + blog post: https://research.googleblog.com/2016/10/equality-of-opportun...). It can be trivially extended to discuss hiring.

Basically a fair hiring process as defined by the above would be:

P(hire | features) = P(hire | race=1, features) = P(hire | race=2, features)

This may sound a bit silly or unnecessary, but unless this formula is specifically enforced, if a race were correlated with expected profit of a hire, a hiring algorithm might accidentally infer race from the other features. You can see the paper for an extended discussion.

With that background out of the way, let's consider hiring based on quotas. Since hiring takes place continuously across time, in order to maintain a quota across time we would need to change P(hire | race=1) based on the current composition of the company. Therefore P(hire | race=1) != P(hire | race=2) at least some of the time. Therefore it's discriminatory according to the above definition.

Of course, you may not like the definition. I would be very interested to hear an alternate formalization of non-discrimination!
B2G OS (FirefoxOS is no more)
> Approaches like "let's inherit from ORM class and add business-related methods", in my experience, lead to total disaster.

I don't disagree, in fact I'd go further and say that data and logic should not be coupled, but this is the Active record pattern which is far from the only way to use an ORM, most ORM's won't even support this pattern by default.
Mozilla 2 (2006)
Something along these lines is what I'm imagining. I'll have to poke at it.
We built voice modulation to mask gender in technical interviews.

https://blog.interviewing.io/we-built-voice-modulation-to-ma...
Every single resource/asset, including logos, CSS, webfonts etc. will be fetched from the server. The server will answer with a 304 Not Modified, but still it's one round-trip per resource, and more if SSL is involved.

On a 2G or nasty 3G link all that latency adds up. Oh and please don't mention "but clients should cache stuff"... caching stuff on clients is broken beyond repair, buggy as f..k (hello iPhone, hello Firefox, hello Chrome - honestly, I haven't been able to get ALL major clients on ALL OSes to properly use caching!) and if you expect half of your userbase likely has a totally-broken-caching client (i.e. old Android phones) you better build your infrastructure to require as few requests as possible => SPA route.

> And mobile radios don't immediately go to their lowest power state after transferring the data

Now imagine me reading a typical reddit thread on the front page. Takes me about 30 seconds before I am disgusted by some troll comment, and I go back to /r/cats. In the non-SPA case I'd have 2x approx. 10s of the radio blasting at full power, in the SPA case I'd have 1x 10s for the initial load of the app and maybe 2s for the second load of the 30 posts of /r/cats. Oh, and not to mention I, like many other people, like to reddit while on the train - which means in any case that 20 kbytes/data for a simple JSON is better than 2 MByte for each simple request. That small JSON can be transferred via EDGE if the signal is as bad as it usually is but good luck for your nerves if you have to wait ages for every website.

> Not to mention the CPU overhead of the SPA's Js which is non-zero even if radio battery usage is a larger issue.

Yeah but unlike broken browser caching this one is something YOU can influence, not having to hope your users some day have enough cash to buy a phone with proper up-to-date software.

Edit: missed yet another thing. An SPA can request thumbnails matching for the device display resolution dynamically whereas a non-SPA solution (usually!) has only one thumbnail size.
Multiple JavaScript ES6 modules in the same file does not impact Tree Shaking
> In reality, we've definitely written plenty of "python level" (application level) software in C, and the same is happening in Rust.

Oh, absolutely; you can certainly write higher-level code in Rust, and it makes for a far more comfortable experience than writing higher-level code in C. I didn't intend to suggest otherwise. And the ongoing futures work helps Rust address several additional areas that Go does well.

However, I don't think it makes sense to group Go and C together, syntax aside. Go cannot replace every use of C, because of its runtime and related expectations. (You can push it into some low-level environments if you make accommodations for its runtime, but you can do the same for languages like Python. You wouldn't necessarily want to do so in production, though.)
He's not 'hacking his own genes' though, is he? There's no modification of his germ cells, nor is there stable incorporation of the exogenous material into the genome of the affected cells - more just transient expression of the protein he's interested in.

Giving the extraordinary complexity of the ageing process, with the interplay between multiple genes, each with multiple splice variants and post-translation modifications, and whose expression is modulated by both genetic and epigenetic factors, the chance of success with this approach is minimal.
I like sweet baby ray's at your local store.

If you want something more special, check out this sauce from my local famous bbq joint. It's slightly spicy, and they've been around going on 100 years. Hard to get a seat in there.

http://www.mcclards.com/shop.html
Given that none of those things are important to me, and that threaded messaging is important to me, I suspect we have very different answers to that question.
It applies to TDD as well, unfortunately a lot of TDD proponents don't really acknowledge that.
so what kind of discrimination is this then i wonder? hiring people from cultures / places who tend to do more computer science? ie. white guys, indians and east asians?
Maybe add 
 next time, although the smiley should have been a dead giveaway.
SO much not this. They are a public company and a government contractor, not a person.
Just to name one example, Snowden disclosed the America's wiretapping of 35 foreign leaders: https://www.theguardian.com/world/2013/oct/24/nsa-surveillan...

As for "articulating an impact" that's both obvious, a big diplomatic incident between the US and the nations whose leaders it was targeting, and IRRELEVANT. Snowden was trusted with Top Secret information and it was his duty to protect it, whatever he thought the impact of leaking it would be notwithstanding.
Azul still have pauses (10-100ms).

> Azul Systems has built a custom system (CPU, chip, board, and OS) specifically to run garbage collected virtual machines. The custom CPU includes a read barrier instruction. The read barrier enables a highly concurrent, parallel and compacting GC algorithm. The Pauseless GC algorithm is simple, efficient (low mutator overhead), and has no Stop-The-World pauses.

Azul is very similar to Shenandoah we are talking about. Updating of a wrong pointer still needs time, which can be unlucky when write trap is triggered in the middle of moving of large object.
I wonder what the transgender community has to say about this given their efforts to prove that there are differences.
Thank you for your insightful comment - I wish people like you would testify in front of congress on the abuses of the H1B process that are clearly widespread.

It's depressing to think about the stress and anxiety this might cause someone who is literally facing deportation if he doesn't "suck it up" and keep working at a sweat shop for the same salary they were hired at 5+ years ago.
I've found Rust to be quite enjoyable, sometimes the borrow checker is annoying but you get used to it pretty quickly.

I only play around with it for personal projects but I would have thought that if I went from scratch and spent four days on it like the article stated that I'd be pretty productive.
Indeed. Just by normal statistical variance, we should expect that at least a few companies would have employee distributions that aren't exactly in line with the applicant population.

When the government looks at everyone's employment data and seeks out people who are deviating from the mean, they are guaranteed to turn up spurious results. This is known as "Data Dredging" in science, and it is very bad.
I haven't read the whole article, but it looks interesting. A couple of pointers/tips, though: The way expenses and depreciation are handled between godo kaisha and kabushiki gaisha are different. Make sure you understand those differences before you choose your path. There are advantages and disadvantages. The absolute first thing to do before you even see a lawyer is to find a good tax accountant.

If you are American (or if you are a citizen of a country with similar tax laws), it is very important to talk to someone who understands the intricacies of how the IRS works. I'm Canadian, so I don't know the details, but ownership of a foreign company can incur significant responsibilities with the IRS. The easiest way around this if you have a Japanese spouse is to have your spouse own the company. Again, see a tax accountant.

Finally, if you have a Japanese spouse who is dependent on you for income, then it is incredibly useful to have them be the CEO and president of the company. Income splitting in Japan is not legal. If you hire your spouse, they have to work for the company exclusively and get paid an amount representative of their position. It turns out, though, that the president of the company has no defined salary range and no defined duties. This is exceptionally useful.

In my company, my wife is both CEO and president. She has to work exclusively for the company, but I didn't really imagine that she would be very busy. As it turned out, though, even though I am fairly good at Japanese, having my wife handle all the business affairs has been incredibly useful. She can do everything twice as fast as me. Also, people we need to talk to are much more comfortable knowing that there is a Japanese person there would can navigate any language/cultural issues that might crop up. Dealing with the bank, government officials, etc, etc is just hugely easier and more efficient.
If you're running amazon.com with that mindset, 0.01% of transactions is millions of dollars a day.
Open spec, $29 COM shrinks Pine A64 to SODIMM dimensions
If it was really like that, people would not gamble or partake in activities that endanger their health such as smoke.
I could see how this statement could be construed as inflammatory, but I don't think he was implying that Go is a play toy. He was implying that you can't make a judgment on the language based on making play toys (the toy IRC client mentioned in the article).
Definitely a missed opportunity for Apple. Crashlytics would have been a huge asset for their own analytics.
That's not true. It's a dual intent visa - otherwise one would not be allowed to file for green card while being on H1 visa
No, there is already no escaping from CUDA, so it is already a monoculture nevertheless.
No need to be condescending - you have no idea who, for whom, or where I hire. I was simply asking a question.

But I can see how someone who says they work at Facebook in their profile thinks, thinks they are hot shit.
Go's nils aren't typed, it's just that an interface value can have a type and point at nil. Also, I've never run into this "problem" in all my time of using Go...
Example: The NBA institutes a rule requiring 50% of players to be non-Hispanic and white. This is well below 62%, the proportion of the population that is non-Hispanic and white. This rule discriminates against every black athlete who would have made the cut but didn't because a less-qualified white player was hired instead.

Discrimination means to select one thing over another because of some criterion. It is precisely the correct word for this. Racial discrimination means selecting one person over another using race as the criterion. Racial discrimination is always immoral and is, thankfully, illegal.
> the more I've grown to appreciate the concept of Optionals

You may also enjoy a language that supports the generalization of Optionals, which are Algebraic Data Types (ADTs). Optionals are a single, limited application of ADTs.

Optionals allow you to shift null pointers (and null pointer exceptions) to the type level. So instead of having to worry about a function returning null, you just deal with Optionals whenever a function returns one.

There's another ADT, usually called "Either" or "Result", that allows you to shift exceptions to the type level. You can see from the type of the function what kind of exception it might return, and you deal with exceptions like any other value instead of via a special exception handling mechanism.
Thanks for this, I always have time articulating what I like about TCL.
Yes this is correct. I do not in anyway think Go is a toy. It's a fine language. I love kubernetes and it's written in Go. A lot of people took that statement to mean that I thought Go is a toy and I didn't mean that, so I apologize.
I write small scripts in Rust all the time. It's perfectly suited to it even though it's not an interpreted language.
Much less than from any FFI.
Reddit discussion:

https://www.reddit.com/r/linux/comments/5opqg7/free_phone_op...
How important was it to get support into gcc? llvm wouldn't have been enough?
In isolation, the photos in the carousel would not lead me to believe that Mozilla is virtue signaling as the photos are just pictures of people. The aggregate message from their ad copy and the specific choice to use loaded terms is what made me aware that they wanted to employ this strategy.

However, to be cheeky, if you wanted to talk solely based on which photos passed editorial approval, compare those represented to the physical attributes of their leadership team: https://blog.mozilla.org/press/media-library/bios/
Wrapping Packages to Isolate Code Responsibility
> b) a respect for language and words, which comes across in lots of different places in the interface.

Can you please give an example of how Lyra encourages a respect for language and words, when it is not moderated?

I'm trying hard not to be rude, as I respect anyone who produces their own platform, but as I see it, the only thing that makes words extra important in Lyra is the fact that it doesn't support images and other media.
It's 2017 and I have a great mobile app idea. Start with Android or iOS?
It's 2017 and I have a great (new) mobile app idea. I need to make a prototype quickly and would like to get to market quickly. Android and iOS make up 99% of the market share - 86% Android, 13% iOS. Is it a given that I have to support both right out of the box, or should I start with one or the other? Android has a higher market share, but are their other factors I should include in my decision like marketing effectiveness, entry to market, etc?
Rust's channel is entirely lock-free. It always was, ever since the first 1.0 release.

This is why I think Rust project sometimes has misguided priority. Is making channel implementation lock-free a good use of pre-1.0 time? Evidently, as shown by Go, lock-free channel is not necessary for wide use, and can be added later. Implementation work should have been deprioritized and probably spent on, say, async IO like Tokio.
I can't think of dozens of living whistleblowers who blew the whistle on the CIA or NSA, or both. Which group were you referring to?
so what happened in the last 10 years? Low interest rate venture capital (basically rich peeps trying to get richer using even richer peeps monies) have caused a market discrepancy which is now showing signs of major correction.

Now VC funded folks who were told they could be the next Zuckerberg have finally figured it out-your life is being commoditized into hedged call options for the rich with high probability of recouping their speculative bets. Your time is always going to be cheaper than a VC's and they've figured out a way to make it even cheaper at your expense and for their own gain.

People are figuring out their stock options aren't actually worth much and that they've just spent a huge chunk of their life helping the rich get richer with the illusive dreams of becoming the next Larry Page or Zuckerberg.

It's almost identical to the ebb and flow of workers in startups. Following this logic, we can clearly see these zombie unicorns are not going to be able to monetize like they've been able to raise money. We will see the rise of bootstrapped companies fighting each other to gobble up the vacant marketshare.

The worst that can come out of this is loss of economic productivity (VC investments have yielded economic returns for the 0.1% at the expense of the rest).

And of course lot of Venture Capital partners finding out their portfolio of 10 variants of Uber or Tinder is going to need more money to keep their share valuation high as capital is drying up due to global uncertainty.

They might not be able to buy a Lamborghini SV Roadster and a penthouse in downtown Vancouver. The world's smallest violin for the rich is always expensive and at great costs to society. Kevin O'leary worshippers call wining and dining "free market forces". A free market that serves less than 1% of the population with none of the benefits trickling down to the rest.

I had a blast not reading the article.
The crimethink goes deeper than that. IQ indeed differs by heritage. Why shouldn't other personality traits? What if one group has personality traits that on average lead to greater success getting through the process at a corporate hell like Oracle?

It shouldn't matter. I dream of a day when we look at people and people and not representatives of their identity groups.
Classifying East Asians and Indians in the same group is redundant to begin with. The difference in culture, languages, etc. between East Asian and Indian immigrants is much higher than the differences between white (European) and Hispanic immigrants and Americans.

On that point, the entire racial taxonomy, especially when used in the context of "diversity in tech", is elementary and useless. The average black American has more in common with an Asian American than an Asian American and an Asian immigrant or a black American and an African immigrant.

If you want diversity, you have it in the tech world. True diversity (in terms of communication style, beliefs, culture, etc.) is found in the taxonomy of country of origin. The tech world has a high immigrant %.

Ironically, the group of people who are most vocal about "diversity in tech" are less diverse than people in tech since most people who are advocating for "diversity" are American.
> This is because of higher ranked lifetime bounds...

No, it's because the function you're returning is of type FnMut(&B) -> C, but your F function is of type FnMut(B) -> G. It expects an owned value of B, but you only have a borrowed reference to a B. Just make F of type FnMut(&B) -> G and you no longer have to dereference and no longer need the restriction that B: Copy. Higher-ranked lifetime values don't have anything to do with it.

Here's the new version:

fn apply<A, B, C, F, G>(mut f: F, a: A)
-> impl FnMut(&B) -> C
where F: FnMut(&B) -> G,
G: FnMut(A) -> C,
A: Clone {

move |b| f(b)(a.clone())
}
Swift supports ADTs and implements its Optional type as an ADT.
From a functional programming point of view, the fact it is javascript is almost the opposite of everything you tend to appreciate about your functional language of choice. So that simply counts it out for some people. However you an still do functional programming in js, and making use of typescript and ramda is a pretty good base for doing it. (well, this is what I do anyways). I find this a much easier approach when blending all kinds of javascript libraries together than using a cross compiler .
Why is being hired anonymously so important to you?
Yeah, I'm aware that's a problem, but it's not a dealbreaking one usually IMO. Especially for libraries like mio and tokio with buy-in from the whole I/O side of the ecosystem.
I thought you were exaggerating but that is the actual opening quote. Very strange indeed.
Worth sticking around to read past it though.
> Correct, but the transition was from an autocracy to a fledgling democracy; the opposite would be more concerning.

Alas, Egypt just recently went from a (fledgling) democracy under Morsi to a military autocracy under Sisi.
How is their argument subjective? If I understand your argument correctly, you are saying that for example:

> myObject.doExplicitThingToWorld() [is] far more expressive

But if I put the word "than" after that, consider what you would type next. Are you arguing that "myObject.doExplicitThingToWorld()" is more expressive than "doExplicitThingToWorld(myObject)"? Because you could write code like that in the FP world, and it's basically the same as the OO world, except (assuming immutability) you'll also know that myObject is not changed after that call.

But runT1ME is talking about how the FP equivalent would come with more information ("I can see clearly if I'm doing both input/output, (or just output), and I have laws to help me understand how I can compose this function with others").

This added information is not subjective. There objectively is more information. The stuff you conveyed in your OO code by naming a method "doExplicitThingToWorld()" can also be conveyed in FP code by naming a function "doExplicitThingToWorld()", but the OO world misses out on the information that monads bring (and monads are just an example of this).

Sure, saying that "more information is not necessarily a good thing" is true. But are you arguing in favor of having less information? Because in that case, why isn't procedural-style programming better (subjectively) to you? After all, one could make the case that OO pollutes code with unnecessary information (classes and hierarchies) and that just like how FP overhypes composition, OO overhypes inheritance
Well, for one thing, the Go compiler itself already only compiles things that have changed, at least as long as you are doing `go build -i` and such. Only test what you had to compile seems like a pretty easy thing to do.