Threads for 0x7f

    1. 6

      I see you’re into Coffee? I see the Wacaco sticker.

      https://www.home-barista.com/ is the lobste.rs for Coffee.

      PS: You might already know about it, but others here might not :-)

      1. 3

        Yes I love coffee and everything about home made espresso.

        https://www.home-barista.com/ is the lobste.rs for Coffee.

        Wow thanks for sharing I did not know!

        1. 1

          I didn’t, and it’s way off-topic for here, but maybe someone in this thread knows:

          I have been looking for bean-to-cup filter machine that has a burr grinder and drips into an insulated (not heated) jug. So far, I have found precisely one such machine to exist, it doesn’t ship outside the USA, and reviews indicate it often breaks after 6 months. Has anyone heard of such a thing being mass produced? Or a kickstarter or similar for one.

        2. 3

          What type of keyboard is it?

          1. 5

            Looks like NuPhy.

            1. 2

              Yep! Great keyboard!

              1. 2

                Looks nice indeed! I’m going to pick one up and give it a try.

          2. 3

            How do you get the windows to organize that way, with the margin between them? Is that a Rectangle config I’m unaware of?

            1. 3

              Is that a Rectangle config

              Yep, that’s correct. You can do it thru UI or you can set it thru JSON. Here are my settings -> https://git.0x7f.dev/andreicek/dotfiles/src/branch/master/rectangle/RectangleConfig.json

              1. 3

                Thanks! This changes everything for me. :D

                1. 1

                  Same! I’ve been wanting to do this lately. I didn’t know you could do it with Rectangle itself and thought I’d have to do it with Hammerspoon.

          1. 11

            I immediately deleted my account and marked the experience as one worthy of warning others.

            I don’t understand why the name of the company isn’t in there, then. Is it meant to be obvious from context?

            1. 1

              I think it’s https://zerossl.com/ but they have a pricing link on the homepage, so I don’t really like the argument that it was hidden.

            1. 1

              I’m doing nothing :D Spending time with the little one and have a friend come over and hang out tomorrow, and just recharge for the new year in general!

              1. 1

                We did a quiet release last week and are preparing to launch to friends and family. This has been a very hard feature we’ve been working on for three months so I’m very happy to code on some simple tasks before the holidays!

                1. 7

                  Can we stop the $tool written in $language type of headlines? It’s annoying. Yes write tools in whatever language you like. But give some other argument why this implementation is better then the rest. Because a skilled programmer can write horrible code in any language ;-)

                  1. 11

                    I’m sorry you’re miffed by the headline—I too feel similarly about “written in Rust” posts. I think I just internalized the “foo, written in bar” format and wrote the headline like that. As for why this is better, I’ve briefly outlined it in the readme.

                    1. 9

                      I don’t find this info unnecessary and it actually helps me decide to checkout a project. I am familiar with Go, so any project in Go gets my attention quickly. If the title didn’t mention the language, then first thing I would do is to check which language it is written in.

                      It’s a self hosting tool. Language and the tooling matters a lot to me.

                      1. 2

                        Languages that compile to a binary also tell me something about the performance characteristics I can expect. I don’t know (and am not curious about) Go, but I know it will more than likely produce something pretty quick and light on resources. The self-hosting part is real too because you should be assured that you won’t need high-end hardware like hosting a Rails server.

                      2. 2

                        Personally, that it’s written in go is more useful to me than written in node or written in java. It tells me a lot about the “handling characteristics” of the program from an operations standpoint, and that’s valuable.

                        1. 1

                          I’ve briefly outlined it in the readme

                          Your readme starts with “A git web frontend written in Go” followed by a pronounce guide. Maybe try something like “A small, customizable git web frontend”.

                          1. 9

                            FWIW, I am only interested in hacking on an OSS web app if it’s written in Go. As a developer I’m not really interested in ones written in other languages, although I will use them as a consumer. So for me “written in Go” is a useful bit of signal.

                            1. 8

                              I think it’s pretty useful information to have in the readme as it informs the user of what language tooling they’d need to build/run this. I’m now convinced you didn’t read beyond the first few lines, or you’d have reached the “features” section which does briefly outline why this is better than the rest. In the context of this post alone, I’d even argue that there’s plenty to glean by simply using the site (since it’s also the software being discussed).

                              1. 3

                                You are being given good feedback and your first instinct is to negate the feedback as fast as you can type out a response with your keyboard without taking a moment to reflect on it, compose yourself and evaluate the feedback on its own merits.

                                What’s worse is that you then go on to insinuate that the parent commenter did not even read beyond the first first few lines! How can you possibly know that? How can you be so convinced that someone else on the internet did not read your complete post? This is not how to run a successful project!

                                I did read your entire post and I find the parent comment to be 100% right! Your README starts with “A git web frontend written in Go.” Then the very next thing it explains is how to pronounce your project name!

                                And then your features list has these 4 things:

                                • Fully customizable templates and stylesheets.

                                • Cloning over http(s).

                                • Less archaic HTML.

                                • Not CGI.

                                What does it tell me? I don’t know. It’s a web-based tool. I can customize the templates. Fine. But why does it make it better? All web-based tools these days have customizable templates, right? Cloning over https(s). Sure. But why does it make it better than alternatives? What are the alternatives?

                                “Less archaic HTML.” What does that even mean? You mean no <table> for layout? Does it really need to be mentioned in a project created in 2022?

                                “No CGI”? Why tell us what it is not when you can simply tell us what it is? Maybe you mean to say that the web-server is built-in into the project (by virtue of Go net/http or one of its wrappers)? Maybe you mean to say that we can deploy it as a single binary? If that is what you want to say, just say that!

                                Sorry but I have to agree with the parent comment. If you communicate more directly what your project is and why we should care about it, you would capture my attention and some other folks too who you are turning away right now.

                                1. 12

                                  I would like to offer a counterpoint to these things:

                                  • “Written in go” is something that, as someone mostly outside the web bubble, I really appreciate when it’s about web tools. It tells me I can probably just go get this and run it, instead of setting up some Docker-based infernal machine that will take forever to build, take up half a gigabyte just to serve git repos, and require me to fiddle with my network setup just so I can get Docker running along with my VPN.
                                  • “Fully customizable templates and stylesheets”, “Cloning over http(s)”, “Not CGI” are all things that other existing git frontends suffer from. If you’ve used them before and researching for alternatives, you know why you would want some of these things. Listing them all is useful IMHO, because many of these are just matters of personal preference. There’s no universal justification for why they’re better (or worse).
                                  • This is not a commercial product, as far as I can tell, this doesn’t have to be an elevator pitch.

                                  Personally, I like the current README. I think the information it offers is relevant for people who are looking for an alternative git web frontend.

                                  Changing the description to some canned generic description (“light, customizable web-based git frontend”) would make it worse, that describes basically every frontend that doesn’t have a corporate licensing scheme.

                                  Changing the rest of the README to list things that are relevant for everyone, not just people who are already familiar, but dissatisfied with existing git web frontends would be pretty counterproductive: these are literally the people who are probably interested in legit. Of course the README is written for them.

                                  1. 5

                                    What does it tell me? I don’t know. It’s a web-based tool. I can customize the templates. Fine. But why does it make it better? All web-based tools these days have customizable templates, right?

                                    No not all web based tools have customizable templates.

                                    I think the author may be comparing their project against cgit’s featureset, which gives those points more context as to why they’re important to mention.

                                    cgit is CGI based, has archaic HTML, and no customizable templates. It can clone over https and more though.

                                    It’s clear then the README assumes the reader / user is familiar with other git frontends. If not then just ignore the project and move on or dive deeper…

                                    you would capture my attention and some other folks too who you are turning away right now.

                                    Our attention really means nothing, it’s a hobbyist project. They’re just sharing something they think others will be interested in. Really doesn’t matter if anyone pays attention.


                                    All this to say I think this is all a little spicy but surely we all mean well. breathes deeply, let’s just do a little twist and get back to the fun :D.

                                    1. 1

                                      Your README starts with “A git web frontend written in Go.” […] What does it tell me? I don’t know.

                                      I don’t really see the problem with this. The link is to a demonstration of legit, using the repo of legit. Even before you read the README, you can see how it styles commits by default (at the top of the page), and you can click around to see how navigation is setup. Was the link changed after the story was posted?

                                    2. 2

                                      I think it’s pretty useful information to have in the readme as it informs the user of what language tooling they’d need to build/run this

                                      I’d like to thank you for writing this in your README. It’s often surprisingly hard to find, and often I come across tools that are written in multiple languages (not necessarily a bad thing) that I would use except that I don’t want downstream to have to have a JRE, Python, and Ruby installation all working (or, worse, specific versions of those things). I don’t really care that it’s Go, but I do care that Go defaults to spitting out a single statically linked binary and so building it is generally just go build and then end up with something redistributable.

                                      1. 1

                                        I think you have misunderstand why I have made this comment.

                                        ’m now convinced you didn’t read beyond the first few lines

                                        Yes I had only read the first few lines because I was drinking my morning coffee and left after that to work[0].

                                        I think it’s pretty useful information to have in the readme

                                        Yes it is useful information, but is this the information a potantial user wants/needs before spending more then 5 minutes to consider using your tool? It would be sad, if your tool is missed by many people just because you can’t convince them to read more then the title of your post or the first two paragraphs of the readme.

                                        [0] I was already a bit late, because I had to help someone debug there TLS config ;-)

                                    3. 0

                                      I think I just internalized the “foo, written in bar” format and wrote the headline like that.

                                      Now that you know how annoying these type of headlines can be and since you too admit that such headlines are annoying, can you fix the title now (if you still have edit window)?

                                      I am confident that you are turning away many potential readers due to this title. The moment I saw “Foo, written in bar” in the title, my brain automatically decided to avoid clicking your link. If you had a title like, “Foo, summary of why it is better” or “Foo, one key problem it solves well” I might have felt like clicking on it.

                                    4. 6

                                      IMO this should be a site wide rule.

                                      This started with the movement to rewrite everything in rust (“grep but in rust”, “cat but in rust”, etc.) which was fun at the time, but rewrite for the sake of rewrite got boring

                                      1. 4

                                        These actually provide some useful information, for example there’s a big difference between reading “$server_side thing written in Python” (probably a giant mess to deploy!) vs. “$server_side thing written in Rust/Go” (probably an easy single-binary deploy!).

                                        1. 3

                                          probably an easy single-binary deploy!

                                          “Probably”. And that’s the problem. The OP can communicate much more information by simply stating that the whole thing is a single-binary deploy. Then I wouldn’t have to guess that “Go” => “probably an easy single-binary deploy!”

                                      1. 1

                                        Interesting, I’ll try replacing tomorrow. I hope they integrate CI in the future.

                                        1. 4

                                          Not natively, I’m guessing, but they endorse (and use on Codeberg) Woodpecker.

                                          1. 1

                                            Ah yeah it makes sense. I currently run Jenkins on a separate machine, but it’s a very cluncky tool for my use case. I dhould give Woodpecker a try - thanks!

                                        1. 1

                                          I watched this a dozen times but it never gets old!

                                          1. 1

                                            Nice to see progress! Good luck.

                                            1. 2

                                              Great article! I wonder how you discover zsh modules like this.

                                              1. 11

                                                Reminds me of something with 3D printing: I quite regularly use a 45° rotation. It averages errors in both directions and it’s sometimes even a bit faster (because the nozzle can travel sqrt(2) faster).

                                                1. 2

                                                  Great tip, thanks!

                                                1. 11

                                                  This post is a rambling mess and I recommend you just stay away from it.

                                                  1. 3

                                                    I didn’t listen to you and I’m sorry I didn’t.

                                                  1. 3

                                                    This looks really helpful. The post says it was inspired by rust. I haven’t use that, but I like what I see so far on this.

                                                    1. 2

                                                      Game changer yeah!

                                                      For now I’ve been using this snippet:

                                                      |> IO.inspect(label: "## ", pretty: true, limit: :infinity)
                                                      

                                                      And then placing it on every line I need to know the output. This makes this obsolete!

                                                      1. 2

                                                        Yes, I do the same thing! Can’t wait for it to be released.

                                                    1. 21

                                                      Waiting for the birth of my first baby, so it’s hard to concentrate on work :)

                                                      Other than that developing beta code redemption flows for our product. Should be interesting.

                                                      1. 4

                                                        May be a bit late for this advice, but it seems to me to be the big difference between being a happy parent and an unhappy one: prepare yourself emotionally for a great harrowing of the self that will last years and may never fully abate. If you go into parenthood expecting to maintain your lifestyle at all, particularly in the first 5 years, you will make yourself miserable with disappointment.

                                                        When my kid was born I fully prepared myself to achieve nothing of value beyond caring for my child for ~2 years and this has proven to be, in some respects, an optimistic projection.

                                                        On the other hand, taking care of my child is literally the only non-alienating work I have ever undertaken beyond purely academic or artistic pursuits. It is a priceless experience but you must accept it as such and expect the rest of your life to make way for it.

                                                        1. 4

                                                          Congrats! All the best for the new family member!

                                                          1. 1

                                                            Congratulations! It will be frightening and the best thing ever at the same time :)

                                                          1. 8

                                                            Choosing a random order is not a good idea, because there is a chance that both possibilities would eventually get inserted, and what would that mean?

                                                            We are just now going into the development of this very feature. And I have a feeling we have not taken this into the consideration. Thank you for saving us hours!

                                                            1. 2

                                                              haha awesome. Please share your experience with the schema that you decide on, later on when you’ve got some.

                                                              1. 2

                                                                You can use a cryptographic operation like the one described in this recent post: https://lobste.rs/s/ousoal/how_play_poker_by_mail_without_trusting

                                                                Basically, there is a single row, single column model too. I don’t think it’s performance would be good for anything but pairwise friend testing. Basically any operation with the commutative property and a wide enough range to avoid collisions works. “Sort them and make them a tuple” is just an intuitive function with the commutative property that implicitly has the range needed.

                                                              1. 2

                                                                I love this. OpenBSD is the epitome of security through simplicity and transparency, and this single-page startup description is exemplary of that fact. If only it were more widely supported on the desktop.

                                                                1. 2

                                                                  If only it were more widely supported on the desktop.

                                                                  There are amazing people ready to help you get OpenBSD running over at misc(a)openbsd.org. I was able to run OpenBSD on everything I threw it at.

                                                                1. 11

                                                                  Can’t we just do all those good things, without getting into the mindset that we might quit or be fired at any time?

                                                                  (I don’t think they’re all good things actually, but, in general most points are sensible.)

                                                                  “this will make you a better engineer” - maybe, but I don’t think it’s very healthy.

                                                                  1. 4

                                                                    I don’t think they’re all good things actually

                                                                    Which ones are not sitting right with you?

                                                                    1. 11

                                                                      Identify and train your replacement. In the same vein as training others, to switch roles you’ll need to replace yourself. Identify who that replacement might be and actively and continuously coach them.

                                                                      I think it’s great to provide training to people around you, and (if they’re interested) then enable people to gain the skills that could be used to replace you, but actively targeting someone as a replacement and treating them that way all the time seems unhealthy.

                                                                      Do not make yourself the point of contact. Establish mailing lists or other forms of communication that can accommodate other people, and then grow those groups. (The exception is when management needs names for accountability.)

                                                                      In general I agree that it’s unwise to volunteer as the contact for too many things, and it’s preferable to use open channels of communication. But as a blanket rule I don’t think it’s good advice.

                                                                      1. 5

                                                                        I think it’s great to provide training to people around you, and (if they’re interested) then enable people to gain the skills that could be used to replace you, but actively targeting someone as a replacement and treating them that way all the time seems unhealthy.

                                                                        I agree.

                                                                        In general I agree that it’s unwise to volunteer as the contact for too many things, and it’s preferable to use open channels of communication. But as a blanket rule I don’t think it’s good advice.

                                                                        When I read that my first thought was instead of having people coming to me about the internal lib I’ve made - make a Slack channel for the lib support.

                                                                        1. 7

                                                                          When I read that my first thought was instead of having people coming to me about the internal lib I’ve made - make a Slack channel for the lib support.

                                                                          Yeah! This seems like a good idea. Keeping communication open and transparent has tons of other benefits: you’re not the single point of failure, other people can find out context around a situation, it fosters a sense of community, people are less likely to become the defacto decision-maker, etc etc.

                                                                          It’s just that having a rule of “I won’t be point of contact unless management specifically ask me to be” feels like a bad attitude to have.

                                                                          1. 2

                                                                            IMHO, if your management asks you to be the point of contact, they may not be good management. Volunteer to set up the group channels of communication, and have a good attitude about it! The problem with being a point of contact is that you can’t go on vacation, etc, without handing off the baton. The handing of the baton creates overhead for the team. Overhead creates drag, which makes the team less effective. I am in the middle of leaving my current position, and I try to follow most of the rules in the the linked article. The things that are painful, are the places where those rules were not followed. Also, it’s my understanding that if you ever have to do ISO27001, it will help to have responsibilities delegated to roles instead of individual points-of-contact.

                                                                  1. 9

                                                                    I never use code completion. If the editor provides it, I disable it.

                                                                    Having worked on large code bases (500k+ loc) with a lot of models (20-30) I can’t imagine life with a good quality language server…

                                                                    I’m not sure if I envy the author or if I’m afraid of them.

                                                                    1. 5

                                                                      It’s most likely they use tools like grep and find which easily work with any language, but yes, LSPs are significantly changing the usefulness of autocompletion.

                                                                      1. 2

                                                                        This is very true, and built tooling around it. My largest codebase was 10mm lines of code written in a Mainframe language, that couldn’t leave the clients hardware; so we wrote some simple tooling to help with finding things, and basically built a map around things.

                                                                        Whilst I still don’t use an editor that provides those sorts of things, I do use tools like ssadump or go guru to help give me the lay of the land

                                                                      2. 1

                                                                        Having worked on large code bases

                                                                        Having worked on small code bases I can’t imagine how much I’d have to be offered to agree to work on a codebase over 100kloc.

                                                                      1. 41

                                                                        I self host Bitwarden. Before that we’ve been thru Enpass and 1Password but nothing felt as secure. Just be sure to back up data regularly in either case!

                                                                        The reason for going down self hosted solution was primarily privacy. The only drawback is that we can’t snyc without VPN (which we do not mind at all).

                                                                        1. 7

                                                                          I use pass as my standard password manger, but I’m thinking about switching to bitwarden, largely so that I can access passwords on my phone. I’m actually currently running self-hosted bitwarden-rs myself, although my instance only has a single test password in it so far. The main thing I’m concerned about is having access to my passwords if my self-hosted webserver goes down for whatever reason. I haven’t figured out if bitwarden-rs provides a convenient way to do this .

                                                                          1. 8

                                                                            I use bitwarden-rs. I have found that you generally have access to passwords on already-sync’d clients if the server is down. Sometimes, either due to elapsed time, or because the client has tried some operation that requires access to the server, the client will insist on a connection to the server before it will proceed. I haven’t yet cared enough to run this down; my existing clients are give access just fine for short server outages, and that’s the case I care about. (i.e. I never have to go fix a server in order to log in to something. I have had to go fix a server in order to set up a new browser, as you might expect.)

                                                                            1. 6

                                                                              If you’d like to stick with pass, you might want to take a look at the apps. For me, using the Android app with Syncthing is working very well. I especially like it because I only sync a subset of my passwords which are on the “phone” directory, these are configured to be encrypted with my GPG key as well as another created specifically for my phone.

                                                                              This adds the syncthing dependency, which I didn’t mind because I was using it already for other data, so it was very easy to configure. However, you can also synchronize using Git (at least on Android).

                                                                              1. 8

                                                                                I use pass + git + GPG on my computers and Password Store (git built-in) + OpenKeychain on Android. The git repository is served from my server at home. No need for Syncthing, but in order to update any passwords I require being on my home network, however that is infrequent.

                                                                                1. 3

                                                                                  You can use Syncthing in combination with git, by replacing the .git directory with a .git file with contents gitdir: /path/to/.git. Then the git index will be excluded from Syncthing sync. You get the best of both worlds.

                                                                                  1. 1

                                                                                    I use syncthing to sync my bare git repos, and push to them from other folders on my macbine. Works pretty well.

                                                                              2. 2

                                                                                I don’t have access to home network/VPN on my laptop for at least 8 hours a day and no issues so far. Just note that you can’t save new passwords without a connection.

                                                                                1. 1

                                                                                  I use VPN for editing. Access is OK with a cached version.

                                                                              1. 1

                                                                                Amazing, thank you for sharing.

                                                                                1. 1

                                                                                  If I’m already running Nginx would it be enough to use this file? https://github.com/signalapp/Signal-TLS-Proxy/blob/master/data/nginx-relay/nginx.conf