skysight-inc/HackerNews huggingface dataset:
For binary-trees it's because of the issue I mentioned. For reverse-complement I believe its partly because the low-level transformation is happening through a Python C module: see reverse_translation = bytes.maketrans(...).

Lua is notoriously batteries NOT included. I suspect only a fraction of Python programmers have written a Python C module, at least for production use, because they rarely need to. By contrast, almost all PUC Lua programmers I have met have written Lua C modules, as you can't even do simple things like directory manipulation or sockets without third-party modules (few of which are "standard") or by writing a custom module. Lua is somewhat handicapped in these benchmark games as the language is fundamentally designed to be extended with C code. It doesn't come with any real modules of its own beyond a simple (non-regex) string matcher and bindings to the ISO C library. The whole point of Lua is that it's super trivial to write C modules; and as compared to writing Python or Perl C modules it's incomparably more straight forward, even for inexperienced C programmers. (The use of binding generators is usually discouraged as 9 times out of 10 manually written bindings are both easier to write and maintain.) But it obviously wouldn't be any more fair to permit custom-written Lua C modules in the benchmarks.

If you look at all those benchmarks in just a little depth, I think it should be fairly clear that the core Lua VM is significantly faster--roughly 2x. OTOH, that's often irrelevant, especially if Python's core module ecosystem directly or indirectly helps you solve an issue. It's a fundamental limitation of the benchmark game, particularly regarding Lua. Lua isn't just a scripting language; it's thoroughly designed to be embedded in or extended by C. See the paper "Passing a Language through the Eye of a Needle:
How the embeddability of Lua impacted its design", https://queue.acm.org/detail.cfm?id=1983083
> Stick to a strong alphanumeric passcode that you won’t be compelled to disclose.

I can imagine this having value against criminals as well. The number of people willing to beat a password out of a victim is smaller than the number of people willing to hold a victim up against the wall for a second to press their finger to a reader.
I hope that it doesn't so that hopefully people will stop using their body as a password (it should only be used as a login name if you absolutely need to use it)
I recommend to do more debugging next time and see which process exactly is costing you all this. It sounds like a classic memory leak - those can be triggered nondeterministically. Maybe try some of the tools suggested here https://mahdytech.com/2019/01/05/task-manager-memory-info/
Fellow RethinkDB user here. I’ve been looking at Cassandra and FoundationDB as replacements. I’m genuinely curious— what didn’t you like about Cassandra?
(Re)design systems so that they rightfully treat eg SSN as a mere database key rather than negligently imagining it some kind of shared secret. How this gets applied and the implications differ for each trust relationship.

