They are great books about some combinatorial mathematics inspired by programming problems. Not the best investment of time if you want to learn programming itself, because:
1. Most of the time you are not implementing foundational algorithms like sorting or SAT solving. You use mature implementation in libraries.
2. If you are in fact implementing foundational algorithms, then the existing volumes of Knuth cover only a very limited set of problem areas.
3. If you are implementing something in an area covered by Knuth, the books are worth looking into as a reference, but often writing performant and robust code requires considerations not in Knuth. This is because Knuth works with an idealised machine ignoring things like parallelism, memory hierarchy etc. and understandably does not get into software design issues.
awk, sed etc. belong to the museum, now that we have so many tools and libraries that can handle structured data.
The whole early Unix obsession with plain text files was a step in the wrong direction. One grating holdover of that is the /proc filesystem. Instead of a typed, structured api you get the stuff as text to be parsed, file system trees and data embedded in naming conventions.
I unironically disagree with this, structured data is incredible and powerful.
But an important part of the early internet was "its Just Text".
And in fact, the reason why JSON is so great is that if you want to use it as Just Text it works just the same!
It's a translation layer between systems that really demand highly structured data and flexible systems where as long as you can thunk about it, you can get from anywhere to anywhere else with a few simple programs that are on every machine in tbe known universe.
I disagree. I think awk and sed are useful for some uses, even though it is not very good for JSON. (I also think JSON is not the best format for structured data anyways.)
In the /proc file system, they could have made the data format better even without using JSON though. (For example, null-terminated text strings might be better than using parentheses around it; since, then, what if the data includes parentheses? You could use the PostScript format for escaping (string literals in PostScript are written with parentheses around it, and can be nested), but, it would be better and simpler to not require any escaping, isn't it?
(Anyways, my own ideas of operating system design, one is that it does have structured data in a much better way, so avoids this and other problems. There is a common structure for most things, and would be designed to improve the efficiency compared with JSON, XML, etc, as well as other advantages. This can also be used inherently with the command shell, so unlike Nushell, the system is more designed for this.)
I procrastinated on my thesis. I got the usual advice: 'perfect is the enemy of the good', 'just get it written' etc. but it made no difference. With hindsight I now realize that I was working on an unfeasible project with inadequate preparation but did not want to accept that. How do other experienced people, not just your advisor, react to your project? If they are skeptical it may be a worth taking a cold hard look at the entire plan.
That Twitter thread is above my paygrade, but NE's final sentence (addressed to three other people working in his field) is rather relevant to this discussion "If this cipher has already been discovered, let me know where so I can give credit."
I think this is an increasing problem as 'liberalism' becomes the official ideology of the elite, so that everyone pays lip-service to 'non-hierarchical' values and overt displays of power are looked down on. Power struggles and self-aggrandizement then go underground and are covered in extra layers of hypocrisy and doublespeak. Those who don't catch on, lose.
For me Twitter is mainly a substitute to RSS: a central location to consume interesting content from diverse sources. In that role having an algorithmically curated as opposed to a strictly chronological feed is essential. For most people/entities I follow I'm interested in only a fraction of their tweets and I can rely on Twitter to do a good enough job of surfacing them for me. By following about a thousand accounts I can reliably hear about the latest trends in the areas that interest me by spending about half an hour each day.
On the other hand, right now I follow only a few dozen accounts on Mastodon and I'm already drowning in irrelevant posts. It can at best be a glorified group chat.
We live in extraordinary times, standing on the shoulders of the scientific revolution, with gigahertz-gigabyte machines as commonplace and hundreds of years of mathematics ready to be built upon. It is criminal not to be busy.
I agree that most of us can do at most a few hours of intellectually demanding work every day. But to win those few hours of freedom, to gather the preconditions of doing work, to maintain the social organizations necessary for collaboration, and to make the results presentable, can easily eat up a whole day year after year.
This what is so great and yet limiting about SQL. Carefully optimized implementations, but only for a fixed set of built-in functions. Are there any frameworks which allow user-defined functions to gain some of these optimization benefits without exposing the full internals of the data-store implementation to them?
DuckDB has a few options for custom functions! I'm not sure exactly how optimized they are relative to what you have in mind, but I believe there is still quite a lot of query optimization that you get out of the box.
The second is Python-specific, but you can have UDF's straight from Python! It's on the roadmap to scale this to the other supported languages.
https://github.com/duckdb/duckdb/pull/1569
In general, I also think that SQL is still abstracting a lot of the complexity you would have to handle in an imperative language. These holistic moving averages are actually a great example of why I love SQL! I just learn the WINDOW functions syntax once and it works for many queries.
I'm an Indian and I beg to disagree. I have made small contributions to open source projects, including fixing typos, and have never felt unwelcome.
I'm a teacher of economics and open source software including Python, Julia, LaTeX, R and Linux are essential to my work. I would find it hard to pay for proprietary equivalents of all the open source software I use. I consider it my duty to contribute back in whatever way I can.
My national pride is not hurt just because another Indian who did something wrong was criticised on the Internet.
1. Most of the time you are not implementing foundational algorithms like sorting or SAT solving. You use mature implementation in libraries.
2. If you are in fact implementing foundational algorithms, then the existing volumes of Knuth cover only a very limited set of problem areas.
3. If you are implementing something in an area covered by Knuth, the books are worth looking into as a reference, but often writing performant and robust code requires considerations not in Knuth. This is because Knuth works with an idealised machine ignoring things like parallelism, memory hierarchy etc. and understandably does not get into software design issues.