skysight-inc/HackerNews huggingface dataset:
Person/author here. Yes, I have considered other email clients. Evolution is the least bad of the available options and still sees active development. Most other clients don’t support CardDAV or LDAP so I can’t sync my address book. An email client is mostly useless without the contact details of the people want to contact.

Newscommers to the email client market have all been proprietary subscription-based middleware instead of actual email clients. The market has been standing mostly still for the last 10 years.
It depends what you’re optimizing for.

One of the beautiful things about a static site is it’s ability to be served by object stores like S3 as your origin, and cached by a CDN.

From an operations standpoint, you are not responsible for maintaining much of anything, the performance is super fast, highly available, and relatively cheap (no dedicated servers, just paying for bandwidth and storage costs)

Contrast that with a docker container as your origin... it must be running (and that is your problem to ensure it is).

If you’re optimizing for developer convenience, your traffic is low or not mission critical, or maybe you have a globally distributed highly available k8s cluster and that is “the way” your company does all the things... sure why not
And HN still is made from tables.

Somehow I find this "only do what matters, if it works it's good enough" approach pretty cool.
That tone seems more you than Theo. OpenBSD isn't known as a first mover operating system for new technologies. If the utilities are rewritten and not compatible then it really isn't a rewrite, its a new program with the same name as a previous program. Frankly, if they don't implement that standard, they aren't serious replacement efforts. They could be useful and maybe the options omitted aren't important to the person implementing it, but they are not suitable to replace the current utilities.
(Rust does not guarantee the prevention of memory leaks, to be clear)
The code always lives as AST, and the code that you see in the editor is a pretty-print of the AST. We don't go back and forth between AST and text - when you make a change in the editor, we look up the "token" where your cursor was, and use it to find the place in the AST that needs a change, and changes only that.
Articles_Self+Discipline
How This Chair Conquered the World [video]
In REST you return all the data because it's better to have some geek reading about which girls rejected him than to have to create a ticket with the backend team to get them to add it later #tea
It's interesting that people jump straight from "object we don't understand" to "therefore it must have come from another planet". If I ever suggest to someone that it could be, for example, an animal that no one has ever seen before, atmospheric phenomena we've never observed before, experimental aircraft from another country, experimental aircraft from the US, disinformation campaign by the US military for some yet unknown reason, lone scientist's experimental drone, simultaneous hack of all pilots systems, etc, I'm usually met with "don't be silly, those are impossible". Well, why isn't "alien spaceship from another planet" also impossible? Why is that more likely than the other explanations?
There is a huge range of responses between “do nothing” and “war”.
yeah, that is a mistake. I just did not fully rethink my code when I moved the build layers. I will be removing that tonight along with a few changed suggested here
Many results in algebraic geometry about rational points on curves are impossible to prove without category theory. Here's a pop-sci kind of take on it from quanta that I like. The "bridge" between areas of mathematics they talk about are functors between categories. Also many proofs of the theorems you encounter in an undergrad level abstract algebra course are much easier using categories. Also, just from the tautological stand-point, if you can prove something about multiple types of mathematical objects at once using category theory, then you don't need to prove it for each of those objects individually.

https://www.quantamagazine.org/amazing-math-bridge-extended-...
I have a few sites (also generated by Hugo) and the output is powered by a caddy container.

I also have this one, single site I want to be independent and not at risk of me misconfiguring caddy, playing around etc. Truly standalone.

So I generate the static code, embark a minimal web server and push it to my registry.
Forth is so minimal that you can implement an interpreter in hardware, which means it has no types.

There are a few typed stack languages. Cat was the first, and Kitten is another one.
I don’t know this for certain, but I have a feeling much of the price of extraction comes from accrued debt. Most of these companies - especially the smaller ones with less liquidity - probably financed significant portions of their operating expenses.
It’s been awesome for me too. I’ve had a static site hosted on github since high school. It’s been a cheap way to host a website for free (I use github + cloudflare) since before I had a credit card. I’m willing to bet it helped me get at least one of my internships.

It’s been a great way for me to learn, as I’ve re-written the site every 2 years or so.
This reminded me I was still going to report this bug, but anyone else should feel free to do so before me: gpg-agent stores your password/-phrase in plain text in memory indefinitely. You can clear the cache with some command and they also expire after some time, and gpg-agent will pretend to have forgotten them and prompt you again for the password, but the memory that contains the password is not overwritten and you can still dump the process' memory and retrieve it. Email contents seem relatively benign by comparison...
We've found one advantage to be more reproducible builds since you don't have to worry about different versions of build tooling affecting the artifact.
Author here. That was actually the working title up until two minutes before publishing.
Are they done, or did they move onto to something else?
Interestingly it’s Christopher Mellon of the “To The Stars Academy” now.
Common Sense Comes Closer to Computers
With GitLab Pages it's even easier, just fork one of the examples in gitlab.com/pages, push a content update in a commit and it's online a minute later thanks to GitLab-CI and GitLab Pages.
Both redox's grep and ripgrep (which trivially demonstrates that a grep can be implemented in rust even if it's not a POSIX grep implementation) were created / started in early 2016, so yes.