For example, if you have a bank account at a brick-and-mortar bank (and haven't setup online access), anybody can obtain online access to that account by going to the bank's website and entering your name, social security number, and maybe the recent account balance. This is in fact the exact process a bank rep does when you open a new account if they setup that access for you, or sometimes they even tell you to go home and do this yourself! Similarly, if you forget your online banking password, you can reset it entirely online with access to your email account, making your email account more trusted than the bank account!

In actuality, your being in the bank in person is the primary trust relationship, and that needs to be leveraged for the above scenarios. So online access should only ever be setup in a branch, and perhaps password resets should even require going down there as well.

(Obviously this is just an example and does not also apply to online-only banks. As I said, the key is to stop treating quasi-public information as a shared secret)
> In the iOS ecosystem, Siri can be set up to only listen in response to a button-press

Sure, that's assuming you trust Apple (if you don't, then you might imagine that those settings don't actually do what they say they do). If you trust them, then you're fine. If you're in Google's ecosystem, and you trust Google, then you're fine. Ditto for Amazon. But the point here is that people don't trust these entities.

And then somehow target a smart home speaker, while simultaneously carrying around an always-on, always-connected, geo-located, potential listening device in their pocket, all day long.
Nice summary. For those who believe that one of these companies might (intentionally or accidentally) "flip the switch", would a project like this really do that much to persuade you that the device had now become safe for use? Or would you simply avoid knowingly purchasing any such devices? (In that sense I'm struggling to understand the true customer for a neat hack like this.)
>its an unwinnable situation

It becomes a bit of "boy who cried wolf" situation. In the mid-west/Tornado alley, a similar situation occurs. Weather forecast tech has become reliable enough to detect tornado conditions, and issue warning appropriately. However, these conditions do not always lead to fully developed tornadoes even though the warnings have already gone out. This leads to a lot of people ignoring the warnings and even getting annoyed at the interruptions to regularly scheduled programming.
The UK fixed this for drink driving by making it an offence to refuse to submit to the alcohol tests. So they don't force you to implicate yourself for drink driving, you can choose instead to be prosecuted for refusing to provide a sample and have everybody assume (not at all unreasonably) that you refused because you knew you'd fail badly.

Sometimes people are _so_ drunk they refuse to provide a sample without really comprehending that this will itself directly lead to getting arrested and prosecuted but minus any opportunity to get the results thrown out for any reason since it'll just come down to "Officer, did the suspect refuse consent to the required sample?".

You couldn't do that exact workaround in the US because of the Constitution, but I'm sure a creative work around can be invented.
To quote the privacy policy at https://docs.roku.com/doc/userprivacypolicy/en-us:

"When you use a Roku TV with the Smart TV experience enabled, we also receive information about what you watch via the Roku’s TV’s antenna, and devices connected to your Roku TV, including cable and satellite set top boxes. Using technology such as Automatic Content Recognition (ACR) technology, we receive information such as the programs, commercials, and channels you view, the date, time and duration of the viewing, and how you use the on-screen TV guide. When you use a Roku TV with the Smart TV experience enabled, we use this information to personalize your TV viewing experience and advertisements. Please visit Settings > Privacy > Smart TV experience on your Roku TV to learn how you can enable or disable the Smart TV experience. To understand your choices, see Part IV, Section F below."
There is a similar cli tool called tldr[1]. It's very useful and simple to invoke.

[1] https://github.com/tldr-pages/tldr
I'd argue that porting from JS to TS is a very different beast than porting from Flow to TS.

I've ported code from JS to Flow and could say the benefits are similar to those of porting from JS to TS.

The most relevant part in this article IMHO is the conclusion:

> things like a strong community and availability of type definitions are more important because weak type inference can be solved by "handholding" the type checker a bit more.

I think it's important to highlight that this may be true of his project but not necessarily yours or mine.

Flow's type inference provides a much deeper level of confidence than TS with far less effort, for example, typing only the public interface of a module is often enough to surface type mismatch errors several functions deep within the module. In TS, you'd have to type every function signature to get the same level of confidence.

What worries me about flow is reflected in the comment from the facebook engineer linked from the article: it seems the flow team is focusing heavily on facebook-scale performance at the expense of most every other aspect of the project. A while back, the existential operator was quietly deprecated in the name of perf, and lately some updates have been of questionable soundness, e.g.

https://flow.org/try/#0GYVwdgxgLglg9mABAdxFAFAQwFyIPIBGAVgKb... (compared to http://www.typescriptlang.org/play/#src=function%20wut(a%3A%... )
They should be held responsible for it if they don't repair it in a reasonable amount of time. They are required by law to keep equipment in safe working order, but they have a terrible track record of doing that.

I wouldn't blame PG&E if somebody damages their equipment and causes a fire that day or sometime soon after. But if it's been months and the equipment is still lying on the ground with bullet holes in it that proves PG&E didn't inspect it or repair it for a long time.
> Uploadcare is an established SaaS product, so we’ve been harvesting the low-hanging fruit from organic and direct traffic for a while now. If you’re in a similar situation, you’ve probably reached the same conclusion: running paid ads is the next logical growth step for customer acquisition.

I'm no expert but this strikes me as strange. Organic and direct traffic is not a low-hanging fruit, it's the result of a product well adjusted to its target market. One would think advertising is the low-hanging fruit (relatively speaking); it's what you do when your offer doesn't show up naturally at the top of the results page.

If you're already winning on SEO it's probably harder to improve traffic with ads than when you have nowhere else to go but up.
Yes, three. One was a total failure. One went public a few years after i left and the last one was a private sale by me to a Fortune 500 company. I'm not saying my rule of thumb is for everyone, but 900 hours is about the length of an average internship. When I'm evaluating a new idea or opportunity, I try to imagine what I would need to accomplish in 900 hours to make it into a viable company==> Sort of a reversal of Parkinson's Law about how work expands to fill the time allotted for its completion. This helps me really clarify and plan out exactly what i have to do, so i don't waste time later or get side tracked. IMHO, 900 hours of grinding it out will give you the insight you need to see if you were really onto something or need to pack it in and try something else.
> even at it's worst it's no worse than C++

I can't think of a language whose metaprogramming features get abused worse than C++, so saying it's not worse isn't really heaping praise.
I went from jQuery (inc libs) and < ES5, to VueJS (components) and ES6.

It was such a big jump, after 8 months of it now. I am so much more productive than I was before. It's just not funny.

If I did the same as you. Going from JS to TS, what kind of experience (from there on in) should I be looking at?
I could give a lot of concrete advice to my 18 year old self. But, I don't think a lot of the advice I'd give my 18 year old self would apply to much of anyone else. (Get a side part haircut, you'll look better. Your mom wasn't right about a lot but that haircut you got as a five year old worked. Stop wearing baggy hoodies - you look stupid. Wear better fitting jeans and shirts, it'll take some effort to find ones that fit. Fix your acne, go to a dermatologist 3 years ago. etc... It's not all looks related but I needed a lot of help.)

I think that's why you hear so much of "work hard and stay in school." People are trying to be as broad as humanly possible to appeal to as wide of a net as they can.
I'm thinking about a good device strategy. I think I need a disposable smartphone for situations like this. I should not lose any data if I lose the smartphone and nobody should gain any data if he finds/steals/takes it.
How are Californians going to be better off? When they go out of business, some other entity will pick up the equipment and staff.

Probably a lot of institutional memory will carry over.
Even if you have the skill, is it worth the time to do on-prem, considering, you know, a pen and paper?

(Full disclosure: I'm a total bullet journaling convert. Given a choice between giving up my bullet journal and giving up Google Calendar/Docs and Trello, I'd give up the online stuff in a heartbeat.)
Looks like a great tool. Do you find hay it saves time if you’re already pretty smooth on the command line?
What would the burn rate be compared to other start ups, and how much runway would they be given before they pull the plug?
I don't accept the analysis that "uninitialized is better than a bogus initial value because we have a tool which can treat it as a trap value".

Here is my main argument: once tool is used and discovers the uninitialized variable, of course, there will be a fix applied: either to initialize the variable, or to assign a value to it later in a conditionally executed path in order to prevent the uninitialized use in that path. Either way, when this fix is applied, the tool will thereupon stop detecting an uninitialized value in the scenario that is being tested. And the fix can be applied with a bogus value. In other words, our goal is to prevent the use of an uninitialized variable, and the only way to do that is to put a value in it before it is used, and that always carries the risk of a wrong value being put there.

Additional argument: we know that some initial value is wrong only because we have some test which reproduces the situation of that value being set up and used, and that test fails. If we don't have such a failing test, it doesn't help us to leave the variable uninitialized, if our goal is to establish a correct value for that situation for which that test is missing. The Valgrind tool will certainly inform us that the variable is uninitialized, but in reference to a different test. Our debugging effort will establish a correct value for that test, without any guarantee that the value is correct fro the untested situation.

Correctness is not achieved until all execution paths access a stable value of the variable. We can't magically make the jump from "uninitialized" to "correct initial value" with zero risk of "bogus value". The tool which detects uses of uninitialized data is silenced once we supply a value for that data; it doesn't help with the issue of choosing the correct value.

So basically the "don't initialize" argument is implicitly based on the belief that there is no way to detect a bogus initial value, except for the end user of the software to discover a malfunction in the field. And that, magically, even though we can't reproduce the consequences of a bad initial value in development, it helps us to instead leave the variable uninitialized and run everything under Valgrind; we will then be alerted to the uninitialized variable, and not make a mistake in choosing a value for it, even though we still don't have a test case which distinguishes bogus from non-bogus value.

In summary, it is not a credible proposition that the initial coding (with no test case) carries a risk of choosing a wrong initial value, whereas post-mortem fixing of an uninitialized variable bug (still with no test case) does not carry a risk of choosing a bogus initial value.
They could afford to pay out a regular dividend, illegally skipped safety measures on pipelines, and “an independent audit from the State of California issued a report stating that PG&E had illegally diverted over $100 million from a fund used for safety operations, and instead used it for executive compensation and bonuses”. Ratepayers and taxpayers should never have to pay for deliberate executive negligence.

https://www.latimes.com/business/la-fi-pge-safety-investigat...
Reverse Engineering JavaScript by example – flatmap-stream payload A
99% invisible had a nice podcast on the right to roam(mostly in England): https://99percentinvisible.org/episode/right-to-roam/
Yup. I will never start a new project in plain JS ever again.
Something like this is kinda how my whole career in the tech industry started.

A little backstory: I was taking classes at Brunswick Community College, working on an A.S. in Computer Programming. I knew the instructor who taught a lot of the programming classes, because I'd had him as an
instructor on my previous go-round at BCC, when I took a couple of programming classes as electives.

Anyway, I signed up for a class titled something like "Survey of Operating Systems", where I had presumed I'd learn all about Windows, and maybe some kind of Unix (this was about 1996, so Linux wasn't ubiquitous yet). So I show up for the first day of class, and the instructor was like "Oh, Phil, I have something for you."

He proceeds to point me to a room with a huge behemoth of a machine, which appears to be some kind of computer, along with several boxes of tape reels, and a stack of bound manuals about as tall as myself. "Install the OS on that AS/400, and get it running and connected to the Internet, and you're done for the semester with an 'A'", he tells me.

It took a while... I mean, I was still pretty green in those days, and I'd never touched an AS/400 before. But with lots of trial and error, digging through manuals, and blood, sweat, and tears, I managed it. I guess he was impressed, and took a special interest in helping me find a job, as a little later he referred me to what would become my first job in the IT industry - as an AS/400 operator / Netware administrator for a little scientific glassware manufacturer in Wilmington.

There was no programming involved, but it paid better than working as a parts clerk at Advance Auto Parts, and I got to gasp work with computers professionally! Hey, that was a big deal for this young kid in 1996. Even better, it was an evening shift job, so I could still go to school by day, and then work at night.

I wound up spending a couple of years doing a lot of AS/400 related work while I was working my way through college. Never did any programming on them professionally though, even though I took two semesters of RPG programming in college.

Note: if you're wondering... the machine I had to work with was MUCH larger than the one in the story linked here. I'm not sure what the vintage of the thing was, but it was old enough that some company had decommissioned it and then donated it to the college I was at. So I'm pretty sure it was several generations older than the one shown in the article.

Also of note: the machine in question supported telnet, but as the article notes, AS/400's use a 5250 terminal by default, not something like the more familiar VT-100 (or related). Of course I didn't have a 5250 terminal emulator program available, but it turns out simple telnet client was enough to at least log in, even though it was hard to do some things since the AS/400 interface is so menu and command-key driven. I don't know if tn5250 existed back then or not, but I found it and started using it at some point.
Nice job! How do you keep your login token fresh?
I just happened to see this article/website while listening to a "70s hits" channel at the hotel I'm staying.

Have you ever considered analyzing the hit progressions thru time, to see if and how our tastes change?

Also, using a self-generated formula that a hit song is probably 25% root progression, 25% melody over that progression (the hooks), and 50% lyrical content...I wonder if some attempt at integrating all three of those items could yield fruitful, interesting results.

Great work, BTW...as a lifelong musician/songwriter, I enjoy sites like yours to help gain a deeper understanding about how professionals manipulate the sonic palette to craft songs and interesting melodies.
Would they though? I'm sure everyone has met someone at some point who has come on far too strong (or observed it) and it can be quite a turnoff. That "high intensity" mutant could have a very hard time finding partners.
Good feedback here. Chupa-Chups, which country did you target in your market research? Also, Emad's product is no just a time tracker, it has expenses and invoicing built in, so it may not having integrations with third party but it has a way to complete the loop (tracking and finally billing for the tracked time)? Thoughts?
very cool.. much smaller than I'd expected... still as big as the entire application I'm currently working on ;-)

