skysight-inc/HackerNews huggingface dataset:
What do you suggest is the cause that underlies poor aircraft design in both capitalism and not-capitalism then? The article you link is not very informative on this question since it is about an airline, not an aircraft manufacturer.
>With all that said, the church of FP and the hascalator community is a problem for Scala. Overly dogmatic & academic functional programming styles don't have a place in production systems.

Isn't Scala minus the problems you mentioned just Kotlin?
> weight of keeping everything updated...monolith repo

You need CD or this is an accident waiting to happen.
Huge mistake. Reminds me of https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Interesting observation. Do you have some real world DP codebase examples where one can see how they avoid word soup (without sacrificing understandability)?
Prototype-based OO is a form of inheritance.

> there's really only two things that are truly common: object identity, and some form of dynamic dispatch based on that. Everything else - inheritance, encapsulation etc - is optional.

That's a broader definition than I had in mind, but I can see where you're coming from.
As it would for Bloomberg, LexisNexis, and similar companies. It would also increase the value of innumerable public and academic libraries.
What's a "rapid development" language? I know about RAD, but that was a buzzword that was only ever used to push terrible languages like Visual Basic, and somewhat less terrible ones like Embarcadero Delphi.
PHP at least is sane enough to provide the C stdlib, dito for Java.

JavaScript... well, remember left-pad? That's what happens when people are forced to re invent the wheels.
Very nice! But, penguins at sub 500 meters? Honestly, wtf are you doing down there!?
Great! I want to highlight the kinds of stories that I especially want to read. I imagine an implementation akin to highlighting for my favorite saved search terms.

For example, I want to highlight general topics (e.g. Rust, Elixir), specific phrases and words (e.g. ring buffers, concurrency parallelism), specific users (e.g. pg, patio11), etc.

So if there's ever a post about Rust, and ring buffers, and by Paul Graham, then I want to see it at the top of my news please.
I've just recently switched a lot of things over to Office. You get the exchange server, of course, and now it's oAuth based I get a much better integration with my iPhone and computers without having to set up app-specific passwords.
What? I've done it on some sufficiently large code bases, and small ones, and it was done way faster then a rewrite. With tools like 2to3 you can assign it to an intern and have it done pretty quickly.
These seem like good recommendations for midlife to older age group. I really wish we had more user research that backs up some of these recommendations. I’ve been doing a lot of research on text polarity readability (dark-on-light vs light-on-dark), and the color/text recommendations seem to follow the findings I’m seeing in that area. It’d be interesting to see a larger study with greater than 20-40 participants with detailed age group breakdowns.
This is incompetent behaviour.

(I'm sure someone from Google will now argue no no it's malice not incompetence!!)

If they're worried about capabilities, test on capabilities.

Filtering on user-agent strings - which is what they seem to be doing - is the act of an incompetent, and it doesn't matter how big the company is.

Can Google not hold on to competent people any more?
I will consider this pay back for all the astronomy information I read through only to realize they are talking North Hemisphere.

When I got my telescope (Equatorial Reflector) the first thing the manual talks about is "Find the North Star" - Good luck doing that at 47 degrees South Latitude.

Will have to take a gander tonight and see what Betelgeuse is up to.
Yes very true. I've been rooting for years so don't usually think about that, but yes you have to be rooted. It's sad that for proper security you have to root your device. I'd love if they built that firewall into Android.

