1. 2
    • Hanging out with the family
    • Reading the manual for pandoc, and generally screwing around with the same
    • Recording and episode of our podcast, this session will be about the philosophy of Accelerationism
    1. 16

      If Twitter shuts down, you’ll lose your followers. If Facebook shuts down, you’ll lose your friends. For some platforms, it’s not a question of “if”, but “when”. Such events are usually followed by a scrambling into a variety of different platforms, where you inevitably lose some people as you have to make a choice which one to stay on. This happened before. But it doesn’t have to happen again. Use the federated web. Join Mastodon.

      As a Mastodon user, I think this is my main issue with the way it is marketed to normal users. For most people, FB/Twitter going offline seems unlikely. But with Mastodon, the likelihood of your instance going dark is much higher, especially considering that joinmastodon.org’s guides recommend choosing smaller/more niche instances. Once the instance is offline, you’re SOL with respect to all your posts and follow/following lists, and regular users are not made aware of this.

      Additionally, I think many new users will hop onto an instance without considering the fact that the instance admin has complete control over the instance, including access to DMs and private posts.

      Federation has its benefits, but I’m not sure if federated services will ever be approachable by normal people.

      1. 3

        For most people, FB/Twitter going offline seems unlikely.

        If FB or Twitter shut down, everyone will have moved a way long ago. MySpace still exists. These decentralized platforms always advertise resilience as their main feature but they quite often are actually worse than centralized systems. How often have you found a torrent with no seeds? If I host a small program on github or on a torrent, which one is more likely to still be around in 10 years?

        I think the main difference is control. Your content may be hosted on one of these big platforms for ages if they allow it but if they decide your content is not ok you have no options left. With a decentralized system, no one can ban you from your own server unless it violates local laws.

        1. 1

          Agreed. I say the resilience aspect of these networks is more about the service itself remaining available if any instances shut down. For example, if Facebook shuts down, you don’t have any other way to use Facebook. But if https://mastodon.social goes down, you can just hop to another instance and Mastodon again. But by advertising the network by implying that mastodon will never die, people might be mislead into thinking that their data will stay online.

        2. 2

          But with Mastodon, the likelihood of your instance going dark is much higher, especially considering that joinmastodon.org’s guides recommend choosing smaller/more niche instances. Once the instance is offline, you’re SOL with respect to all your posts and follow/following lists, and regular users are not made aware of this.

          My home instance was down most of today. And while I was searching around for some info about what was going on I just thought to myself “yeah, this could be the end for that instance, and my account, and all of my posts”.

          I’ll be sure to back up my follow list in future, but this has put into focus just how transient and fragile these federated services can be.

        1. 4

          I’m thinking I’ll make a start on some kind of federated reddit-a-like

          1. 1

            From my perspective lobsters is already federated hacker news for nice people.

            1. 9

              But… It’s not federated?

              1. 1

                Hey, man, they said it was their perspective.

                1. 1

                  Not in the mastodon definition but in terms of the web itself, it is. Don’t like this discussion forum over here, go use this other one over there with different servers, different community, different norms. Counts as federated in my book.

              1. 3

                I had the same thought a few months back and started looking into ActivityPub. It all seems very do-able, and I sketched out an outline of what the system would look like, but at the moment I don’t have the bandwidth to implement something like that from scratch.

                Maybe later in the summer.

                1. 40

                  Whenever I read tech articles about reducing keystrokes I tend to roll my eyes. cd‘ing directories already takes up a very small portion of my time—optimization will never be worth it. Now if you can tell me how to make roadmap estimations that don’t put my team in peril, now that’s going to help me to not waste my time!

                  Edit: It’s a cool tool, just maybe the article is touting it as more of a life saver than it actually is.

                  1. 12

                    I mean, I do too, but people do actually take this kind of thing seriously. I’ve had several people say they wouldn’t use ripgrep because the command was too long to type, but upon hearing that the actual command was rg, were much more satisfied. Maybe I missed their facetiousness, but they didn’t appear to be joking…

                    1. 5

                      Could they not have just alias’d the command if it was “too long”?

                      1. 4

                        The people in question don’t sound clever enough for that.

                        1. 1

                          Are you asking me? Or them? ;-)

                        2. 4

                          I wonder if these are different people than the ones who complain about short unix command names and C function names…

                        3. 9

                          For those of us with RSI, these little savings add up, and can make for a pretty big difference in comfort while typing.

                          1. 8

                            Oh please. If you’re really worried about a couple of words and keystroke saving, you’d setup directories and make aliases that will take you specifically where you want to go. Assuming it was even a GUI you were using with a mouse, you’d still have to click through all the folders.

                            Overall, paying close attention to your workspace setting and ergonomics can go a long way in helping improve your RSI situation than this little jumper will ever do

                          2. 4

                            My thoughts exactly. I have often wasted time trying to optimize something which took so little time to begin with, even if I reduced the time to nothing it would have no significant impact on overall performance. And the less-obvious trap is optimizations like this add additional complexity which leads to more time spent down the road.

                            1. 9

                              All right, buddy. Cool.

                              Did I say it a “life saver”? Nope. Did I say it could save you a lot time? Yup. If cd'ing into directories doesn’t waste your time, cool. Move along, read the next blog post on the list.

                              I’m sorry about your roadmap estimations. Sounds like you’ve got a lot on your chest there.

                              1. 31

                                Let me just take a step back and apologize—nobody likes negative comments on their work and I chose my words poorly and was insensitive. I’m rather burnt out and, in turn, that makes me appear more gruff online. I’m positive that someone will find this useful, especially if they’re managing multiple projects or similar use cases.

                                1. 23

                                  I really appreciate you saying that. The whole point of this piece was to share something that literally makes me whistle to myself with joy every time I use it. I hope you find some time to take care of your burn out. It’s no joke and I’ve suffered from it quite a bit in the past three years myself. <3

                                  I know it’s easy to look at everything as “this is just like X but not quite the way I like it” and I don’t blame you for having that reaction (like many here). AutoJump is to me the epitome of simple, delightful software that does something very simple in a humble way. I wish I had spent more time extolling the virtues of the simple weighted list of directories AutoJump stores in a text file and that ridiculously simple Bash implementation.

                                  The focus on characters saved was a last minute addition to quantity the claim in the title. Which I still think will be beneficial to anyone who remotely has frustrations about using cd often and may suspect there is a better way.

                                2. 6

                                  If only there was a way to optimize crank posting. So many keystrokes to complain!

                                3. 2

                                  the parent tool is probably overkill but a simple zsh function to jump to marked projects with tab completion is pretty awesome to have.

                                  alias j="jump "
                                  export MARKPATH=$HOME/.marks
                                  function jump {
                                  cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
                                  }
                                  
                                  function mark {
                                  echo "mark name_of_mark"
                                  mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
                                  }
                                  
                                  function unmark {
                                  rm -i "$MARKPATH/$1"
                                  }
                                  
                                  #if you need it on another os.
                                  #function marks {
                                  #ls -l "$MARKPATH" | sed 's/  / /g' | cut -d' ' -f9- | sed 's/ -/\t-/g' && echo
                                  #}
                                  
                                  # fix for the above function for osx.
                                  function marks {
                                  \ls -l "$MARKPATH" | tail -n +2 | sed 's/  / /g' | cut -d' ' -f9- | awk -F ' -> ' '{printf "%-10s -> %s\n", $1, $2}'
                                  }
                                  
                                  function _completemarks {
                                  reply=($(ls $MARKPATH))
                                  }
                                  
                                  compctl -K _completemarks jump
                                  compctl -K _completemarks unmark
                                  
                                  1. 1

                                    I’ve tried this, but I keep end up making shortcuts and forgetting about them because I never train myself well enough to use them until they’re muscle memory.

                                    I think I’ll just stick to ‘cd’ and also extensive use of ctrl-r (preferably with fzf)

                                    1. 1

                                      And then you go to a work mates computer, or su/sudo/SSH and it’s unusable :)

                                      1. 1

                                        well this is one of the most useful shortcuts in my arsenal. type j <tab> or jump <tab> and it completes all the marked directories. If you get over the initial forget to use it curve it’s amazing and simple (just a folder in your home dir with a bunch of symlinks. and a few helpers to create those.)

                                  1. 2

                                    For whatever its worth, I installed Fedora today and can’t replicate the problem. So it doesn’t seem to be a universal problem

                                    1. 1

                                      Fedora 27 here with all updates installed on Lenovo X230 (Intel stuff), seeing the issue of increased memory usage here…

                                    1. 4

                                      Aside from the usual work on the podcast (generalintellectunit.net), I’m taking a look at ActivityPub with an eye toward making a decentralised reddit-clone, along the lines of Mastodon.

                                        1. 2

                                          This is a lot like the David Foster Wallace commencement speech, “This Is Water.” It’s easier to find a link to the video than to the transcript, so here’s the latter.

                                          http://bulletin-archive.kenyon.edu/x4280.html

                                          1. 2

                                            But…

                                            from Strange Loop 2015

                                            1. 2

                                              Ah, seems Gary only released the video this month, I presumed the recording was more recent.

                                          1. 3

                                            I’m thinking of doing a Hierarchical State Machine implementation in Erlang/Elixir this week. Or maybe over the holiday break.

                                            1. 4

                                              I’m doing some maintenance on my Elixir rate-limiting library (hammer), and I’m starting to play with Nim.

                                              Oh, and we just recorded a monster episode of General Intellect Unit, on the movie Blade Runner 2049, so I’ve got to edit that this week too.

                                              1. 4

                                                Sounds good so far! It would be better if you had some reading material that you could include in the podcast description.

                                                1. 2

                                                  Noted, will be sure to include some links to reading material in future episodes :)

                                                1. 8

                                                  I did the survey because the article says “the remaining 63 images were equalized for a fair voting.” I had to find out if they actually put up 63 images for the user to grade.

                                                  I counted 65, many of which should never have been a choice in the first place. At least Mozilla, when they asked the community to choose a logo, had the sense to whittle their choices down to a reasonable number.

                                                  1. 4

                                                    I was amazed at the sheer bulk of really sub-standard images they put in here. The selection should have been pared down to maybe 20 images (that pass some basic quality filter), because as it stands I think a lot of people will not bother to complete the rankings, due solely to time constraints.

                                                  1. 3

                                                    I’m re-reading Four Futures by Peter Frase, as homework for a podcast episode I’m recording next week.

                                                    Also picking through the last of Endnotes 1: Preliminarily Materials For A Balance Sheet Of The 20th Century, which is also great, if a little difficult for being a dense theoretical work translated from French.

                                                    1. 3

                                                      A couple of things:

                                                      I’m wrapping up a v2 release, with a substantially better API, of my Elixir library Hammer. Hopefully that’ll be done this week.

                                                      I’m also trying to put together a lineup of co-hosts for a podcast project, analyzing and generally gabbing about technology and tech-work from a far-left perspective, and looking at left theory through the lens of tech. It’s proving pretty hard to find people who are interested in collaborating though, and who have the right mix of political theory and tech experience, so we’ll see if that pans out.

                                                      Update: just landed a third co-host and we’re already on to planning the first few episodes!

                                                      1. 15

                                                        This is, in my biased opinion, the best thing in browsing since tabbed browsing.

                                                        1. 4

                                                          I’m with you on that, it’s an absurdly good feature. And it makes Chromes container-per-window thing feel clumsy by comparison.

                                                        1. 20

                                                          To be honest, I can’t believe that anyone who advocates pair programming has ever actually pair programmed. It is a dismal slog—even when you’re lucky enough to get someone you like as a pair. If you don’t, then it probably could constitute torture.

                                                          1. 19

                                                            It can be fun if you are lucky enough for it to feel like two friends trying to crack a puzzle, but when it is two people who barely like each other being forced to work together then it probably sucks.

                                                            1. 5

                                                              I’ve had the experience you’re describing but the issue with “two friends trying to crack a puzzle” is that it actually requires a puzzle for the description to be applicable. For most professional, relatively experienced, developers, even if they are working on very interesting problems in the large, sitting at a keyboard isn’t really puzzle solving time.

                                                              If I have some problem that’s conceptually difficult I might talk to a colleague about it, but I don’t need them to spell out the solution or watch me do the same in implementation. Imagining pair programming as joint puzzle solving is a bit like considering a lawyer to spell checking a document for spelling mistakes the same thing as legal advice.

                                                              1. 3

                                                                I’d also add that sometimes it is a way to get past a hurdle when you are banging your head against a wall. Not to be done every time, just when you are stuck and need extra input and a sanity check.

                                                                1. 4

                                                                  These scenarios aren’t pair programming, though. These are normal collaboration. Pair programming is supposed to be day-in, day-out shared-screen collaborative coding.

                                                                  1. 6

                                                                    Well people rigidly following textbook definitions might be part of the issue.

                                                                    1. 4

                                                                      Well, collaboration just happens. It’s a given. Every programmer who hits a snag collaborates (if they have teammates). Pair programming as a practice is different. If you’re not talking about the idea as espoused in XP or in Agile propaganda, you’re not really responding to it.

                                                                      1. 2

                                                                        I see, I didn’t know they expected ALL code to be written that way.

                                                                      2. 1

                                                                        Why are you talking about kicking a pig? That has nothing to do with anything.

                                                                        1. 2

                                                                          I don’t understand what made you say this.

                                                                          1. 3

                                                                            I wasn’t rigidly following the textbook definitions of the words in your sentence.

                                                                            1. 1

                                                                              listen, if you don’t like pear programming then don’t do it.

                                                                2. 15

                                                                  I guess I disagree with you, and also disagree with the OP. While I would personally consider myself an advocate of pair programming as an occasionally useful tool, the OP certainly doesn’t consider me an advocate:

                                                                  let Ep = pair programming efficacy
                                                                  let Es = solo programming efficacy
                                                                  
                                                                  Proponents of pair programming claim that Ep>Es.
                                                                  

                                                                  Certainly, I would not claim that. (In fact, I don’t think I’ve ever met anyone credible who has claimed something so rigid, so I wonder if the OP is engaged in a straw man.) What I would claim is that I have had the occasion to pair program with others (I have played both roles, the mentor and the mentee), and it has generally been a positive experience. I’d like to note though that it has always occurred under a mutual desire from both parties to actually pair program; I am certainly against some top-down force directing people into a certain style of work.

                                                                  To give more context, I pair program very infrequently. It’s on the order of a few times (if that) per year.

                                                                  I would also say that OP’s analysis seems quite incomplete to me. For example, the last time I pair-programmed with someone was on a bit of Javascript code. I know Javascript reasonably well, but the other person didn’t. We had a choice: I could either write the Javascript piece of the task, or the other person could write it. But the other person would take quite a bit longer because they’d have to learn a bit of Javascript to do it. However, in the future, it was clear that this other person would benefit from being able to make changes to the Javascript code, so perhaps the initial investment was worth it. Both of us saw this as opportunity to learn together. I hooked my keyboard into his computer, and we were off with a well defined task. He could ask questions and ponder things in real time, since my full focus was on the task. The exchange of information was rapid, and we both enjoyed it I think. Needless to say, that person has now made several other contributions to that Javascript code since then without any future pair programming.

                                                                  Could that person have just picked up the Javascript themselves? Yes! Would it have taken them longer? Maybe. Would have it taken so long that it was actually worth me stopping all my work and pair programming for an hour? I have no clue. That kind of micromanagement of efficiency seems hard to nail down in a precise way.

                                                                  1. 3

                                                                    In fact, I don’t think I’ve ever met anyone credible who has claimed something so rigid, so I wonder if the OP is engaged in a straw man.

                                                                    Certainly the following Martin Fowler quote proclaiming that Ep > Es makes my argument not a straw man.

                                                                    1. 8

                                                                      Fowler also says this:

                                                                      Of course, since we CannotMeasureProductivity we can’t know for sure. My view is that you should try it and the team should reflect on whether they feel they are more effective with pairing that without. As with any new practice make sure you allow enough time so you have a good chance of crossing the ImprovementRavine.

                                                                      Which kind of puts a damper on this entire enterprise. This statement, to me, feels like it makes it clear that Fowler isn’t intending to be dogmatic about this. With that said, his choice of words could be better!

                                                                      1. 5

                                                                        The statement you quote there certainly has the feel of something pragmatic, but in practice my experience with nearly everyone in the “agile world” has been a feverish dogmatism toward pair programming. I suspect it’s born out of a lack of empathy for others, and a failure to comprehend that a practice that might be overwhelmingly positive for them could simply fail to work for other teams, but whatever the reason the discourse has always been universally that pairing (or mobbing) is The One True Way, and any objections are purely the result of The Practice being misapplied.

                                                                        1. 2

                                                                          Capital-A Agile usually means practices being dictated by one or two people (typically none of the four principles in the manifesto are noticed). Pairing in an environment like that is an exercise in management control by ensuring you are closely watched at all times.

                                                                          1. 1

                                                                            Interesting. Thanks for sharing. I guess if this thread has taught me anything, it’s to be on the look out for places that mandate this style of pair programming and probably try to avoid them. I certainly have experience with “dogmatic agile,” but I hadn’t really heard of this intense style of forced pairing before!

                                                                            And the next time I comment on this matter, I will be sure to get the definition problem out of the way first. :-) I had no idea that “pair programming” was even jargon in the first place!

                                                                          2. 2

                                                                            otherwise they would be advocating for pair programming all the time

                                                                            My company does exactly that!

                                                                            And good point about Martin Fowler.

                                                                            1. 2

                                                                              otherwise they would be advocating for pair programming all the time

                                                                              My company does exactly that!

                                                                              Hmm… All right. Seems quite strange to me. I’ve never heard of such a thing! If that’s true, then yes, I agree that is quite unreasonable.

                                                                              (I made a mess of my previous comment and edited it down to something more reasonable. Sorry about that.)

                                                                              1. 4

                                                                                XP held that “all code sent into production is created by two people working together at a single computer.” Source here. With respect, I don’t think that if you only pair a “few times a year” you’re experiencing it as it works if executed as originally envisioned. Collaboration on hard problems is useful—even fun, if you’ve got a good colleague or two to work with. Pair programming, though, is not just that. It’s working on the same code, taking turns as the “driver” and the “observer,” either physically at the same computer or sharing your screen and microphone for hours every day.

                                                                                1. 7

                                                                                  Nobody bothered to actually define pair programming until now, but as this thread demonstrates, there is no obvious clear consensus on what the term means.

                                                                                  So if you say, “oh i was using this definition of pair programming. What do you think about that?” In response, i would say, “i wouldn’t want to work under those conditions either.” And indeed, i have never experienced that sort of pair programming.

                                                                                  In any case, i was clearly wrong about saying this post was a straw man, since it seems people really do advocate for this stuff. But I’ve never experienced anyone use pair programming with the definition you provided. At work, when we say, “pair program” we mean it as, “a short period of intense collaboration on the same code might be helpful.”

                                                                      2. 3

                                                                        It is a dismal slog

                                                                        I’ve always thought of it like being on a chain-gang, splitting rocks in the desert.

                                                                        1. 2

                                                                          I think it has it’s place - for juniors or for the particularly tough problems.

                                                                          That said, I’ve only really enjoyed it with a few people I call friends, generally never enjoyed it with anybody I didn’t get along with anyway.

                                                                        1. 2

                                                                          I guess someone has to link to the (legendary) Stack Overflow response about parsing HTML with regex: https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags

                                                                          1. 2

                                                                            Also

                                                                            Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

                                                                            • Jamie Zawinski
                                                                            1. 5

                                                                              I’ve always hated this quote (and most of its variations). As far as I can tell it boils down to “never use regular expressions”, which is bad advice.

                                                                              1. 3

                                                                                Indeed, I’d rather see someone use a regex where appropriate than try to re-invent a capture-group from scratch.

                                                                                EDIT: I’ve seen some absolutely miserable text-extraction code written by juniors who hadn’t ever picked up regex because it was “icky”. A quick demonstration later the whole module could be deleted and replaced with a handful of neat little regexes, making good use of capture groups.

                                                                                1. 1

                                                                                  I ‘grew up’ with Perl, so in that day and age, it was something that did need to be said…