skysight-inc/HackerNews huggingface dataset:
>why use OO at all if you prefer composition?

OO is a way to bundle a structure with the methods to manage it.

Inheritance is a way to manage the need to customize an object.

Composition is a way to bundle objects.

Why wouldn't you do both? That's what Delphi did back in the 1990s when they built the Visual Component Library. (VCL)

You build your forms in the GUI builder, which composed a form object out of various components which were all eventually derived from tObject. It still lives on, and Lazarus implements something similar for Free Pascal.
If you use gpakosz tmux config you may find the following set up useful. https://github.com/lukesmurray/bootstrap/tree/master/.config... I replicated most of the key bindings so you can use splits without tmux. Still no support for multiple sessions or persistence but that’s on kittys roadmap
Not if you have language support for monads / do-notation / computation expressions.

Many "problems" that people have with functional programming occur because they are trying to use FP techniques in a language that isn't really equipped for functional programming (JavaScript, C#, Java, Go...).
I dont know the exact quoter but the phenomena has been noticed and commented on maaaany times; I remember reading dilbert jokes about it in the 90s.
They live in a world where nothing ever goes wrong and nothing is ever missing.

Sounds nice.
This isn't a bad gamble if don't mind running the farm if the bet doesn't pay off.
> invaluable experiment

Why would we want our city, homes and public places, to be turned over to an "experiment?" And not just an experiment, but an experiment conducted by a corporation? And not just a corporation, but a foreign corporation that doesn't even have any significant presence here offering us decent jobs (and is instead one the leading causes of our "brain drain" problem)? Even if this experiment is invaluable (I can't imagine how it is), the majority of the value from experimenting would accrue to Google (experiments are valuable if they can be repeated many times after learning something new, and while Google could learn from the mistakes and repeat the experiment in a different city, Toronto would not be able to tear down the "smart city" to repeat the experiment). No great city in this world has been built on gimmicky technologies that will become obsolete. Just look at "smart homes" that were built 20+ years ago (e.g. installing speakers throughout the house etc), all the technology becomes an obsolete eyesore that eventually gets ripped out.
There is work outside the cities in other fields.

However, with all the people leaving the cities(it was an issue even before current 'work at home' situation, but even greater now) they push out local buyers.

Wages outside the cities have stayed fairly stagnant(asides min. wage). And buyers simply can't compete with 'big money' coming from people having sold their property in a city.

A quick glance at this makes one woozy. It feels after the '08 crisis just about everyone lost their lunch. However this modern crisis, it feels like upperclass got out ahead while lower classes simply lost.
https://img.take-profit.org/graphs/indicators/money-supply-m...
Japanese Simnel Cake how to make one for Easter.From my new channel
I found the Green Lion Press version on Newton super helpful for distilling his argument so that a modern reader could understand it.

https://greenlion.com/books/NewtonPrincipia.html
Haha! Fantastic commit message
Agreed. F# lacks the HKT that the OP calls for, but it is possible to write plenty of pragmatic functional code without them. They might land soon though.
Unfortunately too many people are turning an economic term into a political term. But I do agree that we should all be polite here.
In C you can access pointers to memory mapped files effortlessly in ways that are often extremely unsafe against the possible existence of other writers and against the making being unmapped and mapped elsewhere. It’s also traditional to pretend that putting types like int in a mapped file is reasonable, whereas one ought to actually store bytes and convert as needed. Rust at least requires a degree of honesty.
So I guess Ethereum is, in fact, a developer-run show.
It may be the point for Google, but not for Toronto citizens, who surely want a better city more than they want to be a science experiment. I'd say the usage is purposeful and correct.
Indeed. It’s indispensable really. Annotations are perfect too!
Have to disagree on exceptions. The return type is part of the function signature, it’s part of its contract. If a function can fail I want to see it right there on the return type and be forced to handle it on the spot.

Exceptions are an invisible, out-of-band mechanism that will crash your program because you forgot yet another try...catch. Sum types with pattern matching are a much better approach for writing safe and robust code.

The “proper handling of exceptions” panacea I keep hearing about sounds a lot like “OOP done right”... it’s supposed to exist, yet no one seems to know what it actually is.
This is not correct: https://wiki.mozilla.org/Security/Sandbox#:~:text=Security%2....

Also Chrome was caught out last year, by non other than their own ProjectZero, with a vuln in their unsecured GPU code.
The obvious solution would be to give everyone jobs. Surely there is something to be gained from not letting unemployed people sit around doing nothing.
As someone using RethinkDB in production for the last 6 years or so: I am really disappointed by how software development world is dominated by fashions and fads.

RethinkDB was done really, really well. It is one of the very few distributed databases that went through Jepsen relatively unscathed and delivered on promises made. Development was done in the public, questions were asked through StackOverflow. You interacted with competent, skillful and experienced developers.