Anticipating a question, the best phones IMHO for rooting are the OnePlus phones and Pixel. Motorola had been good in the past but you have to get a code to unlock the bootloader (which I don't like).
My guess is that by going with single dispatch, you get clear 'ownership' in terms of methods^H^H^H^H^H^H^H member-functions belonging to classes.

Can't say I know a lot about multiple-dispatch though.
So what do you think we should be doing? Staying on fossil fuels indefinitely, or moving to renewables more slowly or what.
They don't do that any more, after they were called out hard enough on deliberately sending broken layout to Firefox.
Looks like Bitbucket Server got this in version 4.11. I gotta ask my work to upgrade! https://www.atlassian.com/blog/bitbucket/new-features-bitbuc...
Migrating to 2-3 can be a large task in some very rare cases possibly, but for the most part it is practically effortless if you don't have to support both simultaneously. The biggest hurdle might be the "fear" of the unicode change, but that can be dealt with.

Source: All python services at my current workplace are in the process of being migrated to 3.*, and I'm doing one of the main ones at the moment and it's a breeze, including compiled c-extensions.

For curiosity, a good list of actual python3 syntax changes: https://docs.python.org/release/3.0.1/whatsnew/3.0.html#over...
Stripe was valued at roughly 1B after 5 years.
Realex payments, an Irish payments processor formed around 2000, was sold for 115M after 15 years.
The devil has enough advocates already.

This is incompetent behaviour, however you slice it.
Sorry to rain on your parade, but this idea is probably not worth pursuing. No client on any platform could possibly improve on the HN web browser UI. If you simply use the browser on your device of choice, you will have access to all the built-in HN features. There is nothing useful that you can add by developing your own client. Their API simply won't support it.
...and that drives me nuts too.
It feels crazy to me to see 'make training profitable'.

A) Not everything has to bring you a profit, jeez.

B) You know how you profit from training? By actually providing solid training to pilots who then fly your planes skillfully and don't crash and don't have any trouble landing. You not only get money from customers paying you for those pilots to fly them, you also save money by not getting sued into oblivion for your negligence.
The thing is, the green card sponsorship can take a long time and become another non market mechanism to coerce an otherwise in demand worker to remain with an employer. You can transfer from one “sponsor” to another, but if your new employer goes under and you lied your job (or if you get fired), the entire time you waited us now at risk.

To me, it’s s sign off a profoundly broken process that we’re even taking about “sponsors” like this.

Lastly even if you awarded the green card immediately to the worker, it still gives a corporation the right to deny it grant us residency rights to an applicant which will profoundly affect negotiations and so much else. For example once I got into it with an interviewer who was clearly trying to get to say “always write tests first” and it was irritating me so we went at it. No hire.

Totally fair but should this jackass bee Ed choosing who gets to have a green card based on their acquiescence to his views on software development in an interview?
I don't get it either - its a compiler construct, not a runtime check (remember Rust's "zero overhead" motto).
There is a fella on the radio weekly here in Aus (and the BBC), Dr Karl Kruszelnicki. I always liked his take on it, "Could blow up any time between next Tuesday and 10,000 years from now. Don't worry about it."
The little demos are fantastic!
>Google is known for A/B testing changes to its various web services all the time, so this specific hiccup could resolve itself in time.

>“Couldn’t sign you in. This browser or app may not be secure. Try using a different browser. If you’re already using a supported browser, you can refresh your screen and try again to sign in.”

A/B testing security? Is this what peak A/B looks like?

Can we go back to giving users a consistent experience and develop software based on some other type of reasoning, rather than this A/B gaslighting?
> Heck, if I was with NSA I'd be pushing hard to fund that kind of work with NSA money.

But what if the NSA had their own backdoors installed in hardware made by US firms?
I can't help but think that filling the earth with trash is not the correct solution to the problem, however convenient it may be.
left-pad wasn't a fault of the language, but the modern javascript ecosystem and its tools. Javascript development got along fine for years when all anyone had was JQuery plugins, no one was complaining about the lack of a C style stdlib, and no single point of failure for the entire ecosystem created an internet-wide catastrophe every week.
Capgras Syndrome and Prosopagnosia (and Facebook)
Everyone’s project/code base is different but in my experience there’s been a critical mass of libraries for a few years. I presume the “it’s hard to move to 3” is dev teams wanting a new toy as much as “the rewrite is too complex”. Library use, size of code base etc are all big factors but at the end of the day, I think team motivation is really the deciding factor.
Whitelisting or blacklisting UA strings is meaningless. Any actually malicious person is going to spoof that without even giving it much thought. It's only the honest people who are affected.