I still wish WebSQL just had broader support in general.
"cost-cutting by using sub-contractors to do legally mandated maintenance up and down northern California was well-documented."

Contractors are licensed by the state to operate in their respective trade. Making the claim that contractors do sub par work is just as much an indictment of the state for licensing them in the first place.
Bankruptcy doesn't necessarily mean they "go out of business".

Someone will keep electricity flowing in northern California...
That's actually part of the problem. Profits have been going down for years because their most profitable consumers (rich people with big houses) have been going solar. They don't adequately separate the cost of infrastructure from the cost of energy, so they've had less for infra.

Also we just passed a law to make this even worse by requiring solar on new homes.
A recent example of a different way to do production is Alex Garland, director of Annihilation (and Ex Machina). He spoke about it somewhat at length at Google:

https://youtu.be/w5i7idoijco?t=5m25s

In my experience all of the major problems I’ve seen at software companies were problems the rank and file employees knew exactly how to solve, but weren’t allowed to.

It seems extremely hard for managers to let go of responsibility and let their team take it on. I understand why: it’s the managers neck on the line.

But the fact is, in almost every case the manager doesn’t have the domain knowledge necessary to solve their own problems. Almost by definition: managers lead teams directly into the problems the manager can’t solve.

It takes real guts to regularly take a chunk of your resources and hand them to an “underling” and yet that’s absolutely what they must do.

I’ve also seen a lot of examples of managers requiring employees to “prove themselves”, often meaning they can prove they can think like the manager thinks, before they can be trusted with an allocation of resources.

But this is pointless: the manager is already good at what they are good at, and blind to what they are bad at. By definition hedging your own deficiencies must be a leap of faith.
True both are still around, but a user can simply choose the fork with the longest chain (most PoW).

This is important because all other metrics such as choosing based on message boards, market cap, etc. can be more easily gamed.
This sounds like Touching the Void (https://www.imdb.com/title/tt0379557/).
I work in Finance! I shall have a butchers.
EffectiveSan: Dynamically Typed C/C++
Interesting. So, you think that increasing the price gives the product a sense of elevated value, albeit completely fictitious? Also, what do you mean by "non-scalable"?

Thanks!
There are occasional readable pieces in the press...

https://nationalpost.com/opinion/colby-cosh-rejected-by-a-ro...

TLDR: ML is like a credit score

https://www.theregister.co.uk/2018/11/06/andrew_fentem_on_ai...

(Granted the Register is not msm).

TLDR: AI is oversold and surprisingly fragile.

https://www.theregister.co.uk/2017/02/02/mathematics_behind_...

TLDR: The progression from math to AI.