Hacker Newsnew | past | comments | ask | show | jobs | submit | boerseth's commentslogin

This reminds me of why I despise certain works/styles of art and artists. I feel cheated if I'm made to spend more time and effort interpreting a work of art than the creator put into it themselves.


Start dancing Argentine tango. I am dead serious.


Does each service really need to collect this data from the user directly? They could instead have the user authorise them by e.g. OAuth2 to access their age with one of the de-facto online-identity-providers. I would be surprised if they didn't implement an API for this sometime soon, cause it would place them as the source of truth and give them unique access to that bit of user data. Seems like a chance and position they wouldn't want to lose.


> ... six of the fundamental concepts in mathematics ... and how they connect with our real-world intuition

While the connections are interesting, I would be as interested in the disconnects, as there's a bunch of cases where our human intuitions can fail us in subtle ways. This is actually one of the lessons I treasure from mathematics: it has helped me grow a healthy set of alarm bells for those unintuitive cases. Especially for probability and statistics.


> Especially for probability and statistics.

For the general reader, two books by David Spiegelhalter (https://en.wikipedia.org/wiki/David_Spiegelhalter) are relevant here;

1) The Art of Uncertainty: How to Navigate Chance, Ignorance, Risk and Luck.

2) The Art of Statistics: Learning from Data.

And of course, all the books by Nassim Taleb.


There's also the argument that human intuition can and should be trained, rather than just dismissing it, in particular when it comes to mathematics.

See, for example, the book "Mathematica" by David Bessis, or this blog post: https://davidbessis.substack.com/p/thinking-fast-slow-and-su...



Nice.

There is also Intuition in Science and Mathematics: An Educational Approach by Efraim Fischbein - https://link.springer.com/book/10.1007/0-306-47237-6


> Hyperbolic growth is what happens when the thing that's growing accelerates its own growth.

No. That is quite literally exponential growth, basically by definition. If x(t) is a growing value, then x'(t) is it's growth, and x''(t) its acceleration. If x influences x'' , say by a linear relation

x''(t) = x(t)

You get exponentials out as the solutions. Not hyperbolic.

I always thought of the exponential as the pole of the function "amount of work that can be done per unit time per human being", where the pole comes about from the fact that humans cease to be the limiting factor, so an infinity pops out.

There is no infinity in practice, of course, because even though humans should be made independent of the quantity of extractable work, you'll run into other boundaries instead, like hardware or resources like energy.


It is understanably hard to stay vigilant with respect to individual everyday purchases, but services and subscriptions are an easy and continuous win.


That's a long list of numbers that seem oddly specific. Apart from learning that f-strings are way faster than the alternatives, and certain other comparisons, I'm not sure what I would use this for day-to-day.

After skimming over all of them, it seems like most "simple" operations take on the order of 20ns. I will leave with that rule of thumb in mind.


If you're interested, fstrings are faster because they directly become bytecode at compile time rather than being a function call at runtime


Thanks for the that bit of info! I was surprised by the speed difference. I have always assumed that most variations of basic string formatting would compile to the same bytecode.

I usually prefer classic %-formatting for readability when the arguments are longer and f-strings when the arguments are shorter. Knowing there is a material performance difference at scale, might shift the balance in favour of f-strings for some situations.


That number isn't very useful either, it really depends on the hardware. Most virtualized server CPUs where e.g. Django will run on in the end are nowhere near the author's M4 Pro.

Last time I benchmarked a VPS it was about the performance of an Ivy Bridge generation laptop.


> Last time I benchmarked a VPS it was about the performance of an Ivy Bridge generation laptop.

I have a number of Intel N95 systems around the house for various things. I've found them to be a pretty accurate analog for small instances VPSes. The N95 are Intel E-cores which are effectively Sandy Bridge/Ivy Bridge cores.

Stuff can fly on my MacBook but than drag on a small VPS instance but validating against an N95 (I already have) is helpful. YMMV.


> Brainf*ck is the antithesis of modern software engineering. There are no comments, no meaningful variable names, and no structure

That's not true. From the little time I've spent trying to read and write some simple programs in BF, I recall good examples being pretty legible.

In fact, because the language only relies on those few characters, anything else you type becomes a comment. Linebreaks, whitespace, alphanumeric characters and so on, they just get ignored by the interpreter.

Have a look at this, as an example: https://brainfuck.org/chessboard.b


I also wonder whether brainfuck (ie turing machine like) coding would be a more efficient interface to LLMs

For those who want to try it, there’s always the https://raku.org module…

  use Polyglot::Brainfuck;
    
    bf hi { 
        ++++++++[>++++[>++>+++>+++>+<<<<-]>
        +>+>->>+[<]<-]>>.>---.+++++++..+++.
        >>.<-.<.+++.------.--------.>>+.>++. 
    }
    
    say hi.decode; # Hello World!
    
    bf plus-two {
        ,++.
    }
    
    say plus-two(buf8.new: 40).head; # 42


To me, that's still unreadable. While the intention of the code may be documented, it's pretty hard to understand if that "+" is really correct, or if that "<" should actually be a ">". I can't even understand if a comment starts or terminates a particular piece of code.

BTW, how come there are dashes in the comment?


The initial long comment starts with the [ command and ends with the ] command so it forms a loop that is executed while the current cell is nonzero. But initially, all tape cells are zero, so the whole loop is in fact skipped.