And yet MongoDB was the latest fashion fad, end even though it did NOT deliver on the promises, it was the hot-database-du-jour that kids used.

The article is mostly about the business model, and I also always thought they would have a hard time making money on the database. But I think they would have had a much better shot if it became more popular. It didn't, which accelerated the company's demise.

EDIT: I just realized that I wrote about RethinkDB in the past tense, even though it very much exists as I write it. In fact I run my business on it. But because it fell out of favor, when it was open-sourced, it failed to pick up momentum, and it now seems unlikely that it will.

Which is why I'm working on switching to FoundationDB, and I'm slightly worried that it will suffer the same fate: it is excellent technically (the best transactional guarantees in a distributed database you can get), but difficult to understand and not very user-friendly. It's not the "node.js database for everyone". The only reason I'm considering it is because Apple uses and develops it, which gives me hope for longer-term maintenance.

Going back to fashions — you can have a product which excels technically, but if it's out of fashion, it might as well not exist.

I think we would all be better off if we stopped trying to always pick The One True Database, The One True Programming Language, etc — and instead accepted that there might be multiple tools, each specialized for certain kinds of tasks.
http://archive.debian.org/debian/
You're searching for a very niche product: something that's not simply a metal vessel that you can use to boil water, but that's not a full-featured water boiler/warmer[1].

Electric boilers last forever, usually have multiple temperature settings, and don't have you wait before the water is ready. If you drink a lot of tea, I strongly suggest you try one.

[1] https://www.zojirushi.com/app/category/water-boilers-warmers
It’s not like there’s a giant pool of mining hardware waiting in the wings to take over... I think we can assume that all hardware is always in use mining something as long as marginal revenue exceeds marginal cost.
Looks like Authenticator App has a macOS version as well. OTP Auth seems be purely an iOS app.

Edit: OTP Auth has a macOS version, too. Separate purchase.
what the author is proposing sure sounds an awful lot like Swift to me.
Having used Go a lot recently the err!=nil boilerplate is only marginally worse than the monad approach which ends up with a lot of match statements. Where monads work better is chaining calls together, but at the cost of the of choice how to handle the errors.

Exceptions end up being an elegant way to represent this, you can choose how much you handle and where and match against the types of errors. Everything else I have tried has been worse, forcing me to handle errors I don't care about at that point in the code with a boilerplate response to send it upwards, something exceptions do automatically. I don't get more robust code with explicit error handling I get more verbose code for errors I can't do anything about. In practice it also changes the interface of my methods far more with maintenance and propagates error handling code throughout.
Sometimes reviews for a particular monitor or TV will talk about the specific panel inside. But finding them is sort of awkward, especially since you have no guarantee that such reviews exist.

Taking the thing apart is gonna be required at some point anyway, you might as well take that plunge. Lay a soft blanket on a sufficiently large work surface, grab some tools, and have at!
please hook this up to Jax!
That's an argument for exceptions. If they shouldn't be handling it they shouldn't be catching it. If they're the highest level why didn't the other 6 layers handle it?

It's easier to be adaptive with error handling with exceptions, and who's going to (correctly) test for all possible errors on every call?
Mothers Day easy breakfast ideas. HTTPS://youtu.be/oily251XHdQ
If we follow your logic, why not just stop dealing with Germany and the Germans all together?

Tolerance and forgiveness is a value we need embrace. You should ask yourself if anyone at IBM today supports the holocaust.
Euclid, Book 5, Proposition 18. If magnitudes, taken separately, be proportionals, they shall also be proportionals when taken jointly; that is, if the first be to the second as the third to the fourth, then the first and second together shall be to the second as the third and fourth together to the fourth.

This is from the Todhunter edition of Euclid's elements. the proof occupies precisely three pages. in post-Euclidean notation, if a/b = c/d then (a+b)/b = (c+d)/d. For young children replace the letters by small positive integers.

To convert Euclid's formulation to the symbolic formulation requires turning a magnitude into a real number, and defining the division of two real numbers. Euclid's proof avoids these difficulties. His magnitudes are the lengths straight line sections. He can decode a/b = m/n where m and n are positive integers as meaning na = mb. And similarly he can define a/b > m/n and m/n > a/b. So now the statement a/b > c/d can be decoded as the existence of positive integers m and n such that a/b > m/n > c/d. Finally the statement a/b = c/d is decoded as asserting that both a/b > c/d and c/d > a/b are false.

In modern jargon, Euclid is using the Dedekind cut definition of a real number. Using this definition, and working from first principles, the proof unsurprisingly requires three pages.
In this case, the function in the example representing a Doom value is a definite value in the set resulting from f(d, o), where d is the current date, and omniscience is o. Where the date of Doom game creation is t, when d ~< t, Doom is 0. Otherwise, the result from f(d, o) is either a set containing a single possible integer solution if o is high or a set of an unknown number of possible integer solutions if o is low, with the length of that set also being dependent on proximity of d to t.

