1. 15

    This is by far the best “unknown-vim-stuff” post I’ve read, with the most actual things I didn’t know that will be actually practically useful pretty much straightaway. Thanks!

    1. 16

      I don’t understand why people are surprised by this. I’m not saying I like it, but I don’t know what else people expect.

      1. 9

        who said anyone is surprised by it? people can be upset without being surprised.

        1. 13

          Even now, I’m sure some people will reject the claim that Google is first and foremost, and advertising company.

        1. 1

          Agree, Redux “just works”, and just takes a bunch of middle-of-project-scaling pain out if you just use it. The other thing that most often brings me back to Redux is redux-saga middleware for handling async tasks and sequence composition in a really nice, straightforward way using generators. Not all projects needs sagas, and I’ve found stent.js to be a really nice simple and FSM-based Redux replacement in those that don’t, but for ones that do, sagas are the mutt’s nuts.

          1. 2

            Interesting idea, but light on technical details. As far as I can tell it’s a VST host on top of an RTOS. How can I try it out?

            1. 1

              Yeah good point - I read it quite quickly on mobile before posting it earlier, but looking in more detail on a computer it seems like it’s closed-source/commercial only. There’s a ‘tech FAQ’ on the homepage, and also a bunch of tech articles on the site, but it’s not super detailed. Interesting though for sure.

              1. 1

                Ok, I poked around looking for source and licenses. I found the following:

                A fork of something

                […] we provide several tools to aid this process, including a fork of the popular JUCE framework […]

                https://github.com/stez-mind/JUCE/tree/mind/headless_plugin_client (I don’t see a lot of commits in the fork but maybe I don’t know how github’s UI works.)

                One of their employees is on Github

                https://github.com/stez-mind

                I couldn’t find anything else in the time allotted.

            1. 2

              I’ve tried it a few times at milestone releases. I like the model and Dart seems cool but what’s always killed it for me is the fact that you have to write different code using different libraries if you want different OS looks, ie Cupertino for iOS and MD for Android. If you make your own UI without any standard widgets, fine; if you want basic OS-styled components, you either have one or the other or you write per-platform code. And unless I’ve misunderstood, if you use Cupertino, it’s not just hooking out into iOS/UIKit etc, it’s implementing a lookalike, which is subject to getting out of date. Maybe this is less the case since I last looked into it, in which case I’d be happy to do so again because it seems like Flutter has less of the churn and breaking changes you find in RN, but for me the point of a cross-platform toolkit is literally that you don’t have to write per-platform code.

              1. 2

                You’re not wrong here, that was a bummer in the past for sure. I believe they’re going to make platform dependent widget switches more automatic in the next release, but I can’t quite remember the details. I can find it if you’re interested.

                1. 1

                  Sure, I’d be interested to read about that, if you have a minute. Thanks!

                  1. 2

                    It was mentioned in one of the talks and I/O and I can’t figure out which one now. From what I can tell it will be done via adaptive() constructors, for example: https://docs.flutter.io/flutter/material/Switch/Switch.adaptive.html

                    There are a few Flutter team members lurking around here though, maybe they can correct me if I’ve got this wrong.

                    1. 1

                      Thanks Matt!

              1. 7

                We don’t know! There are a couple of barriers to open-sourcing this work […] This is not off the table - but no immediate plans either. Again, time will tell.

                Oi vey. For a game that relies so much on unpaid software development labor by its own users, they could at least give a little back to the community. I’m almost ashamed that Roblox game-making was a path into programming for me as a kid; it’s a weird microcosm of the worst of “open source”.

                1. 3

                  I’m almost ashamed that Roblox game-making was a path into programming for me as a kid; it’s a weird microcosm of the worst of “open source”.

                  I think game modding in general seems to be a vortex of that. A single thread, some stickies (often reserved) at the top, and throwing tarballs over a fence. I was relieved when I saw a mod using git mostly properly for once!

                  1. 2

                    This is really interesting to me, as someone who spends most of my video-game-playing time in Kerbal Space Program. Everyone uses GitHub as project management, most things are properly licensed, and we even have a nice package manager.

                    What I was really referring to, though, was that they foster a culture of people giving them stuff for free and then never contributing anything back.

                  2. 1

                    Yes, I agree completely - and I don’t see the excuse given of ‘wanting to protect our customer/developers from decompilers’ as being of much substance either, given that the point of having all of this be open-source in the first place is that the customer/developers would be able to see where the weaknesses are, also, and make that decision for themselves (or: come up with contributions to improve the scene).

                    And, on that subject - contributing to improve - I totally fail to see why they don’t just grave-dig LuaJIT’s efforts, and add some commercial/open-source energy to the project - especially since they seem to want to take some of the other gems of the LuaJIT community for their own.

                    This all just reeks of grand-standing and bike-shedding. But I say that as a grumpy Lua developer where, because Lua is just so fucking great, such endeavours are the norm.

                    1. 1

                      Not sure I’m super clear on the LuaJIT-being-dead thing, just the other day I was reading docs for the OpenResty fork, which has commits from only 2 weeks ago, and the README mentions syncing with upstream. Has it died super-recently? Or is more that it’s not had any changes for a couple years?

                      1. 2

                        I think its more like a NIH syndrome conclusion - basically “I don’t see enough activity recently to satisfy my curiosity as to the state of this software, and I’m too lazy to evaluate the condition on the basis of source reading - so if nobody is showing up lately to fix things, ‘it must be abandoned’” ..

                        1. 1

                          Makes sense. Even if it’s just “nothing needs fixing right now” :-)

                  1. 3

                    Am I the only one to find that the code samples are included as pictures instead of actual code in the README? The claims are big, but it’s not clear how/if they are achieved.

                    1. 6

                      Replying to myself here, it seems like the author has quite some experience: “My background: I have 30+ years of experience architecting and writing performance critical semi-realtime code for embedded systems, big desktop software and mobile apps. I’m used to thinking about 1MLOC architectures and instruction pipelining rules at the same time. I’ve mostly used C/C++ that I have a love-hate relationship with. I founded and was CTO for 20 years at this company: https://www.propellerheads.com/” (from the Reddit thread), so there’s probably some substance.

                      1. 6

                        Propellerheads have been making some of the tightest, neatest music software for a long time, often doing things in an interestingly new way and performing extremely fast on older and less powerful hardware. I remember learning ReCycle on an ancient 486(?) in like 1995/6 and having my brain blown by the fact that this thing had just saved me like a day of sample editing in pretty much 2 steps, and allowed me to squirt all the audio chunks & mapped MIDI file to a range of hardware samplers fast via SCSI. Worked identically and reliably on shitty old Macs at the same time. Reason came along a little while later and revolutionised bedroom music production (and hence the whole dance industry) by reproducing swathes of studio gear in a totally new but v intuitive way, cheaply and again working well cross-platform on crap hardware. So yeah. I reckon there’s some serious know-how in there.

                        1. 2

                          Yes, me too! Rebirth was incredible, and it was one of the first full-software synth out there. Music software is very demanding, it’s soft real-time, so I’m sure the author has a lot of field experience in getting out the most of the CPUs. Too bad only the Atari Falcon had a fully programmable DSP standard in those days, as otherwise I bet we’d had seem what we’re now seeing with GPUs earlier.

                      2. 2

                        Yeah, Im not buying the claims till I see it done. It’s not just C or C++ language that gives them their performance: it’s decades of work put into optimizing their compilers by boatloads of people. Also, CPU suppliers optimizing their chips for performance-focused workloads.

                        So, I ain’t buying that claim from anybody. Much less a one person project.

                        1. 4

                          The one thing that convinced me in the Reddit comment is how to optimize the data structure layout for modern CPUs (e.g “Encode a vector of struct X as two vectors: one with the hot members of X, one with the cold members. Without code changes. This new data structure would be used in some context but not all. AOS-SOA optimisation.”). It’s well known that the current languages and compilers don’t work well with what would be required by todays CPU architecture, let alone GPUs. Jai is one of the high-performance language that looks into that, but from what I’m gathering Floyd’s compiler is doing whole-program optimization, so maybe we’ll get the same type of breakthrough performance that Stalin brought to Scheme.

                      1. 6

                        This looks great! Are you planning to implement the usual OTP stuff (Supervisor, GenServer, GenStatem) natively too?

                        1. 4

                          In order to get the ball rolling I may create some type-unsafe bindings to GenServer etc using an opaque Pid type, though longer term I would like to have type safe bindings.

                          This is quite difficult to achieve while using the same patterns and keeping compatibility with OTP, so more research needs to be done here. For now the focus is on the synchronous language and tooling, so people can start writing programs.

                          1. 2

                            Hiya, seems really interesting! How does this work if you want to import an existing library that runs a supervision tree? How do you interact with that? What happens with messages? And how do you code for concurrency? Not sure from this comment whether the Pid type exists yet. Had a glance through gleam.run and not found anything there but I could be missing it.

                            1. 3

                              There are no official bindings to any of OTP’s libraries yet, though the FFI can be used to define them. Exactly how Gleam’s message passing will work is a subject of ongoing research and still very much yet to be decided.

                              In my applications I have been writing the supervisor code in Erlang and the genservers and business logic in Gleam.

                              1. 3

                                Thanks! OK, I think I get it, there’s no (e.g.) receive or ! yet, so does that mean that your Gleam module implements the business logic as pure functions (I guess calling out to erlang libraries?), exports them as the gen_server callbacks, & OTP routes messages in via e.g. handle_info/2? Trying to work out in my head how complete a gen_server could be without receiving messages - especially interesting as it’s making me think deeper into how much all the behaviours actually handle for us behind the scenes(!) :-)

                                1. 2

                                  Genserver interfaces are pure and functional, there’s no need to introduce a concept of processes in order to construct one so the behaviour module can be implemented with Gleam today. The trouble lies with the caller process and the gen_server module itself (if we were to re-implement it) as they need to know about processes in order to safely send messages to one, etc.

                                  Currently I’m using an opaque Pid type in my projects and relying on the programmer to ensure the correct messages go to the correct process, as is the case in Erlang or Elixir. I would like to have a type safe solution here, but we’re not there yet sadly.

                                  Here’s a (largely unsafe) example of a genserver today in Gleam: https://github.com/gleam-lang/example-url-shortener/blob/d10ad7cac591803431be76dc8335be06668a1c36/src/tiny_db.gleam

                                  It’s internally consistent and type checked, but there’s certainly places in which it could be improved.

                                  1. 1

                                    Got it. Really interesting stuff, thanks! Like the look of gleam too. Nice one.

                        1. 2

                          Starting on a new project with a React Native app talking to a large-screen graphical app (which someone else will write) in C++. Trying out using stent as a redux+FSM replacement; in a previous project I wrote a bunch of glue to tie a state machine library in with redux, which worked well enough but was a bit unwieldy, whereas this starts with the fsm from the ground up. Seems pretty neat so far. Doesn’t let you do all the very cool “fork”/“background” stuff that redux-saga does, but you can use generator functions as state transitions so you can do sync-looking(/feeling) async stuff in there very easily.

                          1. 5

                            Edit: I made some smartass comment here that wasn’t needed, so I cut it out. But still … this hardly seems like news.

                            1. 9

                              It might not be news, but something that bears repeating. Never underestimate that inexperienced people might want to seek advice here as well.

                              1. 1

                                Good point :-)

                              2. 4

                                Good thing this isn’t a news site :)

                              1. 3

                                Quite ironic given that Safari is sold as a privacy-preserving browser

                                https://webkit.org/blog/8718/new-webkit-features-in-safari-12-1/ -> https://webkit.org/blog/8613/intelligent-tracking-prevention-2-1/

                                Although to be fair, Apple’s approach is to make decisions for all of their users. If you want a browser with configurability, Firefox is the Linux of the browsers.

                                1. 4

                                  I use Safari with exclusively private windows full-time, for all browsing on iOS and macOS, because it’s the only browser whose private/incognito mode isolates tabs from each other. Unless I’ve missed something (very possible, but I’ve tested quite a lot), literally every window and tab is effectively a new client. I’d love to see that get tracked from session to by a site. Of course if they’re deliberately weakening tracking prevention in standard windows in the software itself that’s a bad sign, but for me, using Safari with a decent ad-blocker (I use Better) and always using private windows does mean I have to log in to things and say “yes cookies whatever” all the damn time, but it makes for a pretty clean and seemingly non-tracked web experience. Way more so than Chrome or Firefox.

                                  1. 1

                                    It’s unfortunate that Firefox is so slow on macOS that it takes the fun out of the web-browsing experience because it has a lot of awesome features like containers.

                                  1. 7

                                    I would dearly love to flag or downvote this article for just being terribly, terribly bad, but there doesn’t seem to be an option for that. And then I see that 12 people have actually upvoted it. What on earth.

                                    1. 2

                                      Yeah I was looking at the flag reasons, its not spam, its not technically off topic. Its just total fluff/garbage.

                                      1. 3

                                        spam is how I usually flag this sort of stuff, because it’s low-quality meat.

                                      2. 1

                                        It’s the kind of bad programmers like. It’s written to be bad. I spent the last week writing a very complicated post on a critique of the narrative around the programmer job in the west and I had to kill it because it was going nowhere. I had the need to get some easy sweet up votes and wrote this because I knew it’s the kind of cheap humour programmers like.

                                        Also I believe the expected behavior on lobste.rs is that if you disagree with the opinion of the majority of the voters is just to ignore the post. Down voting is not about the quality of the content.

                                        1. 4

                                          The moment lobsters becomes a site for cheap programmer humour is the moment the website dies.

                                      1. 2

                                        This is wonderful! I’ve never managed to find a tiling WM for MacOS that I really felt at home with. Been using chunkwm for a few hours now and really enjoying it, purely using the out-of-the-box settings. Can imagine digging in to tweak it might address a few things nicely, but none of the things have bugged me enough to think twice about it yet. Really nice stuff. Thanks!

                                        1. 2

                                          I’m in Barcelona working on the final touches to a product demo installation at a telecoms trade show. I’ve written an erlang app that talks to a bunch of animated hardware mechanisms, synchronizing them (well, their controllers) with web apps posing as native UIs on a range of devices positioned in a series of animated dioramas. So e.g. for one gadget that does things at different times of day, we have a lighting rig and a video screen showing the arc of a day, synced up really tightly with what’s happening on the product’s screen. Basically a series of state machine processes mediating & ensuring correct conversations between browsers and physical machinery via websockets, eventsource, UDP and serial-over-USB. Really nice project, hoping to wangle more of this kind of work with clients who’ll let me use erlang.

                                          1. 4

                                            Umm:

                                            the technology remains in its infancy, but it does begin to raise ethical questions about the use of mind control on another species.

                                            No SHIT. Also, uh, other humans, when they work out how do that too.

                                            In the study published on Monday, the team notes that all experimental protocols were approved by the Ethics Committee at the university.

                                            Oh! Well, I guess that’s OK then … What? No?

                                            1. 8

                                              I’m sorry, but I don’t understand the need for the SATA and VGA connections (and four audio ports; because a sysadmin is going to have such heavy, sophisticated needs in the sound department 😒). You have to carry around cables for the things anyway, so I’m not sure what the advantage of having dedicated ports and carrying around the cables is over having more USB-C ports and carrying around adapters. And the SATA and VGA ports take up so much surface area on the side and so much depth area inside the case that the whole thing is kind of a PITA (to the point where there are skeptics on the site surrounding whether the ports’ layout is actually possible).

                                              And I’m speaking as someone who would LOVE the peripheral-mode on my laptop so I can use it as the keyboard and monitor for a rack server temporarily. That shouldn’t be hard with just USB-C ports on the device itself, though.

                                              Personally, I’d rather have a laptop with twenty USB-C ports and appropriate adapter-cables in the box. And a much bigger screen, but that’s because my eyesight sucks.

                                              1. 3

                                                Interesting how much this is down to personal taste. I assumed without even thinking about it that literally nobody apart from Apple accountants and designers liked the trend of forcing customers to buy and carry adaptors around, so as to streamline their manufacturing processes/slash their costs/increase their margins even further, as well as progress ever faster to the design nirvana of total simplicity (i.e. there’s nothing there).

                                                Personally I really dislike it. It’s the main reason I’m still with my 2013 Macbook Pro, even more than the daft keyboards and missing escape keys etc. Setting aside the extra cost (on top of the fact that the computer price never seems to go down even though they stripped out all those devices in favour of just a USB bus), having to use more adaptors is just more baggage and more stuff, with more scope to go wrong and more expensive to replace, than just cables. It reminds me of computer music days with loads of outboard - I’d often avoid buying things with wall-wart power adaptors because why not just give me a kettle cable like every other piece of kit does?

                                                So on a computer, yep, I want proper display outputs, proper ethernet, SD card, basic audio I/O and USB, at a minimum. Anything else is just making more hassle and more time & financial cost for me. Apple did it pretty much perfectly on the MBP with HDMI & Thunderbolt; subsequent iterations seem to be just to keep the unit-shift churn going, and all the other companies follow suit, partly because Apple designs are of course beautiful, and partly because “wait, you mean we can get away without all those expensive components too? SWEET”.

                                                1. 2

                                                  I was specifically talking about VGA, SATA, and the audio ports. You have to carry the VGA cable anyway, since you’re not leaving the servers hooked up to monitors. You might as well just screw the puck to one end and leave it there. It’s one less end where I have to mess with those stupid twist-things. It’s the same deal with SATA; unless you plan to dig the other end of the cable out of the machine’s motherboard, you want to carry around a spare, which you can again just leave the adapter attached to. And as for audio… give me one system administrator use case for line-in.

                                                  Yeah, I would like the SD card slot. Just sticking the card into your laptop is obviously better than carrying around a reader. I can also appreciate Ethernet in a data center setting, since you probably pull the plug off of one non-USB-C device and stick it into your machine, and Ethernet plugs aren’t enormous.

                                                  And USB-A and headphones tend to have the cable baked into the peripheral itself, so it’s useful to accept those directly. Now that I think about it, amend my suggestion to: five USB-C, five USB-A, an SD card reader, a headphone jack, and Ethernet. And please don’t stick all of the A’s or C’s on one side.

                                                  1. 1

                                                    I’m fully down with that amendment :-)

                                                2. 1

                                                  Dongles mean you need to plan ahead. Accepting any wires means the people you are helping probably already have the needed cable

                                                1. 5

                                                  I’d be interested to see a side-by-side comparison of kitty to alacritty. In particular, I’ve been using alacritty at work for a while and while it’s barebones at the moment, it’s exceptionally fast (which is probably my core feature for terminal emulators). That said, kitty looks like a fine emulator.

                                                  1. 6

                                                    Honest question: what need do you have for a fast terminal emulator?

                                                    1. 8

                                                      I have a minor obsession with input latency and scroll jank. It seems to creep up everywhere and is hard to stamp out (Sublime Text is a shining counterexample). I noticed a bit of weird input latency issues when using Terminal.app (purely anecdotal), and haven’t seen the same thing since using alacritty. So that’s the need I have for a fast emulator, it enables a smooth input and output experience.

                                                      1. 4

                                                        I am sensitive to the same.

                                                        This is what kept me on Sublime Text for years, despite open source alternatives (Atom, VS Code and friends). I gave them all at least a week, but in the end the minor latency hiccups were a major distraction. A friend with similar sensitivity has told me that VS Code has gotten better lately, I would give it another go if I weren’t transitioning to Emacs instead.

                                                        I sometimes use the Gmail web client and, for some period of time, I would experience an odd buffering of my keystrokes and it would sometimes completely derail my train of thought. It’s the digital equivalent of a painful muscle spasm. Sometimes you ignore it and move on, but sometimes you stop and think “Did I do something wrong here? Is there something more generally broken, and I should fear or investigate it?”

                                                        1. 2

                                                          Web-based applications are particularly bad, because often they don’t just buffer, but completely reorder my keystrokes. So I can’t just keep typing and wait for the page to catch up; I have to stop, otherwise I’m going to have to do an edit anyway.

                                                      2. 4

                                                        I have to admit, I thought for certain this was going to be Yet Another JavaScript Terminal but it turns out it’s written in Python. Interesting.

                                                        Anyway I would have a hard time believing it’s faster than xfce4-terminal, xterm, or rxvt. It’s been a long time since I last benchmarked terminal emulators, maybe I smell a weekend project coming on.

                                                        1. 7

                                                          kitty is written is about half C, half Python, Alacritty is written in Rust.

                                                          There were some benchmarks done for the recent Alacritty release that added scrollback, which include kitty, urxvt, termite, and st. https://jwilm.io/blog/alacritty-lands-scrollback/#benchmarks

                                                          1. 2

                                                            I just did a few rough-and-ready benchmarks on my system. Compared to my daily driver (xfce4-terminal), kitty is a little under twice as fast, alacritty and rxvt are about three times as fast. If raw speed was my only concern, I would probably reach for rxvt-unicode since it’s a more mature project.

                                                            Alacritty is too bare-bones for me but I could be sold on kitty if I took the time to make it work/behave like xfce4-terminal.

                                                            1. 1

                                                              I like xfce4-terminal, but it renders fonts completely wrong for me. It’s most noticeable when I run tmux and the solid lines are drawn with dashes. If I pick a font where the lines are solid, then certain letters look off. It’s a shame, because other vte-based terminals (e.g. gnome-terminal) tend to be much slower.

                                                        2. 2

                                                          For me it’s the simple stuff that gets annoying when it’s slow. Tailing high-volume logs. less-ing/cat-ing large files. Long scrollbacks. Makes a difference to my day by just not being slow.

                                                          1. 2

                                                            I don’t care that much about the speed it takes to cat a big file, but low latency is very nice and kitty is quite good at that. I cannot use libvte terminals anymore, they just seem so sluggish.

                                                            1. 2

                                                              For one thing, my workflow involves cutting and pasting large blocks of text. If the terminal emulator can’t keep up, blocks of text can come through out of order etc, which can be a bad time for everyone involved.

                                                            2. 3

                                                              I’m on macOS.

                                                              I used alacritty for a while, then switched to kitty as I’d get these long page redraws when switching tmux windows—so kitty is at least better for me in that regard. Both have similar ease of configuration. I use tmux within both, so I don’t use kitty’s scrolling or tabs. The way I was using them, they were more or less the same.

                                                              I’m going to try alacritty again to see if it’s improved. I’d honestly use the default Terminal app if I could easily provide custom shortcuts (I bind keys to switching tmux panes, etc).

                                                              1. 4

                                                                I came back to Alacritty on MacOS just the other day after trying it last maybe 6 months ago and finding it “not ready” in my head. It’s been significantly updated, there’s a DMG installer (and it’s in brew), a lot more polished overall and it works really well and really fast. No redraws in tmux switches. Weirded redraw artifiact while resizing main window, but snaps to fixed immediately you stop, and doesn’t bother me much. Using it as a full-time Terminal replacement right now, liking it so far, will see how it goes!

                                                                1. 1

                                                                  Good to know! I’ve installed it via brew now and double-checked my old config. My font (as in, not the default Menlo. I’m using a patched Roboto Mono) looks a bit too bold, so just gotta figure out what’s wrong there.

                                                                  1. 2

                                                                    They’ve updated config files with additional info about aliasing and rendering fonts on Mac. So take a look at that if you are using your old config. It’s not a bad idea to start from scratch.

                                                                    1. 1

                                                                      Thanks for the tip! I did start from scratch and moved over changes bit by bit, but I’ll have to check the new macOS specific lines.

                                                                2. 3

                                                                  Cool, thanks for your input! I also use tmux, and I haven’t seen anything like what you described (I also don’t really use tmux panes, only tabs). I know there has been a longstanding vim + tmux + osx bug as well, but I haven’t used vim proper in a while.

                                                                  1. 2

                                                                    I think that’s my exact problem (turns out I’m even subscribed to the issue haha). I use neovim so I think it is/was applicable to both

                                                                3. 1

                                                                  do any of those really measure up when benchmarked.

                                                                  I remember doing some writing to stdout and it alacritty turned out to be slower than say gnome-terminal or whatever.

                                                                  Might’ve been that there was a bug with my intel graphics card though, don’t remember to well.

                                                                1. 1

                                                                  I normally run MacOS, and have done for years. Just this week I had to install Ubuntu on a boot disk for a project. I was pleasantly surprised by how much more polished it’s become since I last tried it, but I haven’t been able to find an email client which is within a tenth of the usability or polish of MacOS Mail.app, even though I know many people dislike that pretty hard. I end up using alpine for my own IMAP account and the gmail web client for gmail accounts, which are both OK (in fact I really like alpine), but it’s just not as coherent or consistent and I’d really like a decent GUI mail client with a UI that doesn’t feel like it was written in the ’90s against some bizarre custom toolkit. For me this is the main stumbling block.

                                                                  On the flipside alacritty is fantastic on Ubuntu and with tmux inside it it feels really fast and stable. (Not that Terminal in MacOS isn’t stable, but subjectively this seems snappier somehow.) Also I have fairly heavy-duty i3wm envy so I’ll try to find time to give that a bash in Ubuntu. (Though I wonder if tmux + i3 would necessarily lead to some kind of recursive rabbit-window.)..

                                                                  1. 17

                                                                    I’m planning to post an introduction to the type system/tutorial on how to read the type signatures of Ur/Web on monday or so, so I’m posting this here now in hopes of gathering some interest in the language.

                                                                    1. 2

                                                                      I’ve been interested for a while but have given up a lot sooner than you have based on the same problems you encountered, which are not insignificant. I’d be glad to read anything you’d like to post about Ur/Web that made it slightly more accessible. Thanks!

                                                                    1. 1

                                                                      MacOS/iOS mail.app; Alpine; occasionally mutt. Recently gave up trying to work with Thunderbird, it does most things fine but there’s just a few key things that really annoyed me about it, mostly glitchy on imap connection management and the text formatting stuff is not good