John Carmack is reading and contributing to OpenBSD source code
marc.info
marc.info
Not every pull request needs to be introducing complex/intricate code, and yet it still has value to the project (and the community).
Usually when mailing list messages or PR comments are posted to HN, they are about something very negative, either the attitude of the author (random examples - mails by Linus, mails by Poettering, and sometimes also mails by Theo) or the content of the request it replies to. And in the openbsd community does has some negative reputation about harsh communications.
Just wanted emphasize it, since seeing good examples is much more educating IMHO than seeing only negative ones.
Or are you just referring to his communication when defending his own codebase?
Linus Torvalds can be plenty kind when he wants to be. And John Carmack has also done his time being a jerk.
What people are saying is that the kind approach is their preferred default.
Citation Please.
Did you know: you have John Carmack to thank for first porting X11 to OSX? Thank you John!!
Is there anything written about the background to this? Wikipedia doesn't talk about him ever working for Apple (although maybe that's just not mentioned).
https://github.com/timon37/xwayland/blob/master/hw/xquartz/m...
Xorg forked from XFree86 circa 2003.
It only took me almost 2 decades to notice.
I also thought I read somewhere that Carmack persuaded Apple to bet big on OpenGL for OS X. (Ironic now that it's deprecated.)
Note that with current X, HiDPI and multi-monitor and tear-free experience still have problems and they are handled via a morass of legacy extensions of varying design quality (this is aside from the drivers issue)-- when OS X was started, none of these existed except maybe DBE and a nascent RANDR (there was no COMPOSITE, no RENDER, RANDR vs very primitive), I think there was the Xinerama crap that no one uses anymore because it is terrible.
So they would have had to develop that, for what benefit? What does X get you out of the box? A drawing model that was outdated even by 1995 standards. And network transparency? Everytime these discussions come up, somebody brings this up, and I wonder what drugs they are on. The love by some for the X network model has always baffled me, because it is terrible - it has virtually no practical usability for modern drawing models and compositing, and the worst is it isn't robust - lose your TCP connection, goodbye session! X hits #1 and #2 of the "Fallacies of distributed computing" pretty hard.
RDP, VNC, SPICE are what we use today, for very good reasons.
"..., Richie reminded the audience that Steve Jobs stood at the same podium a few years back and announced that X was brain-dead and would soon die.
"He was half-right," Ritchie said. "Sometimes when you fill a vacuum, it still sucks."
I stopped hacking on it some years ago, but always contribute $$ when I’m well employed (currently not, sigh)
I’ve yet to work at a $JOB with anyone else who wishes to use OpenBSD, even in the places it is most appropriate, my most recent employer had someone under qualified as the devops lead so we had to use pfSense, an endless source of frustration of issues that couldn’t be addressed, but that I knew exactly how to address with OpenBSD, but, such is life. The most experienced people seem to have the least control, a common complaint in all industries, I’m sure.
I always encourage everyone to use many different Unix’s, it provides a much deeper understanding of everything you use, even if you end up only using Linux, anyway, it provides a much better perspective of what a distribution is and how to select the correct one even if you end up being forced into Linux anyway.
But just like how I always end up using python and JavaScript and Ubuntu Linux everywhere —- unless you’re in charge, it’s much like school, the whole team has to succumb to the lowest common denominator, the lowest also often being the boss or lead, who does very little hands-on work but feels making decisions of which Linux and which Language to use is their best contributing factor, lol
I, for one, think your employer and the “DevOps lead” were advocating for using the wrong technology. pfSense software is many things, to many people, but if it’s not written for a DevOps environment.
And you can tell your ex-employer that i said so. /s
Anyway best wishes Jim, shucks I ordered the first and second gen PcEngines and Winston CM11a radios from netgate.com long ago, and many since, thank you for running a proper store!
https://github.com/bob-beck/foundation-web/commit/a005fbc9e4...
On a different note. I am something of a Ubuntu fan and try to be more involved there. But then again the xBSDs where x = {Free, Open, Net, ...} are one of those things that always prods the back of your mind. It's a bit like topics in mathematics that always catch my attention, only to be forsaken for more mundane tasks. Then again, mathematics is a bit like the art of making everything mundane.
I remember a story about Carmack going off the grid with a laptop and OpenBSD for a couple of weeks, and him being delighted about their documentation and the ability to build things without access to the web.
Carmack is a hero in the C community, and OpenBSD is also all about C and classic Unix, so he might just feel at home there.
A lot of people rename things and add comments as part of understanding a new code base. I do and I'm sure I'm not the only one on HN.
https://cvsweb.openbsd.org/src/sys/dev/ic/vga.c?rev=1.70&con... https://cvsweb.openbsd.org/src/sys/dev/ic/vga.c?rev=1.71&con...
Also to see that he would be so tactful about asking if the changes are welcome, even though he is who he is and knows it. I like to think there are people in their twenties or teens or even younger browsing HN and subconsciously absorbing the fact that this is how a programming god behaves.
Calling this a "very celebrity grocery list" story is a disservice.
Carmack's one of the most accomplished programmers in history in terms of innovation, skill, and longevity. His words and opinions also carry a fair bit of weight, even today. His contributions and technology choices matter in a way that a celebrity's grocery list do not.
If there's an injustice here, it's the fact that there are many Carmack-level coders out there, toiling away in relative obscurity, who don't have their contributions trumpeted in this way.
'Extreme' maybe an understatement here but it seems like HNers here love seeing the second coming of King Midas when everything he touches turns into gold.
I think you will find Carmack has contributed more to the hacker ecosystem than anyone else if you just take a very shallow peek.
I would suggest to start by reading the source code to Doom, it is surprisingly approachable and educational in several fields of math, geometry, data structures, and computer science. There are even books to help you understand it, heck, there are a dozen or more books about Id software and John Carmack, so there are many authors and readers who feel very differently from you, maybe you could consider the reason. There are many things in our field that would have happened eventually, no matter who did it, but much of Carmack’s contributions really would not have happened without him, he really is in a league of his own.
It’s really amazing to me that you feel so negatively towards people who have endearment for one of the hacker community’s greatest contributors. I can only guess that you might be very unhappy, for that I’m very sorry and I hope it turns around for you very soon.
But that's the thing. The real benefits from OpenBSD come when it's the only system you need. Who cares how simple and elegant the guest system is, if you need to maintain a linux installation to host it?
A project on the scale of OpenBSD can't possibly support all the hardware that's out there. And the system is under active development, so there are constant regressions in hardware support. That's fine for John Carmack: he can fire up ed and fix a kernel panic, that's how he winds down after work. But the vision that attracts me to OpenBSD is a box in a closet that Google doesn't have the key to, which sits there for 6 months receiving my email and serving my homepage, takes 10 minutes to update, then sits there for the next 6 months; maybe once every 5 years I'd need to read a manpage and port my smtpd.conf to a new syntax. Hardware regressions are what stop that from happening.
The OpenBSD developers are getting what they want, and good luck to them. The shame is that a little bit of coordination, where they chose one model of ThinkPad every other year and committed to supporting it for a decade, would make the system so much more useful for so many other people.
I don't think he's suggesting that as the long term way to use it but as an introduction to the system.
https://github.com/elad/openbsd-apu2
Mine is 4(?) years old, and has never crashed. I use it every day. If you want something newer, or have 10x the power budget:
There's very little that I can't do with it versus my Linux workstation, at least for my needs.
But the problem remains: eventually, the next upgrade will crash every time you boot it, and what will you do then?
If only that were true. And they do releases every six months. And you are not supposed to skip one, or you’re on your own.
Once you find the manual, you’ll realize it’s well-documented and simple, and that simply using it has great educational value.
If those things don’t appeal to you, it’s probably not the OS for you. It takes about an evening to figure this out, in my experience.
OpenBSD's manual pages and online FAQ combined have never failed to answer a question I've had about the base system. It's really that good.
The ArchWiki is close behind in usefulness, but that's maintained by its community and article quality varies.
Installing in a VM is not the best differentiation, since in many OSs these experience was streamlined and everything usually works out of the box, but the customization part is still a good example.
Of course in the end, you might get to a setup similar to other OSs - running a browser in a windows manager and a buch of other common tools (IDEs, editors, productivity apps), but the way you get there, and the amount of problems you encounter along the way is a major part of using an OS.
I think you can get a good impression in a few hours, and see how it's different. (For example, I had a similar experience with NixOS: In a few hours you see how radically different it is and learn how it fits you)
Or is that old information which i should forget?
(All Nvidia would have to do is build another binary; it's still chatting with the same driver blob internally so it's not really clear to me why they don't bother compiling it for FreeBSD.)
Binary compatibility is for userspace programs, not kernel modules.
Edit: I'm not having any FreeBSD systems in use right now, so i don't know if they changed the defaults. What i remember is at least the last two versions were compiled into GENERIC, so you didn't even had to compile your own kernel when that range backwards was enough.
Similar thing in NetBSD, a loooong time ago, even their own driver for 3Com905 relied on the equivalent of that functionality. That caught me by surprise, because i used NetBSD like Gentoo, found some Compat foobarjurassicBSD, wondered why i should use that at all, and had no working net. Fun! :-)
I believe something similar is done in Linux. The difference in experience may come from FreeBSD maintaining a stable KBI over a release version (e.g., stable/12), while Linux aggressively does not maintain any KBI stability; hence the need for DKMS/akmods.
This is unrelated to COMPAT_FREEBSD.
[0] https://youtu.be/MShbP3OpASA?t=2997 (time coded)
Which changes? Where? I'm looking at said EULA right now and I don't see anything related.
[0] https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVM...
AMD binary blob? You mean that amdgpu-pro thing? That doesn't exist on FreeBSD.
https://wiki.freebsd.org/Graphics/AMD-GPU-Matrix
edit: maybe should have added https://www.x.org/wiki/RadeonFeature/#index5h2 too
Stable meaning changes, in this context, right? freeBSD changes ABI compatibility with every version.
If you mean that they have old software (and old==stable if you think Debian) then that’s because of BSD licensing vs GPL. GPL can take from BSD but the other way around is not possible.
Stability of uptime? Yeah, they’re rock solid.
On the other hand, I found that OpenBSD has absolutely outstanding reliability and stability on hardware like my ThinkPad X220.
> Stable meaning changes, in this context, right? freeBSD changes ABI compatibility with every version.
Every major version, right? From becoming -Stable to ending its support lifecycle, I'd think a FreeBSD version and its ABIs are supported as long as many Linux distro LTS releases.
The only difference will be any shared libraries and potentially the libc. But if we're speaking from a pure technical perspective, the libc is not linux.
So, are you saying that they break libc ABI?
More of what I learned using Linux 0.99 applies to present-day OpenBSD than present-day Linux, and I can’t think of any breaking changes specific to the Linux side that weren’t clear regressions (except apt and dpkg. Those rock.)
I would describe that as having practical use.
pfSense is a wonderful firewall appliance. FreeNAS is a wonderful storage appliance. If you need pf or native ZFS, a BSD is probably your best way to get it.
If you want to run a random headless server to mess around with, you are probably going to have a harder time with any of the BSDs than you would with even bleeding-edge Linux distros. If you want to run a graphical desktop with 3D acceleration and HD video you will almost certainly have a harder time than any Linux user.
---
There are, of course, people who are happily using BSD-based desktops right now and I am certainly not denying them anything, but even they'd have to admit they would have been able to get most of the same experience with a lot less effort on a modern Linux.
Actually, I became a BSD user after just trying OpenBSD out of curiosity on my headless server after years of running Linux. The experience was so damn good.
> There are, of course, people who are happily using BSD-based desktops right now and I am certainly not denying them anything, but even they'd have to admit they would have been able to get most of the same experience with a lot less effort on a modern Linux.
It's the opposite for me. Modern Linux distros are a pain; I can't find one I really like. Whenever I ask people to recommend a distro that feels like OpenBSD, I get recommendations from people who obviously haven't used OpenBSD in two decades. Maybe they tried FreeBSD two decades ago, and then figured that some old Linux distro was kinda similar..
Frankly I don't think the Linux way of "ducktape a bunch of third party packages together" will ever produce a distro that comes close to being as pleasant as OpenBSD. At least they'd have to heavily patch things and diverge from upstream.
With the exception of MacOS? Darwin is BSD.
Are you sure you are talking about the right thing here?
This:
int (*alloc_attr)(void *c, int fg, int bg, int flags, long *attrp);
means it's defining a function pointer that can point to a function that returns the type int and has a matching parameter list.https://stackoverflow.com/questions/840501/how-do-function-p...
Their release engineering is awesome!
https://www.openbsd.org/lyrics.html
Some of these are pretty great.
I share his opinion on the code (though not his expertise!)
His Twitter is a great replacement for his planfiles. One of the few I follow.
I also looked at the code a bit, and it seemed like typical bad natural sciences / electrical engineering grad student code that could have as easily been done the same way in matlab or python (or, as Carmak suggested, fortran).
I guess I’m in good company in thinking it was ok-ish, so now I’ll ask.
Why are people so upset with this code base / the choice of C++?
Politics. “Anything that supports a position I don’t like, should be attacked with full force. Anything less than perfect must disqualify the entire position.”
The second issue is politics; there are a lot of people who hate the idea that data science or science can provide inputs to policy decisions (in business and government). I see modern political groups as :
- traditionalists : protecting what they have, policy aimed at preserving status quo
- capitalists : untrammeled use of capital power to maximize capital return
- idealists : interested in a higher causes/morality (as they see it) and unconcerned about other impacts or concerns
- technocrats : concerned about taking the highest utility actions (measuring utility in various often unconnected ways).
Capitalists have held the whip hand for 50 years, idealists (trade unionists, safety campaigners, ect) have been in full on retreat, traditionalists have managed to align with capitalists (by co-opting them with nice things like country estates). Technocrats have swayed in and out of influence; the crisis of 2009 really smashed up peoples faith in economists for example, the first gulf war really brought logistics and management science to the fore... but the war on terror has smashed this up now.
Data scientists are mostly technocrats but often are compromised/partially capitalists (because... money). In every case that I have seen where capitalists are thwarted by data science they react with fury - because at the moment they are very unused to being thwarted.
Recently though idealists have been grabbing more of the mic, and have a large contingent of data scientists of their own - ie. university scientists. This is why climate change modellers are so hated!
I do enjoy Jonathan Blow's live streams http://twitch.tv/naysayer88
It would be amazing if lots of great programmers started streaming at least some of their work.
https://en.wikipedia.org/wiki/John_Carmack
"He co-founded the video game company id Software and was the lead programmer of its games Commander Keen, Wolfenstein 3D, Doom and Quake and their sequels."
What I'd give for John Carmack to clean up my code...
The fresh eyes don't have the history and are thus able to point things out that the older eyes inherently accept.
I found the quote relevant ("a man with a fork")
I really hope he does write an article on the source. I'd read the hell out of it.
His Twitter is a pseudo-blog
"Despite not having actually used it, I have always been fond of the idea of OpenBSD — a relatively minimal and opinionated system with a cohesive vision and an emphasis on quality and craftsmanship. Linux is a lot of things, but cohesive isn’t one of them."
https://www.facebook.com/permalink.php?story_fbid=2110408722...
I dont understand why anyone make long post on Facebook and Linkedin instead of the good old blog post. But thanks for the link.
OpenBSD powers a significant amount of internet infrastructure.
It's really not that uncommon, in certain areas.
I’m a (very happy) NetBSD user of nearly 20 years. It’s excellent; I stick with it for reasons. Even I, though, (with humour) think generally that OpenBSD has general audience attention for Theo, h4x0ring, and bomb proof security, while NetBSD is there in case you inherit a VAX. ;)
Some of his youtube video's of him talking about graphic rendering and compression are really cool.
Clean link to a different playlist with just the lectures: https://www.youtube.com/playlist?list=PLLfhkR8m8wYsgLEqr__PI...
It's a great book, mostly about John Carmack and the guys at ID!
> It was February 8, 1998, and Carmack was about to put his brain to the test: counting cards in blackjack. This had become something of a new fascination of his. “Having a reasonable grounding in statistics and probability and no belief in luck, fate, karma, or god(s), the only casino game that interests me is blackjack,” he wrote in a .plan file. “Playing blackjack properly is a test of personal discipline. It takes a small amount of skill to know the right plays and count the cards, but the hard part is making yourself consistantly [sic] behave like a robot, rather than succumbing to your ‘gut instincts.’ ” To refine his skills before the trip, Carmack applied his usual learning approach: consuming a few books on the subject and composing a computer program, in this case one that simulated the statistics of blackjack dealt cards.
> His research proved successful, netting him twenty thousand dollars, which he donated to the Free Software Foundation, an organization of like-minded believers in the Hacker Ethic.
> His research proved successful, netting him twenty thousand dollars, which he donated to the Free Software Foundation, an organization of like-minded believers in the Hacker Ethic. “Its [sic] not like I’m trying to make a living at [blackjack],” Carmack wrote online after his trip, “so the chance of getting kicked out doesn’t bother me too much.” It didn’t take long for him to find out just how he’d feel. On the next trip, Carmack was approached by three men in dark suits who said, “We’d appreciate if you’d play any other game than blackjack.”
> The others at the table watched in disbelief. “Why are they doing this to you?” a woman asked.
> “They think that I’m counting cards,” Carmack said.
> “They think you can remember all those different cards?”
> “Yeah,” Carmack replied, “something like that.”
> “Well, what do you do?”
> “I’m a computer programmer,” he said, as he was escorted out the door.
You usually have a few smaller players just playing fixed bets who call over some higher roller that will do the big betting when the count is high, and then just leave when the count gets low.
Rumor has it that the security cameras now have software that will tally the count automatically, and flag people that play when the count is up. Coupled with player identification (facial recognition/player rewards cards) and correlating player times, casinos are starting to automate this. All rumor, of course, but sounds plausible if you're willing to throw a few million at the problem.
Back in 2005 I was approached by one of the casino groups that was looking for a director of technology to manage the team that did "camera analytics". Seemed like a pretty neat job technically.
So I looked up the privacy policy of Holland Casinos and there is no mention of facial recognition, only mention of CCTV for security purposes (under which I wouldn't expect prevention of adverse losses to fall) and a seven day storage period of camera footage. They are not explicit but suggest they do not use camera data for profiling purposes.
If I remember correctly, then that is true in Nevada, but not in Atlantic City. There they have to let you play even if they suspect you of counting cards.
Of course that just means they will employ other means to prevent you from counting cards (larger shoes, continuous shuffling, etc).
I've always assumed that the two are really the same thing. If you get good at the game then that implies you're using an intuition for the probabilities of certain events based on the history of the cards.
I suppose the casinos don't have to justify this, or have any moral quandaries about it.
I'd recommend Fabien Sanglards's Wolfenstein and Doom books (https://fabiensanglard.net/gebbwolf3d/). These go into WAY TOO MUCH technical info (in a great way!), but don't cover any of the hilarious rock-star antics.
My secret wish is someone would re-write Masters Of Doom to be 25% more Game Engine Black Book, and fix up some of the prose!
The Doom book does mention Romero getting locked into his office one day and Carmack cutting down the door with a battleaxe, but I didn't mind knowing that detail. (There's a picture too)
The doom book is pretty forgettable and so is Linus's... I'll go take my cyanide pill now.
I obviously can't guarantee getting that feeling back in full, but I've been able to experience remnants of it by just poking around with completely unfamiliar tools/languages/servers/systems that have little to no use in business. Maybe even obsolete.
Basically, look for anything that you wouldn't be tempted to turn into a job or use to make any real money. Just enjoy it for what it is. Write hacky code. Press all the wrong buttons. Make it do things it was never meant to do. Do stupid things with it just for the sake of doing stupid things. Have fun just for the sake of it being fun.
OpenBSD source is one of the cleanest I've had the pleasure to work with. You (generally) won't be scoffed at for submitting a semantic change like this, fixing typos, or the like. It certainly isn't perfect but the bar feels higher than elsewhere. Clean code and as importantly the documentation kept in sync.
I've got a snowball's chance in hell of being that successful, but I do envy the fact Palmer was able to hire him. What an incredible hire.
Then again, he did have Facebook money.
It's cool that he's got the autonomy to pursue AGI after guiding Oculus into a good position.
It was more or less a community project, because without community input in those forum threads Palmer woulnd't even had considered glasses, he was deciding between VR glasses and a 3D monitor in his first posts there, and got nudged by a member towards glasses, lol. He just never stopped absorbing information and kept iterating on his franken HMDs and prototypes, and one day when he had already reached a good level Carmack showed up.
Second point: I think almost everyone being promoted for being involved in AI or AGI are probably irrelevant in the longer run. Self driving cars are at this point something of a social problem rather than a clear mathematical problem. So, whether we solve the current list of business related AI problems is probably immaterial for mathematics, but important for public opinion. I haven't read or seen any projects that are even remotely close to AGI, unless someone is hiding something.
Whether some person x is doing (edit: working on) AGI I guess matters only in the social or business sense.
How can you, in the same sentence, say the time frame is indeterminate and that it is 100+ years away?
We just don't know, period.
Working at an AI lab myself, while I agree with your statement about the state of AI today, I don't know any of my colleague that would be confident to say it's 100+ years away.
Just like at the beginning of the 20th century we knew ~0 about quantum physics and less than 50 years later A-bombs were getting dropped.
Or how, at the same time no plane could achieve sustained/controlled flight (and the goal was merely to stay above ground) and less than 70 years later not only were we leaving Earth's atmosphere: a man was walking on the moon.
We have no idea how long it will take to achieve AGI, let's leave it at that.
Just out of curiosity, would you have been willing to bet that something most people will agree on being AGI will not be developed before 2221 at the earliest?
Because given the history of science and technology since 1821, that seems like a statement that's just drawn out of thin air. "I don't know" would make sense. "Definitely not in the next 200 years" does not make much sense.
Not sure what this had to do with AGI, I don't even think there is a relationship in the skillset required
Even in this mail, John Carmack favors elegance.
From John to John, thanks.
I'd love to read it, personally.
Or would that be BSDBDFL ? (BSD Benevolent Dictator For Life )
:)
I guess that either the BSD folks really like things the way they are or people really don't like Carmack.
Weird to see it downvoted. Would love to know why.