HN user

etbebl

156 karma
Posts0
Comments93
View on HN
No posts found.

what differentiates Ente from iCloud Photos - at first (assumptive) glance, it appears redundant.

I think the point is that it's an alternative clone of iCloud or Google Photos that's not from Apple or Google. For some people, it's really obvious why you would want that, but if it's not to you, I can see why it might be more confusing why it exists.

Sure, but it's designed to minimize the chance that a quantum fluctuation could change the outcome of a computation, right? Whereas in the brain that might not be the case. A lot of the "interesting" neural activity (e.g. relating to decision making, language, etc) happen in highly sensitive dynamical regimes: on a threshold of firing, or activating one neural population vs another. (Arguably you can get the same effect in an artificial network by adding true random noise though!)

Check out optype (specifically the optype.numpy namespace). If you use scipy, scipy-stubs is compatible and the developer of both is very active and responsive. There's also a new standalone stubs library for numpy called numtype, but it's still in alpha.

The MacBook Neo 4 months ago

Windows Terminal and PowerToys are pretty nice. The Phone Link app is convenient, and screenshots are way better (no need to paste into Paint anymore, just use snip and sketch)

I mean yeah I kind of get it, sometimes, it depends what mood I'm in. Sometimes I try to resist this feeling though, because I think being connected with people around me is nice and there are general benefits to being in a friendly community. (If I hated where I lived, or was very busy all the time, I probably wouldn't give it a second thought.)

The example in the article is a waiting room. Or you could be waiting to catch the subway, or in line at the grocery store. In those situations how is somebody trying to talk to you preventing you from completing your task? Otherwise you're probably just scrolling your phone; sometimes I fill these gaps with things like podcasts, but even then it's not like what I'm doing is urgent.

I get that the scope of the article is a bit larger than this, but it's a pet peeve of mine when authors acknowledge the advantages of conda and then dismiss it for...silly? reasons. It kind of sounds like they just don't know many people using it, so they assume something must be wrong with it.

If you don’t need compiled extensions, Conda is more than you need.

Am I missing something or isn't that exactly the problem we're talking about here?

And even when you do need it, conda environments are heavier than virtual environments and the resolver used to be infamously slow. Mamba exists largely because conda’s dependency resolution took forever on nontrivial environments.

Like it says here, speed isn't a problem anymore - mamba is fast. And it's true that the environments get large; maybe there's bloat, but it definitely does share package versions across environments when possible, while keeping updates and such isolated to the current environment. Maybe there's a space for a language package manager that tries to be more like a system package manager by updating multiple envs at once while staying within version constraints to minimize duplication, but idk if many developers would think that is worth the risk.

I absolutely can tell the difference between house temperatures of 67, 68, and 69 F. Not so much down in the 30s, but in the typical ambient range of temperature, that level of precision seems to match my body's sensitivity (in fact, I wish my thermostat was just a bit more precise).

I interpreted the original comment totally differently - I thought they were saying that the programmers [who created these tools] should pay more attention to how productive [or not] power users can be with the tools [that they created]. And use that as an important metric for software quality. Which I definitely agree with.

Well, of course almost all information comes with an agenda, but perhaps the more useful distinction is whether the information is presented in good faith, i.e. is honest about the agenda (which actual advertising can also be).

