• 1 Post
  • 16 Comments
Joined 11 months ago
cake
Cake day: June 7th, 2024

help-circle

  • If you wanted to run Unix, your main choices were workstations (Sun, Silicon Graphics, Apollo, IBM RS/6000), or servers (DEC, IBM) They all ran different flavors of BSD or System-V unix and weren’t compatible with each other. Third-party software packages had to be ported and compiled for each one.

    On x86 machines, you mainly had commercial SCO, Xenix, and Novell’s UnixWare. Their main advantage was that they ran on slightly cheaper hardware (< $10K, instead of $30-50K), but they only worked on very specifically configured hardware.

    Then along came Minix, which showed a clean non-AT&T version of Unix was doable. It was 16-bit, though, and mainly ended up as a learning tool. But it really goosed the idea of an open-source OS not beholden to System V. AT&T had sued BSD which scared off a lot of startup adoption and limited Unix to those with deep pockets. Once AT&T lost the case, things opened up.

    Shortly after that Linux came out. It ran on 32-bit 386es, was a clean-room build, and fully open source, so AT&T couldn’t lay claim to it. FSF was also working on their own open-source version of unix called GNU Hurd, but Linux caught fire and that was that.

    The thing about running on PCs was that there were so many variations on hardware (disk controllers, display cards, sound cards, networking boards, even serial interfaces).

    Windows was trying to corral all this crazy variety into a uniform driver interface, but you still needed a custom driver, delivered on a floppy, that you had to install after mounting the board. And if the driver didn’t match your DOS or Windows OS version, tough luck.

    Along came Linux, eventually having a way to support pluggable device drivers. I remember having to rebuild the OS from scratch with every little change. Eventually, a lot of settings moved into config files instead of #defines (which would require a rebuild). And once there was dynamic library loading, you didn’t even have to reboot to update drivers.

    The number of people who would write and post up device drivers just exploded, so you could put together a decent machine with cheaper, commodity components. Some enlightened hardware vendors started releasing with both Windows and Linux drivers (I had friends who made a good living writing those Linux drivers).

    Later, with Apache web server and databases like MySql and Postgres, Linux started getting adopted in data centers. But on the desktop, it was mostly for people comfortable in terminal. X was ported, but it wasn’t until RedHat came around that I remember doing much with UIs. And those looked pretty janky compared to what you saw on NeXTStep or SGI.

    Eventually, people got Linux working on brand name hardware like Dell and HPs, so you didn’t have to learn how to assemble PCs from scratch. But Microsoft tied these vendors so if you bought their hardware, you also had to pay for a copy of Windows, even if you didn’t want to run it. It took a government case against Microsoft before hardware makers were allowed to offer systems with Linux preloaded and without the Windows tax. That’s when things really took off.

    It’s been amazing watching things grow, and software like LibreOffice, Wayland, and SNAP help move things into the mainstream. If it wasn’t for Linux virtualization, we wouldn’t have cloud computing. And now, with Steam Deck, you have a new generation of people learning about Linux.

    PS, this is all from memory. If I got any of it wrong, hopefully somebody will correct it.







  • We gave our oldest a basic feature flip-phone when he started Middle School, mainly so he could text and coordinate pickups. In 7th grade, we gave him a smartphone because he was going on a class trip to DC and the kids were encouraged to take pictures and share. At home, we made it a rule that the phone had to be plugged into charger in our bedroom to avoid bedtime disruption.

    That same year I created social media accounts for him on every service, mainly to reserve his username. But they were all blocked using parental controls, based on advice from school. We also had software/hardware from Circle (now Aura: https://meetcircle.com/) that blocked access on wifi and cell and capped usage.

    In high school, when he turned 16, as part of his birthday gift, we gave him an envelope with his own non-school email account, and all the links and passwords for social media accounts. We also took away all the filter blocks. Figured he was mature enough without feeling left out.

    It really worked out well. Later, he asked to put usage limits back on so he would be forced to put it down and go to sleep.



  • Wonder:

    • How do they handle someone who may not be performing as well as others?
    • What’s the process for conflict resolution? Both professional and inter-personal.
    • Not sure if they’ve been through a big global recession yet. That’s usually when companies and their policies get tested.

    Not to take away from their unique model. Just curious how the idealism handles the messy parts of human nature.


  • At one point in my life I was working on a massive Android AOSP fork that itself had lots of variants for different downstream devices. Custom drivers, specialty services, etc. Thousands of people were actively working on all parts of it, and it had been around for at least a decade.

    There was incredible tooling around onboarding, local dev, testing, PR management, CI/CD, and post-release telemetry. Almost everything was automated. All code was reviewed at least once, and sometimes more for critical components. It was an immediate rejection if there wasn’t sufficient test coverage. Big subsystems took months to architect, build, and deploy.

    Nobody got to cowboy things and just push to release. It was much slower than a solo or a few people at a startup. The whole point was consistency and predictability, and you could see why.






  • My first tech job out of college, I was told to go talk to “Dave,” the guru old-timey programmer and learn the lay of the land. He turned out to be this crotchety old guy, with low tolerance for idiots, but a soft spot for someone who actually paid attention.

    A few months in, I was told to go fix a feature in the company’s main product which was sold to power utilities. This was a MASSIVE code base, with a mix of C, C++, assembler, and a bit of Fortran thrown in. I spent a week poring through all the code trying to figure things out. Then I hit a mystery workflow that didn’t make sense.

    I walk over to Dave’s office and ask a specific question. Now, mind you, he had worked on this years ago, and had long moved on to new products. He leans back in his chair, stares at the ceiling, then without looking at the screen once tells me to go look at such and such file for such and such variable, and a list of functions that were related. I go back to my desk and damn if it wasn’t EXACTLY as he described.

    Now, I’m probably as old as he was then. I don’t remember what I wrote an hour ago. No matter what I build, I’ll always be in awe of Dave and what he could keep in his head.