1. 1

    I was surprised to not see Lerna or yarn workspaces mentioned at all.

    1. 1

      There’s also the option to make a superset of typed JSON, like Amazon Ion.

      https://amzn.github.io/ion-docs/guides/why.html

      But the author seems to be concerned with human readability, while Ion is aimed at machines.

      1. 9

        This is the second Facebook project (after Jest) to announce switching from Flow to TypeScript in the past week or two. 🤔

        1. 3

          The 2nd we know of.

          1. 2

            Do you happen to have a link to the other announcement handy? We use Flow at $WORK and today I had a great time banging my head against the wall because it was both not happy with me adding a custom matcher in Jest so that internal DateRange type tests would produce some better failing output and also had to be instructed to not freak out about jsverify so that the aforementioned tests could be property-based.

            And documentation for Flow built-in types like $ReadOnlyArray simply not existing is its own level of awfulness and.. if a bunch of high profile projects are missing maybe I can get leverage to push for Typescript internally, too.

            1. 2

              I suppose that would be Jest? (edit: sorry, I misread the OP, it is Jest) (Accepted) Proposal thread here: https://github.com/facebook/jest/pull/7554

              1. 1

                Got it, thanks! Somehow wasn’t able to find this through google

          1. 3

            It’s odd to not see Fish mentioned at all. I loved Fish, but couldn’t use it for day-to-day work because of the lack of POSIX compatibility.

            1. 2

              My experience too. The omission rankles a little harder, since the title seems to be a reference: Friendly Interactive SHell.

              1. 2

                It’s in the man page (See DESCRIPTION).

                https://github.com/zsh-users/fizsh/blob/master/man/fizsh.pod

                1. 1

                  Ah, thanks!

              1. 2

                What messengers does everyone else use? I’ve got actually a good amount of my contacts using Signal, and I hesitate to make the attempt at migrating yet again, but if the benefits are significant enough I might be able to be convinced.

                1. 10

                  You should consider submitting that as an Ask Lobsters. It probably deserves its own thread. Ask’s on Lobsters are usually pretty interesting with lots of good ideas and setups.

                  1. 2

                    Fully agree (unless we can politely ask moderators to split this into its own thread, if that’s actually a thing)

                      1. 1

                        Sweet!

                    1. 8

                      IRC is still one of my main messengers. weechat makes it so nice.

                      Other than that, I have quite a few friends and family using telegram, which is a great client with questionable crypto.

                      1. 1

                        weechat is a bit annoying to use on mobile. I got a proper weechat relay setup and use the official weechat Android app. However, it really likes using a ton of battery. Do you experience the same problem?

                        1. 2

                          Are you referring to weechat-android? If so, I use the same setup.

                          I leave it on all the time and haven’t noticed any significant battery drain. According to the battery stats, it’s about 1% of today’s usage. Compare that to syncthing, which counts for 9%.

                          1. 1

                            Ironically I found XMPP to be the best way (for me) to use mobile IRC. Thanks to biboumi, a very reasonable bridge. And you can also connect biboumi to your Irssi or WeeChat IRC relay

                        2. 5

                          We shouldn’t dismiss XMPP yet. It comes pretty good off in that matrix above there, and with Conversations and ChatSecure has good mobile support. Some criticise it’s distributed nature, which I believe to be a strength. And the chaos in the implemented features often cited from Matrix side can be seen in another matrix wr.t the publicly operated servers thanks to the “XMPP Compliance Tester”

                          • Another plus is that you do not need to share your phone numbers or upload your phone book
                          1. 3

                            I’ve been looking into XMPP in response to both this post and Librem’s desire to support it in their phone. I was quite disappointed that XEP-0313 isn’t supported well on Desktop.

                            Mobile is doing fantastic, but it’s hard for me to get excited when I don’t feel like there’s a large range of clients. Even for Windows to chat with my SO.

                            1. 2

                              You may be interested in movim.eu https://github.com/movim/moxl#xmpp-support

                              or Dino https://dino.im/

                              Gajim is also ok.

                              Edit: may also be interesting: https://conversejs.org/#features

                              Personally I have not enabled MAM on my server at all, Carbon copies seems enough (I rarely need a coherent history on all devices). Another thing you can do is open a “group chat”, which has it’s own way to record the most recent history.

                              If you are using terminal based clients, you may find they are running on a server 24/7 anyway and thus do not need explicit MAM either

                              1. 1

                                movim is interesting, but looked like it was a social network rather than an IM software? Maybe I’ve misunderstood though. Dino looks great, except that it hasn’t had a release yet. Gajim doesn’t have a UI that I think my partner would like, saying that, I don’t want it to change, because I quite like it.

                                Converse.js is rather neat, especially inverse. That would probably provide a good experience for desktop use for my partner.

                                I personally could get by with the carbon copy stuff, but my partner could not. I have to convince her that XMPP is superior to other things. Being able to randomly open/close the desktop application is part of her workflow, even where it may not be part of mine.

                            2. 1

                              Check out the note on XMPP towards the end of this post https://blog.torproject.org/sunsetting-tor-messenger

                            3. 3

                              I went from irc in the old days (never a heavy user) to msn (around 2006), Skype (from 2004 until they were bought by Microsoft), Hangouts (my mind is a bit fuzzy), WhatsApp (early adopter and huge fan until Facebook bought it and made it “free”), Telegram (again, huge fan until I realized there are actual problems with the crypto, still use it).

                              Considering transitioning to Signal or Matrix but I’ll think twice about it before I migrate my family to a new messenger service. They are really stubborn, like more stubborn than I am :-P

                            1. 2

                              There used to be a MacOS-specific section on EFF’s site, but this will do for now: https://ssd.eff.org/en/searchapi?keys=macos

                              1. 3

                                I go to a local shared office space (aka “co-working” space). I like it. Gives me more of a structured routine and more natural light than my basement. My office mates are also in tech so they’re respectful and quiet.

                                1. 1

                                  Do you have to pay monthly for access to the space? I looked into some in my area, but most of them were decently expensive last I checked.

                                  1. 2

                                    Yes, there is a monthly fee depending upon which tier you select. There is a “floating desk” where you choose whatever is open, the dedicated desk, which I chose, and the private office. And since I’m commuting to a city area, there is also a cost for parking. However, the total amount is worth it if you can write it off on your taxes or your company is gracious enough to cover it for you.

                                  1. 1

                                    Open plan offices aren’t going away as long as they’re cheap and the company can still recruit employees to work in them. I don’t see a way to make real estate cheap unless you move your company to a cheap area or promote remote work. As long as employees are willing to work in such spaces, companies have little incentive to change.

                                    1. 1

                                      Data like this appearing in abundance, and is showing a direct connection to cost increases. That sounds like incentive to me.

                                    1. 1

                                      We cache the compiled CSS by placing it in localStorage

                                      This is exactly what service workers are for, though.

                                      1. 2

                                        OP: Do you know the history of this project? First I’ve heard of it.

                                        1. 8

                                          From the Wikipedia

                                          Waterfox is an open-source 64-bit web browser, with an aim to be speedy, ethical, and maintain support for legacy extensions dropped by Firefox, from which it is forked on 27 March 2011.

                                          Waterfox differs from Firefox in a number of ways by:

                                          • Disabling Encrypted Media Extensions (EME)
                                          • Disabling Web Runtime
                                          • Removing Adobe DRM
                                          • Removing Pocket
                                          • Removing Telemetry
                                          • Removing data collection
                                          • Removing startup profiling
                                          • Allowing running of all 64-bit NPAPI plugins
                                          • Allowing running of unsigned extensions
                                          • Removing of Sponsored Tiles on New Tab Page
                                          • Addition of locale selector in about:preferences > General
                                          • Defaulting to Bing as the search engine instead of Ecosia, Google or Yahoo![7]

                                          IMHO it should default to DuckDuckGo search instead of Bing.

                                          1. 5

                                            I am okay with Bing default if it funds Waterfox development. I can easily change the default search engine myself, but maintaining those features require real resource.

                                            1. 1

                                              Wow, I had no idea! Thanks for the detailed response!

                                              1. 1

                                                Welcome ;)

                                          1. 2

                                            “JavaScript code” is too broad. Can you provide some more concrete examples?

                                            1. 1

                                              Would it help to say that I’m interested in arbitrary, but relatively small, amounts of code? Refactoring within functions, for example.

                                              I can imagine something like (contrived, but sadly this kind of thing isn’t out of the question in this codebase)

                                              function originalFunction(listOfInts1, listOfInts2) {
                                               this.something = listOfStrings.map(function(value) {
                                                  return value + 1;
                                               }
                                               this.something = listOfInts2;
                                              }
                                              
                                              function refactored(listOfInts2) {
                                                this.something = listOfInts2;
                                              }
                                              

                                              And a tool which can tell me that this code is equivalent. But now that I type this out, I can see how it would be pretty hard. In this case it’s obvious to me, because I know how map works, and I can see the inner function code is pure, but how could such a tool know that listOfStrings.map, or the function that is provided to map, didn’t have some kind of side-effect that is no longer happening.

                                              1. 2

                                                Indeed, this would be difficult if not impossible, however, perhaps you should try this from another angle. A tool like ESLint could help by flagging or not flagging each piece of code. If you put the “new” code next to the old, and ESLint flags one, there’s a good chance they’re not doing the same thing. You mentioned “side-effects”, so maybe a rule set like this would be of use:

                                                https://github.com/jfmengels/eslint-plugin-fp

                                                In any case, the only true way to test code like this is to write unit tests. Karma, Ava, Jest: these can help. Check out egghead.io or similar sites to help there.

                                                Good luck!

                                            1. 1

                                              Hm. I can only access this site when my VPN is off. Not cool.

                                                1. 1

                                                  Do not try to load this on a mobile device.

                                                  1. 1

                                                    Why wouldn’t you use a VPN at home? You trust your ISP?

                                                    1. 4

                                                      I am not the author, but you need to trust some network, don’t you? Because who runs your VPN? And if you do it yourself, where does it exit?

                                                      By using a solution like the author you can at least establish a trusted LAN or layer 2 network by using your own router behind your ISPs up-link. You’d need to carry a portable router with you to do the same at a coffee shop or so.

                                                    1. 2

                                                      That read like an IBM ad and didn’t actually address why devs shouldn’t have to a complicated deploy process.

                                                      1. 2

                                                        Because it is most likely an ad in disguise.

                                                        1. 3

                                                          I love how it claims to be based on “reason” and still resorts to “bs” to get things done. Political commentary as code.

                                                          1. 3

                                                            Reason is a syntax for OCaml. BuckleScript is the compiled bridge to JS.

                                                            1. 1

                                                              Yes. I just like the way the names play out.

                                                          1. 3

                                                            Wow, this is impressive. Super fast, too. Excellent concept and execution.

                                                            1. 1

                                                              Thank you. ?

                                                              1. 1

                                                                Not sure why this is a question.