Not to mention Theo's statement is so much weaker than actually successful implementations the existence of these two completely blows through the goal:

> There has been no attempt to move the smallest parts of the ecosystem, to provide replacements for base POSIX utilities.
Kuo has been dead accurate in terms of iPhone predication. Simply because it may likely be impossible to have an Smartphone shipping 40M unit within a few months and not to have any Supply Chain leaks. It is, By SKU/Models the best selling Smartphone on the planet.

Less so on the Mac because of the much smaller visibility. But generally speaking he does tends to get it right before anyone else as we are closer ( months before launch ). Those who claims to be accurate are often weeks before launch. There are so fundamental differences.
Let's try to summarize what he tries to say but kinda doesn't do very well:

_Rust and OpenBSD are not a good fit._

OpenBSD keeps to certain aspects about how to do thinks which just don't work well with rust. This doesn't mean they are better or worse. They are just different.

For example outside of rustc-dev hardly anyone compiles rust them self. As such not many work on making rust compile itself on exotic systems (and yes in 2020 i386 is a exotic system, even through it was the standard in the past). I mean improving cross compilation is for now much more important (as far as I can tell).

But OpenBSD requires the ability to self compile and support hardware for a very long time so rust (for now) doesn't fit.

Another example is that many rewrites of classical small tools provide little value to anyone _if_ they are 100% compatible. As such they tend _to not be compatible_ in favor of better interfaces/output etc. (E.g. ripgrep!!)

Lastly OpenBSD is stuck in a world where thinks move very slow. But this is also why many people use it. One the other hand rust is from a world where thinks move much faster, sure with small steps and backward compatibility but a small step every 6 weeks is still a lot over a fiew years. So they just don't fit well together.

I also believe that in the future they might fit well together at some point. But not for now and probably not in the next 3 or so years.
There is no gatekeeping. To actually achieve POSIX-compliance is not an easy task and requires lots of testing. If you don't do it then your replacement will break everyone's scripts. A distro maintainer will also want to retain compatibility with their supported GNU/BSD extensions so that's more work to add on.

I would still agree with his statement at least as far as BSD is concerned. Outside of Redox I haven't seen any serious projects to implement POSIX compatibility. The Rust coreutils project is a good start but from their readme it looks like they are more aiming to achieve GNU compatibility on Microsoft Windows while being MIT licensed — I don't think anyone is seriously using it to build a BSD (or even a GNU) distro. If I'm wrong about that I'd love to hear it though. Rust is a good choice to write these things in but let's be realistic about the time frame required to rewrite everything.

Plus I just downloaded those Rust coreutils and tried to build it and now I'm waiting for 400 (!!!) Rust dependencies to download and compile. Is this really appropriate for a core system component to have this many dependencies? Or is there something I'm missing here? I admit I am not familiar with best practices in Rust. As the project stabilizes I assume they will want to start eliminating the dependencies or vendoring them upstream? At what point do we decide to put these into a separate library like libbsd or gnulib?
Oh don't worry, even if you never showed one iota of interest in Youtube Premium and skip every single annoying popup related to it - you'll still get asked every single time you open the app.
I highly recommend claws-mail. It is lightweight, very stable, and easily scriptable with Python.
Yes, and 2017 should be in the title of the post.
This is less "On Rust" and more "On accepting a rewrite of any tool into OpenBSD, on the merits of memory safety alone".

There isn't really much of a statement or judgment on Rust. At most there's an interesting point on it's value proposition:

> However there is a rampant fiction that if you supply a new safer method everyone will use it. For gods sake, the simplest of concepts like the stack protector took nearly 10 years for adoption, let people should switch languages? DELUSION.

This is mostly true. Developers in particular don't generally care about security, so selling Rust as a "secure" language is not going to be enough. I've said this since 1.0. But it's not entirely true for products, which often drive development - Chrome's pairing of performance and security led to tons of marketing wins.

Given that tools like "cat" etc are:

a) Not generally security sensitive

b) Target developers

I don't see anyone choosing the "rust cat" over the builtin. This is why people build tools like "bat", that aren't just memory safe copies, but they're memory safe tools that add features and target slightly different cases.

Not much else to get from this post, I think.
In this case news was clearly not maximizing views. The outlet which broke the Jeffrey Epstein story would have secured major eyeballs and journalistic honors. There were other influences at play.
I lost an Apple device once (several years ago) in a public place. A couple of days later I got a customer service mail from Apple asking for feedback on a recovery service for the device. So clearly whoever found my device was able to get it unlocked by Apple, or at least get it reset by them to the point they could use it.