Doom is a real number under any circumstance as there is only one value it can be of the set produced by f(d, o) and that value is a real number.

Doom cannot always be represented by a fraction, because it is an indeterminate constant when d is higher than t and o is not high.
Loom is arguably the best looking EGA game. I hadn't seen the vga version prior to this. There doesn't seem to be the coherency of style that the originals had
I understand what your saying and it would be correct if prices were stable. The problem is that prices increase so rapidly and there is severe stagnation in salaries that you can't keep up. In OCT 2019 a Condo in a CO-OP I was looking at was selling for 350k. By Jan 2020 they were selling for 500k. It is not unusual for your 1-2 million dollar house to go up by 10-20 % a year.
Do you have to stick to a C-FFI like interface, or can they handle rust-native features like closures and traits?
The problem is that compilers are allowed to make some general assumption about how they're allowed to reorder code, always based on the assumption that no other process is modifying the memory. For example, the optimizer may remove redundant reads. That's a problem if the read isn't really redundant -- if the pointer isn't targeting process-owned memory, but a memory mapped file that's modified by someone else. Programs might crash in very "interesting" ways depending on optimization flags.

C has this issue as well, but Rust's compiler/borrow checker is particularly strong at this kind of analysis, so it's potentially bitten even harder.
Unfortunately, it doesn't capture the tab key so no cigar.
British Prime Minister Boris Johnson was quite vocal about being having to pay taxes to the US until he renounced his American citizenship in 2016.

https://www.forbes.com/sites/robertwood/2019/07/24/prime-min...
You have clearly never lived in North America, continent of pathetic kettles. It's hard enough to find one here that's electric in the first place, it seems people prefer to balance their kettles on the tops of stoves, like peasants. On the odd occasion you do find one that plugs into a wall, often it's like it was designed in the dark ages before they were cordless, and of course the cord is only about 6 inches long, so you have to unplug it to move it to the tap for a refill, then plug it in again. My current apartment's kettle doesn't even have a lid or a button, you have to fill it through the spout and it starts boiling immediately when you plug it in. After all that, it still takes about 27 minutes to make a cup of tea. Forget all these fancy lime scale filters and temperature controls, just finding a £5 one that actually worked would be a dream.

Rant aside, apparently a large part of the problem is because North America uses 110v at the wall. Quick explanation here[0]. As mentioned in the linked article, many houses here also have a separate high voltage line for washing machines. Perhaps they should have a high voltage kettle line.

[0] http://wordpress.mrreid.org/2012/04/16/why-kettles-boil-slow...
>Perhaps it's always been true in the US, but other countries protect employment.

True.

>By that logic, someone murdering you is likewise "Social Consequences".

Of course it is. Have you never heard of honor killings? Crimes of passion or revenge? Something can be a social consequence and also be a crime. No one is arguing that all social consequences must be legal, or should always be tolerable.

>But fair enough, if you're ruggedly in favor of at-will employment and you're fundamentally opposed to free speech, then cancel culture poses no contradiction to your views. I think such a position is odious, but I can at least respect your principled stance as a staunch illiberal conservative.

This is why I should stop trying to have political conversations on Hacker News, in the end, everyone just makes it personal.

I'm actually opposed to at-will employment and I support free speech, albeit not the absolutist definition of free speech that Hacker News seems to believe in. I do support the right of groups to petition anyone they like - even employers, to air whatever grievances they wish. Cancel culture, while it can be abused, is an expression of free speech.

And that's the rub - everyone wants to abridge the free speech rights of the "twitter mob" because of politics, but no one wants to address the fact that the only real power in
"cancel culture" lies with the employer.
It's unfailingly polite regardless of how cruel it is.

Give me an example of a counterculture that was not derided as rude by the mainstream of the time?
I've been storing my datetimes as 64 bit unix timestamps. If I need any additional timezone information, it lives in additional columns. The only edge case we have just requires looking at the user's timezone to project certain facts correctly.
Resurrection Plant
You have everything backwards.

We dont have economic dominance because we have a strong military.

We can afford a strong military because we had economic dominance.

This economic dominance was predicated in strong freedom of association principles , and a policy of neutrality that kept us largely out of expensive disputes early in the republic.

This is how things have really come to be. I will tell directly you reality refutes your adventurism: the roman state collapsed despite having the strongest military in the world.

That state collapsed not because of army defeats, but because of a hollow economic core caused by permanent deficits.

