skysight-inc/HackerNews huggingface dataset:
I am also extremely pissed.

Still, I was searching for alternatives on Android. It's ridiculous that no other browser allows extensions, not even Chrome itself.

Firefox is way more advanced on this. That's one more reason that is very hard to say goodbye to them...
“Other side, doc”
> many of which seem fussy (separate saving utensils, a butter knife, not putting used utensils onto the table)

Fussy? Aren’t these just common sense? I wouldn’t consider them to even be “table manners”.
My favorite was a statistician in the late 40's early 50's who was tasked by the air force to find the 'average pilot'. The reason was new fangled jet fighters were crashing due to pilot error. At higher rates than could be anything but problems with the man machine interface.

He and his helpers took 10's of thousands of measurements of thousands of air force pilots and determined that, there is no such thing as the 'average pilot'.

Well there was. About two dozen of them. Turns out that all the measurements were uncorrelated in the already highly selected group that is air force pilots.

Aerospace manufacturers were forced to redesign cockpits with adjustable seats and controls. And the rate of accidents declined.

> The remarkable thing is how the different parts of a living thing can still function well with that capacity to vary

What's really whack when you consider it is the same neuromuscular system that allows us to walk can also be repurposed to drive a car, fly a plane and operate other machinery.
I'm surprised that at that scale you are still not building some core functions internally.

Though it makes sense, buy over build is almost always the best choice early stage. It's hard to slow down product velocity to fix things that work fine when costs start to add up. (Also it's easy to say "do you want to save 3k a month or deliver features x,y, and z" and let costs slide)
Ask HN: Programming for students (English as a second language)
Hi everyone,
I was wondering if anyone has some good links for teaching students programming.

I'm now working as an esl teacher at a pilot project school (basically we can run any sort of program we want, test it's effectiveness and then impliment it once it has proven it's success), and one of the courses we have is programming.

Currently they are learning scratch which has been fairly successful, and a few of my higher ability students I have been introducing them to web design(front end only at the moment).

The issue I'm seeing is the switch between something like scratch(block based drag and drop coding - primarily) and a more traditional coding system. I need a step up from scratch that isn't full on coding.

I am considering a hardware based solution(say lego mindstorm or a MakerBot), which give a real world example of their code at work.

So, HN community, does anyone have any experience and is able to offer some tips or links to something like this?

Cheers.

(PS thanks to everyone who previously pointed out to me about my insane cheffing hours, I found a great job that let's me actually see my family!)
This is a great insight, and I think the "grass-is-greener" effect is at play often :)

Curious if your experience depends more on the specifics of the firm you were working for, or you think it applies in general.
This treads too much on individuals freedom to me. What this is saying is that we don’t trust people to make grown up decisions about family planning, so let’s semi-permanently neuter them.

Using circumcising babies as the moral benchmark “we’ll it ain’t as bad as that” seems like a weak argument to me.
I've been in some IRC channels for decades. It's awesome.
Let's start with Boolean algebra and throw in same basic set theory. Surely that is not too hard to handle for someone able to program. Indeed it is not hard to imagine that our programmer could write some program that can systematically spit out Boolean formulas of set relationships that are tautologies, a.k.a. math theorems. In theory her program could conceivably produce all possible theorems. The problem is that only vanishingly small portion of the produced theorems are of any interest to another person. So the hardest part is actually to know/find what is interesting and relevant.
I suppose that's plausible, but is it realistic?

What's the range of a cell phone signal? The signals from the cell towers will be aimed parallel with the ground. There is going to be an inverse square relationship with the signal strength and distance. A stealth plane is also more likely to be up way high too. The more signals there, the more populous the area, the more likely that a plane would be even higher. How many signals are needed for a disturbance to be noticed/tracked?

Maybe if the stealth plane was 50,000ft or lower, but considering comercial traffic usually flies up to 39,000ft, and some private traffic at 45,000ft, you probably won't find stealth aircraft below 50,000ft.
There are electron browsers like beaker browser. Not really customizable or scriptable though
Is this true for remote employees as well? E.g., suppose my colleagues at HQ and I are in the same meeting, I dial in to the meeting, and onsite employees receive lunch provided by our employer.

Is my employer explicitly obligated for me to get my own lunch, at their expense?
There is also the "You Don't Know JS" series, which is free online. I have heard positive things about it, the last installment includes ES6.

From the linked README:

"This is a series of books diving deep into the core mechanisms of the JavaScript language. The first edition of the series is now complete.

[...]

These books are being released here as drafts, free to read, but are also being edited, produced, and published through O'Reilly."

https://github.com/getify/You-Dont-Know-JS/blob/master/READM...
I practically live in the debugger. I do use it sometimes to debug a problem, but most of the time I use a debugger to avoid debugging. I use it for coding.