That was a disappointing experience. Mailed Apple, but no reply. Fortunately not much personal data on the device. Hopefully things are stricter now.
Out of curiosity, what makes Void a preferred OS for you on a laptop compared to something “common” like Ubuntu or Fedora?
I spend more and more of my time writing relatively complex SQL, and I too frequently look stuff up. That's what good engineers do, like all the time. I seldom leave my editor when it's TypeScript, because intellisense does most of the looking up for me. But for SQL I hit the google frequently and I'm not ashamed to admit that at all.
Have a particular project in mind. It doesn’t have to be serious, but it can cover a lot of ground.

I have learned more about physics than in my whole life before, when I took the hobby project of recreating the numerical simulation of a nuclear explosion. It was immensely satisfying.
> In contrast to that, I don't have to pay a monthly fee to have a physical mailbox at my door

Sure you do: it's either rent or city taxes. The fact that the mailbox comes bundled shouldn't blind you to the reality that you (1) do pay for it, and (2) many people lose access to that address due to inability to keep paying, and it heavily harms them.

An email address is comparatively way more easy to maintain, even with the occasional Gmail account closure (which are rare).
Hm. Rust needs more than 4GB to compile itself?
Yeah, I think a bunch of people work like that. We've had the feedback that some people have had to change their workflow to work well with Dark.

People generally use what we call "trace-driven development", where they make a HTTP request to the code they're editing (typically, people are making APIs or backends to JS apps), and then they always have "live values" of what they're working on (similar to a REPL, or to running unit tests on a loop, but instantly).
I was going to say, all this discussion of whether you can make OS utilities in rust seems to be ignoring the entire OS that’s actually being written in rust!
> The node_moduoes won't be rebuilt after any changes to the code, only changes specific to the packages.json.

But that's only if the builder image gets cached and can be reused, right?
Author here. My problem is related. However, I have a IMAP/CardDAV open-standards setup instead of ActiveSync/Exchange.
Legacy code from Powerbuilder days. But it does things like calculate month over month inventory, Mark to Market value, Risk, or things related to Energy and commodities trading.
For me, vacations are opportunities for exploration. Taking time for hobby projects is difficult on time that isn't a weekday evening.
And nagging for Apple Pay, Apple Music. Like I don't think any version of Windows ever had as many annoying modal dialogs than modern iOS.
Optional technologies or services are optional until they aren't.

So now we are going to go down the whole “Minority Report* rabbithole and make laws just in case? You don’t tie your login infrastructure with Google, you use Oauth 2 and plugin any third party you wish.

Representative governments answer, however imperfectly, to the governed.

How well is that working out in the US between gerrymandering, the electoral vote having an opposite outcome than the popular vote, and how it is almost impossible to get rid of an incumbent?

Email self-provisioning has significant hurdles for even technically-competent individuals let alone the general public.

I didn’t say set up your own email server. I said create your own domain. You can create your own domain with your own email address with a few clicks on Godaddy. If you don’t like GoDaddy, there a dozens on other places that will transfer your MX record to them and you keep your own email address.
Wouldn't the advantage be consistent build fragments? If you use the build tools outside of docker, you won't get the same repeatable build artifact across different machines (or as your own host system changes). Maybe I'm not understanding you though.
In clojure, pop returns the input with the item removed (so popping a vector returns a vector with the last element removed). To return the actual element, you use a different function (peek, or last).
You are thinking about a coffee shop scenario, when the article is about an office environment. They are talking about spoofing the office SSID that devices already connect to automatically, not people manually connecting to open networks.
False sense of security argument repeatedly used against the use of bicycle helmets, but I'm yet to see evidence, that having a helmet actually changes how a person rides a bike in any significant way. And I expect behavior with regard to masks to be very similar.

In a short term a person without protective equipment (e. g. helmet) may behave more cautious, but after some time I expect behavior to regress to a normal pattern regardless the use of PPE: it is very hard to be on high alert for a long period of time.
The SLS design was required by congress to maximize use of Shuttle hardware and contractors.
There are actually several of the OpenBSD devs that have been writing Rust lately. Some are doing it for work, some from personal interest. Opinions vary on how much people like it.

Rust and OpenBSD share a lot of technical values though so maybe this isn't surprising. Rust values safety and correctness. OpenBSD values safety and correctness. Rust values 'Just Works' with all the nice things cargo does and the whole 'fearless refactoring / concurrency' thing. OpenBSD values 'Just Works' with sane defaults and the 'batteries included' base system.
Arguably, someone in that position speaking so definitively while also being uninformed, is at least a little "toxic."
> To me, a #![no_std] library is useful for contexts where there isn't a platform libc (embedded systems, kernels, etc.) and you can't assume things like the existence of stdin or processes.

