1. 3

    Yes! fzf made me extremely fast in Vim the last two years. Especially when combining it with binds like this to instantly jump to your previous file with <space><space>:

    nnoremap <leader><leader> <c-^>
    
    1. 3

      Thanks for commenting your vimrc so extensively! I found that quite rare and it really helps when considering what to graft to my own config! :)

    1. 1

      In languages like Rust private components help organize, structure and deduplicate your internal unsafe logic, whilst providing a safe public interface to the user.

      1. 11

        I like Apple hardware a lot, and I know all of the standard this-is-why-it-is-that-way reasoning. But it’s wild that the new MacBook Pros only have two USB-C ports and can’t be upgraded past 16GB of RAM.

        1. 18

          Worse yet, they have “secure boot”, where secure means they’ll only boot an OS signed by Apple.

          These aren’t computers. They are Appleances.

          Prepare for DRM-enforced planned obsolence.

          1. 9

            I would be very surprised if that turned out to be the case. In recent years Apple has been advertising the MacBook Pro to developers, and I find it unlikely they would choose not to support things like Boot Camp or running Linux based OSs. Like most security features, secure boot is likely to annoy a small segment of users who could probably just disable it. A relevant precedent is the addition of System Integrity Protection, which can be disabled with minor difficulty. Most UEFI PCs (to my knowledge) have secure boot enabled by default already.

            Personally, I’ve needed to disable SIP once or twice but I can never bring myself to leave it disabled, even though I lived without it for years. I hope my experience with Secure Boot will be similar if I ever get one of these new computers.

            1. 12

              Boot Camp

              Probably a tangent, but I’m not sure how Boot Camp would fit into the picture here. ARM-based Windows is not freely available to buy, to my knowledge.

              1. 7

                Disclaimer: I work for Microsoft, but this is not based on any insider knowledge and is entirely speculation on my part.

                Back in the distant past, before Microsoft bought Connectix, there was a product called VirtualPC for Mac, an x86 emulator for PowerPC Macs (some of the code for this ended up in the x86 on Arm emulator on Windows and, I believe, on the Xbox 360 compatibility mode for Xbox One). Connectix bought OEM versions of Windows and sold a bundle of VirtualPC and a Windows version. I can see a few possible paths to something similar:

                • Apple releases a Boot Camp thing that can load *NIX, Microsoft releases a Windows for Macs version that is supported only on specific Boot Camp platforms. This seems fairly plausible if the number of Windows installs on Macs is high enough to justify the investment.
                • Apple becomes a Windows OEM and ships a Boot Camp + Windows bundle that is officially supported. I think Apple did this with the original Boot Camp because it was a way of de-risking Mac purchases for people: if they didn’t like OS X, they had a clean migration path away. This seems much less likely now.
                • Apple’s new Macs conform to one of the new Arm platform specifications that, like PREP and CHRP for PowerPC, standardise enough of the base platform that it’s possible to release a single OS image that can run on any machine. Microsoft could then release a version of Windows that runs on any such Arm machine.

                The likelihood of any of these depends a bit on the economics. In the past, Apple has made a lot of money on Macs and doesn’t actually care if you run *NIX or Windows on them because anyone running Windows on a Mac is still a large profit-making sale. This is far less true with iOS devices, where a big chunk of their revenue comes from other services (And their 30% cut on all App Store sales). If the new Macs are tied more closely to other Apple services, they may wish to discourage people from running another OS. Supporting other operating systems is not free: it increases their testing burden and means that they’ll have to handle support calls from people who managed to screw up their system with some other OS.

                1. 2

                  Apple’s new Macs conform to one of the new Arm platform specifications

                  We already definitely know they use their own device trees, no ACPI sadly.

                  Supporting other operating systems is not free

                  Yeah, this is why they really won’t help with running other OS on bare metal, their answer to “I want other OS” is virtualization.

                  They showed a demo (on the previous presentation) of virtualizing amd64 Windows. I suppose a native aarch64 Windows VM would run too.

                2. 2

                  ARM-based Windows is available for free as .vhdx VM images if you sign up for the Windows Insider Program, at least

                3. 9

                  In the previous Apple Silicon presentation, they showed virtualization (with of-course-not-native Windows and who-knows-what-arch Debian, but I suspect both native aarch64 and emulated amd64 VMs would be available). That is their offer to developers. Of course nothing about running alternative OS on bare metal was shown.

                  Even if secure boot can be disabled (likely – “reduced security” mode is already mentioned in the docs), the support in Linux would require lots of effort. Seems like the iPhone 7 port actually managed to get storage, display, touch, Wi-Fi and Bluetooth working. But of course no GPU because there’s still no open PowerVR driver. And there’s not going to be an Apple GPU driver for a loooong time for sure.

                  1. 2

                    I think dual-booting has always been a less-than-desireable “misfeature” from Apple’s POV. Their whole raisin de et is to offer an integrated experience where the OS, hardware, and (locked-down) app ecosystem all work together closely. Rip out any one of those and the whole edifice starts to tumble.

                    So now they have a brand-new hardware platform with an expanded trusted base, so why not use it to protect their customers from “bad ideas” like disabling secure boot or side-loading apps? Again, from their perspective they’re not doing anything wrong, or hostile to users; they’re just deciding what is and isn’t a “safe” use of the product.

                    I for one would be completely unsurprised to discover that the new Apple Silicon boxes were effectively just as locked down as their iOS cousins. You know, for safety.

                    1. 3

                      They’re definitely not blocking downloading apps. Federighi even mentioned universal binaries “downloaded from the web”. Of course you can compile and run any programs. In fact we know you can load unsigned kexts.

                      Reboot your Mac with Apple silicon into Recovery mode. Set the security level to Reduced security.

                      Remains to be seen whether that setting allows it to boot any unsigned kernel, but I wouldn’t just assume it doesn’t.

                      1. 4

                        They also went into some detail at WWDC about this, saying that the new Macs will be able to run code in the same contexts existing ones can. The message they want to give is “don’t be afraid of your existing workflow breaking when we change CPU”, so tightening the gatekeeper screws alongside the architecture shift is off the cards.

                      2. 2

                        I think dual-booting has always been a less-than-desireable “misfeature” from Apple’s POV. Their whole raisin de et is to offer an integrated experience where the OS, hardware, and (locked-down) app ecosystem all work together closely. Rip out any one of those and the whole edifice starts to tumble.

                        For most consumers, buying their first Mac is a high-risk endeavour. It’s a very expensive machine and it doesn’t run any of their existing binaries (especially since they broke Wine with Catalina). Supporting dual boot is Apple’s way of reducing that risk. If you aren’t 100% sure that you’ll like macOS, there’s a migration path away from it that doesn’t involve throwing away the machine: just install Windows and use it like your old machine. Apple doesn’t want you to do that, but by giving you the option of doing it they overcome some of the initial resistance of people switching.

                        1. 7

                          The context has switched, though.

                          Before, many prospective buyers of Macs used Windows, or needed Windows apps for their jobs.

                          Now, many more prospective buyers of Macs use iPhones and other iOS devices.

                          The value proposition of “this Mac runs iOS apps” is now much larger than the value proposition of “you can run Windows on this Mac”.

                          1. 2

                            There’s certainly some truth to that but I would imagine that most iOS users who buy Macs are doing so because iOS doesn’t do everything that they need. For example, the iPad version of PowerPoint is fine for presenting slides but is pretty useless for serious editing. There are probably a lot of other apps where the iOS version is quite cut down and is fine for a small device but is not sufficient for all purposes.

                            In terms of functionality, there isn’t much difference between macOS and Windows these days, but the UIs are pretty different and both are very different from iOS. There’s still some risk for someone who is happy with iOS on the phone and Windows on the laptop buying a Mac, even if it can run all of their iOS apps. There’s a much bigger psychological barrier for someone who is not particularly computer literate moving to something new, even if it’s quite like similar to something they’re more-or-less used to. There are still vastly more Windows users than iOS users, though it’s not clear how many of those are thinking about buying Macs.

                            1. 2

                              There are still vastly more Windows users than iOS users, though it’s not clear how many of those are thinking about buying Macs.

                              Not really arguing here, I’m sure you’re right, but how many of those Windows users choose to use Windows, as opposed to having to use it for work?

                              1. 1

                                I don’t think it matters very much. I remember trying to convince people to switch from MS Office ‘97 to OpenOffice around 2002 and the two were incredibly similar back then but people were very nervous about the switch. Novell did some experiments just replacing the Office shortcuts with OpenOffice and found most people didn’t notice at all but the same people were very resistant to switching if you offered them the choice.

                      3. 1

                        That “developer” might means Apple developers.

                      4. 3

                        Here is the source of truth from WWDC 2020 about the new boot architecture.

                        1. 2

                          People claimed the same thing about T2 equipped intel Macs.

                          On the T2 intels at least, the OS verification can be disabled. The main reason you can’t just install eg Linux on a T2 Mac is the lack of support for the ssd (which is managed by the T2 itself). Even stuff like ESXi can be used on T2 Macs - you just can’t use the built in SSD.

                          That’s not to say that it’s impossible they’ve added more strict boot requirements but I’d wager that like with other security enhancements in Macs which cause some to clutch for their pearls, this too can probably be disabled.

                        2. 10

                          … This is the Intel model it replaces: https://support.apple.com/kb/SP818?viewlocale=en_US&locale=en_US

                          Two TB3/USB-C ports; Max 16GB RAM;

                          It’s essentially the same laptop, but with a non-intel CPU/iGPU, and with USB4 as a bonus.

                          1. 1

                            Fair point! Toggling between “M1” and “Intel” on the product page flips between 2 ports/4 ports and 16GB RAM/max 32GB RAM, and it’s not clear this is a base model/higher tier toggle. I still think this is pretty stingy, but you’re right – it’s not a new change.

                          2. 5

                            These seem like replacements for the base model 13” MBP, which had similar limitations. Of course, it becomes awkward that the base model now has a much, much better CPU/IGP than the higher-end models.

                            1. 2

                              I assume this is just a “phase 1” type thing. They will probably roll out additional options when their A15 (or whatever their next cpu model is named) ships down the road. Apple has a tendency to be a bit miserly (or conservative, depending on your take) at first, and then the next version looks that much better when it rolls around.

                              1. 2

                                Yeah, they said the transition would take ~2 years, so I assume they’ll slowly go up the stack. I expect the iMacs and 13-16” MacBook Pros to be refreshed next.

                                1. 3

                                  Indeed. Could be they wanted to make the new models a bit “developer puny” to keep from cannabalizing the more expensive units (higher end mac pros, imacs) until they have the next rev of cpu ready or something. Who knows the amount of marketing/portfolio wrangling that goes behind the scenes to suss out timings for stuff like this (billion dollar industries), in order to try to hit projected quarterly earnings for a few quarters out down the road.

                                  1. 5

                                    I think this is exactly right. Developers have never been a core demographic for Apple to sell to - it’s almost accidental that OS X being a great Unix desktop, coupled with software developer’s higher income made Macs so popular with developers (iOS being an income gold mine helped too, of course).

                                    But if you’re launching a new product, you look at what you’re selling best of (iPads and Macbook Air’s) and you iterate on that.

                                    Plus, what developer in their right mind would trust their livelihood to a 1.0 release?!

                                    1. 9

                                      I think part of the strategy is that they’d rather launch a series of increasingly powerful chips, instead of starting with the most powerful and working their way down - makes for far better presentations. “50% faster!” looks better than “$100 cheaper! (oh, and 30% slower)”.

                                      1. 2

                                        It also means that they can buy more time for some sort of form-factor update while having competent, if not ideal, machines for developers in-market. I was somewhat surprised at the immediate availability given that these are transition machines. This is likely due to the huge opportunity for lower-priced machines during the pandemic. It is prudent for Apple to get something out for this market right now since an end might be on the horizon.

                                        I’ve seen comments about the Mini being released for this reason, but it’s much more likely that the Air is the product that this demographic will adopt. Desktop computers, even if we are more confined to our homes, have many downsides. Geeks are not always able to understand these, but drive the online conversations. Fans in the Mini and MBP increase the thermal envelope, so they’ll likely be somewhat more favourable for devs and enthusiasts. It’s going to be really interesting to see what exists a year from now. It will be disappointing, if at least some broader changes to the form factor and design aren’t introduced.

                                      2. 1

                                        Developers have never been a core demographic for Apple to sell to

                                        While this may have been true once, it certainly isn’t anymore. The entire iPhone and iPad ecosystem is underpinned by developers who pretty much need a Mac and Xcode to get anything done. Apple knows that.

                                        1. 2

                                          Not only that, developers were key to switching throughout the 00s. That Unix shell convinced a lot of us, and we convinced a lot of friends.

                                          1. 1

                                            In the 00s, Apple was still an underdog. Now they rule the mobile space, their laptops are probably the only ones that make any money in the market, and “Wintel” is basically toast. Apple can afford to piss off most developers (the ones who like the Mac because it’s a nice Unix machine) if it believes doing so will make a better consumer product.

                                            1. 2

                                              I’ll give you this; developers are not top priority for them. Casual users are still number one by a large margin.

                                          2. 1

                                            Some points

                                            • Developers for iOS need Apple way more than Apple needs them
                                            • You don’t need an ARM Mac to develop for ARM i-Devices
                                            • For that tiny minority of developers who develop native macOS apps, Apple provided a transition hardware platform - not free, by the way.

                                            As seen by this submission, Apple does the bare minimum to accommodate developers. They are certainly not prioritized.

                                            1. 1

                                              I don’t really think it’s so one-sided towards developers - sure, developers do need to cater for iOS if they want good product outreach, but remember that Apple are also taking a 30% cut on everything in the iOS ecosystem and the margins on their cut will be excellent.

                                        2. 2

                                          higher end mac pros

                                          Honestly trepidatiously excited to see what kind of replacement apple silicon has for the 28 core xeon mac pro. It will either be a horrific nerfing or an incredible boon for high performance computing.

                                  2. 4

                                    and can’t be upgraded past 16GB of RAM.

                                    Note that RAM is part of the SoC. You can’t upgrade this afterwards. You must choose the correct amount at checkout.

                                    1. 2

                                      This is not new to the ARM models. Memory in Mac laptops, and often desktops, has not been expandable for some time.

                                    2. 2

                                      I really believe that most people (including me) don’t need more than two Thunderbolt 3 ports nowadays. You can get a WiFi or Bluetooth version of pretty much anything nowadays and USB hubs solve the issue when you are at home with many peripherals.

                                      Also, some Thunderbolt 3 displays can charge your laptop and act like a USB hub. They are usually quite expensive but really convenient (that’s what I used at work before COVID-19).

                                      1. 4

                                        it’s still pretty convenient to have the option of plugging in on the left or right based on where you are sitting so disappointing for that reason

                                        1. 4

                                          I’m not convinced. A power adapter and a monitor will use up both ports, and AFAIK monitors that will also charge the device over Thunderbolt are pretty uncommon. Add an external hard drive for Time Machine backups, and now you’re juggling connections regularly rather than just leaving everything plugged in.

                                          On my 4-port MacBook Pro, the power adapter, monitor, and hard drive account for 3 ports. My 4th is taken up with a wireless dongle for my keyboard. Whenever I want to connect my microphone for audio calls or a card reader for photos I have to disconnect something, and my experiences with USB-C hubs have shown them to be unreliable. I’m sure I could spend a hundred dollars and get a better hub – but if I’m spending $1500 on a laptop, I don’t think I should need to.

                                          1. 2

                                            and AFAIK monitors that will also charge the device over Thunderbolt are pretty uncommon

                                            Also, many adapters that pass through power and have USB + a video connector of some sort only allow 4k@30Hz (such as Apple’s own USB-C adapters). Often the only way to get 4k@60Hz with a non-Thunderbolt screen is by using a dedicated USB-C DisplayPort Alt Mode adapter, which leaves only one USB-C port for everything else (power, any extra USB devices).

                                        2. 1

                                          I’ve been trying to get a Mac laptop with 32GB for years. It still doesn’t exist. But that’s not an ARM problem.

                                          Update: Correction, 32GB is supported in Intel MBPs as of this past May. Another update: see the reply! I must have been ignoring the larger sizes.

                                          1. 3

                                            I think that link says that’s the first 13 inch MacBook Pro with 32GB RAM. I have a 15 inch MBP from mid-2018 with 32GB, so they’ve been around for a couple of years at least.

                                            1. 1

                                              You can get 64GB on the 2020 MBP 16” and I think on the 2019, too.

                                          1. 14

                                            There are a lot of static site generators. There’s a lot of bike-shedding around them because everyone has different needs. Wanting it to be “easy” or “simple” is at odds with having flexibility to handle things other than your favorite workflow. Ultimately, you’re just looking to find a framework that saves you time and energy.

                                            I personally went in the complete opposite direction. I used to use a static site generator for a number of years but I don’t post all that often. Every time I’ve wanted to post something, I’d have to relearn the tool, and pray nothing broke since the last time I used it.

                                            As a result, once it broke, I didn’t post anything for four years.

                                            When I started writing fiction as a hobby, I tossed my old, dead website and made a new one. I’d made a few websites on Wordpress.com for friends by that point.

                                            So I ended up hosting Wordpress by myself and heavily modified one of the official themes. It doesn’t give me quite as much control but the plugins allowed me to build a website with far more functionality and in less time than doing the code myself.

                                            Writing and posting new articles is so much easier using rich text. I generally type up my post in Apple Notes first. Copying and posting to Wordpress saves most of the formatting. Inserting images is drag and drop.

                                            As far as security, my website has one api key to send mail. Everything else is isolated to the server it runs on. I put as much of the admin pages behind basic auth as I could. The login page is inaccessible without knowing those credentials. It’s not perfect but I have a defense in depth to mitigate damage. If it gets hacked, nothing of value is lost. I have complete, incremental backups of everything (configs, webroot, database) that’s pulled down via cron job every night.

                                            I say all this because… everyone ultimately looks for a tool that works for them. My goal is to write posts, not fiddle endlessly. Other people love the fiddling.

                                            If you’re looking to build and maintain a website, think about what’s important to you. What’s your skill set, interests, preferred workflow, and goals?

                                            For me, Wordpress fits. For a lot of programmers, they have very legitimate reasons to be horrified I used it. :)

                                            1. 8

                                              Every time I’ve wanted to post something, I’d have to relearn the tool, and pray nothing broke since the last time I used it.

                                              As a result, once it broke, I didn’t post anything for four years.

                                              I’m in the same situation with Hugo. It seems like every time I go to rebuild the site, something has broken. Given Hugo’s vast complexity, it is actually rather difficult and a huge time sink to figure out how to actually fix it.

                                              But my plan, assuming I ever summon the motivation, is to just write my own static site generator. I’ll publish the code for it, but it won’t be something I intend to share or maintain for others. It will be narrowly scoped for my specific use cases alone. I think with a narrow scope, it has the potential to be very simple and easy to maintain going forward.

                                              1. 3

                                                That sounds very familiar. After not updating my hugo binary for years in fear of breaking something, then doing it, thereby discovering I seem to use 0.7% of the features I rewrote only the parts I needed to reproduce my site. Turns out, 333 lines of code was enough - I never went live with my rewrite, but I haven’t posted a ton since.

                                                1. 3

                                                  Oh interesting! I didn’t think of keeping most of the structure the same as what Hugo expects and then just writing a different tool to handle the things I need. I’ll probably just re-think it from first principles though, since I think I can get things to be a bit simpler. But I’ll probably need more than a few hundred lines. One of the things I do with my blog is ensure that all my code snippets compile without duplication. That’s been a pain to do with Hugo, so I’ll likely devise a better answer to that problem through coupling.

                                                  1. 2

                                                    Ah, yeah. I think I don’t even have any of the fancy oEmbed things I used to have in former iterations and I don’t do code snippets - except formatting them with <code> or <pre> :)

                                                  2. 2

                                                    My personal blog’s SSG is now a 63-lines bash 5 script, no argument, no config, and a pretty direct usage.

                                                    Handles everything I want (RSS, categories, markdown, medias, templating with “smart tags” (ie custom tags)

                                                    1. 1

                                                      I’d be curious to see what this looks like if you wouldn’t mind sharing.

                                                2. 8

                                                  I made a comic recently which may be relevant to what you said: https://rakhim.org/honestly-undefined/19/

                                                  1. 2

                                                    LOL this gave me a good laugh

                                                  2. 4

                                                    I coincidentally started using Zola myself just last week, and having a backlog and knowing I could have this exact relearn-the-tool-in-X-years problem, I created a little script that puts a skeleton file in the right place, opens it in a text editor, and then runs zola build. It took a couple of minutes to write, and it doubles as a tutorial for my future self. I suppose this reinforces your point: what are my goals and skills? Wordpress certainly isn’t either for me, but I wouldn’t recommend my own workflow to someone who just wants a blog.

                                                    1. 4

                                                      Articulate. Well, I 100% agree with you that no tool can satisfy every users. That’s exactly the reason why we have so many choices. However I’m of the opinion that so many choices is quite a nice thing as different people can find their version of perfect tool.

                                                      Regarding WordPress, I like to write in markdown. I was able to port my old blog to a new one quite easily because they were all a bunch of markdown posts. Although yes WP is so popular that you’ll get exporters/importers for almost every mainstream choice, I still prefer to have these markdown posts committed to a .git repository.

                                                      And the reason I ported to a simpler tool is because I wanted to fiddle less and focus more on writing. I consider this as a one time investment, but let’s see how it goes. :)

                                                      1. 3

                                                        Absolutely!

                                                        I love the idea of markdown and use it frequently for documentation, but my brain can’t grasp the mismatch between presentation and formatting in real-time, which means I can’t do creative work in it. :)

                                                        1. 1

                                                          There are markdown editors, including one I use for Android, which bridge that gap for you. Just on case you wanted to know

                                                          1. 2

                                                            Of course. Then I have to figure out how to manage markdown files and so on. :)

                                                            As I’ve said elsewhere, it’s really easy to solve one issue. Solving the majority of them is difficult.

                                                      2. 6

                                                        Hmm. This should be a post on my blog. scribbles notes

                                                        Also, being able to post and edit articles on my phone or iPad using the official Wordpress app is one of the big selling points for me. By using Wordpress, I get offline editing on any device for free.

                                                        1. 2

                                                          Interesting! I love writing posts in markdown so there’s a difference, but you might find this approach interesting:

                                                          I switched to Zola a while back, and set up CI to automatically publish new site versions with a static Zola binary. When I want to add something, I only edit markdown files. I just push these new changes in a git repository, and it automagically appears online. It takes very low effort to edit and update the website (given you’re used to using git and markdown). You don’t install Zola locally and can do this from anywhere in the world.

                                                          It seems impossible to break Zola with just adding markdown files. The only real thing that can break here, is the server I’m hosting these static files on. The whole setup is actually super simple, if things ever go haywire it’s simple to debug or I just revert.

                                                          Not trying to make you switch. Just thought you might find it interesting, as I assume this has minimum breakage, which you were having problems with.

                                                          1. 3

                                                            Someone always mentions markdown and tries to solve one of the problems I mentioned. :)

                                                            There’s a long, long list of features I use and all of them reduce the immediate friction of writing or making changes. (The worst offender is using plain text with a markup language.) This is absolutely critical to my creative process. Everything else is secondary.

                                                          2. 2

                                                            I already write my drafts in Notion as it is just restrictive enough to keep me focused, but flexible enough to embed any kind of media. That is why I’d probably lean towards something like https://super.so/ tor OSS alternative to make it a one-click thing.

                                                            1. 1

                                                              Not entirely sure what you’re getting at. Wordpress is open source under the GPLv2 license.

                                                          1. 31

                                                            This article is, IMHO, mostly complaining about that things are different.

                                                            1. 9

                                                              Right. The only thing I hate about IPv6, is that it isn’t supported everywhere.

                                                              1. 4

                                                                I have an IPv6-only server hosting repos that I sync to GitHub periodically. However GitHub is IPv4-only, so I accomplish this by pulling all the repos down to my home network (dual stack), and pushing them back up to GitHub. Bit of a joke really.

                                                                1. 1

                                                                  And most of the things I gripe about are likely due to:

                                                                  1. It not being supported everywhere, so there’s no consistent baseline of what an IPv6 host “should” do, partially because…
                                                                  2. Nobody quite knows IPv6 to any serious degree, minus the writers of the spec. Many places I’ve interacted with have already written off IPv6 as this giant monster that’s “just too different to ever understand,” which kinda causes a self-feeding cycle of nobody wanting to learn the protocol, so nobody implements it, which means nobody learns it..

                                                                  I think it would be a great thing if we had some serious, global, IPv6 adoption. There’d be a lot more effort into understanding it, and things that have been consigned to the “well this is impossible” bin, we might actually find a way with that gained knowledge.

                                                                  But any large change like this tends to cause it’s own catch-22. And without forcing people to upgrade, it’s just not going to progress at any serious rate.

                                                                2. 3

                                                                  Yep. I have IPv4 / IPv6 dual stack at home working with iOS, MacOS, Windows, Linux, Roku, a Midea U (smart air conditioner), and some other things I don’t even remember off the top of my head. It wasn’t even hard to set up. Never have any problems. And I use VLANs, WireGuard, and so on, which according to this article should have driven me to drink during setup.

                                                                  I also have an IPv6-only VPS. Added an AAAA record for it, some ip6tables rules (because I’m lazy and haven’t learned nftables syntax), and everything worked first try.

                                                                  1. 4

                                                                    nftables is worth the time investment. My VPS is dual stack, but thanks to nftables I can use a single config for both protocols.

                                                                      1. 1

                                                                        VLANs, WireGuard

                                                                        I don’t believe I talked about either of those, actually, unless you want to count a cross-VLAN firewall/NAT/NPT..

                                                                        Personally, most issues I see come from dual-stack, running IPv6 solely would probably improve a lot of things. And, admittedly, for most people, IPv6 isn’t going to cause them a headache. For people like me who will tweak every veriable of a network to within an inch of its life to get the results, performance, and overall function that I want, then it’s a lot easier to just do without.

                                                                    1. 2

                                                                      Thanks for including ffsend!

                                                                      It doesn’t use Mozilla’s Send instance anymore, but it still works with a Send instance I’m hosting.

                                                                      1. 9

                                                                        Learning how to type on a split ergonomic mechanical keyboard. My moonlander will finally arrive today.

                                                                        It’s also my last day at this job.

                                                                        1. 2

                                                                          Looks like UPS lied, no keyboard until monday :(

                                                                          1. 2

                                                                            I just bought the EZ yesterday, super excited! What made you choose the moonlander? It was a really hard choice for me but in the end I didn’t like that you can’t replace all the buttons on the moonlander

                                                                            1. 1

                                                                              The moonlander has more firmware storage space. That and the left side is active so I can use the left side for gaming.

                                                                              1. 1

                                                                                That’s pretty cool about the gaming thing. Was quite tempted by that and now I’m wondering if I made a mistake. That thing would be perfect for gaming!!

                                                                                1. 1

                                                                                  The EZ is also good for gaming. If you needed more mouse space, you could always move the right keyboard forward on your desk. If you end up moving your keyboard layout around, I recommend having a “gaming layout.” For instance, I moved escape to where caps lock is and would accidentally hit it when gaming sometimes, so on my gaming layout, I moved it back to the top left corner.

                                                                                  The Ergodox EZ was easily one of my favorite “expensive and unnecessary” purchases of the last few years. I have had mine for 2+ years and still enjoy the experience of typing on it.

                                                                                  Here is my layout https://configure.ergodox-ez.com/ergodox-ez/layouts/zbOVO/latest/0 It is not universally perfect or even internally consistent, but it is perfect for me. If you use vim, having an easy to trigger layer with vim arrow keys is amazing. The mouse layer is also surprisingly nice.

                                                                                  1. 2

                                                                                    Thanks for this, I was a bit nervous about spending so much money on this keyboard, but you’ve made me feel a lot better about my purchase.

                                                                            2. 1

                                                                              Awesome! Good luck, hard at first, but definitely worth it! Is it orthogonal? (too lazy to lookup on phone)

                                                                              1. 1

                                                                                It’s ortholinear yeah

                                                                              2. 1

                                                                                Exciting! I’m still waiting for my Moonlander to ship (should be between now and 6th of November) and I’m eagerly awaiting it. (My RSI is holding me back as more of my work is about writing plans and proposals now, but pain in my fingers and wrists cause me to dread typing. I’m also unable to play Minecraft with my son, other than at holidays. I hope the Moonlander should help with both.)

                                                                                1. 1

                                                                                  Same here on the split keyboard. I’ve found it pretty tough going due to moving from a standard layout straight to split, tented, vertically offset and a slightly different layout all at once.

                                                                                  I’ve decided to make it a little easier on myself by removing some of the distance between halves, lowering the outwards tilt, and mapping some keys back to where I expect them.

                                                                                  I have previously managed pretty well with two mini Apple keyboards (whose layouts I’m used to) set up as if they’re one split keyboard, with tenting. This makes me think it’s mainly the layout change that’s making it hard to get up to speed.

                                                                                  My usual WPM is 80+, and I’m down to a sorry 13 at the moment. I’m not sure this tells the full story, however, as most of the slowdown is coming from the changed positions of the non-alphanumeric keys and the fact I’m now forced to touch type properly: no cheating (by reaching over to the ‘wrong’ side) possible.

                                                                                  I’m going to keep doing typing tutors until my WPM is back at 60+ and then focus on the punctuation so I can use tools without having to look at a picture to remember where pipe, at, ampersand etc. are!

                                                                                  BTW for anyone thinking of getting a keyboard which is supported by QMK: The software is absolutely brilliant. I was a bit worried about flashing but it was smooth and painless, and the configurator takes only a few minutes to learn (read the docs!) and is really easy to use.

                                                                                  Being able to have the keyboard send out the key codes I want rather than having to rely on software (Karabiner Elements) is also fantastic.

                                                                                1. 8

                                                                                  I find ffsend pretty useful to securely share files from the command line (shameless plug).

                                                                                  1. 7

                                                                                    Isn’t Firefox Send discontinued?

                                                                                    1. 7

                                                                                      Mozilla’s Firefox Send is. I’m hosting my own Send instance for this, and forked Send in an attempt to keep it alive: https://github.com/timvisee/send

                                                                                    2. 5

                                                                                      Here’s another shameless plug, with netdrop you can send encrypted pipes or files inside your local network.

                                                                                    1. 2

                                                                                      I also find Gentoo’s portage super slow. Not talking about compile times here, but just calculating dependencies and stuff to update/install.

                                                                                      1. 3

                                                                                        I found that it improves a lot with more powerful hardware, like SSD vs. spinning platters. What I’d like to see from Portage is some use of caching. e.g. if I run an emerge [...] command, and it takes N minutes before beginning compilation, I would like it if running the exact same emerge command soon after would not take the full N minutes. I’m okay if the cache is not invalidated correctly on occasion. I’m happy if, once in a while, I have to run something manually to invalidate the cache if it means I can get some speed gains most of the time.

                                                                                        1. 2

                                                                                          It always takes multiple minutes for me. On an i7, with a 3GBps SSD. I find that to be long.

                                                                                      1. 15

                                                                                        Finishing my thesis to finally graduate! Need to submit it this Monday.

                                                                                        1. 3

                                                                                          Alright! Good luck, it’s great when it’s over!

                                                                                        1. 4

                                                                                          Actively trying to get better at managing my ADHD. There are projects I know I could do with enough focus and it’s frustrating to not even be able to get started.

                                                                                          To be clear: I can and do focus, but my job and day to day life use up my focus quota every day.

                                                                                          1. 1

                                                                                            That’s awesome. Hope it helps. Good luck!

                                                                                          1. 4

                                                                                            I would love to see a short demo video of this.

                                                                                            1. 5

                                                                                              The app page has small gifs about the app’s functionality.

                                                                                              1. 2

                                                                                                Agreed!

                                                                                              1. 3

                                                                                                I love these interactive websites, here’s his previous one on gears, and here is a complete list.

                                                                                                1. 18

                                                                                                  Email from a self-hosting perspective absolutely is, though. Absolute clusterfsck to try and configure.

                                                                                                  1. 10

                                                                                                    Configuration is one thing. Actually getting email delivered is another. I feel like you’re instantly on Google’s and Microsoft’s blacklist with your little server, marking all your messages as spam. It’s horrendous!

                                                                                                    1. 12

                                                                                                      Email is now a cartel. Old thread about it.

                                                                                                      tl;dr if you really want to die on that hill, start by choosing your VPS provider carefully…

                                                                                                      1. 2

                                                                                                        Damn, my VPS of choice is DigitalOcean and I have to tell people to maybe check their spam folder for my email. Annoying.

                                                                                                        1. 1

                                                                                                          I relay all my email from my VPS through my (personal) FastMail account, which is easy and works well enough. Thus far the volume is still well within my account limits, but if I go over them I’ll probably just use SendMail or whatnot.

                                                                                                          You can probably do the same with gmail or other providers.

                                                                                                      2. 2

                                                                                                        I spent a few hours setting up DKIM and SPF, after which my emails were delivered to gmail addresses (haven’t checked ms, but I’ve heard they’re more lenient) without a hitch. Yes, it’s irksome to have to spend even that amount of time, but it’s not that much work.

                                                                                                        1. 2

                                                                                                          Microsoft often marks its official communications as spam (usually correctly :)) in my Office 365 account… With the cloud and hosts reusing IP addresses all the time the old spam-fighting methods simly do not work anymore (many were bad ideas even back then)

                                                                                                          1. 1

                                                                                                            DMARC can be painful to setup.

                                                                                                            1. 0

                                                                                                              It’s trivial what do you mean

                                                                                                          2. 6

                                                                                                            I don’t think this is related to the article’s content.

                                                                                                            1. 5

                                                                                                              I’m not sure I agree. Services like Mail in a Box and Mailcow make getting started a little simpler. Overall it is complicated, but email is a complicated system. Being complicated doesn’t mean it’s broken though.

                                                                                                              1. 3

                                                                                                                Which part is the most painful?

                                                                                                                1. 3

                                                                                                                  I understand that email hosting used to be appalling and most of it still is but OpenSMTPD is actually really nice to use. I’ve chosen to write email apps over webapps for a couple things, e.g. self hosted instagram where I email photos from my phone to myself.

                                                                                                                  Just need OpenIMAP and OpenSpam and Open Everything Else and we are all good.

                                                                                                                  1. 1

                                                                                                                    Could you go into some more details about your OpenSMTPD based workflow? I’ve been thinking of building apps over email, but would love to hear about others’ usage.

                                                                                                                  2. -2

                                                                                                                    It’s really not that hard.

                                                                                                                  1. 8

                                                                                                                    I feel like half of the .xyz domains hosts malware.

                                                                                                                    1. 2

                                                                                                                      Yeah, .xyz domains are strongly associated with spam; probably because it’s such a cheap domain name. I don’t know if there are spam/SEO penalties against it, but I wouldn’t be surprised. Generally speaking, I wouldn’t really recommend using it for a serious project/product.

                                                                                                                      Also, myproject.xyz sounds weird to me, but perhaps that’s just me.

                                                                                                                      1. 1

                                                                                                                        SEO penalties for it seem unlikely given https://abc.xyz/

                                                                                                                    1. 2

                                                                                                                      Vim, tmux, bash, Linux and the whole set of GNU/Unix commands. Maybe not better, but definitely faster and more efficient.

                                                                                                                      Also, the Rust programming language gave me great insight into deeper/lower level parts of coding.

                                                                                                                      1. 5

                                                                                                                        Now I understand what Microsoft meant with “We <3 Open Source” in their last release article.

                                                                                                                        1. 4

                                                                                                                          Nice writeup. I’ve always heard that Git doesn’t handle files (with names), but handles obiects. How does that relate to this? Are file names just tags to an ‘object’, for which you change the tag on rename? And does committing make git resolve these names to these objects first?

                                                                                                                          1. 11

                                                                                                                            (Simplified) Git has multiple kinds of objects, one is a blob of content, addressed by its hash, another is a tree which is a list of file names associated with a blob’s hash, and yet another is a commit which is a commit message, a tree addressed by its hash, and zero or more parents addressed by their hash.

                                                                                                                            These are all immutable, so you don’t change a tag, you create a new commit with a new tree and whose parent is the “previous” commit, and you make that your active commit (HEAD) which is again just addressing the commit object by its hash.

                                                                                                                            Renames are a function of presentation of the data, if you ask it to look at two trees (do a diff) and one has a file a and the other has a file b and they both point at the same blob (their contents have the same hash), git is going to infer that they were renamed (whether that’s what happened or not).

                                                                                                                            1. 3

                                                                                                                              Oh hey does that mean that git deduplicates its storage of identical files for free? (Obvs not in the working tree, but in the .git directory.) Since they’ll have the same hash, it can just have the same blob referred to from multiple points in a single tree?

                                                                                                                              1. 2

                                                                                                                                Yep.

                                                                                                                            2. 3

                                                                                                                              This utility is quite nice to explore the underlying data structure:

                                                                                                                              $ git ls-tree HEAD
                                                                                                                              <snip>
                                                                                                                              100644 blob 5caf2e89168505c24ad1e3146fd029929f27487a	main.go
                                                                                                                              040000 tree d0357c0f78bab0bd5dbb19f7d805bcb987ce74a6	man
                                                                                                                              040000 tree 1ce4d49aa464dfdfe0314b0937e2a203dacdc96e	nix
                                                                                                                              100644 blob 0959aae462cbec0d6e1cd1d7691f1262350989ee	rc.go
                                                                                                                              <snip>
                                                                                                                              $ git ls-tree HEAD man/
                                                                                                                              100644 blob b5b49633b7fe4cb364b476ad7255575e4e515765	man/direnv-stdlib.1
                                                                                                                              100644 blob 57ff9cb23b73219eeac2317c2d4f52ed0cdbaf59	man/direnv-stdlib.1.md
                                                                                                                              100644 blob b4a2fa2e806593c80dfbf5b0ad325303635ca74a	man/direnv.1
                                                                                                                              100644 blob e180e462681bf41c458c47e85470cd2e882c3899	man/direnv.1.md
                                                                                                                              100644 blob 763d8b9e0383ca9f2ae6d1433aaafbad1753f406	man/direnv.toml.1
                                                                                                                              100644 blob 1487278964fd7d98c1200c01cbd020ab0953647e	man/direnv.toml.1.md
                                                                                                                              

                                                                                                                              see also git cat-file

                                                                                                                              1. 1

                                                                                                                                Git stores a directory as a list of (<name>, <hash>) pairs. The hash of that list is stored in the parent directory (along with the directory name).

                                                                                                                                When you edit app/foo.sh and commit, foo.sh gets a new hash. The listing for app includes this new hash. The root directory entry for app also gets a new hash by the same process.

                                                                                                                              1. 16

                                                                                                                                This allows DirectX usage on Linux. The catch is that it only works on a Windows host. This is for WSL specifically, running in Hyper-V on a Windows host. It basically forwards DirectX calls to the Windows kernel through paravirtualization.

                                                                                                                                1. 2

                                                                                                                                  I’m pretty sure wsl2 doesn’t run on hyper-v anymore.

                                                                                                                                  Edit: correction, looks like it sortof is. SO nvm

                                                                                                                                  1. 2

                                                                                                                                    The article says:

                                                                                                                                    The projected abstraction of the GPU follows closely the WDDM GPU abstraction model, allowing API and drivers built against that abstraction to be easily ported for use in a Linux environment.

                                                                                                                                    I think that means that it would be easier for GPU manufacturers to port their existing Windows drivers to support this new userspace API in Linux, than to port their existing Windows drivers to support existing Linux userspace APIs like the Direct Rendering Infrastructure. Linux already has a slight splintering of GPU APIs, with most drivers built on DRI, Intel drivers built on DRI with a different memory allocation scheme (DRI-GEM?), and NVidia doing completely their own thing.

                                                                                                                                    If Microsoft contributes a Mesa backend built on this WDDM API, and GPU manufacturers all publish drivers for it (unlike the bickering around Linux APIs, they all support Windows APIs happily enough), that would go a long way towards making graphics on Linux Just Work.

                                                                                                                                    On the other hand, it would mean ceding control of a huge part of the Linux user experience to closed-source, proprietary companies that traditionally have not had users’ long-term interests at heart.