I spend a lot of time working with APIs and libraries that are poorly documented and often that I haven't used before.

Instead of writing out a bunch of code based on my limited understanding of the docs, and likely with many bugs, what works for me is to just write a few lines of code, until I get to the first API call I'm not sure about or am just curious about. I add a dummy statement like "x = 1" on the next line and set a breakpoint there.

Then I start the debugger (which conveniently is also my code editor) and hopefully it hits the breakpoint. Now I get to see what that library call really did, with all the data in front of me. Then I'm ready to write the next few lines of code, with another dummy breakpoint statement after that.

Each step along the way, I get to verify if my assumptions are correct. I get to write code with actual data in front of me instead of hoping I understood it correctly.

If I'm writing Python code in one of the IntelliJ family of IDEs, I can also hit Alt+Shift+P to open a REPL in the context of my breakpoint.

Of course this won't work for every kind of code. If I were writing an OS kernel I might use different techniques. But when the work I'm doing lends itself to coding in the debugger, it saves me a lot of time and makes coding more fun.
That chart is deceptive. Try this one out:

https://www.nationalpriorities.org/budget-basics/federal-bud...

This only compares our actual discretionary budget, aka the money we are able to reappropriate as we see fit, which is not locked into specific channels.

This is the only comparison that makes sense; comparing a ratio of part of our discretionary budget against the entire discretionary+undiscretionary budget is not statistically sound.

And as you see in the chart I provided, in 2015 our military spending was over half of our available budget, compared to less about 1/5th of the budget being spent in total on social programs, which were like, I'm pretty sure, the point of a government.

Sure, the point of a government is also to defend its people from foreign invasion. But you can't justify our War budget that way when you consider how the money is mostly spent offensively, as we engage in countless proxy wars, paramilitary coups, and arms deals with totalitarian nations.

We've been hoodwinked.
Not necessarily, but I still doubt this would be successful in detecting a stealth plane.
Does anyone know their bussiness model?
If I had to wager a guess, it's because it smacks of Trumpist pseudo-economics
I had a bunch of helper functions, but my view was that there's no way to solve it in general; building exercises would always involve writing annotations via a DSL.

You wouldn't be able to avoid hand crafting each sentence structure (like you were writing a textbook), but the advantage comes from being able to parameterize the generation of tests. You define where the holes are and what can go in them for a particular exercise, and the combinatorial nature of it yields thousands of examples, with tunable complexity, allowing you to crunch on a topic with enough variation that you still have to think and not get bored.

Ich mag rote Bücher, aber er grüne besser ist denkt.

It's been two years so es ist viellicht nicht richtig!

I don't think if you solve it this way, my solution would really be a helpful starting point.

I didn't have a plan for moving past the first year or two of learning, I think you could learn a ton of basics this way, but once language gets more subtle and varied you'd probably need to do something else entirely.

Also I don't know if this would work with other languages. German is extremely regular.
I agree. The post was full of appealing to authority that gives me disgust. And I do not like and use debugger.

I am not going to appeal to authority, so I'll describe how I debug. 30% of my debugging is with pencil and scratch paper. 30% of my debugging is with print. And 30% of my debugging is with refactoring. The last 10% of debugging is with profiler. I do use gdb, mostly in scripting mode. I also do breakpoints manually, that goes into less than 1% and get rounded off.