Funnily enough Google itself used to advocate against detecting UA strings (I don't know if they still do). Mind you, groups within Google don't always listen to each other.
Whose security? If Google can track everything I do online, that's not 'secure' in my book, so Chrome is out.
This is one of the pros of using a strictly typed language: there errors like these can only go unnoticed if the other object has the same type. And in languages like Rust with a concept of ownership even those might be cought in compilation..

Naming things is hard. But it is a lot easier if you can rely on it not breaking things all the time.
Crazy Horse Memorial has been dragging out too. Got the impression that what exists now is functional enough to serve as a tourist trap so there's less incentive to complete it.
Not yet, sorry. Have plans to publish this in coming months.
Ok this is going to sound ignorant, as my only experiences in backend services have been Go and Python. I don't like either. Is there something I'm missing? For simple CRUD apps, both are sufficient. But (in my limited experience), the moment I've wanted to create more complex business logic with stricter constraints, neither has been quite up to the task.

Go doesn't make things easy. It asks you to repeat yourself. I don't like the lack of basic functions like a generic map / filter function.. I know Rob Pike just says "use for loops", but it feels so unnecessarily unexpressive. When I see map, I know what's going on almost immediately. For loops take more reading to understand. Nil pointers shouldn't be, yet still are, a thing (developers aren't perfect - why can't the type system help?). It feels like a straight downgrade from Python from a code clarity perspective. And it's typed, sure, but the type system doesn't let me express constraints that other languages allow me to do that would prevent entire classes of bugs. It doesn't feel worth it compared to Python. Yes, the core language ends up being comparatively "simple", but simple building blocks doesn't guarantee a simple overall system. And my company is very diligent from an architectural perspective.

But then when I look at Python, I'd rather just use Javascript with Lodash, esp. when it comes to the treatment of functions as first class objects[0]. Throw Typescript in there, and you get, in my opinion, a better type system than Go, so unless language performance is a major constraint (which it hasn't been for my company, our DB usage patterns it the biggest thing instead), why would I want to use either of these rather than Typescript?

[0] Edit: Dumb and wrong, I meant its treatment of anonymous functions. I don’t like lambdas.
I was actually forced off chromium recently, because it became very laggy after an apt-get upgrade. Firefox has been pretty nice.

I still use google search and gmail in that environment, though. I use DDG for personal work, but for work work, google search is noticeably more efficient. And work requires me to use a gmail account.
I've worked with or known about too many places that have jumped on the microservices bandwagon and the only thing I've encountered is a lack of maturity (mine included) and a knee-jerk reaction against monolithic code, when the problem isn't the size of the codebase but its organic growth over time. Go is an excellent language for it but distributing your business logic and functionality over a network fundamentally changes the behaviour of your app and how you have to think about it; you can't just tear out bits of the monolith and make it an API.

I've come to some fairly comfortable conclusions:

1. If your team is small; don't do it. The mental overhead of that architecture will bring your team's ability to deliver down to it's knees.

2. If you've got a long-lived app with lots of legacy code; don't do it. You will have to maintain and add new features to the old codebase because it's easier, which means you have more things to rewrite.

3. If you're small-ish/mid scale. Don't do it. Kubernetes and similar are tools for people handling Facebook/Google/Netflix kind of loads.

4. If your organisational structure doesn't fit (i.e. you don't have enough people to split into smaller teams); don't do it.

Scaling is considered a good problem to have, right? That means that your current, ugly monolith is actually successful, and somehow the first thought is to replace it all with a complete—but trendy—unknown?

If the engineering team is so unhappy about the architecture then Go is the wrong choice. Maybe they could consider service oriented architecture and some refactoring/tech debt time so they feel happier about that codebase. Pull some of the code out into modules and then start figuring out where bits of the codebase would actually belong, while still being one deployable.

And then after that, if you really want to, distribute it over the network, and then start thinking about porting it.

