![Anton Swifton](/img/default-banner.jpg)
- Видео 8
- Просмотров 488 112
Anton Swifton
Добавлен 3 фев 2017
I make clips with Jonathan Blow's rants. Opinions are Jon's and not mine. (Honestly, I don't have the expertise to have an opinion on many of these topics.) If you have questions, you can come to one of Jon's streams.
Jonathan Blow on Open Source Software
If you have questions, you can come to one of Jon's streams:
www.twitch.tv/j_blow/
Another interesting point about open source software and security:
ruclips.net/video/ypZ9JvUqaao/видео.html
www.twitch.tv/j_blow/
Another interesting point about open source software and security:
ruclips.net/video/ypZ9JvUqaao/видео.html
Просмотров: 49 253
Видео
Jonathan Blow on Drivers
Просмотров 28 тыс.3 года назад
The operating system comments: ruclips.net/video/k0uE_chSnV8/видео.html If you have questions, you can come to one of Jon's streams: www.twitch.tv/j_blow/
Jonathan Blow on Refactoring
Просмотров 131 тыс.3 года назад
If you have questions, you can come to one of Jon's streams: www.twitch.tv/j_blow
Jonathan Blow on Time Management
Просмотров 24 тыс.3 года назад
If you have questions, you can come to one of Jon's streams: www.twitch.tv/j_blow
Jonathan Blow on computer science curriculum
Просмотров 88 тыс.3 года назад
If you have questions, you can come to one of Jon's streams: www.twitch.tv/j_blow
Jonathan Blow on how an operating system should work
Просмотров 107 тыс.4 года назад
A clarification on drivers: ruclips.net/video/xXSIs4aTqhI/видео.html If you have questions, you can come to one of Jon's streams: www.twitch.tv/j_blow
Sledgehammer programming. Jonathan Blow.
Просмотров 61 тыс.5 лет назад
A secret of software development. Full stream: ruclips.net/video/QvSvf6feklQ/видео.html Jonathan Blow's twitch: www.twitch.tv/j_blow
BlowOS is the only hope we have for the future
When Soulja boy rejects your PR.
I wonder if he also had the class of operating design and implementation following Professor Tanenbaum’s book. When I studied EE that part of design and implementation of an OS was the best thing I’ve learned. Making the SBC running a Z80 (which I loathed as a 6502 and 68000 user) was the trivial part. But it was great to get a basic simple OS that could dynamically load binaries and swap between them with cooperative multitasking. But it also taught me something viable. And that is that for most embedded systems you don’t need an OS and it will just make things bigger, bulkier, less efficient and more error prone.
I love the small efficient operating systems from the 70s like CP/M, RSX11, early BSD and VMS. They were lean and to the point. Even OS/360 that was considered huge, is small and lean and to the point compared to today’s systems.
"If you know everything I said you're best than most javascript programmers". I would extrapolate that and say you are better than most programmers these days.
1 y definitely a stretch. 4y is definitely not needed per say but I value the writing , physics, music and other courses I took. I also value the friends I made, the network, the job that I got, the lifetime resources such as access to research journals, access to the university resources like libraries and labs, etc... It's funny, if you take Jon blow, sit him down and actually come up with a curriculum then it winds up resembling a lot of real curriculums minus the non CS courses and math. It's just not structured in the way Jon is laying it out Also my database course was amazing. taught sql all the way to advanced SQL, database modeling, going from concept -> ER -> model -> optimization , indexes, optimizing queries, normalization /demonization, document databases, integrating databases into applications......... It was single handedly the most useful course in terms of pure effectiveness within an enterprise coming straight out of college into the workforce as a software engineer
He just described temple os, if holy c wasnt a jit
My free course on my channel covers this It’s called how to program from the ground up
I think if you ask anyone this question they will tell you to learn the things that they themselves learned and that everything else, that they themselves did not particularly care for, or learn, is bullshit.
How much effort is anti piracy vs real os? Should that be an effort?
u only need 1 semester so true😭
That is a beautiful lamp
Firefox is more optimised than chrome. But firefox OS is buried, and chrome OS will run Elf apps and a linux VM if you are permitted by almighty google.
So, just run everything in a virtual machine.
I often agree with him. And even when I don't he has a very good reason for his idea, and I feel like I could have a productive conversation with him.
I think we tried this idea with micro kernel architecture and I dont know why, but it did not work out! I think it is a logical solution but it did not work for us!
shared libraries, depend on who is allowed to upload. if f.eks only linux staff is allowed to upload to them then its a great idea but if its open freely to anyone then its a horrible idea.
An OS needs to do 2 things: 1) Boot up and stay up 2) Have a web browser that keeps up with porn (i.e., the pinnacle of web tech)
"Every program should be sandboxed" then proceeds to "User space dekstop environment" Title should be "Jonathan Blow on fever dream"
Open Source just means the source code is available so people aren't so dependent on the publisher. How you manage collaboration on your project, that has nothing to do with it being open source or not.
Impressive what this guy achieved but I really hate this mentality and it's not what I would be looking for in an engineer in industry. Especially his views on databases. BCNF and relational algebra is the core of the most popular database systems in the world. Just if you're taking this guy's advice keep in mind that really you're only option is to be your own boss and selling software that you build directly to consumers. So if you want to go into indie game dev take his advice otherwise I would discourage it.
wow, had to implement an OS... for school? uc berkeley is rough.
it's incredible to see what one man can do.
Jon's right; people write some pretty nasty stuff with printf. There should be a driver that filters out harmful messages.
I never had problems with my audio system on linux - but that's because I never use pulseaudio. In fact the first thing I do when I install a need software which uses audio is I completely disable pulseaudio & just use kernel kernel audio (alsa) which has existed for over a decade & works without any problem. (theoretically you'll loose cross-unix portability because alsa is a linux-only thing & pulseaudio exists on bsd too but that's never a practical concern because every audio program I've ever seen also has support for bsd specific kernel audio too so you can just change it).
If anyone here is interested in OS design of the likes that Jonathan Blow just lined out, I can seriously recommend having a look at the design of the L4 micro kernel, because that's literally a kernel which considers & implements all of these aspects: the kernel is only supposed to be a small piece of code doing basic hardware ressource management (adress space, i/o space, cpu & affinity time allocation while enforcing basic access rights & privilege separation of processes but doing nothing else other then that). The only three problems L4 has are a) hardly anyone ever used it because b) hardly anyone ever knew about it because d) its code base is an outdated & semi-abandoned academic project & e) it's just a (micro)kernel, without either driver or user space libraries or programs, so someone would need to build (modern) driver infrastructure, basic system admin tools & basic ui to even being able use it. However, if anyone's planning on build an entire new OS using the aforementioned concepts, then at least there already IS an exceedingly well designed kernel which you could use, either directly or more likely at least rewrite it in a more modern & up-to-date way (using modern language & tool sets) - which in the specific case of L4 is NOT a big undertaking because the entire original source code of the entire kernel is just ~5000 lines of C code - absolutely tiny compared to other software projects.
He got valid poins, but i still prefer open source tho.
I agree for the most part, but some people put the being an asshole thing as a badge of honor and ham it up
Who else would buy a Johnathan Blow CS course?
He literally just explained that he is bad at CS, lol.
@@SnakeEngine I know but, It would be John.... it would be John.....
man just desribed a 4 year degree
at work we use RHEL and it uses way fewer than 400 afaict. I haven't counted but I think it's more like 30 by default It's true that that's for a server where it doesn't need a bunch of 'daemons' for the user, but using a minimal distro won't use that many. isn't one of the big tradeoffs between dynamic vs static partially not having to reload big commonly used libs/functions in memory? Also things like plugins have to be linked at runtime so those seem like they have to be dynamic by definition.. unless you want to call those 'executables' (but that's more of a semantic difference)
It's more like problem with how open source operates now rather than open source itself.
ComeOnBrOS
5:23 you can kinda sorta do this in powershell but you need to write the lib in c#
please... just use qubes
refactoring python at the moment :/
it seems like that gummy bear you were eating at the beginning gave you most of the insight to this
I went to school in the 70's. Very few schools had computer science departments or degrees. Exceptions were places like MIT. Science classes used computers but programming was something that you figured out on your own. My own experience interacting with CS professors is that they don't seem to know the important stuff needed to create good code. They know a lot of abstract things, some of which you mention are a waste of time. Even time complexity is not important in the way it is taught. You don't need to know that your algorithm is O(N^2 log N ) if there is a better algorithm that is O(N). All you need to know is that the latter is much better, and you don't need to evaluate the time complexity to figure this out. I've also had a couple of incidents that suggest that CS professors are intimidated by people who do know how to program well.
What should there be instead of drivers? Johnathan Blow: "some kind of protocol that is standardized where you just dma to the hardware and the hardware DMAs back" Does he not realize this is what a driver is?
GOAT
My undergrad covered all you mention + a ton of math (mostly linear algebra) + lots of "go code" classes (I took about 5 classes that were just "go make a game"). When you combine all that four years genuinely felt short. But I also had to take a bunch of liberal arts classes for my scholarship so that really stretched me thin
He's right
I would never drive a car
5:20 - that's one of the biggest issues I have with Jon's ramblings: he uses words 'simplicity' and 'complexity' a lot, but doesn't give any definitions to them. The only actionable definition of 'simple' and 'complex' in context of SW dev that I know of, are the ones given in "Simple Made Easy" by Rich Hickey. And according to those definitions, making the library and CLI tool the same would be an example of complecting 2 things together.
"I don't fail at this kind of things anymore" I love this energy
Agreed. Look at the efficiency metrics in big companies and how the devs spending their time, sometimes weeks, just to get one simple PR to be approved. It's super toxic as well as very inefficient. If you trust your devs, let them do it, if you don't, why the heck you hired the guy in the first place? I'm old enough to remember how we did software development in 90s without this PR drama and how software was still very high quality! Plus, we got more job done with fewer people. Today.. it's crazy.
lol
If you manage a team of developers and work for someone else, eventually they will ask "when will the thing be done?" THEN you need time management.
Okay, i think this just doesn't make sense. He makes it sound like having a lightweight system somehow goes hand in hand with also having features like virtualization/application isolation. When in reality the latter is actually a really sophisticated mechanism. if you want a very simple system, it has to be bare metal, compiled for exactly your hardware. Without any additional layers of abstraction or virtualization. A system with a whole lot of process separation and stuff will always be one that has to take care of a lot of stuff in the background, and for that to happen it will have to run a bunch of processes in the background.
Just because your statically typed program compiles after a refactoring it doesn't mean that it works again.
If you're a dumbass, things don't work either way