I get that if you're distributing software to the wider public, you have to make sure these scary alerts don't pop up regardless of platform. But as a savvy user, I think the situation is still better on Windows. As far as I've seen there's still always a (small) link in these popups (I think it's SmartScreen?) to run anyway - no need to dig into settings before even trying to run it.

The latter is what would be most useful imo. Even Matlab can type check matrix sizes with constants these days, but I often wish I could use variables to express relationships between the sizes of different dimensions of inputs to a function.

I can see that some of the categories are a stretch semantically; however, I didn't see the specific categories and their names as central to the point of the article. I think the goal is to demonstrate that 1) everyone engages in persuasion in some form; 2) there are various different styles of persuasion with different strengths and weaknesses, and it's useful to be self-aware about what style(s) you tend to use and whether there are other styles you might want to try out in certain situations. I think breaking it down into 5 somewhat artificial categories is a good framework for making this topic approachable and providing good examples to think about.

I think if you already have well-developed thoughts about persuasion and social interaction, it might not add much, but it was useful for me.

It's crazy to me that a significant number of people know "cos" and "sin" primarily though CSS. Is that really what this is implying? Or maybe people just find them hard in general, but it seems odd to think of them as features you dislike, rather than attributing the dislike to the underlying math, if you've ever taken a trig class before.

In real life, when you have a dependency, you are responsible for it. If the thing that is dependent on you does something wrong, like a child or business, you might end up in jail, as you are responsible for that.

Isn't this backwards? In real life, if you have a dependent, you are responsible for it. On the other hand, if you have a dependency on something, you rely on that thing, in other words it should be responsible for you. A package that is widely used in security-critical applications ought to be able to be held accountable if its failure causes harm due to downstream applications. But because that is in general impossible and most library authors would never take on the risk of making such guarantees, the risk of each dependency is taken on by the person who decides it is safe to use it, and I agree package managers sometimes make that too easy.

Not paying with cash 11 months ago

How milquetoast... "Young people want to pay with cash more, and there might be interesting reasons for that, but ehh cards are convenient and cash is gross so still no cash for me!" What's the point of this?

The Synology End Game 11 months ago

Isn't the conventional wisdom "at least 2 backups, one offsite"? My lab gets by with 2 copies for most of our data: one on our Synology NAS and one mirrored to Box.

With the size of data we're dealing with, loading everything from cloud all the time would slow analyses down to a crawl. The Synology is networked with 10G Ethernet to most of our workstations.

The author dismisses C++ out of hand, but I really think it does a pretty good job of making this a non-issue. Want a structured value type? Sure, that's a struct with public fields by default, passed by value with automatic copy constructor and assignment functions. Want a mutable type that's encapsulated and needs to do something special to be cloned? Sure, that's a class passed by unique_pointer or reference, with non-default (or deleted) copy constructor and assignment functions and private fields by default.

Every language I've used since then feels like it makes this issue needlessly complicated and implicit.

It seems to me that for products that in general are cheap to buy as well as produce, companies would want to make these products somewhat longer-lasting to gain a better reputation and then make more sales and larger profits on more expensive items.

I think the fundamental problem here is that nobody trusts brands anymore because we have been trained by strategies like market segmentation and private equity cost cutting that the vast majority of brands don't consistently indicate quality. That product A could be fine and a very similar-looking product B could be horrible, and any company or even product could become shit at any moment. Breyers in the US is a great example - they sell real (though still watery) ice cream in the cartons that say "naturals," and all the other very similar looking cartons are full of crap artificial frozen dairy dessert. They had a very strong brand, and they decided it was time to cash out that brand goodwill by cheaping out, but deceptively so they could ride it out for a few decades, at which point who cares?

This has led to a situation where companies don't make any attempt anymore to gain a reputation for the quality of their products, because it's futile to convince the public that they can trust you. And also, they have to compete much more equally with alphabet soup brands on Amazon making the absolute cheapest version of products at the lowest margins (and labor costs). So why would anyone make a better lightbulb that no one will buy because it's $2 more expensive?

OK seems interesting. Maybe what I actually want is fully dependent array types. But it seems like you should be able to do something like this:

  x : [{| col = #12 |}]float (* given *)

  x_split : [{| col = [| Top = #5, Center = #, Bottom = #5 |] |}]float = split_dim(x, "col", [| #5, #, #5|]) (* maybe type checking fails if the col dimension is not long enough?? *)

  x_center = \Phi i[{| col : # |}].x_split[{ col = Center i }]

Basically what I mean is, I can see benefits of declaring a sub-structure to a linear dimension using concatenations, rather than being limited to reshaping the dimension which only works if you can factor the length into N equal segments. Because many algorithms have to split a linear dimension in various ways and do something semantically different with the parts, and it would be cool to have the type system reflect and check this behavior. However, I think for it to be useful, it must be possible to "reinterpret" a dimension as having a particular structure (in a checked way), because if you're pipelining some array x through A and B, it's unreasonable to expect the author of A in every case to consider that you might want to apply B next and ensure that its output type permits that. And there are a lot of cases I can imagine where casting e.g. #m to [| #5, #n, #5 |] would only reasonably be considered a mistake, given the declared behavior of the function doing the casting, if m < 10.

Edit: maybe I'm silly in assuming you can't just downcast to a more specific shape type if you want to - still a newbie to algebraic typing.

I mean, sure, why not, and I'm not opposed to using array languages as a fun hobby (which seems to be the spirit of this). I just noticed that the selling points in the introduction to the manual were not very compelling to me as a Matlab/Numpy user, and since sometimes people bemoan that array languages aren't more widely used, I just wanted to say, hey we do have powerful "array languages" that imo are strictly better on things that matter for most real work, so it's not surprising.