Otherwise, throw away your first successful prototype at the first instance and go all in on distributed architecture and microservices. At least then you have the luxury of figuring it out from scratch.
I can definitely highly recommend Prolog for playing. I found it to be a mind-opener in the same way learning Scheme for the first time was a mind-opener. Programming with predicates/relations is extremely powerful.

As a teaser, consider a predicate Concat(X, Y, Z). In Prolog, capitalized identifiers are considered as unbound variables. There aren't return values; instead, you compute via unification.

So we can approximate the idea of a list concat funtion by entering something like `Concat([1, 2], [3, 4], X).` The Prolog evaluator will answer that X must be [1, 2, 3, 4] in order for the predicate to hold true. Looks like a standard function with a quirky way to provide an out param.

But these are predicates, not functions. Concat's internal logic defines a logical relation among the various values. This logic holds no matter which values you leave unbound. So here are some other things you get for free:

`Concat(X, Y, [1, 2, 3, 4]).` -- this will, in turn, iterate through all possible values of X and Y that make this predicate true. Thus Prolog will give us X: [], Y: [1,2,3,4]; but also X: [1], Y: [2,3,4]; and so on.

`Concat(X, [3, 4], [1, 2, 3, 4]).` -- this will give us X: [1, 2]; alternatively, it will give us the answer 'no' (sort of equivalent to false) if [3, 4] is not some tail of the provided list.

`Concat([1, 2], [3, 4], [1, 2, 3, 4]).` -- will give us "yes", for true.

This is a simple example, but now perhaps the potential power of Prolog is more visible. Imagine the possibilities -- for instance, a constructed grammar can tell you not only if a given candidate sentence is valid, but it can also (in theory) generate every single valid sentence in turn.
that feels, to me, like a real failure of our field. What other tool can you use every day for 30 years and still be a novice at?
Understanding Machine Learning: From Theory to Algorithms (Downloadable Book)
We're writing new apps in Kotlin instead of Java, works fine for us. shrug Vert.x , Ktor apps, Kafka streaming apps. IDEA handles it absolutely fine these days, I suspect you last tried it sometime ago.

Can't comment on the Gradle stuff though, I vastly prefer Maven.
There's a proposal for RegExp.escape() which was rejected by TC39 for imho quite silly reasons: https://github.com/benjamingr/RegExp.escape/issues/37
There are some interesting parallels between these two artifacts. Both were made in the hope of aiding the dead in the afterlife -- in a spiritual sense in ancient Egypt, and in a much more literal sense in the 18th century.
I don't see why they would need to be called out on anything regarding this. I just thought "oh, Google looks like shit" and would prefer using DuckDuckGo even more.
So much fuss for a small function
>
Boeing needs to try to own what it'll take to get their planes flying again.

I think they will need to meet the EASA at the Canossa Castle so to speak for that plane to fly again. The FAA so completely screwed up the EASA won't trust a word from them for a very, very long while -- not only did they let Boeing effectively certify their own plane but when the fertilizer hit the circular cooling device and the EASA served them a face saving opportunity by not issuing an EU wide grounding order immediately but individual member countries, one by one, banned the plane from their airspace without grounding them. And the FAA didn't budge! Finally the EASA said, fine, the 737 MAX is grounded. And now all the trust and goodwill carefully built between the two authorities is all gone. Getting the MAX flying again in the USA is one thing, getting it through the EASA after this will be an entire different matter...
The book The Three Body Problem also has a great scene explaining logic and computational math via ... traditional means :-)
https://youtu.be/5QRw6TbeOxA

Raise prices

Push expenses downstream
Different experiences affect different people differently.
Go seems to be optimized for onboarding new developers (particularly straight out of school) quickly, rather than for the long term comfort of developers using it. There are Rob Pike quotes that speak to the first part of that at least.

If I was a business owner, I'd love Go. But what I can't really figure out is why so many devs love it. It's far from the worst thing in the world, I don't hate it, but I just can't get excited over it either.
Initially thought that this said they were trying to make trains profitable.
For whatever reason you reminded me of coffin torpedoes.

