I believe that as long as an independent, democratic and prosperous Taiwan exists, the communist party in China will perceive it as an existential threat, as it might inspire Chinese people to demand a similar regime. Chinese people need to know that there is no alternative to the rule of the Communist Party. It is for this reason that Taiwan needs to be crushed.
That's absolutely right. Authoritarians abhore freedom and consider every instance of it to be a threat to their continued existence and control.
The implication of this is that once they're done with Taiwan they'll come for other countries.
This isn't anything new either. The struggle between authoritarians and people who want to be free and autonomous in their day to day activities is eternal. We've made tremendous strides as a species to vanquish many kinds of authoritarians, with the last few centuries seeing the elimination of many monarchs.
With those victories over the old authoritarians we've seen the rise of new kinds of authoritarians -- people who call themselves fascists or communists.
Setting aside the minutiae of how closely their actions match those new labels they're no friends of mine and it is in our best interest to align the people who they intend to oppress be they in Taiwan or Ukraine.
This is great! What would you do differently if you started again today?
What are your thoughts on language suitability for the lower level parts (ie. Sticking to c or a simple subset of c++ or any of the newer languages)?
Given the myriad of resources available, how did you manage to keep the project engaging rather than copying others people code?
Thanks for the feedback! I think the biggest thing I’d do different is to have a plan. I just started out with the goal of doing the basic hello world OS, and that’s it. But then I kept adding new things, adding more and more working on multiple things at the same time. Which has lead to some technical debt I’m still trying to fix. I’d also try to be less UNIX dependent.
Regarding language, I love C for its basic syntax and “straight to the point” style. Maybe I’d consider some other languages for userspace applications.
A goal for me from the start was always that I wanted to write everything myself, no porting of any software, and for me that’s the entire point of the project. I mostly adhered to the rule of copy ideas not code.
I'm not sure it's a bad thing to not necessarily have a plan. Intuition is the hidden sister of logic, both children of reason, and we don't always see her because she's often behind the scenes doing all the work.
Technical debt is as sure as death and taxes. Good software grows over time, like a person growing up. Sometimes you have parts that are needed for a time but not permanently, like baby teeth. That's what technical debt is like.
Other times there are parts that are absolutely ideal long term, but it's a long time before they even make sense. And sometimes things only develop much later than we expect, like wisdom teeth. These are software features that won't make sense until you write the thing that you don't realize yet is only temporary.
I have the same goal of writing everything myself from scratch. It's a very important goal to me for a reason I don't fully understand yet.
Congrats on writing an entire OS, and getting it booting on real hardware! That must be such a rewarding feeling in its own right, even if no one understood how. And it looks so very cool.
You've given me more motivation to announce my project soon. Maybe next week. Thanks.
Have you played around with Zig yet? I hear that would be a good replacement for C here. Did you have any thoughts on porting your OS to that, or did you have any branches some Zig code made its way into?
I’d love to hear about you project! Seeing what other people make is a big inspiration. I have not tried Zig, for the kernel I don’t think anything will beat C for me personally. But for userspace applications I’d love to try it!
Regarding a plan, I often feel the same way about my own project. There are a number of systems I've rewritten multiple times, and I can't help but think much of that would have been unnecessary if I had been more tedious about diagramming out my needs and requirements beforehand. Other times I wonder if I would have gotten this far had I planned things out... It's the age old question of "would I have started this project if I had known how much time and effort it would have taken?"
Each approach has a clear set of pros and cons, as others have explored in this thread. In the end, I think what ultimately matters is whether we're satisfied (and proud) of a project after a significant amount of progress has been made.
I also took the "I want to write everything myself" approach with my project since I wanted it to be a demonstration of my abilities. I wanted to prove to myself and others I could create a project of significant size and scope. It seems like this often means working without libraries and having to reinvent the wheel over and over again. It's tedious, but it certainly adds to the satisfaction you get as you look over your work and think "this is truly mine; I did this."
And yes, copy ideas, not code, is one of those things I do my best to adhere to. Sometimes, at least with JS, you run into problems, look into solutions, and it turns out there's really only one sensible way to do something; what you end up writing feels like a boilerplate solution to the problem. I often find myself going back and forth through search results from places like Stack Overflow and trying to siphon out the best techniques and ideas from multiple examples to mesh together into some usable code in a style I prefer.
Finally, since I failed to say this eariler, congrats on your project! I'm gonna have to try it out as soon as I get some extra time.
Curious about the less UNIX dependent part - did you find the UNIX model (everything is a file - or more accurately everything is a serial connection) to be a poor abstraction for a hobby OS?
Oh, I really like UNIXes abstractions and use alot of them in my OS. What I meant was, because I use GCC for compiling, ld for linking, ar for archives etc, I noticed that I got really bound to the C way of UNIX. Or maybe POXIS would be more appropriate. It did “force” me into some design decisions which I did not like. Or even just the way I wrote C is so UNIX / Linux like. Wish I tried to branch out more, especially considering how different Windows C is.
I am seeing a lot of debate here about what Socialism is or is not. Lots of interesting points but none of them come close to this article by the Leszek Kolakowski (Polish Philosopher and author of Main Currents of Marxism)
It was written in 1956 but was seized by the censor and the student journal for which it had been written was closed down. The essay was then pinned up on a bulletin board at Warsaw University until - very shortly afterwards - the authorities took it down. From then on underground copies of it were circulated. It remained unpublished in Poland until after the fall of communism.
We intend to tell you what socialism is. But first we must tell you what it is not - and our views on this matter were once very different from what they are at present.
Here, then, is what socialism is not:
- a society in which someone who has committed no crime sits at home waiting for the police;
- a society in which it is a crime to be the brother, sister, son, or wife of a criminal;
- a society in which some people are unhappy because they say what they think and others are unhappy because they do not;
- a society in which some people are better off because they do not think at all;
- a society in which some people are unhappy because they are Jews and others are happier because they are not;
- a state whose soldiers are the first to set foot in the territory of another country;
- a state where people are better off because they praise their leaders;
- a state where one can be condemned without trial;
- a society whose leaders appoint themselves;
- a society in which ten people live in one room;
- a society that has illiterates and plague epidemics;
- a state that does not permit travel abroad;
- a state that has more spies than nurses and more room in prisons than in hospitals;
- a state where the number of bureaucrats increases more quickly than that of workers;
- a state where people are compelled to lie;
- a state where people are compelled to steal;
- a state where people are compelled to commit crimes;
- a state that possesses colonies;
- a state whose neighbours curse geography;
- a state where cowards are better off than the courageous;
- a state where defence lawyers are usually in agreement with the prosecution;
- a tyranny, an oligarchy, a bureaucracy;
- a society where vast numbers of people turn to God to comfort them in their misery;
- a state that gives literary prizes to talentless hacks and knows better than painters what kind of painting is the best;
- a nation that oppresses other nations;
- a nation that is oppressed by another nation;
- a state that wants all its citizens to have the same views on philosophy, foreign policy, the economy, literature, and morality;
- a state whose government determines the rights of its citizens but whose citizens do not determine the rights of their government;
- a state in which one is responsible for one's ancestors;
- a state in which some people earn forty times as much as others;
- a system of government that is opposed by the majority of the governed;
- one isolated country;
- a group of underdeveloped countries;
- a state that employs nationalist slogans;
- a state whose government believes that nothing matters more than its being in power;
- a state that makes pacts with criminals and adapts its worldview to these pacts;
- a state that wants its foreign ministry to shape the worldview of all mankind at any given moment;
- a state that is not very good at distinguishing between slavery and liberation;
- a state that gives free rein to proponents of racism;
- a state that currently exists;
- a state with private ownership of the means of production;
- a state that considers itself socialist solely because it has abolished private ownership of the means of production;
- a state that is not very good at distinguishing between social revolution and armed invasion;
- a state that does not believe that people under socialism should be happier than people elsewhere;
- a society that is very sad;
- a caste system;
- a state where people can be pushed around, humiliated, and ill-treated with impunity;
- a state where a certain view of world history is obligatory;
- a state whose philosophers and writers always say the same things as the generals and ministers, but always after the latter have said them;
- a state where city maps are state secrets;
- a state where the results of parliamentary elections can always be unerringly predicted;
- a state where slave labour exists;
- a state where feudal bonds exist;
- a state that has a monopoly on telling its citizens all they need to know about the world;
- a state that thinks freedom amounts to obedience to the state;
- a state that sees no difference between what is true and what it is in its interest for people to believe;
- a state where a nation can be transplanted in its entirety from one place to another, willy-nilly;
- a state in which the workers have no influence on the government;
- a state that believes it alone can save mankind;
- a state that thinks it has always been right;
- a state where history is in the service of politics;
- a state whose citizens are not permitted to read the greatest works of contemporary literature, or to see the greatest contemporary works of art, or to hear the best contemporary music;
- a state that is always exceedingly pleased with itself;
- a state that claims the world is very complicated, but in fact believes that it is very simple;
- a state where you have to go through an awful lot of suffering before you can see a doctor;
- a state that has beggars;
- a state that is convinced that no one could ever invent anything better;
- a state that believes that everyone simply adores it, although the opposite is true;
- a state that governs according to the principle oderint dum metuant;
- a state that decides who may criticize it and how;
- a state where one is required each day to say the opposite of what one said the day before and to believe that one is always saying the same thing;
- a state that does not like it at all when its citizens read old newspapers;
- a state where many ignorant people are considered scholars; the politics of its government will not allow you to discover this;
- a state that does not like it at all when its regime is analysed by scholars, but is very happy when this is done by sycophants;
- a state that always knows better than its citizens where the happiness of every one of its citizens lies;
- a state that, while not sacrificing anything for any higher principles, nevertheless believes that it is the leading light of progress.
That was the first part. And now, pay attention, because we are going to tell you what socialism is. Here is what socialism is:
Socialism is a system that ... But what's the point of going into all these details? It's very simple: socialism is just a really wonderful thing
I guess it's fair to say that many people agree with Matthew 6, no?
"So when you give to the needy, do not announce it with trumpets, as the hypocrites do in the synagogues and on the streets, to be honored by others. Truly I tell you, they have received their reward in full."
Maybe that's part of it, but the other key thing here is that she was not in any way actually needy. He made a random person out to be a pathetic weepy loner, to an audience of millions.
Plato put it like this in his "Laws": “Laws are made to instruct the good, and in the hope that there may be no need of them; also to control the bad, whose hardness of heart will not be hindered from crime.”
I wonder how he’d speak of a supposedly even better educated society stealing the future of the next due to circular validation of our waste filled industrialism.
Given that most Greeks of that era believed they lived after the decline of a golden age, I suspect he might be be more understanding than most people today.
Hmm, not always. I've just setup my own mail server, I PASS SPF, DMARC and DKIM according to Gmail headers and yet my email is still classified as spam, as determined by "Gmail magic". I believe this is because the domain is relatively new and Gmail treats you as guilty until you prove your innocence (ie. Enough people mark my emails as not spam)
I've been a happy vim user for 10+ years.
I took Atom for a spin last week and I absolutely love it. There's a vim mode package for Atom that implements some vim features (not all, obviously) here https://github.com/atom/vim-mode
reply