1. 10

    Really nice article, @JeremyMorgan! There’s just one thing that’s bugging me, and that is the use of the Fahrenheit-scale, which is only used in the US, in Liberia and the Cayman Islands, while the rest of the world uses Celsius.

    This article is your project and I’m not in the position to order you to do anything, but if you intended this article to be for an international audience, this is a critical error. If you only intended this article for US-American readers (and those few from the Cayman Islands and Liberia), I can understand the choice, but please keep this in mind in the future in case it is different.

    1. 17

      While I agree that Celsius is the superior unit, the article is really about building the device and measurement system, rather than takeaway about how hot the car is. It really isn’t the author’s job to translate the units from something they’re not comfortable with – it’s not a scientific paper.

      Calling use of Fahrenheit a “critical error” on a hobbyist blog post (even one viewed internationally) seems overly dramatic, don’t you think? It’s not as if it’s written in Klingon (though, he’d be welcome to that too on a blog, albeit with a vastly smaller audience.)

      1. 1

        Arguably since the audience is primarily those in the east and west coasts of the United States, Fahrenheit is the superior scale.

        1. 1

          I did convert it to Fahrenheit during storage, but I can convert it all to Celcius in another database! Thank you for the idea to enhance the project!

          1. 1

            I hope I didn’t come across too negatively, which wasn’t my intention. Thanks for your feedback!

            1. 1

              Not at all thanks. Over the weekend I did another stream and added celsius columns!

              https://github.com/JeremyMorgan/HotCar

          2. 1

            Celsius is inferior for this purpose. The degrees are lower precision, and the scale doesn’t connect to human health, which is the focus of the article. 100F is approximately the temperature of the human body, and consequently, the point at which air temperatures become dangerous to people. Saying a car is at 130F clearly conveys that it is an extremely dangerous environment for humans.

            For cooking and chemistry, Celsius is fine, but for weather, it’s gotta be Fahrenheit.

          1. 9

            It’s amazing just how much those graphs resemble an RC charge/discharge cycle. It’s like the car is a capacitor for heat.

            1. 7

              They are both governed by exponential dissipation vs constant charging/heating so the shapes are the same. Well the heating is not constant but close enough engineer shrugs.

              1. 2

                I hadn’t noticed this before, but now I can’t unsee it.

                1. 1

                  That is pretty amazing

                1. 14

                  In metric units 170F is about 75C, which is literal Sauna temperature. Wow.

                  1. 1

                    A sauna is much more dangerous. Just as the air in a 150 celcius oven is pretty hot, but a 100 degree steam coming out of a pot is going to hurt way more. Temperature isn’t the only relevant factor when it comes to cooking…

                    1. 4

                      You make it sound like a sauna is dangerous. It’s not, because you get out when you get too hot.

                      In Finland there were less than 2 deaths in sauna per 100,000 inhabitants per year in the 1990s. That was a time when on average, Finns spent 9 minutes in a sauna twice a week. That’s one death per 780,000 hours spent in the sauna. And half of that is because people binge drink and go to the sauna.

                      I don’t have statistics for deaths per hours a child spends in a hot car, but it cannot be very high considering reasonable people don’t leave children in a hot car at all yet there are dozens of deaths every year.

                      1. 2

                        In these comparisons I think the deciding factor is the ability/inability to leave the hostile environment…

                      2. 1

                        Saunas are typically dry air (although you can sometimes pour water onto hot stones). There are 100degC saunas which you can sit in for several minutes because heat transfer is so low. But a 100degC steam room would instantly burn you (and so doesn’t exist).

                        1. 1

                          Yeah humidity plays an important role as well. Sadly the post doesn’t show the record high with humidity info, but maybe @JeremyMorgan can enlighten us :)

                          1. 2

                            It looks like the min [1] humidity was 7.8% from one of the pictures.

                            [1]: Humidity and temperature should be inversely related, so as the temperature rises, the humidity should decrease, as more water vapor can be “stored” in the air. Similarly, when the temperature drops, humidity increases, leading to dew in the early morning or fog.

                            1. 1

                              @bfielder

                              Humidity levels:

                              Outside

                              • Min: 13.6
                              • Max: 89.3

                              In the car

                              • Min: 6.8
                              • Max: 55.3

                              Seems like some wild fluctuations. It was an unusual weather event for sure.

                        1. 16

                          One of the neat things about SQLite is that it can actually import CSV data directly. No need for the Go script.

                          Start sqlite, then:

                          .mode csv .import some_data_file.csv your_table_name

                          It’ll automatically generate a schema for you, too. To see what it did:

                          .schema your_table_name

                          You can import as many more files as you like so long as the schema is compatible.

                          You can also use the “export” command in csv mode to dump your SQLite table out to a CSV file. It’s a real Swiss Army knife for this kind of small-to-medium data processing.

                          1. 5

                            Yeah I used the Go script because there are 4 separate CSV files, and I wanted to combine them into one table. I’m sure that could be done with sqlite cli too, but this method was faster for me. Plus I needed to dust off my Go chops, haven’t built anything for a while.

                            1. 3

                              what I always found unfortunate is that these features are only part of the sqlite-cli, not the sqlite library. It would be nice to do these things via a database driver (in python or java or whatever)

                              1. 2

                                You can easily implement yourself a function to do that from within SQLite via UDFs in the language of your choice… here’s a quick & dirty implementation in Python (probably don’t use this as-is in a “real” setting):

                                import csv
                                import sqlite3
                                
                                DATABASE_PATH = "data.db"
                                
                                def write_table(tablename, write_path):
                                    connection = sqlite3.connect(DATABASE_PATH)
                                    select = f"select * from {tablename}"
                                    with open(write_path, "w") as f:
                                        writer = csv.writer(f)
                                        for item in connection.execute(select):
                                            writer.writerow(item)
                                    return 1
                                
                                if __name__ == "__main__":
                                    connection = sqlite3.connect(DATABASE_PATH)
                                    connection.execute("CREATE TABLE IF NOT EXISTS test(field1, field2)")
                                    connection.execute("INSERT INTO test VALUES (1, 2), (3, 4), ('testing', 'onetwothree');")
                                    connection.create_function("write_table", 2, write_table)
                                    connection.execute("select write_table('test', 'test.csv');")
                                

                                SQLite is pretty magical

                                https://docs.python.org/3.8/library/sqlite3.html#sqlite3.Connection.create_function

                                There’s probably a more refined way to do this using C-extensions so that it can support arbitrary queries rather than just tables and views, but I’ll leave that to the reader?

                                1. 1

                                  That’s cool! I will remember that the next time I try to do that from python.

                            1. 7

                              The car temperature graph has an odd feature, where it increases smoothly for a while and then almost instantaneously jumps by 10°F. The first three days all show that behavior. Do you have any idea why it was happening? I would be very surprised if it weren’t some kind of measurement error. (Maybe you were alluding to this when you said “Very curious about how it ramped up”.)

                              It was interesting (and sobering) looking at your data. Thanks for putting it together!

                              1. 7

                                Maybe the car is in the shade in the morning and that part is when the sun starts hitting it.

                                1. 6

                                  I’m not really sure. It looks like an error to me too. It’s either a sensor error or something to with the sun shining directly into the windshield at the right moment.

                                1. 1

                                  Wow, has it been that long? I signed up 8 years ago, and come here almost daily.

                                  Thank you all for making it such an awesome place. One thing I can say about my 8 years here… it hasn’t changed for the worse. It hasn’t gone downhill, developed a bad culture or become over-commercialized.

                                  I don’t have to tell you all how incredibly rare is, and says a lot about the leadership. Thank you all!

                                  1. 2

                                    Note that there’s also a .NET SDK for this service if you don’t feel like generating HTTP POSTs and parsing the JSON yourself. If you aren’t using Blazor (or any other .NET thing) there are also Go, JavaScript, and Python SDKs as well as the raw HTTP API.

                                    1. 1

                                      Yes, you’re right but, but the SDK does not work with Blazor. That was the purpose of the article. There are SDKs and easy ways to use this library for just about everything but Blazor, which requires building it by hand like in this project.

                                      1. 1

                                        I was under the impression (never having used it) that Blazor provided a complete .NET environment. What is it that the SDK depends on that Blazor lacks?

                                        1. 1

                                          I haven’t dug deep enough into it to see which libaries break it, but the SDK is not injectable into Blazor web assembly as of yet. You can of course offload most things to a Web API and inject it there.

                                    1. 1

                                      Holy, people still use CodeProject? I remember that site used to be the shit for learning Win32 and .NET programming in the 2000s, and sharing weird stuff related to it.

                                      1. 1

                                        Yeah! Still going strong for sure. Less noise there than some other similar blogging platforms.

                                      1. 1

                                        Company: Pluralsight

                                        Company site: https://www.pluralsight.com

                                        Position(s): Senior Developer Evangelist

                                        Location: Remote

                                        Description: Pluralsight is looking for a Social Media Manager who will be responsible for telling engaging stories to our social media audience of more than 1.6 million followers.

                                        Tech stack: Anything, Social Media and/or SEO Experience

                                        Contact: jeremy-morgan@pluralsight.com

                                        1. 14

                                          You know, when Cory Doctorow stopped using MacOS in 2006, this was news. This is not news, there is nothing in this article that is new, or technical, or interesting. Engineering is a series of trade-offs, the MacOS vs FreeBSD tradeoffs are well known, and not secret. At this point, every time I see an article like this, I’m thinking to myself “Don’t go away mad, just go away”

                                          1. 15

                                            I dunno, there is a bit of value in folks sharing their experience like this. Nothing ground shaking or crazy, and it certainly isn’t “news” but it’s a bit of insight.

                                            1. 13

                                              Well, when I wrote the article I was not expecting people to read it and be “woah!”, just to give my simple view that macOS is not Unixy anymore, forensics is impossible and it’s not Just Works(TM) anymore.

                                              1. 2

                                                My take away from this will be the statement “forensics are impossible”. That’s my primary issue with both Windows and, of late, macOS. The ability to go through the logs to find out what broke is an essential feature.

                                              2. 6

                                                It would be more palatable if there was an element of novelty in even a subset of these “I changed OS” stories, but most of the time there isn’t much differentiation outside the “rant” or “personal story”. Even a “why I left plan 9” would be more interesting at this point than someone moving away from Windows, or MacOS, or even Linux. I could see a case for it being noteworthy if someone famous moved from a mainstream OS (eg. If Bill Gates moved to Linux, for instance).

                                                I think the choice of tags on these articles is also instructive. They generally don’t fit well will into any tags outside rant, and/or the relevant OS tags. If there was an “i-changed-OS” tag, I would certainly just filter it and get on with my life!

                                                Off the top of my head, I came up with this list of common items in the “changing OS story”:

                                                • typically contains a rant of some kind, either as a pre-hoc of post-hoc justification for the move
                                                • notes about apps that the user looked for in the new OS, found, or did not find
                                                • a few notes about configuring the destination OS (eg. the “technical move” portion)
                                                • possibly some notes about still using the previous OS, but in special cases (eg. gaming, post production, etc)
                                                • callout to makers of previous OS, with what changes they could have made to retain the user, or changes which may presage their return

                                                Did I miss anything?

                                              3. 6

                                                I rarely see this migration path (macOS -> FreeBSD). Most of the times its like (macOS -> Linux Distribution) or even (macOS -> Windows) when gaming is involved.

                                                1. 1

                                                  My progression was:

                                                  Windows (3.1) -> FreeBSD -> OS X -> macOS

                                                  If macOS continues on the path its on, my next step will be back to FreeBSD/KDE.

                                                  1. 1

                                                    I really liked OS X 10.6 and 10.7.

                                                    Pity that now that Apple has the best possible hardware (M1) the software went south so much …

                                                2. 6

                                                  Culture dies when people stop talking about it, and to tell other people to stop talking about the things that you already know is to advocate for the death of your entire body of knowledge. Seems counterproductive.

                                                  1. 2

                                                    I think there’s a difference between saying “this has come up in various forms many times in the last decade and a half without much new being said” and advocating for the death of the entire body of knowledge in the area.

                                                  2. 4

                                                    I’ve seen quite a few of these (while undertaking my own move), and I think most of the blogs are personal blogs where people are just posting their general stuff. I think it gets picked up and posted here by other people. As long as people here think it ads value they’ll post and upvote it. @pushcx could always add a tag for setups with a -0.25 hotness weighting if it gets out of hand. In the meantime if it bugs you hitting the hide button may help.

                                                    1. 1

                                                      just a data point, but I don’t know who Cory Doctorow is, have been writing code professionally since 1983, including in a FAANG for years, and so even whoever that is having personal tastes was not news for some of us. Just like this is not news now. I guess it’s hard to determine what is newsworthy, and what is just data?

                                                    1. 1

                                                      I didn’t expect this flood of replies, but this is exactly why I shared it, I love feedback from you all to keep me honest.

                                                      My intentions for writing this are covered in “what’s the point”. I admit it’s a bit of an edge case, I don’t even do this myself (my site is hosted on Netlify). My thought was “what if someone wants to do this?” So I figured I would try it, and see how it works and share what I learned.

                                                      I make no money off my blog and it’s not controlled by any company/organization, so I am free to use it as a sandbox for ideas, good or bad.

                                                      Very few are going to try this. There are some advantages, however, if they do.

                                                      • It’s a fixed scaling model. If you host with an S3 bucket or Amplify and get “slashdotted” there is a chance your costs could rise sharply. With this model, it won’t scale until you tell it to. You have the power of choice. That’s one of the cool things about Lightsail.

                                                      • You can add additional functionality into a container that may not be available in a static hosted service. You can add in an API or listen for Github hooks, etc. Whatever you like. Purely static, it’s overkill.

                                                      • If you have an automated Hugo site, you can build a service that grabs data, creates markdown, and builds it with this model.

                                                      So it’s not completely useless, it’s just not something tons of people will do.

                                                      Netlify/Vercel/Github etc are great solutions, and I use Netlify myself, but it’s not always “free”. I pay for Netlify at my traffic level. Don’t get me wrong it’s worth every penny, but when your blog traffic grows you will explore other options beyond free hosting, this is just another option.

                                                      1. 3

                                                        Honestly the thing that surprised me the most wasn’t anything to do with your stack, it was the cost of a micro Lightsail node. I get that we’re talking about rounding errors compared to serious deployments, but $7/mo. for a 512MB container sounds about 4x as expensive as it should be, which makes me worry that you’d easily end up bursting to 5-10x that cost if you had to scale in a hurry.

                                                        I like having a “real” server even for static sites, since I can easily repurpose the Nginx (or whatever httpd you like) as a proxy, lightweight fcgi host, etc., control my own systemd config, and even run multiple containers inside the VM if I want to run more than one app/site.

                                                        I get that this makes me a dinosaur in some ways, but then again the only reason I build personal sites these days is to explore website building and hosting models, and having a some Linux box I can SSH to and rsync whatever assets I need gives me a lot of flexibility to try new things without learning yet another AWS sub-sub-dashboard or API.

                                                        1. 1

                                                          I’ve considered the same thing, and you’re right. I think you’re paying for the “container” aspect, considering you can get a “real” machine for cheaper on the same (Lightsail) service.

                                                          You might be a Dinosaur in some ways but I’m right there with you. I host my blog on Netlify and I love it, however, with other sites, I still prefer a “real” server. Maybe it’s because that’s how I’ve done things for 20+ years, or maybe it’s because I end up finding edge cases like “I sure wish I could ____” and find myself coming up short with abstracted “services”. I don’t think the VM option will ever truly die for this reason.

                                                      1. 4

                                                        One of the images says armv7l, which is a 32bit architecture. The RPi400 itself is 64bit. Can I get and install a 64bit OS on the device?

                                                        1. 4

                                                          Yes. For weird historical reasons, the default Rasbian OS claims to be 32-bit, but the CPU is a 64-bit ARM. You can install stock 64-bit Debian or Ubuntu on it if yo want, or any of a bunch of other OSes.

                                                          1. 2

                                                            What I really would like is to have ArchLinux as the OS.

                                                            I have a traditional RPi4 running ArchLinuxARM, and /proc/cpuinfo says “model name: ARMv7 Processor rev 3 (v7l)”. However, it also says “Hardware: BCM2711”, which is listed under ARMv8: https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4

                                                            So should I be able to use the ARMv8 image for the RPi 400 (and my traditional RPi, provided I had the spoons to reinstall everything)?

                                                            edit: typo

                                                            1. 2

                                                              Grab a fresh SD card & try it out? It ought to work, but I’ve never tried Arch.

                                                              1. 1

                                                                Good idea. Thanks!

                                                              2. 2

                                                                I too love Arch Linux. I’ve never run it on the Pi, however. I’m going to download and burn a copy of it and try it out next week. I will probably write about it as well.

                                                                1. 1

                                                                  I’d love to hear about it. :)

                                                          1. 2

                                                            Thanks for sharing the article raymii,

                                                            I like Pop a lot, and am considering using it for my “Main” OS at some point. For the last year or so I’ve been using Pop in VMs, and I have many machines configured very nicely for development and other tasks.

                                                            I’m just reluctant to give up my Arch installs, because they’re dialed in and stable. I have a main workstation I do a lot of work with that dual boots Arch and Windows10, and my laptop runs only Arch. That’s about 90% of my computing.

                                                            But I have several VMs and I have an old laptop running Pop. They’ve all been incredibly stable. So much so that my next laptop will be a System76, just to have that matched OS + hardware like Apple has going on, but cheaper.

                                                            Would love to hear other’s experience with it.

                                                            1. 3

                                                              No problem, I follow your site via RSS, didn’t know your were active on here yourself. But it’s always nicer if other people post your articles (at least, IMHO).

                                                              I’m doubting now between Mint and Pop, your review helps. I’m disliking ubuntu and their snap choices, but do want the hardware support, ease of use and a recent KDE version…

                                                              1. 2

                                                                I haven’t used Mint for a few years now, but I once loved Mint for the same reasons as Pop. I had a big project and had zero time for “tinkering”. I installed Mint on my machine to complete the job and it ran solid for months. It just stayed out of my way. I was thoroughly impressed. Later my “tinkering” need started to kick in and I began to use Arch. I also spent years with Gentoo for the same reason.

                                                                Now that you mention it, I may have to pay Mint another visit.

                                                            1. 5

                                                              This isn’t always required, but it’s nice to clean it up. If you’re going to make a real application with this, you’ll want to do some additional checking/sanitization on this string. You’ll also want to prepare your query, but that’s outside the scope of this tutorial. For now, we’ll just strip the quotes.

                                                              It’s good that it’s at least mentioned but how many more lines could it be to add a proper prepared statement? We shouldn’t be writing bad example code like 15 years ago, especially if it’s a single route/GET parameter.

                                                              1. 4

                                                                I’ve done this sort of thing, with SQLite, in Go. It wouldn’t even be an extra line, you can just use string concatenation to build the LIKE argument inside of SQLite, so that it’ll be safe from query injection.

                                                                The code goes from this:

                                                                rows, err := db.Query(`
                                                                                      select zip, primaryCity, state, county, timezone, latitude, longitude, irsEstimatedPopulation2015 
                                                                                      from zip_code_database 
                                                                                      where primaryCity like '%" + searchCity + "%' and type = 'STANDARD'`)
                                                                if err != nil {
                                                                  log.Fatal(err)
                                                                }
                                                                

                                                                to this:

                                                                rows, err := db.Query(`
                                                                                     select zip, primaryCity, state, county, timezone, latitude, longitude, irsEstimatedPopulation2015 
                                                                                     from zip_code_database 
                                                                                     where primaryCity like '%' || ? || '%' and type = 'STANDARD'`, searchCity)
                                                                if err != nil {
                                                                  log.Fatal(err)
                                                                }
                                                                

                                                                A working example of doing this in a working codebase: https://github.com/yumaikas/Gills/blob/master/repository.go#L62-L69

                                                                There’s no reason to not use something like that, other than being unaware of it. (Which, I will admit, can happen).

                                                                1. 1

                                                                  Thanks, that’s even fancier than the way I generally do It (just the single question mark). I learned something here.

                                                                  1. 1

                                                                    Glad I could help! I remember facing this very thing down, and ended up doing some research to see if it’d work. I’m always glad to do what I can to help prevent SQL injections.

                                                                    Usually a single question.mark.does the trick for most parameterization needs. This allows you to be more explicit about how to glob the like expression in the SQL query, because the double pipes are concatenating the value in the SQL query. This trick also works in Postgres, and in MSSQL, but with a different syntax. I don’t know of MySQL, but I’m sure it has an equivalent.

                                                                2. 2

                                                                  You’re right, not sure what I was thinking. I’ve amended it. This is why I post things to lobsters, I get valuable feedback that helps me improve. Thanks!

                                                                1. 2

                                                                  I thought I was a true retro hardware geek. I got 22 out of 45.

                                                                  1. 1

                                                                    This is exciting stuff. For me aside from a few hardware things, the biggest thing preventing me from moving 100% to BSD is certain programs I can’t live without. I’m hoping this can help bridge the gap a little.

                                                                    1. 2

                                                                      Which programs will you miss on FreeBSD?

                                                                      1. 1

                                                                        Can’t speak for the OP, but for me not having Spotify is annoying. I haven’t tried Linuxulator, though.

                                                                        I’ve also had problems with audio in general on FreeBSD, but in fairness I haven’t much time to read up on it or debug it.

                                                                        1. 5

                                                                          I do not use Spotify but there are two ‘native’ ways of using Spotify on FreeBSD.

                                                                          1. Using TUI interface in console using audio/spotify-tui port and/or package: https://github.com/Rigellute/spotify-tui

                                                                          2. Using daemon mode with audio/spotifyd port and/or package: https://github.com/Spotifyd/spotifyd

                                                                          There are also ‘non native’ ways like using WINE for example: https://forums.freebsd.org/threads/howto-spotify-on-freebsd-amd64.34780/

                                                                          For me personally Spotify is the same bitch as Netflix. Support FreeBSD (or just be OS-agnostic using web service) or GTFO (or even die) for me. Besides even on Firefox/Chrome on Linux/Windows you still can not get even 1080p with Netflix … and people pay for that …

                                                                          Till they get their mind back I prefer 1080p from Torrent downloads.

                                                                          Its nice that Netflix uses and commits code to FreeBSD but its hypocrisy to use FreeBSD and NOT allow using the service on it … at least for me.

                                                                          Same with TOM TOM maps which use Linux and Linux is not one of the supported systems.

                                                                          Not sure if that helps but regards ;)

                                                                          1. 1

                                                                            Thank you! This pointed me in the right direction, and I have it working now.

                                                                            In case anybody stumbles on this later (there’s apparently not much info around for spotify on FreeBSD), what I found is that spotify-tui doesn’t actually play anything, but uses the Spotify web API to view playlists and other info and control playback. Installing and running it (the command is spt, not spotify-tui) shows a “device” list that was empty for me.

                                                                            I spent some time trying to configure my sound card (a Roland UA-25EX USB card) to show up in the list. This ended up being a dead end with respect to Spotify, but I discovered how to set the default sound card with “sysctl hw.snd.default_auto=9”, and that made audio work in Firefox (at least on YouTube). Finally, buried in the README on GitHub, I found out it doesn’t support streaming directly, but requires another player.

                                                                            So I looked at spotifyd, which can play audio but has no UI. I learned my lesson and followed its README, and I’m able to play back after telling it my username, password, and to use the “portaudio” backend.

                                                                            My only complaint is that I liked finding “related” artists in the Web player UI, but I’ve been working on a tool to help with that anyway.

                                                                            1. 1

                                                                              Welcome. Glad you got it working :)

                                                                          2. 1

                                                                            Seamonkey supports flash; could use that.

                                                                            1. 1

                                                                              FWIW, Spotify doesn’t seem to use Flash.

                                                                        2. 1

                                                                          You may be lucky, but probably not. The Linux compat layer is good for things that could easily have FreeBSD versions but are not open source and so can’t be rebuilt. It doesn’t support things that use very Linux-specific features (such as Chrome or Docker).

                                                                          The things I like about FreeBSD are well-designed kernel interfaces. For example, Chrome’s sandboxing is far simpler to implement with Capsicum than seccomp-bpf or SELinux (though the Chrome team is incredibly hostile to taking patches to support other operating systems). Containers are trivial with jails instead of the mess of kernel namespaces, cgroups, and more seccomp-bpf (which, ironically, means no one invested in the tooling for making them useable, because they almost work usefully out of the box, whereas on Linux you need a load of goo to make them work at all and so it’s easier to justify building the tooling). Unfortunately, this significant difference in kernel API design philosophies means that implementing these Linux-specific APIs is nontrivial (especially when, for things like seccomp-bpf, they leak kernel implementation details) in a compat layer.

                                                                        1. -3

                                                                          I know that it’s is possible to use FreeBSD for development, but I don’t think anyone should, practically speaking.

                                                                          A post like “Can you use Windows for a developer machine in 2020” would interest me more. Because it seems like everyone is either using Mac or Linux these days.

                                                                          1. 16

                                                                            I don’t think anyone should, practically speaking.

                                                                            Why?

                                                                            1. 1

                                                                              The reason is sum up nicely in the article already. IMO, if the software selection is the same, if I still use Gnome, still use bash, still use Emacs there is little reason to choose the OS with inferior hardware and community supported.

                                                                              1. 3

                                                                                Why should the default assumption be that you use Linux unless you have some especially good reason to use BSD? If FreeBSD meets your needs and Linux meets your needs, why should that mean that you use Linux?

                                                                                Personally, after using OpenBSD on one of my laptops for a couple of weeks I’m keen to use it wherever I can. It’s incredibly well documented, stable and simple. It’s just well designed through and through. OpenBSD vs Linux today feels like Linux vs Windows did 12-15 years ago: limited laptop hardware support (only really thinkpads can be relied upon to work) and poor power/thermal management in exchange for much better design, system layout and understandability.

                                                                                1. 3

                                                                                  If FreeBSD meets your needs and Linux meets your needs, why should that mean that you use Linux?

                                                                                  Speaking just for myself, if both are equally goods for my needs, I’ll surely go with the more popular option.

                                                                                2. 3

                                                                                  The software selection being the same is only part of the story. If you can get the same software packages you need for Linux in FreeBSD, you’ll likely see the underlying system is far more stable and performs better. That’s the big advantage.

                                                                                  1. 4

                                                                                    Debian/Ubuntu is stable enough for daily usage, I wouldn’t ask for more stability. As in your article

                                                                                    Once you get it configured, it can “stay out of your way” while you get real work done

                                                                                    I has the same experience with Debian/Ubuntu. Maybe I’ll need to seriously gave BSD a try some day (I never manage to get it fully working on any hardware I had), but I’m pretty happy with Linux today.

                                                                                    1. 3

                                                                                      If you can get the same software packages you need for Linux in FreeBSD, you’ll likely see the underlying system is far more stable and performs better. That’s the big advantage.

                                                                                      This is only anecdotal evidence, but the last time I had a kernel panic it was when I tried FreeBSD. Do you have any quantitative evidence that FreeBSD is more stable and performs better?

                                                                                3. 3

                                                                                  True! Though with WSL the Windows world is catching up. It’s not the same as actual Linux, but a step in the right direction.

                                                                                  1. 1

                                                                                    Why is it not the same? WSL2 actually runs a Linux kernel under HyperV. You can even run an X server and have the same graphical programs. The only thing that does not really work are Wayland applications (AFAIK).

                                                                                    1. 1

                                                                                      I think certain issues still exist (AFAIK?), but hopefully will be resolved soon.

                                                                                      1. 1

                                                                                        For me, filesystem issues are a complete deal breaker. I have no OS options at work and can only use Windows and while its a decent work machine, I still feel that my Linux workstation and laptop at home run rings around it.

                                                                                1. 2

                                                                                  If VMware doesn’t run on FreeBSD, have you tried bhyve or jails?

                                                                                  I’m building a new Ryzen workstation which I intend to run 3-4 Linux VMs on Linux, but I’m open to either-on-either, any way to get it done, really. I used to run FreeBSD 5.3? back in the day, and it’s been a nice ~12 years on OS X, but I wanna get back to The Good Life. I used to worry about Flash player & 802.11b like 2 cacodemons, but it’s probably moot now.

                                                                                  What is the issue with Sublime Text? That might be my dealbreaker.

                                                                                  1. 2

                                                                                    libvirt supports bhyve, so any GUI tool that works with libvirt should be usable with it. It would be nice to have something as easy to use as VirtualBox of course, and adding bhyve support to VirtualBox is a possibility now that it uses KVM on Linux and Hyper-V on Windows for its hypervisor—the abstraction is there. There “just” needs to be a sufficiently dedicated person to actually do it.

                                                                                    1. 2

                                                                                      If VMware doesn’t run on FreeBSD, have you tried bhyve or jails?

                                                                                      I haven’t, but my current workflow uses VMWare. I’m open to trying Bhyve because I think it can solve my problem, at a later time.

                                                                                      What is the issue with Sublime Text? That might be my dealbreaker.

                                                                                      I couldn’t get it working in both stable and current on a few machines. Best I could do was get the icon in the start menu, but I clicked it and nothing happened. I will spend some time messing with it to see if I can get it to work.

                                                                                    1. 1

                                                                                      Where are the operating systems that run on top of any operating system? :) Inferno and NetBSD I think are the only ones.

                                                                                      1. 3

                                                                                        You can run nearly anything in VirtualBox/VMware. If you’re forced to use Windows by an employer but really want to use Linux/Unix (I’ve been there) it’s a decent alternative.

                                                                                        1. 1

                                                                                          Maybe Windows with WSL and WSL2 qualify?