I get the feeling that the world was significantly more open to kids growing up with access to computers in the 80s and 90s, because as someone whose formative years were the 00s and early 10s, the interesting bits of technology were already buried under a thousand layers of abstraction and indirection. Kids nowadays won't ever learn what a shell is unless they go out of their way to learn it for some reason.
My daughter finished her CS degree about a year ago. I was glad to see that one required class had her build a very simple computer from gates as her final project. I don’t know the details, but I think the computer had perhaps 10 different instructions. She didn’t like that project very much, but I thought it was valuable; someone has got to understand the principles of operation at that level.
I started programming in the 60’s and at times had to load instructions into machines using binary on front panel switches. That’s the reasons that machines of that time had the lights and rows of switches on the front so that one could debug programs by looking at the lights to see the program counter, data value, or instruction. See [1] for a photo of a large front panel on an iconic machine of the time.
I even recall pulling plug panels out of card processing equipment to reprogram the sorting and selecting of input data being run through machine as huge stacks of punch cards, see [2] for a picture of a mid-20th century plug panel for data-processing.
The layers of abstraction are important. They enable us to construct some of the most useful, complex, and intricate artifacts ever made on our planet. Today I program in high level languages, and I get to use powerful frameworks, database systems, and amazing hardware right on my desk. Yet, I do miss some of the fun of invention and hacking on systems that I really understood in depth.
I believe that it was a two semester sequence that covered gate level logic, microcontrollers and assembly language, and a hardware lab with oscilloscopes etc. I would have picked slightly different classes than the ones she ended up taking for her degree, but having worked in industry myself, I thought the exposure to hardware she got could be useful for her in the future.
My own educational background (Math, EE, CS) has given me a lot of flexibility over the last 50 years.
Sorry, you would be wrong. There was no internet. You were lucky if there was one other person around you who knew BASIC and could answer questions. Everything you needed to learn came in books that cost $30 each (at a time when $30 was a lot of money), and most of the books at the computer store were for using spreadsheets and word processors, not actually coding. Great, you had a DOS shell right in front of you, but learning what to do with it was a struggle. And writing .bat files isn’t very exciting. Maybe if you were in a place like SV, there would be tons of resources to learn, but in most other places you would be in an information desert. I was interested in computers but gave up because I hit the limit of what I could learn pretty quickly and couldn’t get any further. Kids have it MUCH better today.
That's really not true though, lots of dev-focused tools explicitly require hopping into a terminal and typing away commands. Plus at a certain point, anyone with any real curiosity is going to think "I wonder what's hidden behind these abstractions I see all the time?" and dig deeper anyways
You'd think that, wouldn't you? Yet here I am, someone who grew up thinking computers were obtuse and boring because getting the computer to do anything interesting seemed like it would require knowing a thousand things not related to the issue at hand. I was always a mechanically minded person, so while the inner workings of things seemed interesting, making toy websites (the entry level computer thing to do in that time period) seemed about as interesting as watching paint dry.
But here I am, working as a software engineer and half way through my MSc in computer science. It took a couple of low level microcontroller classes in my mechanical engineering undergrad for me to see the light.
I would argue that games like go and chess are so vastly different from real life that it's not useful to make comparisons like this. Sometimes similar high-level strategies can be employed, but I'm certainly not thinking in terms of "controlling the middle" as that doesn't really make sense in real life. One can make that phrase as vague as possible to make it apply to real life, but what benefit does that bring?
I'm not saying that strategy shouldn't be used. Obviously one should have a goal to not act in a way such that in the future their positions will be untenable.
What I'm saying is I don't find it useful to reduce complex real life positions or strategies into specific game terms like "ladder" or "ladder breaker" or "outpost" or whatever.
The book is much better than my one-sentence summary of it. As a small example, the author notes that Communist forces would often set up bases on the boundary of two warlords' areas, so that they could not be surrounded.
My point is that given enough contortion or reduction, one can apply any real life strategy to almost any strategy game.
In the first example of controlling the middle vs the edges, well, there are chess openings with the strategy of explicitly giving up the center. A reply in a different chain on this post mentions these, known as hypermodern openings.
It does sound like a good book since I'm a fan of history, chess, and go, so I'll give it a read.
And they did that because it makes sense from a military perspective, not because they were aping go strategies. Are you being obtuse on purpose? You're taking two radically different problem domains and producing a shaky, extremely high level mapping between some elements in them that is essentially unfalsifiable.
Getting it out there. If your goal is just to ensure that a well supported open source solution exists and people can use it instead of having nothing at all or only paid proprietary garbage, a permissive license makes far more sense.
If your goal is sticking it to the man and demolishing capitalism or whatever then it's different of course.
I’ve worked several jobs in the past where using reciprocal OSS (such as GPL) was expressly forbidden. This would leave us in the position of reinventing the wheel, buying something, or using something (possibly inferior) that’s more permissive.
(I guess in many ways this is a data point to support the “OSS work becomes just a source of free labor for large tech companies” thesis up thread.)
It might be the only pragmatic choice, so I'm not condemning developers or anything, but that would make me a bit uncomfortable with the company itself.
I suspect that when GP said "using", they meant "incorporating it into your own code".
No one at any company I've heard of or been involved with cares if you simply use, i.e. run, Linux or other GPL software. That doesn't affect the licensing of your own software.
What they do care about is if you take the GPL software and incorporate it into your own product.
You are ignoring the protections against "tivoization", patent trolling and passing software freedom down to the end users.
Often we are the end users. Because of permissive licensing phones, routers, iot devices have a lot of closed or otherwise locked own components that I cannot trust nor modify.
Open source software is bizarrely sticking it to capitalism. RMS and his ilk developed these licenses pretty much because they wanted free shit out there with no stipulations. It's insane that anyone with skills would care enough to work on GNU instead of making 6 figures to write the same code for IBM. OSS kinda proves that humans are deep down pretty alright
For anyone not very familiar with copyleft, the actual goal is:
> My work on free software is motivated by an idealistic goal: spreading freedom and cooperation. I want to encourage free software to spread, replacing proprietary software that forbids cooperation, and thus make our society better. [1]
Free as in freedom for the users of the software to control, audit, and modify what runs on their hardware.
The stipulations are there to prevent people who aren't aligned with those goals from benefiting from (and working against) the work done by the community that believes in those goals.
It's easy to give the lie to this, because the restriction they are unhappy with is the restriction against restricting others. Anyone complaining about that is just masking a demand of "free for me, but not for thee" - definitely _not_ "totally unrestricted."
Just a small correction -- The GPL does not require you to release code diffs. The requirement is that people who receive binaries from you are entitled to receive the source to that binary upon request.
You're kind of underselling Stallman's vision. He realized early on (80s) that the users' control over the software running on their machines was intimately related to their personal freedom. Most of society has only started to notice this when rumors about apps and websites secretly accessing your microphone and camera started to spread in the late 2010s.
For Stallman, and the rest of us inspired by the copyleft movement, writing GPL software wasn't merely a way to impact the profits of capitalists. He would have been scarcely more satisfied with closed-source software written by a democratically organized cooperative and released for free. The goal was and is to ensure that users have the freedom to know what the code running on their machines is doing, and to alter its behavior if they wish.
That dream seems so distant today that people worry it may never be satisfied, but I have a more optimistic view. Someday, hardware generations will not be so rapid or represent such major improvements. That will create an opportunity for the GPL ecosystem to close the gap in functionality and provide alternatives that run on the hardware most people own. Mostly, the GNU project is always running behind on the hardware treadmill; keeping up with software functionality is easy by comparison.
What do you mean by "free shit with no stipulations"? As I see it, that would describe permissive licenses, which even allow you to build on software and sell it without giving back via source code. The GPL requires you to abide by some rules and "play fair".
>You can show all sorts of chemical and biological explanations for the behavior, but it is still "behavior." It can be predictable, but it is not deterministic.
What makes it non-deterministic? A neural network is a system with a huge number of parameters and therefore a wildly chaotic output, but the output is still deterministic. Even if you introduce a number of environmental confounders.
To claim that brains are (more) non-deterministic (than other kinds of macroscopical physical processes) you would have to show that quantum effects have a (more) significant impact on their outcomes.
Well, let's start at the foundation of reason and what it means to reason. Descartes demonstrated that the only two things that any observer can verify with certainty on his own are the existence of his own consciousness and free will. Everything else can be reliably ascertained but not known with certainty, due to the nature of interpretation.
This is in stark contrast to modern materialism, the view that what's real are the observations and measurements of the world around you. But to me, to question the existence of consciousness and free will, things every one of us can verify we have with simple thought experiments, while holding our external observations as true, even knowing full well we can never verify them with certainty, is a bit absurd. And if there is free will, that is, capacity for a living creature to decide a course of action on it's own, then there is necessarily some nondeterministic element to it's behavior. And that is what we observe when we look at living creatures, and one defining distinction between living and non living things.
Again, to chock something we experience directly up to illusion while holding things we don't experience directly as truths is a bit absurd. So I do think there's something very interesting going on with the whole consciousness and free will thing, one that we don't understand, and I think those phenomena are intimately tied to the phenomenon of life as well as the phenomenon of evolution.
I said nothing of qualia. Science has no tools to even begin trying to model, describe or explain them. All I am saying is that from a physical perspective, a mind is just as deterministic as an orbit. So far nobody has discovered anything to suggest otherwise. You're taking a concept that exists outside the conceptual space of physics and using it to make statements about physical systems.
> Though I think that's mostly on Google "optimizing" my queries by dumbing them down.
I'd say it's become a lot worse than it was just a couple years ago when you could massage the queries to get you exactly what you want. Now google seems to think it's more clever than you and turns every question into an entry level one.
I certainly don't mean to imply that misogyny (which those kind of attitudes are a specific expression of) begins in the workplace. It's just where I currently am in life and where it has been most apparent to me in the past several years. I agree that it starts much earlier and there is significant work to be done at that level as well.