1. 14

    Thanks, I feel like a dick, now.

    On a serious note, that hit me right in the feels. I wouldn’t go as far as saying that I am overconfident, but I’m definitely a loudmouth, and tend to argue to exhaustion when I think I’m right.

    I’ve been working for a while in recognizing that I might be wrong and try to clearly communicate that I am open (and in fact, often hoping) to be proven wrong, but it’s a process, and I can’t help but wonder how often have I just been a massive dick and prevented other people from even throwing an idea =(

    1. 8

      I’m almost exactly the opposite. I realize that usually my preferences boil down to: “I like this way because I’m used to it”, or “I don’t think it matters”. I used to be the most experienced C# programmer on my team. My teammates used to ask me questions like “Should I assign a type explicitly or just use ‘var’?” any I would say that that’s a personal preference and it doesn’t really matter. Another programmer with a much more pronounced opinion joined the team, and I noticed that people liked his answers a lot more. Sometimes people just like to be told what to do, especially when the consequences of the choices aren’t so clear.

      1. 5

        Sometimes people just like to be told what to do, especially when the consequences of the choices aren’t so clear.

        This, and also cases where the consequences on either side of a tradeoff are so minor, that the energy spent deliberating them out is costlier than just making a call and moving on. I spent far longer learning this, and fixing my behavior, than I wish I had.

        On so many of these low-impact-low-cost details, where I did not strongly care, where I could expect another senior to reasonably disagree (even just for reasons of “this is what I am used to instead”), I would give teammates a full-depth, longwinded explanation, only to end in an equivocation and let them decide. Maybe one out of a dozen times they learned something, but often I was wasting people’s time when they just wanted a boolean result from the ask_swifthand function.

        The first step in fixing this was realizing why I always led with longwinded explanations. It turned out to be misapplied empathy (which I assume-by-default that I lack, hence it took a while to realize).

        I personally value knowing the detailed ins-and-outs wherever possible, and so I saw extending a full explanation to another person as a sign of respect: share all the learning, and help them make their own decision. But when that comes by wasting their time (on a low-impact-low-cost choice), was not being perceived that way.

        Change was slow. I first changed my explanations to lead with the decision before launching into the explanation, giving a TL;DR to frame their expectation. After some time doing this, I began leading with the decision and then asking “There are reasons I could dive into, but they are subtle and inconsequential. So I’ll leave it there, unless you are curious?” followed by a long, awkward pause while I wait for an answer.

        Due to some personality quirks that pause is the hardest part for me, but it gets the job done. It balances respecting their time by giving them the option to walk away with my desire to extend a courtesy that I would (personally) value of learning more.

        Ironically, I do not always extend this sort of preemptive empathy to the rest of my life’s conversations. The last paragraph in the article really hit home, as I know friends and family often feel my SOLH is overconfidence layered with stubbornness.

        1. 3

          Sometimes people just like to be told what to do, especially when the consequences of the choices aren’t so clear.

          Newbies need to be fed opinions because they don’t have enough experience to have any of their own, and the ones they might have at the moment are more likely to be wrong than right. Like, yes, you can write thousand-line subroutines in Python, that’s certainly something the language allows, but more mature opinion will state that writing smaller subroutines is better for reasons of ease of modification a neophyte hasn’t run into yet.

          Gnomonic pronouncements make things go faster, but once the learner has some experience of their own, pushback is to be expected and should be encouraged. Except with things like styleguides. Those are completely arbitrary and set in stone for precisely that reason.

          So teachers need to have strong opinions because they can’t go over every single thing when they answer a single question, but those opinions must be held loosely enough that students can successfully challenge them as they gain enough knowledge to exercise their own agency.

          1. 2

            This is one thing that’s true: people like to be told what to do. People should be encouraged to think for themselves. The best of both worlds is perhaps by explaining the difference and explaining why you lean the way you do. That way you teach thought and give a straight answer.

          2. 5

            tend to argue to exhaustion

            that doesn’t sound “loosely held” :)

            1. 1

              I recently had an argument that went on for an hour until I conceded from frustration. Once we switched from the what to the how they immediately took to my original argument. Loosely held seems like it can be in the eye of the beholder.

              1. 1

                Well, for some definition of loosely =P

              2. 3

                I am open (and in fact, often hoping) to be proven wrong

                Say that clearly and directly. Tell the other person that you are not feeling personally attacked and hope to be proven wrong.

              1. 6

                I miss a very utilitarian business-oriented group. My code is valuable as long as it generates business value. The means are secondary.

                1. 4

                  As a wise K sage once told me, “I like money.”

                1. 3

                  You might be used to it from SQL SELECT group, count(*) FROM table GROUP BY 1 ORDER BY 2 DESC

                  I use it all the time

                  1. 2

                    Metaprogramming Ruby 2: Program Like the Ruby Pros is an absolute must-read if you’re working with Ruby more. It covers the object model in a really approachable and practical way.

                    1. 2

                      Does anyone here use Bitwarden? I didn’t know about it, but it looks really attractive.

                      1. 3

                        Yes, it’s awesome. It’s also the only password manager that has a Firefox for Android extension (to my knowledge).

                        1. 3

                          Yes. It has some rough edges – I wish syncing was better – but it’s working great.

                          My syncing issue has to do with the fact that everything has its own copy the data: desktop app, mobile app, browser plugins, etc. When you make a change they do not sync between them all immediately. You can have a Bitwarden app or plugin that is days behind so you have to go to settings and do a manual sync. Very annoying, but not a deal breaker.

                          1. 2

                            I use the venerable pass. It has none of this mobile mumbojumbo or autosync frills the kids today are talking about.

                            It’s so simple and lean, I never thought pass git pull would be annoying.

                            I would appreciate a mobile UI sometimes, though. A Sailfish client. But that’s not a dealbreaker either.

                            Maybe I could hook the missus up with Rubywarden, though. Pass would be too much for her.

                            Addendum: There appears to be a QML frontend on OpenRepos. Found through storeman. Not a complete client but have to give it a spin :)

                            1. 1

                              There is definitely a pass app for android. I’m not sure about iOS.

                              1. 1

                                As someone who uses a mobile and two desktops, having passwords being synced across devices is a must-have. It’s just too much of a pain to remember to copy new passwords from my phone to machine A, then B, and vice-versa.

                                1. 1

                                  Home desktop, work desktop, work laptop, work macOS laptop and hopefully soon two Sailfish mobiles running pass.

                                  Made git pull a habit, not a chore, but ymmv.

                            2. 2

                              yeah, it’s open source and possible to run self-hosted as well.

                              check out the discussion from a topic from a few days ago, id just be copying from there:

                            1. 21

                              I personally use Bitwarden, which I would say that fulfills all 3 points that you want, but I never tinkered with the SSH sync (although its privacy section ensures that its part of how it syncs). If you want a simpler and lower level alternative, probably pushcx’s advice of checking out pass works best for you.

                              1. 5

                                Strong +1. Been using Bitwarden for 1.5 years now and it’s everything I hoped it would be.

                                • It’s open source, which is a must-have for a password manager for me.
                                • I used it on ~every platform (Linux, Mac, Windows, Android, iOS) and it’s more than functional–a pleasure to use on most. More than I can say for any other password manager.
                                • It’s a tiny team (of ~1?) but it’s very active and has solid contributions from random people. Responses to issues are prompt and effective.
                                • There are several independent backend implementations (in Rust, Go, Ruby that I’ve seen, probably more now).
                                • I’ve read through big chunks of the code and it seems solid–something I could contribute back to. My only complaint was that the sync API was designed to do separate requests per entry, so some metadata about the number of entries does leak unnecessarily. I haven’t checked if that was fixed, but it’s fairly minor.

                                Overall the experience has only improved. I’m sure it has a bright future.

                                1. 3

                                  Thanks for introducing me to this, it’s about what I am looking for. Time to ditch manually synced (& merged, of inevitable forks) KeePass.

                                  1. 2

                                    Can also recommend Bitwarden, I have not tried the desktop application, but the mobile version on Android and browser extensions have worked without any issues for me so far across different browsers and operating systems.

                                    Edit: Apparently, I posted the same comment twice, my mistake.

                                    1. 1

                                      Is this one open source?

                                      1. 4
                                        1. 3

                                          It is indeed, but there’s a caveat with self-hosting it that irks me. Though apparently there are ways to work around it, as mentioned.

                                          1. 1

                                            Well, that’s cool! Thanks! :)

                                          2. 1

                                            a few people incl. me have been able to code a client-compatible self-hosted version as well, gives you a lot of insight and trust in it

                                            https://github.com/vvondra/bitwarden-serverless https://github.com/jcs/bitwarden-ruby

                                            1. 1

                                              Nice! :)

                                        1. 3

                                          I run a SYS Dedicated Server with Proxmox as a VM Host. I recommend PM if you wanna get into virtualized hosting, it’s rather neat.

                                          • Shaarli (Bookmarks)
                                          • Rainloop (IMAP/SMTP Client, though I’m switching it off)
                                          • Nextcloud
                                          • Airsonic (Music Streaming)
                                          • Cachet (Status Page, on shared hosting)
                                          • Invoice Ninja (forsSide-business stuff)
                                          • TinyTinyRSS (though looking for replacements, Feedly hasn’t been very pleasant, I have about 600 feeds on there)
                                          • Postal (Internal Mail Infrastruture)
                                          • YouRLS (URL Shortener, even got a neat Domain for it)
                                          • Gitea (for my private projects or before I publish it to github)
                                          • Skeletor (Selfwritten Analytics tool, currently not used)
                                          • PFSense (VPN, DNS and Firewall)
                                          1. 5

                                            try selfoss for a RSS aggregator/reader. IMO the best user experience among self-hsoted tools in this regard

                                            1. 2

                                              Thanks, I’ll try and see if it can handle my workloads <3

                                            2. 3

                                              I was using Proxmox before but I found it easier and more efficient to use docker as there isn’t reserved memory for each container like you have with a VM.

                                              1. 2

                                                Hm, yeah, but I have lots of Containers in Proxmox too (LXC) which also works better for IPv6 connectivity. I need the VM mostly for PFSense, which is BSD and doesn’t run too well in a container (it doesn’t run at all).

                                                PM also has a lot more functions that I like than Docker, especially towards failover with data persistence.

                                              2. 2

                                                RSS reader written in Python (and not PHP): newspipe. I haven’t test it out yet but it looks solid.

                                                1. 1

                                                  I’ve experimented a bit. While it looks rather nice, the category functionality is probably not quite sufficient. I rely heavily on a hierarchy of categories to sort out my feeds…

                                              1. 3

                                                Unfortunately Czech Vodafone is playing with the idea and promoting it already: https://www.vodafone.cz/osobni/volani/vodafone-pass/#section-compare