https://www.atlasobscura.com/articles/coffin-torpedos
Well, Go magically fits right between C++ and Java, which were both Google’s main backend languages AFAIK.

I wonder if generics and proper dependency management were on this survey you’re talking about...
I too was surprised by this, but for the opposite reason: I would expect replaceAll to replace all matches for the regex, meaning if the regex only matches the first occurrence of a pattern, then only the first occurrence is replaced. The fact that we both made perfectly opposite assumptions about what is "obviously right" is strong evidence for their decision.
> Writing Go code in a Python-like way is going to be less performant than if you run escape analysis every compile and make deliberate effort to stay on the stack.

The fact that people are doing this tedious optimization is strong evidence of the fact that Go needs a generational garbage collector with bump allocation in the nursery.

The JVM has a fast generational GC, and as a result you don't have to do this kind of optimization to get good allocation performance.
Software security is not a super-goal. Acceptable risk levels vary with circumstances. If you browse wikipedia on a kiosk-style machine it doesn't really matter whether it's mining bitcoin or not.

Or if you're visiting north korea then perhaps using your host's prescribed software stack may be preferable over bringing your own.

Even logging into an account from an insecure machine can be acceptable if you're using a low-value account. Some people do use throwaways regularly.
Is it the correct solution, if it allows us to spend effort and money migrating our energy mix away from fossil fuels?

Is it the correct solution, if we have already shifted our economies to carbon-neutral or -negative modes?

These are very different situations, and we only have time and money to focus on so many things at once.
This is perhaps a very big misconception with python usage. Just because it has "dynamic" or "duck" typing, doesn't mean that you have to consider chaotic and unpredictable data running through your code paths. It's just not the case.

In a typical codebase, it's probably 98% very specific and known data types linked to the variables in your code. With the remaining 2% being things that are just "easier" to solve with dynamic typing rather than coming up with complicated interface/inheritance hierarchies that you typically find in compiled languages.

And with type-hinting now being there in python, you have a very good way of "codifying" that dynamic or duck-typing. Such that you can expect almost 100% knowledge of all the data types coming in/out of your classes/functions. At this point, I'd argue it's got one of the most robust "type" systems out there, if one can call it that at all. Just don't use text editor + MyPy, or VSCode for your python development, and you'll be in good hands. I.e. Use PyCharm.
The tweet has been deleted, but to preserve the context, here’s the original, with a screenshot of the text as well: https://imgur.com/gallery/wbE6zF7
> I haven't met anyone migrating from say, Play to Spring thanks to Kotlin's support.

Hi, now you have :) Well, Vert.x and Ktor, not so much Spring Boot.

It's mainly because effective and readable Scala requires a lot more discipline and experience than effective Kotlin for a Java developer. If we'd started solely with experienced Scala devs then I suspect we wouldn't have had an issue.

There is, also, the problem of footguns - we've inherited a large Scala codebase from a sister company, and they, unfortunately, let the devs run free. So there's large amounts of hard to debug, hard to read, Scala magic going on. Implicit classes, inherited three levels deep! Macros! Why? Because they could!
I am absolutely certain that the intention is malice - but it's incompetent malice.

It weakens their brand every time, making users either think that they're bad at building products, or hate them for trying to force them into their (stupid) ecosystem.
It being small does not mean it's not critically important to get the details right. In fact, if there's any correlation between smallness and frequency of use, then it's actually more important to go to the full lengths of fuss resolution.
The airframe is not unstable. It exhibits positive longitudinal aerodynamic stability. It’s positively but insufficiently stable to meet certification requirements, which is what required them to add MCAS.

MCAS is nowhere near fast enough to compensate if the Max were actually unstable.
This is mostly a thread of things computer-illiterate people don't realize can be automated, like selecting multiple rows before copying. I think Hacker News is at another level.
Blaming the share holders for something like this is a bit weak.

Share holders of a big, established company want long-term and stable profit. Short-term profit at the cost of increased risk is not something that share holders of a company like Boeing are looking for.
Link: https://github.com/joelparkerhenderson/outputs_vs_outcomes