Readability is a spectrum. The brainfuck code is still somewhat readable compared to for instance this Binary Lambda Calculus program:

00010001100110010100011010000000010110000010010001010111110111101001000110100001110011010000000000101101110011100111111101111000000001111100110111000000101100000110110

or even the lambda term λ(λ1(1((λ11)(λλλ1(λλ1)((λ441((λ11)(λ2(11))))(λλλλ13(2(64)))))(λλλ4(13)))))(λλ1(λλ2)2) it encodes.


First, the parent comment didn't say anything about a spectrum. It just posited "it's legible." But it isn't to me, nor to 99.999% of the people here, I assume. Even those who've dabbled once in BF will probably find it hard, as the comment admits to using tricks.

Second, while readability comes in various degrees (probably more of a high-dimensional value than a linear spectrum, but well), the only thing that's readable about brainfuck is the comment. The code itself is not understandable, unless you really start digging into it and manage to understand the state it is in at every step of the program. Even then I would argue it isn't readable: your vision provides very few clues to the meaning of each step.

The comment serves as a guidance where certain parts start (or end, I can't tell). It explains a few things about the code, but even from the comment I cannot understand what it does. Also, the comment might be entirely wrong. There's only a very hard way to tell.

Your binary lambda example is also unreadable, but at least it doesn't have as much state as the BF program (which, admittedly, is much larger). Breaking it down might require less effort.


> it doesn't have as much state as the BF program

Actually, it has much more, as it's an infinitely large prime number sieve, as shown on top of my webpage https://tromp.github.io/cl/cl.html


> That's not true. From the little time I've spent trying to read and write some simple programs in BF, I recall good examples being pretty legible.

Anything in a reasonably familiar type face and size will continue to be legible, however brainfuck is not easily human parsable.

Greatly reducing its ability to be _read and mentally internalized._ With out that, are you really doing software engineering or are you actually a software maintenance person?

A janitor doesn't need to understand how energy generation works if he has to change the light bulb.


Not sure which way the difference puts the pressure. Does the fuzziness require more prudent policies, or allow us to get away with less?


Modularity and separation of concerns can extend into other domains than software.

For me, it seems so much simpler to keep the two separate. You won't be forced to wash the heating element every time you wash the cup. Can't heat a different cup while the other is in the dishwasher, unless all your cups are self-heating. Normally, the only way for a cup to break is if it shatters, but with an inbuilt heater there's electronics that can break too. And should the cup shatter, now the heater is unusable too, or vice versa.


Exactly!

I have to have a kettle for other purpose (including heating water for other mugs than mine), and no self-heating mug is going to be as efficient as a kettle to heat water.

Furthermore, I also put cold or room temperature liquids in my mug. With a self-heating one, I would be carrying the heating parts for absolutely no reason.

Same goes for a TV. By keeping things separated, I can decide what I do which each device and manage their lifecycle separately. If the device reading video files is included in the TV, I can't plug it to another TV or a projector or even take it with me to use it elsewhere. While I've upgraded three times my video playing device to follow tech evolution, I've kept the same TV to plug them in.


I have a multi-purpose kettle that I can use to boil water, heat the room, cook a small amount of food, or use as a sand battery for when its cold in the desert, where the kettle is designed to operate as long as there is a handful of material to burn.

It is fair to observe a separation methodology, but I also have to say, in some cases multi-purpose devices have their place.

If, say, the self-heating mug involved solar harvesting, I'd put a couple in my kettle bag, for sure.


But like, a coffeemaker is a thing.

You can make coffee with a kettle, but if you are making enough coffee often enough, it does make sense to bundle a second kettle into a dedicated coffeemaker, even if you are reducing the functionality of it by doing so.


It's a thing and it's convenient as a smart TV is convenient for people who don't care much.

But as a "power user" of a TV, I want to compose my own setup.

In the same way, "power users" of coffee don't use a coffeemaker. They use things like French press.

(I use instant coffee myself in my non-heating mug so in this comparison I would be the person not owning a TV and watching everything on their phone?)


> In the same way, "power users" of coffee don't use a coffeemaker. They use things like French press.

As a perpetual intermediate, I find that a pour-over cone is a great balance of convenience and quality.


Arguably the outcome you’d want there is to be able to add your own kettle to the coffee maker, so you can have the best value/option for you if you want it. Want a cheap thing or none? Fine. Want one with remote start and modded temp controls or whatever? Fill your boots. Got a new coffee part but like the existing kettle? Reuse it.

This applies less for some physical items, I know some people are already preparing to explain why it’d be harder to make or dangerous or something but that would miss the point. Computers are incredibly easy to swap out, we already have so many ways of doing that.

Maybe I want a fast computer. None. Maybe I want to upgrade later. Maybe in a year there’s a faster cheaper one. Maybe mine is just fine right now but I need a new screen. Why do I need to bundle the two things together? There’s a simplicity for users unboxing something but there’s not (I think) an enormous blocker to having something interchangeable here.


The microwave in my house is built into the oven.

This provides absolutely zero advantages to the oven or to the microwave. It does cause a lot of stupid, easily foreseeable problems:

- There's only one control panel, and if the oven is currently active, some of the microwave controls get disabled.

- The microwave is awful in various ways -- regardless of whether the oven is active -- which wouldn't ordinarily be a problem, because microwaves are very cheap. But...

- It's impossible to replace the microwave, a $50 device, without simultaneously replacing the oven, a $2000 device.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: