I know XML and XSLT gets a lot of hate. To some extent, the hate for XSLT is warranted. But I have to work with XML files for my job, and it was pretty refreshing to not have to install any libraries to work with them in a web app. We use XML as the serialization format for a spaceflight mission planning app, so there's a lot of complex data that would be trickier to represent with JSON. At the end of the day, HTML is spicy XML, so you can use all the native web APIs to read/write/query/manipulate XML files and even apply XSLT transformations.
I suspect some of the hate towards XML from the web dev community boils down to it being "old". I'll admit that used to have the same opinion until I actually started working with it. It's a little bit more of a PITA than working with JSON, but I think I'm getting a much more expressive and powerful serialization format for the cost of the added complexity.
> Why doesn’t he ask his girlfriend what a thermodynamicist is? (She should know: That’s what her dad does.)
My dad worked a lot of different jobs at the same company before he retired a few years ago. I know at some point one of his jobs had "logistics" in the title. I only ever had a vague notion of what his job entailed. Unless the job title is obvious, like "plumber", I wouldn't expect this woman to know what the hell her dad does.
I was a little surprised by this bullet point for when make would be an appropriate build tool:
> The build system does not need to be highly portable.
I know "highly" is a vague qualifier here, but I pretty much always default to a Makefile in Go projects and have used it to build Electron apps on Linux, macOS, and Windows (without WSL, just Make for Windows). You have to do a little extra finagling to get the executable paths right, but it works well enough for my purposes.
To some extent, I get why Make gets a lot of hate. But if you keep them simple, they provide a great way to get around some of the limitations of package.json scripts (e.g., adding comments).
> The Trump administration argued in court filings that the plaintiffs are improperly questioning his executive orders, “inviting judicial second-guessing of the president’s judgment.”
Isn't this that whole "checks and balances" thing I learned about in school?
I've been frustrated about this for a while, but I haven't had a good term to describe it, so thanks for that! The biggest annoyance I find from the increasingly complex types is the impact on tooling. My IDE slows to a crawl trying to process recursive types. tsc takes 4 minutes because of some needlessly complicated library types. Just pump the brakes on the types and write some damn unit tests.
I've been working with the VS Code codebase for the past few months and I noticed they're encoding/decoding all the IPC messages using a custom binary buffer implementation (or at least I think that's the case, some of the code is hard to follow). It struck me as odd because most of the messages are pretty small (definitely not 100s of MB). I always wondered: at what point does it become more performant to encode messages to binary and decode them on the other end? Does it really take that much longer to just send strings?
Well, they're not, they're just an efficient way of encoding a subset of data. They can't compress that data, like, for example, compressing 100 x "a", unless they have a compression algorithm attached, they will just represent "a" 100 times, but more efficiently than unicode or whatever.
> We write a new tool because we are overwhelmed. Refactor it, not because the code is messy, but your life is. We chase the perfect system because it gives us something to hold onto when everything else is spinning.
This really got to me because I've been doing this without realizing it for as long as I can remember.
Low tolerance for frustration. Starting something is easy. 20% of the work gets 80% of the results. It's beautiful to see. Then you gotta do the last 20% and you see the 80% of the job ahead of you. Seeing it through quickly gets frustrating. It turns into a job. How to get away from this? Just start a new project...
Does that cycle connect to the question of why you're starting those projects in the first place? If it's "play" and experiencing joy, then quitting after the fun part would seem to do its job.
Part of the reason is wanting to make cool stuff. I'm not even half as brilliant as guys like Fabrice Bellard but I certainly would like to be.
My strongest reason to start a project though is very much along the "self-soothing" lines described in TFA. I do it to prove to myself I'm not insane for thinking that something is possible and that things could be different. If I can think of something, surely people much smarter than me would have done it already, right?
For example, I wanted to embed data into ELF executables and access it at runtime. The accepted solution was to add sections and have the program find, open, read and parse its own executable in order to read those sections. That just didn't seem right to me, I couldn't accept it and I didn't rest until I figured out the real way to do it.
I got the Linux kernel to find, open, read and parse the executable for me. It memory maps the data before the program even starts. When it does, it just needs to follow a bunch of pointers to find it. Simpler and more robust. As far as I know, no one else has done this. At least one linker out there gained features just to make this easy and efficient.
My most painful free software development experience was when I tried to contribute one of these "insane" ideas and someone described it as schizophrenic. Pretty much just dropped it and never went back there again. Patches are still on the mailing list so who knows.
When I first started high school, my parents worked a lot, so they left me to fend for myself and I was terrible about packing lunches, so lunchtime was always stressful. I ended up getting a job washing dishes in the school kitchen, which got me a ticket for a free lunch. We weren't rich, but we were definitely comfortably middle class. I'm sure there were a lot of kids like me. It would have been a lot better if the food was free.
I suspect some of the hate towards XML from the web dev community boils down to it being "old". I'll admit that used to have the same opinion until I actually started working with it. It's a little bit more of a PITA than working with JSON, but I think I'm getting a much more expressive and powerful serialization format for the cost of the added complexity.
reply