This is where the US today. And pushing more freedom to associate to illegal status is just piling on the US to italy-style irrelevance
So how do you want to handle something like sqrt(-1.0) for real numbers? A runtime exception seems the sane way to do it for me. Are you suggesting that sqrt(-1.0) or any other invalid value should return a sentinel value like -999, or should return NUL instead of a real?

Any way of dealing with errors has to be out of band, we just disagree on the mechanism.
Exceptions are great when you want errors to terminate a (sub)program with an error message without having to type any code at all.

That's suitable for batch programs and other short running things where you can just scrap the incomplete computation and re-try with a blank slate. I'm sure that can be productive for webapp code that sits between a database and the frontend.

For longer running processes and more complex systems, exceptions are not so great. It's almost a given that you will have a hard time tracking down all the error scenarios in your system.
I like Authenticator Plus but I really wish it had a search feature. I have so many damn accounts in there and lots of them don’t have their own icons.
It was open source from the start, but under AGPL which is a fairly restrictive open source license. I remember diving through the code trying to debug bugs in RethinkDB when using it in production long before they went out of business. See my blog post http://sagemath.blogspot.com/2016/10/rethinkdb-must-relicens...
I believe that's the function of this tool: https://www.aliexpress.com/item/32953589043.html

Though it only operates at 1080p, I'm not sure whether it can accept more and then downscales the output, or what.

The existence of this possibility, by the way, is why there's some push in the movie industry to encrypt the scaler-to-panel connection. (eyeroll...)
I think you can decentralize certain demographics, the same demos that were frequently socially active online for long before big social media came along.
gimme vim or gimme death
Because there is no text editor on mobile phones (you have to install one by yourself). So it might be helpful from time to time
dig1 is wrong. He uses the age old C defence of "it's not a problem with the language, it's just bad programmers programming badly". Apparently buffer reuse isn't a problem because "sane" libraries don't do it. Well, I'll believe it when we stop seeing security issues in C code bases.
It's not very niche. Nearly every household and workplace I know has an electric kettle.
I think it's simply the power of defaults. If it takes an extra step then a lot of people wont do it.
With dozens of high profile attacks via the Accellion FTA vector, I wonder why this is not yet being treated as a crisis, and organizations proactively looking at their use of Accellion's deprecated products. They know it's vulnerable, so they're just sitting around twiddling their thumbs???
It doesn’t mean anything about the font, it’s how it makes someone feel. To me, I don’t “feel” anything from a font. The article does explain what they mean from warmth, but it’s is very subjective.

I have never made a font, but I have a implemented many text rendering systems over the years and worked with thousands of fonts.
I love this! The in-browser synthesis here was a big inspiration for my side-project (https://noise.sh, spreadsheet for sound design). The WebAudio spec actually makes much of this trivial.
First you made a principle argument now you are admitting it is a matter of degrees - regardless you are at risk of hurting someone with your car every time you drive. All one can do is take precautions to a reasonable degree and carry on - that is exactly what Tesla did. Nobody was forced to ‘risk their life’, those who wanted to work were allowed to do so.
The year was 2021: Windows was starting again to support non-x86 hardware architectures, and Microsoft was shipping the best to Linux desktop experience. Mac OS shipped with the the fastest mobile processor in the world. Android basically owned the phone market.... Linux desktop was just getting somewhat working basic screenshot support.
I think they meant function pointers in general (callbacks and the like, see qsort). Also, a lot of C codebases end up implementing manual vtables of some sort where polymorphism is required.
Maybe you shouldn't assume that the scientists are all stupid, just because some rando wrote a blog post.

This 'result' isn't going to hold up.
kochen can mean to cook or to boil, so in this case water boiler is the literal translation.
> The initial plan of Ethereum was to launch with Proof of Work, and very quickly afterwards switch to Proof of Stake

And that’s the problem... it’s a bait and switch, because the miners had to bear the capital costs of investing in mining rigs, which would suddenly lose a lot of value in a switch to PoS. I think this is the original sin of Ethereum, and the network will be forever plagued by conflict because of it.
> Aside from their limited space, I much preferred the floppy to the CD.

The use cases where each of those would be more convenient than the other are largely different. The CD had a capacity that you couldn't even begin to approach with any reasonable amount of floppies, and the read or write speeds of floppies would have made handling larger files rather cumbersome even if they had the capacity.

If you had a 20 kilobyte Word file or perhaps even a few smallish image files that you wanted to transfer, a floppy would of course be much, much more convenient than going through all the trouble of burning a CD.
The key is to collect the errors in the subsystem where they originated and to handle them at an appropriate time.

Try not to bubble up errors. Many subsystem interactions can be unidirectional. If an error occurs, it is stored right there. The caller might not even care. The situation can be handled later.
>state that tends to get scattered into many interdependent objects, hard to manage, hard to refactor.

Care to elaborate what you mean by that?