"Could be useful for" (FTFY).

Unfortunately, for the reasons mentioned above, most #![no_std] libraries aren't useful for that, because they link libc and other libraries.

Most people don't do this intentionally. The compiler doesn't complain about:

#![no_std]
extern "C" { fn malloc(...) -> ...; }

so when somebody does it accidentally, everything works and they get no feedback.

When you then go and build a #![no_std] binary, and run it in a platform when libc is not available, only then you get an error. And at that point, good luck figuring out which of your 200 dependencies has the error.

In particular, if you are running `#[test]`s, doing that links standard, so if your program implicitly depends on libc somewhere, tests won't reveal that, because while testing, libc will be linked.
No, they will get the oil, and low prices will only expedite that.

Nobody, not the entire EU/West and certainly not anyone else is going to say to poor Africa and Asia: 'you can't use Oil', moreover, nobody is going to send troops to Nigeria to stop exports, or embargo Indonesia and Pakistan or wherever from receiving oil.

It's like telling 5 billion people they can't use tapped water or water wells that they have to 'figure something out'.

It's a non-starter.

The only shift will be economic - either Oil is too expensive - or - in some situations, solar might be cheaper. Which it will be, but for the most part, there is no end in sight to oil.

If there is a magic leap in solar and battery tech, and China pumps out super cheap electric cars that can be re-fueled cheaper than gas and there's enough sunlight, that would work. But that's not in the cards.
I'm not talking about management, I'm talking about leadership. Do you have a tech lead on your team? If not how do technical decisions get made? Is it democratic (everyone votes) or more meritocratic (everyone argues their opinion and the strongest one wins). In my experience it's typically the later, and it's in that case that demonstrating a lack of confidence is likely to defeat your chances of leading the team in the direction you think it should go.
Yeah, I can definitely see how that would be a more performant approach.

I suppose I wasn't so interested in figuring out how to make this algorithm as fast as possible as much I was interested in diving into why this particular implementation was slower.

I'm not totally convinced that this difference is down to the string being parsed over and over, though

> doing the UTF-8 decoding up-front is exacerbating the performance difference in the allocator

This seems to suggest that allocation might be dominating here. WDYT? Either way, I've added a disclaimer to the post.
I haven't read all the way through yet but this seems pretty great. Some rough edges, sure, but it's accessible, fairly comprehensive, and concise.

Have you seen "Multi-Level Languages are Generalized Arrows" by Adam Megacz? https://arxiv.org/abs/1007.2885
What to Ask Instead of ‘How Are You?’ During a Pandemic
I buy coffee for $10/kg, it gets me 75 cups of strong black coffee. I will rather pay $5 for software.
How the Economic Machine Works by Ray Dalio (2013)
Ask HN: How to improve Who's Hiring posts?
Hi - I'm curious how you all think the Who's Hiring posts could be improved.

Personally, I'd love to see more from companies about their interview processes. Definitely the overall length of process, but also things like how many (if any): paid/unpaid projects, coding "challenges" or "take-homes", technical phone / video screens, code reviews, portfolio reviews, whiteboarding sessions, pair programming sessions, etc are involved in the process.

Others have posted that things like salary ranges would be helpful.

Companies currently post a lot about their tech stack, personnel, and how much money they raised, which is nice for deciding if you want to apply with a company at all.

What other things would be helpful? Looking forward to hearing your suggestions!
I'm interested to hear more!
The Nomad page gives me a good overview but doesn't tell me WHY should I migrate from an existing k8 cluster. Would you be able to sell it to me?
> I wasn't implying. I was stating a fact. There has been no attempt to move the smallest parts of the ecosystem, to provide replacements for base POSIX utilities.

Huh? Some days all I see on HN fron page is "X written in Rust" projects, where X is some long existing tool (now with colorized output by default!)
This actually happened to me recently with hotmail. The forced migration to outlook just deleted everything, with no explanation.
This. Being a pilot is a lot of work. Depending on the craft, there’s a lot of things you must know and commit to memory; some things shouldn’t be committed to memory (best if technical manuals, standard operating procedures, etc are used).

Very experienced pilots share similarities with very experienced engineers. Maybe the analogy I’m looking for is: an engineer might not know the capabilities and limitations of each peripheral device they use, but can still be experienced. Also bear in mind, that this type of piloting is a high-stakes job; extraterrestrial craft are arguably less common than those made on earth and the pilots probably take this into consideration.

That said, I think this this whole ordeal is really interesting. Reading the comments, I think the “lasers” and “plasma” stuff + dropping “vehicle” from the nomenclature (i.e. “unidentifiable aerial phenomenon”) is rather interesting.