HN user

spauldo

622 karma

Just an old UNIX guy doing SCADA for a living and Lisp for play.

Posts0
Comments450
View on HN
No posts found.

I'll add another recommendation for Scheme. The concepts in SICP map very well into Scheme, whereas I can only imagine them being awkward and non-idiomatic in JS. There's lots of passing around first class functions and use of recursion.

One of the two professors (Dr. Sussman) that give the lectures in this series is a co-creator of Scheme.

I agree that the characterization was uncalled for in the post you replied to. But I don't agree with your statement that most people who generally oppose regulation have good reasons for doing so. Conservative media outlets have pushed that stance for decades now and it gets regurgitated all the time. Ask most of them what specific regulations they want to see gone and you'll get a blank stare.

Yep. I can do basic plumbing, but I haven't touched it since I started making enough money to pay a plumber to do it for me. Plumbers are worth every dollar they charge if it means I don't have to spend two hours under a sink cursing at rusty bolts.

OpenBSD 7.9 2 months ago

I don't have much to disagree with there, only that any survey answer is the difference between complex things is going to be simplified. I'm thumb typing here and no one's paying me to write a book.

I will defend my "heaviness" argument, though. Sure, you can run OpenBSD on large hardware, but it's not going to be able to take advantage of it like FreeBSD can. Which makes sense if you think about it - FreeBSD optimizes for heavy workloads. Conversely, if you set up minimal installs, OpenBSD will be smaller. Again, that makes sense, since OpenBSD focuses on security over features (plus the only truly secure code is the code that doesn't exist). There's a lot of overlap in the middle, of course.

I wouldn't use OpenBSD for a NAS, and I wouldn't use FreeBSD for a diskless firewall. Not because they can't do those things - they just each have their strengths and weaknesses.

OpenBSD 7.9 2 months ago

FreeBSD is a heavier, more capable system, suitable for large servers. It's got its own virtualization platform (bhyve), an LXC-ish container system (jails), native ZFS, dtrace, Linux emulation, and a bunch more. It makes for a decent workstation and has pretty decent hardware support.

NetBSD is small and simple. It's a lot like an old-school UNIX. It makes a decent platform for small services. I run bind and dhcpd on a NetBSD machine. The source code is very pleasant to read. It uses the pkgsrc software repository. It's my preferred platform for writing POSIX code.

OpenBSD still carries much of the general feel of NetBSD and can fill a similar niche on a network, but the security focus stands out in their documentation, subprojects (OpenSSH, LibreSSL, OpenNTPD, etc.), APIs (see pledge(8)), and policies. It makes for a great firewall. I'd say it also requires the most know-how.

All of them have excellent documentation (especially compared to Linux distros) and the base system is developed alongside the kernel, giving you a very consistent experience compared to Linux distros where everything is developed in isolation. If you write C, it's worth keeping a BSD system around just for the manpages and to make sure you're not letting Linuxisms creep into your codebase.

I had the opposite food experience in the EU, but I'll admit my experience is mostly Spain.

In the US there's usually a good variety of food from all different cultures available. When I spent two months in Spain, I got really, really tired of the same three seasonings the Spanish put on everything. I craved Mexican food like crazy the whole time.

Spanish food is great, don't get me wrong - I wish we had it here in the sticks where I live - but I'm used to a bit more variety.

I pay DigitalOcean $6/mo for a VM that started out as just that - a bare repo and ssh. If it was available at the time, I'd probably have paid $10 for the same if I didn't have to set up and administer the thing. I lost interest in administrating web servers in the early Apache 2.0 days so a private "mini-githib" would be tempting.

(I use that VM as my primary public nameserver now and I don't really need a web front end for git so I'll be keeping my current setup. But if it had been available back then, I'd probably have gone for it.)

Only certain types of contractors, and likely only in the short term.

Military contractors do well when the military has widespread support from the voters. Congresscritters will happily approve tax dollars going to the military industrial complex when their constituents view the US as the global protector of democracy. Wars like this one that aren't popular and make us look like thugs open the floor up to anti-military candidates. So yeah, the companies building missiles do well while the war is on, but the people like me who automate military fuel farms see budget cuts and projects cancelled.

The carriage return and linefeed combo are the commands to move to the next line of a teletype. Other commands might (in theory) be used for this purpose on other devices. These are implementation details.

Text inside a computer doesn't need any of that just to signal a newline. UNIX chose to use a single line feed character as a line separator because there was no good reason to use two. MacOS chose a single carriage return for similar reasons. Anything going out to a printer or teletype would run through a device driver that would turn the newline character into whatever the device expects.

Windows copied DOS which copied CP/M which was a very basic program loader for 8-bit machines and didn't really have "drivers" like we think of them today. I'm guessing here, but I imagine they chose the teletype combo because that's what most serial printers understood and printing was a major use case for those machines. That was probably the right choice for CP/M, but I can't imagine Microsoft would choose it if they were developing Windows from scratch today.

I would. Why wouldn't I? I park my car in an attached garage. If I had an EV or PHEV, I'd walk right past the charger on my way to the door into the house. I don't like standing around at the gas station waiting on the tank to fill. Seems like a no-brainer to me.

I actually wanted a PHEV, since my car is mostly used for local driving but I also drive hundreds of miles for work trips. Unfortunately I couldn't find one I liked.

Whether he believed in it or not, he passed rigorous physical tests for the Navy and NASA. They don't let just any slob be a fighter pilot, much less a test pilot or astronaut. If you don't have good cardiovascular fitness, you can't handle high G-forces or maintain good judgement while sleep deprived (those jets didn't fly themselves while the pilot napped like modern ones do).

Maybe he was just naturally fit. Some people are. But he was undoubtedly fit.

There were effectively no free compilers in the 80s. If you had an expensive UNIX workstation it might come with one, but everyone in the micro world had to pay. Or they wrote in Assembly or a BASIC interpreter.

Granted, some were pretty cheap, at least by the early 90s.

Most astronauts were chosen from a decent sized pool of military pilots. Pilots are some of the most expensive assets the military has (moreso than the planes they fly) and they have to be physically fit. People wanting to become astronauts are subjected to rigorous physical testing.

No, they're not Olympic athletes but they're considerably more fit than the average American.

They'd lose a whole lot of users if they killed Java edition, since the modded community is so large. They'd quickly find one of the Minecraft clones reaching feature parity. And there's no good reason for it - it's not like Java is a threat anymore.

I haven't used Linux as a gateway in years, so I can only compare pf to iptables. The two biggest differences are the way the rules are applied and the logging.

pf rules work a little backwards compared to iptables. A packet traverses the entire ruleset and the last rule to match wins. You can short-circuit this with a "quick" directive. It takes a bit of getting used to coming from iptables.

The logging on pf doesn't integrate with syslog automatically like iptables does. You're expected to set up a logging system for your particular use case. There are several ways to do it, and for production you'd be doing it regardless, but for honelab setups it's an extra thing you need to worry about.

I prefer pf, but I don't recommend it to people new to firewalls.

You're confusing two different things.

For most C and C++ software, you use the system packaging which uses libraries that (usually) have stable ABIs. If your program uses one of those problematic libraries, you might need to recompile your program when you update the library, but most of the time there's no problem.

For your company's custom mission critical application where you need total control of the dependencies, then yes you need to manage it yourself.