1. 8

    From the perspective of OpenBSD should be able to pick up pretty much any laptop, and it should work - especially if you are picking up a refurbished laptop. You can check NYC*BSD dmesg database to see what works with what. I used to take booted able usb pendrive with me to check which laptops booted OpenBSD fine.

    1. 6

      Wow - this sounds like a company that takes its security seriously. Having anomaly rules that actual trigger action, as a result of least privilege and access models, smart approach to security.

      1. 2

        Not much has changed since 2015 or 2017 if I tidy up my office I might post a picture of my battlestation…

        1. 8


          Two virtual desktops.

          Despite my perennial curiosity about acme, I think the only thing I’m really into is its color scheme. There’s two kakoune windows with acme colors, and an es session with a little CLI weather app I wrote for myself. The terminal emulator is kitty.

          The second desktop is a couple vimb windows, where I do as much browsing as I can.

          The WM is spectrwm, which has a couple annoying bugs, but thus far the best tiling behavior I’ve found.

          1. 3

            I used to use spectrwm!

            1. 2

              Rock on, dude! It seems pretty unsupported which is a bummer. It makes me think maybe I should go back to i3. Except I don’t remember why I switched from i3 to spectrwm in the first place so I don’t know what I can check on.

            2. 1

              I moved from spectrwm to awesome partly as I was using at work, and partly as it works well on OpenBSD.

            1. 7

              Hardware support

              Accelerated graphics: No; Audio: Audio works as expected though there is a known bug [causing it to] stop working after a period of time; Cameras: No; Hibernation: Maybe; Suspend/Resume: No; Wireless: No

              In short, this laptop seems deeply incompatible with OpenBSD. :)

              1. 4

                I wrote the review (and this comment) form it. Seems pretty compatible to me. :)

                I concede that things are 100%, but they never are right out of the gate. Especially with newer hardware.

                1. 2

                  Nice! What about its battery life?

                  1. 2

                    Battery life is not great. I ran for just over two hours with full use (compiling various things, lots of network activity, streaming music videos on youtube). I fully expect it to be much better once things are properly supported.

                    1. 2

                      Thank you.

                      1. 1

                        Which battery option did you get?

                    2. 0

                      an xorg.conf with:

                      Section "Device"
                         	Identifier "Device0"
                      	Driver "intel"

                      might fix your video output as per this bug report.

                  1. 29

                    Replace JS for your favorite language:


                    JS just happens be everyone’s favorite punching bag nowadays ;)

                    1. 10

                      Most other languages I know of let you specify that a number is an integer ;)

                      EDIT: wow this was a very bad brain fart, and I’m leaving it here as a testament to how quickly people will pile on on Javascript without thinking. Sorry everyone.

                      1. 17

                        0.1 + 0.2 doesn’t work well for integer math either.

                        1. 2

                          Multiple them by enough zeros to turn them into integers. Do the math in integer form for integer rules (1 + 2). Reverse the process to get float results.

                          I’ve done that before a long time ago. I can’t remember why I did. Maybe just to dodge floats’ problems during number crunching. I know peoples’ reactions to it were funny.

                          1. 2

                            I’m going to point out that COBOL handles this tricky calculation “unsurprisingly” by default. We should all switch from JavaScript to COBOL.

                          2. 2

                            Upvoting because the edit is a good example of self-awareness and humility.

                          3. 5

                            the author does state:

                            This behaviour is not unique to JavaScript. It is seen in every programming language where doubles are available, including C, C++, C#, Erlang, Java, Python and Rust.

                          1. 3

                            Here’s kind of an interesting question I’d have for this community.

                            You almost certainly do not need a degree

                            On almost every job posting that I’m a part of hiring for, we put that the candidate needs at least an associates degree, with a preference of bachelors. Not a degree in the field we’re hiring for (software dev), mind you, just a degree. In the past, I’ve found that if we don’t put that, we get a lot of applicants that are self-taught and have learned what they know through either online tutorials or coding bootcamps.

                            While I think you can learn a lot by teaching yourself or going through bootcamps, I have not found a single applicant that has done so that really learned how to think critically about software development. They come prepared by knowing all the answers to the book of “common software development interview questions” but never seem to be able to just think about a problem.

                            I’ve found that people who at least went through some kind of “college”-type education generally are better interviewees, regardless of whether it’s in our field.

                            Does anyone have that same experience? Or a way I can word a job posting that’s not “critical thinking required”? I know that’s a pretty big generalization to make, but as someone who ends up interviewing almost everyone that applies to a job (we don’t have some magic resume spit-out-if-you-don’t-have-20-years-experience-in-spacecraft-design tool), I have felt like without this on job postings, I struggle.

                            1. 4

                              I have not found a single applicant that has done so that really learned how to think critically about software development. They come prepared by knowing all the answers to the book of “common software development interview questions” but never seem to be able to just think about a problem.

                              How does this manifest concretely? And does that mean they are incapable of producing software?

                              Either thinking about a problem is not needed to produce software (I don’t buy it), or degreeless people can’t produce software (obviously false). Maybe there are many bad apples. Or maybe these people just don’t interview well, which makes it look like they’re unable to think?

                              I’d be interested in seeing some examples of problems they are unable to think through.

                              I haven’t conducted interviews, but I know plenty of darn good programmers without degrees. And I know programmers who only got their degrees a decade into their successful career. The degreeless people on my team wrote their own operating system that’s been used in production for, I don’t know, around two decades now? Oh, I’m degreeless too.

                              1. 1

                                I haven’t conducted interviews, but I know plenty of darn good programmers without degrees.

                                Same, and don’t get me wrong there are many people I work with that don’t have them and are great engineers. And I guess this goes more towards young professionals (less than 3 years experience) without degrees. But in general I find that people that come out of programming bootcamps especially (the majority of people that I see that don’t have any degree but still apply) don’t ever really know how their program works. If there was a performance issue in the code they wrote, for example, they wouldn’t know how to start getting down to the problem.

                                I guess it’s more of a criticism of programming bootcamps?

                                1. 3

                                  I guess it’s more of a criticism of programming bootcamps?

                                  I was about to suggest it. Then you said it. So, I’m just going to corroborate it.

                                  It can also be true for people with degrees, though, since one can often bullshit through academic courses more than real coding. If one has to filter, one of the better ways to do it with unknown candidates seems to be giving them an exercise to work on that:

                                  (a) is similar to what they’ll do at your company

                                  (b) pays something if they complete the exercise

                                  (c) takes significant time to complete but not enough to wear down folks who are already busy (job, family, many interviews).

                                  (d) isn’t actual work your company needs done so people know you aren’t farming off work to unpaid or barely paid applicants to save on programming time. Is mocked up or not strongly adding to your bottom line.

                                  That’s a recipe I got from others on HN and Lobsters mainly who I can’t recall right now. It’s not mine. It looked like decent compromise, though, if you couldn’t get trustworthy references or prior work on someone.

                                  I’ll also add that people with degrees might have to pay down loans on those degrees. They can cost more for that reason. A person that didn’t have degrees, but did build their skills, might be able to do the same thing for less. However, a lot of employers like the idea a person committed to something for 2-4 years and finished it despite the difficulties. That might build character but maybe they just coasted. I still don’t trust that metric. You might be able to use it, though, if it’s a school or group in school with a reputation for building talent with some track record of what they did there. So, there’s some up’s and down’s to they have a degree.

                              2. 2

                                Your comment made me a bit sad.

                                Even though I fully understand the possible struggle, I still think that your “lazy” (allow me being lazy too for not finding a more appropriate word) attitude is bad and outdated.

                                I want to live in a world where if you break your back and study on your own but, for some reason, don’t have a degree, you still have a chance to land a junior job somewhere.

                                I want to believe that if a 30/40yo person who couldn’t afford going to university and decided to get a job as a programmer would only require to study 1/2 years by themselves, while doing their current job, and have hope to put even just a toe in the world of IT.

                                I want a motivated and somewhat talented youngster to be able to apply to their first real job right after school, before deciding on. whether focus their next 3/4 years on a more focused education at a university of their choice with their own money.

                                These are not abstract characters, these are actual people who are damaged by the “it’s easier this way” attitude. The person I would like to pass through the door is someone I can give a task (more or less demanding) and have them put their very best and succeed. Whether they went through the classic route or not should be completely irrelevant.

                                Sorry, maybe I’m a bit too optimistic or maybe I know far too many people with high-grades from university who I wouldn’t even trust with writing some documentation.

                                I’d like to hear your opinion on this.

                                1. 1

                                  I can totally understand why you’d require a degree based on what you’ve said and seen.

                                  Something I said later on in there though:

                                  Tell people what you want, give them goals, and let them tell you how they satisfy them

                                  At the moment, my understanding is that you’re requiring a degree partly as a way of demonstrating critical thinking ability

                                  My gut reaction would be to strip out the degree requirement and replace it with a short test at application time (bearing in mind the caveats I mention around take-homes!) designed to test their ability to “just think about a problem”

                                  This won’t be easy, and sure, it wouldn’t surprise me to hear that a lot of people who come through it successfully have degrees, but you’re still improving the accuracy of your filtering (by trying to practically test for the property instead of just testing for something that hopefully correlates) and you’ve opened it up to people who don’t

                                  A few off-the-cuff ideas for tests that might help (I’ve not thought about these enough to claim they’re good though!):

                                  • “Here’s some code, write some documentation/warnings to users”
                                  • “Find the bugs in this code”
                                  • “What security concerns does this code raise”

                                  Those are all things where you can have some easy obvious answers, but also deeper issues that should assess their ability to think about the bigger picture / further consequences of things, which feels like it should tie in with the “critical thinking” you’re after

                                  How’s that sound?

                                  1. 1

                                    recommend they read “How to solve it” by George Pólya as part of the interview preparation?

                                    1. 1

                                      we don’t have some magic resume spit-out-if-you-don’t-have-20-years-experience-in-spacecraft-design tool

                                      Can you use your human eyes on the resume to get an even better result than such a tool would be? I’ve found that by looking up the website, projects, or Github profile on a resume I can weed out the bulk of the not-worth-interviewing enough to at least make the process not terrible.

                                      OTOH, I’ve definitely interviewed (and even worked with) people who had degrees and couldn’t accomplish any useful task on the job.

                                      1. 1

                                        by looking up the website, projects, or Github profile on a resume I can weed out the bulk of the not-worth-interviewing

                                        If you weed them out, how do you know they were not worth interviewing?

                                        What if your lookup turns up nothing?

                                        1. 1

                                          That’s fair, my wording was perhaps suboptimal. I suppose I meant really that the bulk of those remaining are worth interviewing, which is the goal.

                                    1. 5

                                      MTB coach development all day Saturday, in the Scottish Highlands :~)

                                      Hopefully, starting a BCHS web app on Sunday.

                                      1. 3

                                        This post mentions the DIODE (Directed Integer Overflow Discovery Engine) which is covered in this paper: Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement from MIT CSAIL lab.

                                        1. 2

                                          I was alive in 1983 - that’s the year I did my ‘O’ level in computing using a Commodore Pet

                                          editing the space invaders basic code to give myself 50 lives :~)

                                          1. 3

                                            BMX racing on Saturday - 20” and Cruiser - so will be exhausted by the end of the day…

                                            Sunday hopefully installing OpenBSD on a Rock64.

                                            1. 1

                                              I received my Ultimate Hacking Keyboard about two weeks ago - it’s great, I’ve not programmed it yet, but it does QWERTY, Dvorak and Colemak by default, and the keyboard can do mouse movements. Looking forward to playing with it more in the future.

                                              1. 4

                                                I’m not sure this post at all answers the question it purports to: which ISPs are silently logging and selling DNS lookups to third parties. At best it might shed some light on which ISPs are delegating DNS lookups to someone else?

                                                1. 2

                                                  I agree that this doesn’t answer the question, but I thought it was an interesting approach to seeing how DNS resolution works for a particular domain.

                                                1. 6

                                                  I thought this was already posted here, but it’s talking about the poor security in the cloud system.

                                                  1. 7

                                                    I have been exclusively working remotely for the past 12 years. I would never work differently in this industry ever again. Happy to answer any questions.

                                                    1. 1

                                                      can I ask how you got into remote working?

                                                      1. 3

                                                        It was a necessity, I was living in a very small town in a very poor country with no IT industry to speak of and no plans to move at that time. Remote work was the only possible option at that point, and it worked well for me. In the meantime, I have moved from there, but remote working stuck with me.

                                                    1. 23

                                                      Kinda late on UNIX bashing bandwagon :)

                                                      Also, Windows owes more of it’s legacy to VMS.

                                                      1. 10

                                                        It does, but users don’t use any of the VMSy goodness in Windows: To them it’s just another shitty UNIX clone, with everything being a file or a program (which is also a file). I think that’s the point.

                                                        Programmers rarely even use the VMSy goodness, especially if they also want their stuff to work on Mac. They treat Windows as a kind of retarded UNIX cousin (which is a shame because the API is better; IOCP et al)

                                                        Sysadmins often struggle with Windows because of all the things underneath that aren’t files.

                                                        Message/Object operating systems are interesting, but for the most part (OS/2, BeOS, QNX) they, for the most part, degraded into this “everything is a file” nonsense…

                                                        Until they got rid of the shared filesystem: iOS finally required messaging for applications to communicate on their own, and while it’s been rocky, it’s starting to paint a picture to the next generation who will finally make an operating system without files.

                                                        1. 10

                                                          If we talk user experiences, it’s more a CP/M clone than anything. Generations later, Windows still smells COMMAND.COM.

                                                          1. 6

                                                            yes, the bowels are VMS, the visible stuff going out is CP/M

                                                            1. 4

                                                              Bowels is a good metaphor. There’s good stuff in Windows, but you’ve got to put on a shoulder length glove and grab a vat of crisco before you can find any of it.

                                                          2. 10

                                                            I think you’re being a little bit harsh. End-users definitely don’t grok the VMSy goodness; I agree. And maybe the majority of developers don’t, either (though I doubt the majority of Linux devs grok journald v. syslogs, really understand how to use /proc, grok Linux namespaces, etc.). But I’ve worked with enough Windows shops to promise you that a reasonable number of Windows developers do get the difference.

                                                            That said, I have a half-finished book from a couple years ago, tentatively called Windows Is Not Linux, which dove into a lot of the, “okay, I know you want to do $x because that’s how you did it on Linux, and doing $x on Windows stinks, so you think Windows stinks, but let me walk you through $y and explain to you why it’s at least as good as the Linux way even though it’s different,” specifically because I got fed up with devs saying Windows was awful when they didn’t get how to use it. Things in that bucket included not remoting in to do syswork (use WMI/WinRM), not doing raw text munging unless you actually have to (COM from VBScript/PowerShell are your friends), adapting to the UAC model v. the sudo model, etc. The Windows way can actually be very nice, but untraining habits is indeed hard.

                                                            1. 6

                                                              I don’t disagree with any of that (except maybe that I’m being harsh), but if you parse what I’m saying as “Windows is awful” then it’s because my indelicate tone has been read into instead of my words.

                                                              The point of the article is that those differences are superficial, and mean so very little to the mental model of use and implementation as to make no difference: IOCP is just threads and epoll, and epoll is just IOCP and fifos. Yes, IOCP is better, but I desperately want to see something new in how I use an operating system.

                                                              I’ve been doing things roughly the same way for nearly four decades, despite the fact that I’ve done Microsoft/IBM for a decade, Linux since Slackware 1.1 (Unix since tapes of SCO), Common Lisp (of all things) for a decade, and OSX for nearly that long. They’re all the same, and that point is painfully clear to anyone who has actually used these things at a high level: I edit files, I copy files, I run programs. Huzzah.

                                                              But: It’s also obvious to me who has gone into the bowels of these systems as well: I wrote winback which was for a long time the only tools for doing online Windows backups of standalone exchange servers and domain controllers; I’m the author of (perhaps) the fastest Linux webserver; I wrote ml a Linux emulator for OSX; I worked on ECL adding principally CL exceptions to streams and the Slime implementation. And so on.

                                                              So: I understand what you mean when you say Windows is not Linux, but I also understand what the author means when he says they’re the same.

                                                              1. 2

                                                                That actually makes a ton of sense. Can I ask what would qualify as meaningfully different for you? Oberon, maybe? Or a version of Windows where WinRT was front-and-center from the kernel level upwards?

                                                                1. 2

                                                                  I didn’t use the term “meaningfully different”, so I might be interpreting your question you too broadly.

                                                                  When I used VMS, I never “made a backup” before I changed a file. That’s really quite powerful.

                                                                  The Canon Cat had “pages” you would scroll through. Like other forth environments, if you named any of your blocks/documents it was so you could search [leap] for them, not because you had hierarchy.

                                                                  I also think containers are very interesting. The encapsulation of the application seems to massively change the way we use them. Like the iOS example, they don’t seem to need “files” since the files live inside the container/app. This poses some risk for data portability. There are other problems.

                                                                  I never used Oberon or WinRT enough to feel as comfortable commenting about them as I do about some of these other examples.

                                                              2. 2

                                                                If it’s any motivation I would love to read this book.

                                                                Do you know of any books or posts I could read in the meantime? I’m very open to the idea that Windows is nice if you know which tools and mental models to use, but kind of by definition I’m not sure what to Google to find them :)

                                                                1. 4

                                                                  I’ve just been hesitant because I worked in management for two years after I started the book (meaning my information atrophied), and now I don’t work with Windows very much. So, unfortunately, I don’t immediately have a great suggestion for you. Yeah, you could read Windows Internals 6, which is what I did when I was working on the book, but that’s 2000+ pages, and most of it honestly isn’t relevant for a normal developer.

                                                                  That said, if you’ve got specific questions, I’d love to hear them. Maybe there’s a tl;dr blog post hiding in them, where I could salvage some of my work without completing the entire book.

                                                                2. 1

                                                                  I, for one, would pay for your “Windows is not Linux” book. I’ve been developing for Windows for about 15 years, but I’m sure there are still things I could learn from such a book.

                                                                3. 7

                                                                  but users don’t use any of the VMSy goodness in Windows: To them it’s just another shitty UNIX clone, with everything being a file or a program (which is also a file). I think that’s the point.

                                                                  Most users don’t know anything about UNIX and can’t use it. On the UI side, pre-NT Windows was a Mac knockoff mixed with MSDOS which was based on a DOS they got from a third party. Microsoft even developed software for Apple in that time. Microsoft’s own users had previously learned MSDOS menu and some commands. Then, they had a nifty UI like Apple’s running on MSDOS. Then, Microsoft worked with IBM to make a new OS/2 with its philosophy. Then, Microsoft acquired OpenVMS team, made new kernel, and a new GUI w/ wizard-based configuration of services vs command line, text, and pipes like in UNIX.

                                                                  So, historically, internally, layperson-facing, and administration, Windows is a totally different thing than UNIX. Hence, the difficulty moving Windows users to UNIX when it’s a terminal OS with X Windows vs some Windows-style stuff like Gnome or KDE.

                                                                  You’re also overstating the everything is a file by conflating OS’s that store programs or something in files vs those like UNIX or Plan 9 that use file metaphor for about everything. It’s a false equivalence: from what I remember, you don’t get your running processes in Windows by reading the filesystem since they don’t use that metaphor or API. It’s object based with API calls specific to different categories. Different philosophy.

                                                                  1. 3

                                                                    Bitsavers has some internal emails from DEC at the time of David Cutler’s departure.

                                                                    I have linked to a few of them.

                                                                    David Cutler’s team at DECwest was working on Mica (an operating system) for PRISM (a RISC CPU architecture). PRISM was canceled in June of 1988. Cutler resigned in August of 1988 and 8 other DECwest alumni followed him at Microsoft.

                                                                4. 5

                                                                  I have my paper copy of The Unix Hater’s Handbook always close at hand (although I’m missing the barf bag, sad to say).

                                                                  1. 5

                                                                    I always wanted to ask the author of The Unix Hater’s Handbook if he’s using Mac OS X


                                                                    1. 6

                                                                      It was edited by Simson Garfinkel, who co-wrote Building Cocoa Applications: a step-by-step guide. Which was sort of a “port” of Nextstep Programming Step One: object-oriented applications

                                                                      Or, in other words, “yes” :)

                                                                      1. 2

                                                                        Add me to the list curious about what they ended up using. The hoaxers behind UNIX admitted they’ve been coding in Pascal on Macs. Maybe it’s what the rest were using if not Common LISP on Macs.

                                                                    2. 7

                                                                      Beat me to it. Author is full of it right when saying Windows is built on UNIX. Microsoft stealing, cloning, and improving OpenVMS into Windows NT is described here. This makes the Linux zealots’ parodies about a VMS desktop funnier given one destroyed Linux in desktop market. So, we have VMS and UNIX family trees going in parallel with the UNIX tree having more branches.

                                                                      1. 4

                                                                        The author doesn’t say Windows is built on Unix.

                                                                        1. 5

                                                                          “we are forced to choose from: Windows, Apple, Other (which I shall refer to as “Linux” despite it technically being more specific). All of these are built around the same foundational concepts, those of Unix.”

                                                                          Says it’s built on the foundational concepts of UNIX. It’s built on a combo of DOS, OS/2, OpenVMS, and Microsoft concepts they called the NT kernel. The only thing UNIX-like was the networking stack they got from Spider Systems. They’ve since rewritten their networking stack from what I heard.

                                                                          1. 4

                                                                            Says it’s built on the foundational concepts of UNIX.

                                                                            I don’t see any reason to disagree with that.

                                                                            The only thing UNIX-like …

                                                                            I don’t think that’s a helpful definition of “unix-like”.

                                                                            It’s got files. Everything is a file. Windows might even be a better UNIX than Linux (since UNC)

                                                                            Cutler might not have liked UNIX very much, but Windows NT ended up UNIX anyway because none of that VMS-goodness (Versions, types, streams, clusters) ended up in the hands of Users.

                                                                            1. 10

                                                                              It’s got files. Everything is a file.

                                                                              Windows is object-based. It does have files which are another object. The files come from MULTICS which UNIX also copied in some ways. Even the name was a play on it: UNICS. I think Titan invented the access permissions. The internal model with its subsystems were more like microkernel designs running OS emulators as processes. They did their own thing for most of the rest with the Win32 API and registry. Again, not quite how a UNIX programming guide teaches you to do things. They got clustering later, too, with them and Oracle using the distributed, lock approach from OpenVMS.

                                                                              Windows and UNIX are very different in approach to architecture. They’re different in how developer is expected to build individual apps and compose them. It wasn’t even developed on UNIX: they used OS/2 workstations for that. There’s no reason to say Windows is ground in the UNIX philosophy. It’s a lie.

                                                                              “Windows NT ended up UNIX anyway because none of that VMS-goodness (Versions, types, streams, clusters) ended up in the hands of Users.”

                                                                              I don’t know what you’re saying here. Neither VMS nor Windows teams intended to do anything for UNIX users. They took their own path except for networking for obvious reasons. UNIX users actively resisted Microsoft tech, too. Especially BSD and Linux users that often hated them. They’d reflexively do the opposite of Microsoft except when making knockoffs of their key products like Office to get desktop users.

                                                                              1. 3

                                                                                Windows is object-based.

                                                                                Consider what methods of that “object” a program like Microsoft Word must be calling besides “ReadFile” and “WriteFile”.

                                                                                That the kernel supports more methods is completely pointless. Users don’t interact with it. Programmers avoid it. Sysadmins don’t understand it and get it wrong.

                                                                                I don’t know what you’re saying here.

                                                                                That is clear, and yet you’re insisting I’m wrong.

                                                                                1. 3

                                                                                  Except, that’s completely wrong.

                                                                                  I just started Word and dumped a summary of its open handles by object type:

                                                                                  C:\WINDOWS\system32>handle -s -p WinWord.exe
                                                                                  Nthandle v4.11 - Handle viewer
                                                                                  Copyright (C) 1997-2017 Mark Russinovich
                                                                                  Sysinternals - www.sysinternals.com
                                                                                  Handle type summary:
                                                                                    ALPC Port       : 33
                                                                                    Desktop         : 1
                                                                                    Directory       : 3
                                                                                    DxgkSharedResource: 2
                                                                                    DxgkSharedSyncObject: 1
                                                                                    EtwRegistration : 324
                                                                                    Event           : 431
                                                                                    File            : 75
                                                                                    IoCompletion    : 66
                                                                                    IoCompletionReserve: 1
                                                                                    IRTimer         : 8
                                                                                    Key             : 171
                                                                                    KeyedEvent      : 24
                                                                                    Mutant          : 32
                                                                                    Process         : 2
                                                                                    Section         : 67
                                                                                    Semaphore       : 108
                                                                                    Thread          : 138
                                                                                    Timer           : 7
                                                                                    Token           : 3
                                                                                    TpWorkerFactory : 4
                                                                                    WaitCompletionPacket: 36
                                                                                    WindowStation   : 2
                                                                                  Total handles: 1539

                                                                                  Each of these types is a distinct kernel object with its own characteristics and semantics. And yes, you do create and interact with them from user-space. Some of those will be abstracted by lower-level APIs, but many are directly created and managed by the application. You’ll note the number of open “files” is a very small minority of the total number of open handles.

                                                                                  Simple examples of non-file object types commonly manipulated from user-land include Mutants (CreateMutex) and Semaphores (CreateSemaphore). Perhaps the most prominent example is manipulating the Windows Registry; this entails opening “Key” objects, which per above are entirely distinct from regular files. See the MSDN Registry Functions reference.

                                                                                  1. 0

                                                                                    None of these objects can exist on a disk; they cannot persist beyond shutdown, and do not have any representation beyond their instantaneous in-memory instance. When someone wants an “EtwRegistration” they’re creating it again and again.

                                                                                    Did you even read the article? Or are you trolling?

                                                                                    1. 3

                                                                                      None of these objects can exist on a disk; they cannot persist beyond shutdown, and do not have any representation beyond their instantaneous in-memory instance. When someone wants an “EtwRegistration” they’re creating it again and again.

                                                                                      Key objects do typically exist on disk. Albeit, the underlying datastore for the Registry is a series of files, but you never directly manipulate those files. In the same sense you may ask for C:\whatever.txt, you may ask for HKLM:\whatever. We need to somehow isolate the different persisted data streams, and that isolation mechanism is a file. That doesn’t mean you have to directly manipulate those files if the operating system provides higher-level abstractions. What exactly are you after?

                                                                                      From the article:

                                                                                      But in Unix land, this is a taboo. Binary files are opaque, say the Unix ideologues. They are hard to read and write. Instead, we use Text Files, for it is surely the path of true righteousness we have taken.

                                                                                      The Windows Registry, which is a core part of the operating system, is completely counter to this. It’s a bunch of large binary files, precisely because Microsoft recognised storing all that configuration data in plain text files would be completely impractical. So you don’t open a text file and write to it, you open a Registry key, and store data in it using one of many predefined data types (REG_DWORD, etc…).

                                                                                      Did you even read the article? Or are you trolling?

                                                                                      It sounds like you’re not interested in a constructive and respectful dialogue. If you are, you should work on your approach.

                                                                                      1. -3

                                                                                        What exactly are you after?

                                                                                        Just go read the article.

                                                                                        It’s about whether basing our entire interactions with a computer on a specific reduction of verbs (read and write) is really exploring what the operating system can do for us.

                                                                                        That is a very interesting subject to me.

                                                                                        Some idiot took party to the idea that Windows basically “built on Unix” then back-pedalled it to be about whether it was based on the same “foundational” concepts, then chooses to narrowly and uniquely interpret “foundational” in a very different way than the article.

                                                                                        Yes, windows has domains and registries and lots of directory services, but they all have the exact same “file” semantics.

                                                                                        But now you’re responding to this strange interpretation of “foundational” because you didn’t read the article either. Or you’re a troll. I’m not sure which yet.

                                                                                        Read the article. It’s not well written but it’s a very interesting idea.

                                                                                        Each of these types is a distinct kernel object with its own characteristics and semantics

                                                                                        Why do you bring this up in response to whether Windows is basically the same as Unix? Unix has lots of different kernel “types” all backed by “handles”. Some operations and semantics are shared by handles of different types, but some are distinct.

                                                                                        I don’t understand why you think this is important at all.

                                                                                        It sounds like you’re not interested in a constructive and respectful dialogue. If you are, you should work on your approach.

                                                                                        Do you often jump into the middle of a conversation with “Except, that’s completely wrong?”

                                                                                        Or are you only an asshole on the Internet?

                                                                                        1. 4

                                                                                          Or are you only an asshole on the Internet?

                                                                                          I’m not in the habit of calling people “asshole” anywhere, Internet or otherwise. You’d honestly be more persuasive if you just made your points without the nasty attacks. I’ll leave it at that.

                                                                                2. 2

                                                                                  networking for obvious reasons

                                                                                  Them being what? Is the BSD socket API really the ultimate networking abstraction?

                                                                                  1. 7

                                                                                    The TCP/IP protocols were part of a UNIX. AT&T gave UNIX away for free. They spread together with early applications being built on UNIX. Anyone reusing the protocols or code will inherit some of what UNIX folks were doing. They were also the most mature networking stacks for that reason. It’s why re-using BSD stacks was popular among proprietary vendors. On top of the licensing.

                                                                                    Edit: Tried to Google you a source talking about this. I found one that mentions it.

                                                                      1. 8

                                                                        The binary adder in this article has the advantage of being straightforward but tedious. For those interested in a deeper dive, I wrote about clever adder techniques of the 1970s a few years ago here: https://robey.lag.net/2012/11/07/how-to-add-numbers-1.html

                                                                        1. 2

                                                                          you should submitted those articles here.

                                                                          1. 2

                                                                            This is really, really good.

                                                                          1. 4

                                                                            this article also led me to The TTY demystified which I missed when it was submitted to lobsters here and here Thanks @friendlysock - this was an interesting dive into the implementation of a library function.

                                                                            1. 4

                                                                              Tutorials would be a good resource, but one reason that you don’t find many is that they potentially need to be updated every 6 months - and no one ever seems to keep their tutorials up to date…

                                                                              There have been various threads on the OpenBSD misc@ list over the years, but as the developers put so much effort into producing great man pages, that has been the default answer to this issue.

                                                                              When I was starting with OpenBSD I already had The Complete FreeBSD by Greg Lehey as a handbook, as my journey with *BSDs started with FreeBSD, and then when I discovered OpenBSD in 2000, it remained a useful resource. FreeBSD still has their handbook some of which will be relevant to OpenBSD partly as both have their roots in 4.4 BSD.

                                                                              1. 2

                                                                                That’s actually one of the reasons I appreciated Burnett’s guide, because he keeps it updated with each new version. I can recommend it to someone with confidence that it’ll apply to the latest OpenBSD release.

                                                                                I’m hoping to introduce some of my more enterprising students to OpenBSD and *nix in general next year, and a clear tutorial can be a solid resource to get them over the initial learning curve of interacting with a non-Windows or non-macOS system.

                                                                                I agree that the manpages are an excellent resource, and a solid tutorial should lead users toward the manpages instead of StackOverflow.

                                                                                1. 2

                                                                                  There are professional tutorials from events.

                                                                                1. 14

                                                                                  Hardware I couldn’t get working in Linux just works on a first try with OpenBSD.

                                                                                  To be fair, this is more of an exception than a rule… I for my part always had something missing or incomplete holding me back from really being able to use OpenBSD on a desktop comfortably. Servers are of course an entirely different question. But giving a wrong impression like this one here, could end up deterring people who are interested, but insecure.

                                                                                  1. 6

                                                                                    I also thought hardware support was a known advantage of Linux due to its larger ecosystem, both in individual and corporate contributors. My impression was that OpenBSD would support less hardware but the drivers would be higher quality.

                                                                                    1. 6

                                                                                      I think he meant that for hardware that was supported by both, he had an easier time getting it working on openbsd.

                                                                                      1. 1

                                                                                        That makes more sense.

                                                                                    2. 5

                                                                                      my experience has been the opposite - I’ve found that the hardware I’ve tried mostly works out of the box for me with OpenBSD - where as Linux has often been a complete pain, especially with older hardware.

                                                                                      I’ve had an X41 since new and it ran OpenBSD from day 1 - it initially dual-booted with windows. Some information can be found on my X41 page - you can see it’s old as it talks about configuring BlueTooth on my X41…

                                                                                      1. 3

                                                                                        Same story for me. I’ve tried OpenBSD on a bunch of old-ish ThinkPads in the past and have had mixed experiences with hardware support. While a lot of things can be made to work after installing firmware and if you pick well supported (often older) hardware to begin with, it’s nowhere near as out-of-the-box complete or well supported as most mainstream Linux distributions.

                                                                                        1. 5

                                                                                          I’m running OpenBSD 6.3-current on a second-hand T430s, and the only problem I had was needing a wired connection when first installing 6.2 back in October 2017 because the OS wanted to pull the wifi firmware after first boot. After that, it’s been such a smooth experience that I wouldn’t consider going back to Linux for any use case beside building a Microsoft-free gaming rig.

                                                                                          1. 1

                                                                                            Out of curiously, what ThinkPad are you specifically talking about? Just last week I tried to install OpenBSD on my X41 (again) after the update from 6.2 to 6.3 had worked out so smoothly on my server, but I just couldn’t reestablish the comfortableness I enjoy with Void. I guess, I’d really have to force myself to set everything up properly, but I just don’t have the time (or the experience) for that.

                                                                                            1. 1

                                                                                              The ThinkPad S1 Yoga (2014), and the X220 (2012), but I tried installing OpenBSD on them only when they were a couple years old.