I think Mattermost lost a lot of instance admins' trust when they recently decided to update the server to limit access to old messages without good reason. On self-hosted instances!
That's a shame, I interviewed there once, decided not to take it but it was one of the few places I could have seen myself working at, they seemed like decent folks trying to build something worthwhile.
I know of this one [1], a 1000W space heater with integrated cryptominer. Looks kike you can actually buy it now. Not sure how much the mined crypto offsets the heating costs though.
Sadly had a very similar experience about the screen of my FP4, which seems to have a serial fault of producing random inputs whenever it so pleases [1]. Knowing I had bought a phone with great self-service claims, I was confident they could just send me a replacement screen and I could swap it myself. But no, they insisted that I had to send it in, claiming that this would be better for the environment.
I do want to support Fairphone's mission and wish I could whole-heartedly recommend it to friends and family. But this experience and the many software issues have led me to recommend other options instead.
You can definitely buy the replacement screen for the FP4 as it's on their online shop. If you were going for repair under warranty it does seem odd not to just send you the part if you're happy installing it.
My understanding of this was that the UB starts only after the value is passed/returned. So if foo() has a contract to only return positive integers, the code within foo can check and ensure this, but if the calling code does it, the compiler might optimize it away.
Assuming that is correct, it's still exactly the same footgun. Checks like that are introduced to guard against bugs: you are strictly safer to not declare such a constraint.
I was very reluctant about the polars syntax as well initally, but it has grown a lot on me.
Pandas syntax is super ergonomic for quick one-off analysis, but it becomes hard to read/maintain once your processing gets more complex.
For example, the innocent
df[arg]
can mean wildly different things - does it filter rows? Subset columns? Extract a single column as a pd.Series? There really is no way of knowing except for checking the value of arg.
In contrast, polars syntax feals clunky initially, but it's much easier for me to revisit a pipeline and quickly understand what it does.
SQL more elegantly introduces ternary logic in this case, where any comparison with NULL is itself NULL. This is sadly not possible in most languages where a comparison operator must always return a (non-nullable) boolean value.
It is implemented using web maps technology (https://leafletjs.com/), similar to e.g. the Google Maps satellite view. The screenshots are then served pre-assembled into quadratic map tiles at different zoom levels. This way the client only ever has to load and display a hand ful of relevant tiles.
Perfect analogy! The cool part is that your model also gives good intuition about the gradient descent part. The springs' forces are the gradients, and the act of the line "snapping" into place is the gradient descent process.
Technically, physical springs will also have momentum and overshoot/oscillate. But even this is something that is used in practice, gradient descent with momentumg.
https://github.com/mattermost/mattermost/issues/34271
reply