I program with a meta-layer, so that I can write `$print "string interpolated with variables" in a semi-universal syntax and works for all languages that I work with. The meta layer does the parsing and translation. More importantly, the meta-layer organizes the debugging part so it can easily turn-on-off and not to clutter the actual code. Without that, I, too, cannot imagine debug with print will work.

By refactoring, I mean moving the part of code out of the way, or temporary removing or rewrite part of code that I am not sure. This is again, only possible with a meta layer that allows moving parts of code and re-organizing the code without necessarily changing the code. I cannot imaging how one can truly understand complex code without actually probing the code parts by parts.

Then I have seen the new generation of people who grow up with electronic devices and are more used to mouse than pencil. Electronic device can never match the ease and disposable nature of paper and pencil, so I cannot imagine how one could debug by merely navigating the code with an editor.

So while I do not use debugger for debugging, I can perfectly understand how one cannot live without debugger.
There is a lot of merit in just using Scala as a better Java, in fact a lot of its original popularity was that kind of adoption. These days, however, Kotlin is eating that cake, so maybe it's true now?
Take a moment to learn about the US's discretionary budget system, and the ratio of War spending vs. other programs within that discretionary budget: https://www.nationalpriorities.org/budget-basics/federal-bud...

The numbers you provide simply aren't comparable because we're dealing with two separate stacks of cash.
To be fair most of the people that I know that are for 'choice' also happen to be pro legalization for stuff like this.

The issue comes that there arent exactly a lot of candidates talking about legalization, especially beyond marijuana.
Most undergrads who get a paper published are not publishing math papers.

This stackexchange answer is relevant

https://academia.stackexchange.com/questions/48399/how-many-...

Also this quote from a math professor, linked to in that SE link:
"Many people get a PhD in mathematics before having a single accepted paper (I did), and if they have an eminent advisor who goes to bat for them, having no papers need not be much of a strike against them in the postdoctoral market."
This kind of private groups are really popular amongst extended family or friend groups in countries where apps like WhatsApp are popular (which is seemingly every country but the US)

It’s crazy how which platforms are popular has shaped how people communicate
The author ignores a variety of points, but the major one seems to be that there seems to be some ignorance about debuggers being a "line-by-line" tool. I usually use it to understand big codebases, by stepping through the functions in the order they are called, and I am quite sure there isn't some other way to tackle this requirement.
I remember my grandmother said a guy she was married to in the early sixties found out when they went to take out his gall bladder. When the surgeon opened him up, things not as expected.
On a fully dynamic type system, static analysis can't know what functions accept strings. It would have to try every single function, what is not viable, because many have side effects.
This is absurdly overdramatic. One issue with a feature in decades and you're stating that you've lost all trust in the browser.

https://bugs.chromium.org/p/chromium/issues/detail?id=952287

Chrome has bugs too.

Firefox will continue to have bugs. All software will continue to have bugs. I'm so sorry that you lost some tabs in your browser but shit really does happen and acting like this is some violation due to overzealous security controls is inane.
A quick glance at the luakit and qutebowser documentation should give an idea. The difference can be summed up by pointing out that the python and lua code you write for these browsers is trusted and can even modify the UI of the browser. For example in luakit you can add new “chrome pages” so if you don’t like the bookmark manager for example you could write your own.

User scripts only run when a page is loaded afaik.
I’m guessing I’m being grayed because I’m suggesting Heroku might go out of business? Ok let me explain. That is one scenario, it’s unlikely but there might be other similar scenarios that pose risk being tied in to one providers stack. DDOS, TOS issues, simply out growing them, Heroku themselves having TOS issues with their cloud. There are almost weekly posts on HN of “this major service is down” and “that major service is down”.

I understand a scrappy startup needing to focus on growth and using the most convenient tools, but once you’ve been around a bit it’s time to think of boring stuff like what if stuff goes wrong. It might be technical, security related, business related or political. Eliminating SPOFs is wise.

Happy for you to downvote this but if you do please drop a sentence to say why I’m wrong. I’m happy to be proved wrong it helps me learn.
> I think a lot of these famous programmers have never had to work with something terrible and probably never will and that is why they make such blasé statements.

Do you think they never had to work with something terrible, or when faced with something terrible, they took the time to make it not terrible? The track record for the software these two have built speaks for itself.
I don't know if it's always been the case, but it is certainly possible to attach and detach a debugger from an existing process, gdb/lldb takes -p for pid. (Although, detaching from threaded processes seems to have a risk of the process ending up stuck in my experience)

Briefly popping into the debugger can be a really quick way to find where an infinite loop is happening, especially if it's not in your code, or not where you expect. I found this especially helpful in diagnosing a FreeBSD kernel loop I ran into, once the location of the loop was clear, the fix was simple.
This belongs on Reddit's /r/iamverysmart
It's possible using DNSCloak, under Advanced Options > Enable Cloaking.

You'll need to add a hosts file to your iCloud Drive.
I use whatever tools I can to solve the problem.
How would the cooling help?
I often use a debugger for code with complex control flow and data structures, where you almost inevitably start high level (e.g., Postgres optimizer). I rarely use a debugger when I can fit everything in my head immediately, because the problem is well-scoped, and involves data structures I already understand.

I can quite easily imagine a person that only ever gets to work on problems in the latter category being dismissive of debuggers.
Just fyi your links are bringing up what looks to be an app server runtime error.
I checked the hash functions for the xpi, its broken MD5 and broken SHA... which doesn't matter for a running instance if FF takes care to download it from their own servers over HTTPS... but in the attack model you describe it is retrieving the signatures from an untrusted disk.

https://news.ycombinator.com/item?id=19830228
My problem with debuggers is that they are too good of tools. You use them, solve the bug, and move on. In the process, you might have learned something additional about the code base, but the only improvements to the code are fixing that particular bug. In contrast, when you don't use a debugger, then every now and then when you try to debug, you find that some of your work is not simply a temporary hack to identify the problem, but something that should stay in the code long term to assist in future debugging (be it asserts you added, or additional logging calls). The end result is that the more you debug without a debugger, the more debuggable you code becomes.

I am currently working on a codebase where all the developers are adamant debugger users. The code is practically impossible to debug without the use of a debugger, because no one has ever had to build up the debugging infrastructure.

Complex/diffucult bugs still take about as long to fix, but simple bugs take far longer than they normally do, because every time you use a debugger you are starting from scratch.
I think that's why people are wondering why they weren't as officially interested before. Most of the speculation seems pretty far-fetched, though.
I've heard that attitude before. C++ developers working in finance around 2000. They were damn sure that no-one was going to switch to any other language because reasons.

I'm sure there's still a bunch of C++ devs working in finance, and making decent money, but I think the industry has moved on now.

The industry always moves on
> hit me at 60 kmh

I was rear ended by a guy going 100kmh while strapped into my seat. I can't imagine.
I appreciate your honesty
I debug sometimes, but if it's a simple script I'm working on, I usually don't. I'll just log where I think the problem is (usually indicated by an error, perhaps). I'll pull out the debugger when my best guesses at the problem aren't panning out.

Do whatever works for you. But it's good to have more tools in our toolbox - use puts debugging if that's easier (often is in very complex environments), use a debugger if you need to.
> Does the language support recursion? It's functional by the old standard

That's a strange claim, that recursion alone would suffice.

I'd say first class functions are more central. Give me that, recursion and closures and I can do the rest. IMO anyway.
Because you usually want to use the service that has the snapshot you want to view. And that isn't always archive.org. But it is my first place to go as well.
Thanks.. Same here on every machine.. The hotfix update has been installed and add-on functionality is indeed recovered, but still i only have "amazon.com" as a pre-installed search provider and have been unable to restore them to their default settings without creating a completely new profile. Besides, i would be rather hesitant to install search providers from that list, imho.
"Someone or something has crossed the technological Rubicon and has obtained what some would call the Holy Grail of aerospace engineering."

Hyperbole much?
That's the typical assumption that has no statistical evidence and is made by someone who thinks the illusion of free will is good for society. I suggest first try thinking about how people would observe all daily things while understanding free will is an illusion. Also think of the lives that are ruined because of bias to someone who happens to be a minority such as LGBT. Empathy for a minority is created when understanding there is really no choice and how they're born into a reality where they're labeled as not the norm.
So the argument is a debugger makes fixing bugs so easy you won't want to improve process?

I think I'll keep using them.
It's easy to see this as a wrong opinion when computers are extremely cheap and fast. Was von Neumann wrong about computers being more expensive compilation tools than grad students at the time?
I do not use a debugger most of the time either. Let me tell you why I don’t:

- Because I forgot how to use it (or never knew how.) There are many debuggers and UIs and I still know how to use some of them to decent effect, but I simply don’t know how to be effective with most of them.

- Because I’m pretty confident I have a good understanding of what code is doing nowadays. My intuition has been honed over the years and I tend to quickly guess why my code isn’t working.

- Because my code is all unit tested now. This contributes to my ability to be more sure about what code is actually doing.

There are still some cases where I may try a debugger. I had one recently where I was unsure what path my code was taking and I wasn’t sure how to printf debug. That helped a lot.

Not using a debugger is not really a choice I made or something I do to try to look impressive, rather it’s most likely a result of the growing diversity of programming languages and environments I work in, combined with better testing habits. I just feel like I have enough confidence to fix the bugs quickly. When I lose that confidence is when I break out printf or the debugger.
The Youtube video linked to in your GitHub readme doesn't seem to exist.
There are relatively few people actually getting dinner at my office, even though it is offered four days a week. Perhaps an order of magnitude fewer than those getting lunch.
Probably as developmental defects go it has to happen really early and be just right or everything goes sideways.
> However, the fact that Linus Torvalds, who is in charge of a critical piece of our infrastructure made of 15 million lines of code (the Linux kernel), does not use a debugger tells us something about debuggers.

It tells us more about Linus. I hope no impressionable developers take this article too seriously.
I'd prefer something that compiled to machine code anyway. Scala also has type erasure unpleasantness due to its dependence on JVM.
Passive Radar IIRC. Though I believe the 1999 F-117A shootdown in Yugoslavia was a result of the bomb-bay door detection.
When you live in the debugger, you understand your code by seeing how your code work. When you live without the debugger, you have to imagine how your code work. The speed of seeing how your code work cannot match the speed of imagining how your code work. In addition, see your code works brings a lot of noise that is not part of your focus; in contrast, you only imagine where you focusing. Of course, the effectiveness of each depends on your experience in each respectively.

There is no denying that seeing is the real world, and imagining is just imagination :).
This is quite the straw man argument. Most of those people either support this already or just have no opinion on it