Before making sure you have access to good beans (had to carry on with the theme), make sure you actually want to have "coffee" as another hobby in your life. Maybe it's worth it to outsource to your local cafe the machine maintenance, grind fine-tuning, bean recipes, hours learning milk steaming, hours spent on youtube, coffee forums, commenting in the occasional HN coffee-adjacent articles...
If good coffee is the goal and one doesn't insist specifically on espresso or having steamed milk, the humble pourover is a good starting point. The pourover funnel, filters, and a decent hand grinder are relatively inexpensive and, with only a little practice, the output is as good as any americano produced by the average barista at 1/5 the price per cup.
That's pretty much why I got a semiauto machine. Is it the best espresso ever? Probably not. But I can make lattes in my underwear on Saturday morning that are still better and cheaper than what I'd get at Starbucks. Scratches the itch without being as demanding as a hobby.
Fruity Kenyans and Ethiopians by V60 or Chemex, classic Italian on the espresso machine, the way $deity intended. Acidic espresso is gross, but the juicy acidic coffees shine as pour-overs.
> For those unfamiliar, Slayer is (imo the best) one of the top $$$ machines and pairing it with a budget grinder is a classic sign the owner doesn't know a thing about coffee.
The exception to that rule is Espresso Vivace in Seattle, with (at Capitol Hill location) a couple 3-group La Marzoccos at the bar and a collection of modded Niche Zeros on grinding duty. Nobody can accuse David Schomer[0] of "not knowing a thing about coffee".
I think of it as BSD style, though of course it could be suggested/mandated elsewhere -
[...]Use a space after keywords (if, while, for, return, switch). No braces are used for control statements with zero or only a single statement unless that statement is more than a single line, in which case they are permitted.[0]
As I look, GNU guide is less specific, but examples[1] show the same style.
The good thing is that -Wmisleading-indentation [2] (comes along with -Wall) catches this indentation error.
> C++ is like C with extra features, but you don't need to use them
C++ certainly (literally (Cfront[0])) used to be this, but I thought modern (decade or more) conventional wisdom is to NOT think like this anymore. Curious to hear others weigh in.
To me, it is not "conventional wisdom", it is what a vocal group of C++ guys who look at Rust and its memory safety and don't want to be left out.
Their way is not wrong, new constructs are indeed safer, more powerful, etc... But if you are only in for the new stuff, why use C++ at all, you are probably better off with Rust or something more modern. The strength of C++ is that it can do everything, including C, there is no "right" way to use it. If you need raw pointers, use raw pointers, if you need the fancy constructs the STL provides, use them, these are all supported features of the language, don't let someone else who may be working in a completely different field tell you that you shouldn't use them.
C++ by comparison doesn't stand in your way too much either.
I feel like the biggest gripe Rust has is what happens when you do have to go unsafe.
That seems to be a strong point of contention for many folks.
Maybe all the reasons that lead people to use unsafe rust go away or the attitude about it shifts in some manner.
For me Rust turned out to be less interesting after I saw the whole ceremony about typing.
The amount of things I had to grasp just to get a glimpse into what a library does felt much more involved than any of the things I did with C++.
The whole annotation-ting feels much less necessary and more like a proper opt-in there.
I think of this as the curse of Emacs. Infinitely configurable, thereafter entirely unique in the universe, which can be a double edged sword. See too (maybe it's the same thing) The Lisp Curse.[0]
I followed your and @blymn's work then, and filed a bug report against veriexec. blymn gently improved the characterization of the problem and fixed it. That led me to start studying lex/yacc, instead of just treating them like magic.
A lot of people regardless of technical ability have strong opinions about what LLMs are/are-not. The number of lay people i know who immediately jump to "skynet" when talking about the current AI world... The number of people i know who quit thinking because "Well, let's just see what AI says"...
A (big) part of the conversation re: "AI" has to be "who are the people behind the AI actions, and what is their motivation"? Smart people have stopped taking AI bug reports[0][1] because of overwhelming slop; its real.
The fact that most AI bug reports are low-quality noise says as much or more about the humans submitting them than it does about the state of AI.
As others have said, there are multiple stages to bug reports and CVEs.
1. Discover the bug
2. Verify the bug
You get the most false positives at step one. Most of these will be eliminated at step 2.
3. Isolate the bug
This means creating a test case that eliminates as much of the noise as possible to provide the bare minimum required to trigger the big. This will greatly aid in debugging. Doing step 2 again is implied.
4. Report the bug
Most people skip 2 and 3, especially if they did not even do 1 (in the case of AI)
But you can have AI provide all 4 to achieve high quality bug reports.
In the case of a CVE, you have a step 5.
5 - Exploit the bug
But you do not have to do step 5 to get to step 2. And that is the step that eliminates most of the noise.
reply