6,378 karma · joined October 22, 2017
That's a good thing! Models are fit on data, data doesn't fit to models. This is like when people learn elementary music theory then go analyze some actual composer and it doesn't fit the model at all. Well kiddo the problem is that "music theory" is simply a model, a model people created after training some very limit set of musical data, everything outside of that data will probably behave different and you'll have to change your models.
If your software engineering model predicts Python would be unsuccessful, but there is evidence that Python is successful, this simply means your software engineering model is unpredictive and therefore must be revised.
I feel completely out of control and it feels like no matter how hard I try, no matter how diligently I plan things out, everything everywhere get worse all at the same time. If my tools were working N out out of M today, they will work N-1 out of M tomorrow and it's impossible for anything to get better.
It feels like any electronics I interact with are maddening nowadays. Yesterday, me and my partner needed to set up a timer for 1 hour, I set up it through our dumb kitchen timer, and my partner was wondering why I didn't use my phone timer. Look you don't understand EVEN LOOKING AT MY PHONE is a fucking nightmare at this point because there are going to be N notifications that need my attention.
This is extremely wrong. FOSS would be better if things weren't redesigned every other year from scratch. KDE, Gnome, MuseScore to name a few. I was a master of MuseScore 3 and the year I finally became 100%, they dropped support shipped the absolute shitshow that is MuseScore 4, broke every single one of my workflows and finally forced me to use lilypond full time. FOSS is a redesign-after-redesign shitshow just like big name software are. I just want my software to work today exactly the same way it worked yesterday and it seems impossible to achieve that.
It's like literally everywhere! I almost exclusively listen to contemporary Western classical music (WCM) and it's never been more exciting and better. There has never been a time where there are so many different dominant styles at the same time. There are atonalists [1] like Unsuk Chin, Jennifer Koh, Charles Wuorinen, Fred Lerdahl. There are neo-Romanticists like Jennifer Higdon, Michael Torke, Thomas Ades. There are minimalists like Caroline Shaw, Max Richter, Bent Sorensen, Christine Southworth and their ur-father Philip Glass who still writes music at 86.
If you're interested in my full opinions about the cultural force of contemporary WCM please read this [2] HN comment of mine.
Seriously contemporary WCM is awesome. It's very cliche but "if you don't like it, move on".
> In my opinion, this is a racist response by mainly European composers to the popularity of Jazz music which is associated mainly with African Americans, from whom the source originated. They were jealous of what they perceived as the novel rhythms and harmonies, but instead of building off that or inventing something new that still had rhythmic and harmonic value.. they did this
Meh, I don't think this is true at all. They're just entirely different artistic traditions. Just because haiku exists doesn't mean American novels can't.
I don't dispute that tons of normie classical music listeners (like r/classicalmusic) are racists/elitists. These people almost exclusively listen to old German common practice stuff like Bach or Mozart. They pretend that 18th century German music is somehow superior to everything else. Almost none of them would consider Ligeti or Glass even classical music. This is not the contemporary Western classical music scene at all. It seems like you may not have a sophisticated enough understanding of this subculture, imho.
[1] mostly Ligeti/Messiaen inspired people as opposed to Serialists
smol::block_on(async {
println!("I'm async!");
});
if smol is an option.EDIT: People talk about swapping executors etc but it seems like 99.999% of the programming applications you don't need anything like this, nor does something like Python supports this anyway and we're all fine with it.
Moreover, using various forms of coinduction you can encode infinite computation even in non-TC languages.
This is the problem with these kind of discussions. You cannot ignore everything else because everything else depends on 2 versus 4 days as well. Something that's done in 2 days can be exponentially worse than something done in 4 days such that in 6 months you can look back and rationally determine it was better to do it in 4 days.
I've never seen a set of business people in a software company that cares about any of these things.
Some PMs will say they care about tech debt which excites me but of course in 6 months you'll see they actually cannot give a shit but just use it as a tool to lower the estimates. If X takes 5 days but they want 3 they'll tell you "let's just add some tech debt" to convince you to promise 3, but they don't actually ever intend to work on that tech debt.
When it comes to burnout, I've literally never seen any person who doesn't consider this the fault of the employee.
I've seen VP level people who did things that are so absolutely insane that it resulted the project to be late with 100% probably from 6 months before, then when the day of launch comes it is indeed late, fire alarms are pulled, tons of people give on-call attention to our project, we hack something. Then VP says "whoopies sorry about the fire alarm, will never happen again". Lmao next thing that happens is that this person is promoted to SVP and does it again and again. "Rushing" is a good thing, if anything. Business is all about creating an artificial sense of urgency that could be trivially averted, but it was chosen not to.
People not doing right trade offs. Well again, it's on you if you do the wrong trade off. People will point at you and say this decision was wrong. That I had so little information and time to make that decision is very brought up.
For "it's just kluding APIs bro" kind of arguments, I invite you to look at no-code and low-code products and report us how well they work. Is it easy to "kludge together APIs" in this fashion and does it produce viable products? Why? Why not? If it's so easy that it's close to being automated, why can't we have a UI like Photoshop to create API consumer apps?
What cannot be automated has to be exhaustively thought by someone.
In other words, if in 2033 a stick of gum is $10000, which implies there was high inflation between 2023 and 2033, which likely means Fed increased rates even more, wouldn't that cause your rate of return to go above 5% and therefore roughly maintain the value of your assets (assuming Fed keeps interest rates above inflation)?
I have no problem with being unable to use debugger in WebAssembly, my primary approach to debugging is observable outputs from the system:
* Return value
* Logs
* Side effects
* Integration tests, unit tests
> The main thing is, I never want to give up, and I won't give up.
Just focus on this. When things at the most bleak, remember that you're not allowed to quit, so work around that.
def wrapper():
try:
return handler()
except Exception:
logger.exception("unknown exception")
webserver.status = 500
the type system needs to be able to determine that "f doesn't raise an exception". For example, one way to do this can be that all functions by default raise exception and we type: def handler() -> T: ...
def wrapper() -> NeverRaises[T]: ...
then we have webserver_add('GET', '/handler', wrapper)
so that def webserver_add(method: str, path: str, handle_func: Callable[[], NeverRaises[T]]) -> None: ...
which is type safer.Of course, here we need to specially handle `KeyboardInterrupt`, signals and exceptions returned by `logger` etc. I would personally recommend ignoring `KeyboardInterrupt`, and signals and type annotating `logger.exception` as `NeverRaises`. 95% is still better than 0%.
foo* new_foo() { return (foo*)malloc(sizeof(foo)); }
or something like that, you should always have `new_foo` and `delete_foo` otherwise you will leak memory and you will have use after free. -99, 1, 1, 1, 1, 1, 2, 2, 2, 98, 99
and you "Windsorize" your mean, you'll pull it towards one direction.Here, we get:
mean: 9.91
median: 1
Windsorized mean: 18.91
truncated (Olympic) mean: 12.11
2-truncated mean[1]: 1.43
as you see "Windsorized mean" is exaggerated on the positive direction.[1] this is when I remove top and bottom 2 values and calculate the mean of all the remaining values.