1. 13

    One thing that a co-worker drilled into me about 5 years ago now was to accept that code is fundamentally communication. The code that you work on every day is not written for you, it’s not written for your boss, it’s not even written for your customer. Your customer wants a product or an experience, they don’t care about the code that comprises it.

    Your code is written for the person who’s going to come back to it 3, 6, 9, or 36 months from now wondering why things aren’t working the way they think they should be then, and trying to understand what the mindset was right now at the moment you’re writing it.

    This mentality should drive naming. It should drive design. It should drive documentation. It should drive even the most basic assurances about how you understand your code to function now, including some of the libraries that you consume and rely upon. That’s a fancy way of saying tests.

    So, code isn’t just about being a sponge for technical documents, the latest frameworks, and the cool new tools. It’s about clearly communicating your present mindset for consumption by somebody else.

    Here’s an actionable exercise: write an program — Conway’s or ENIGMA or something — and come back to it in a year.

    1. 1

      What is the impact on not-that-old Mac games that are unlikely to be updated?

      1. 2

        I find literate coding to be one of the best ways to learn. I wish more folks did this. My big takeaways from this are the existence of Tango and static_http_cache.

        I wish there was more tooling support for literate coding. What are some IDEs, editor plugins, etc. that facilitate literate coding?

        1. 2

          For this project, I didn’t have any special editor support, but I did heavily rely on entr to trigger converting Markdown to HTML whenever I saved in my editor, and livereload to trigger my browser to reload whenever the HTML file was updated.

          It may seem minor, since neither operation is time-consuming, but before I found those, there were so many times I’d forget to do either or both steps because I was busy thinking about how best to phrase something. It’s been said many times before, but lowering the iteration time of any creative endeavour is always immensely positive.

        1. 3

          The product that I’ve been working on for the better part of a year is going into production this month. This week, we’re figuring out the deployment automation parts. We’ve decided on Terraform, so we’re learning about it and finding a lot of solid examples for how to deploy our several services to AWS.

          1. 1

            What’s the stack you’re working on? Our team has looked at Terraform and Cloudformation in the past but decided on using Jenkins and Ansible instead. Working with NGINX, PHP 5.6, MySQL 5.6, Redis, and Cloudfront over here.

            1. 2

              Mostly Scala: Scalatra + Jetty, with no database for any part: two apps are acting as A&A for S3 buckets, while the other is A&A for a Kinesis sink. We have another part that’s Rails atop Postgres but we’re keeping it in Heroku until we get the other components stable. There are some other teams within my org that are Rails shops. Everyone’s doing something a little different so we’re going to powwow in June about a unified deployment methodology and platform.

          1. 3

            A tool I’ve used that’s pretty great is tj, which has convenient colored output and some more configurable output options. This example with Docker shows a little of what it can do visually.

            1. 12

              You basically copy-pasted the article I wrote from http://2f30.org/guides/openbsd-httpd-cgit.html . The referenced link in your post is wrong (typo 2c30 -> 2f30). Booo!

              Here is the most up-to-date version (as linked from 2f30): https://codemadness.org/openbsd-httpd-and-cgit.html . It has some notes to make cgit tarball snapshots working.

              A related article for git hosting: https://codemadness.org/setup-git-hosting.html

              Edit: thanks hir0 for updating the article! It is totally fine now.

              1. 5

                I will admit I used a lot of the advice on your blog post to help me set up my server. I’m sorry it came across so copy-pasted. I’ve added a section to the top of the post to make it very clear that this post wouldn’t exist without your work. Also, sorry about the typo, that’s fixed now.

                1. 1

                  Are you suggesting this is plagiarism?

                  1. 3

                    Quickly comparing the two, the submission is actually less helpful than the parent comment’s article, which says what stuff to install. The submission leaves that exercise to the reader.

                  2. 1

                    Just wanted to drop by to say thank you for writing that article. I’ve been running my own git server for a couple of months now.

                    Now I only have to find one for setting up an email server ^_^.

                  1. 7

                    Should be treated like an airliner crash: Investigation, lessons learned, improvements to make sure it’s not repeated.

                      1. 2

                        I don’t know what more we can ask for.

                        Improvements will be made.

                        No company wants this liability.

                        1. 8

                          I don’t know what more we can ask for.

                          At least one human in jail.

                          And if Uber cannot prove that it was the first time a test driver was distracted during drive, at least the whole board of directors of Uber in jail.

                          1. 4

                            At least one human in jail.

                            It’s very likely that there will be a scapegoat or two.

                            But I think this is probably good for the industry.

                            I’m no historian, but I imagine that this is a little bit like when the first airplanes were invented. At first there were no rules. You just made and airplane and flew around.

                            Until some bystander got hurt or killed. In those days, we were not such a litigious society, so most people probably said tough luck.

                            But eventually we had passenger travel, and the government decided we needed rules and the FAA (or whatever came before it) was created. They make the rules.

                            At first, air travel was not so safe. But after every accident we improved.

                            And when there were accidents, there were liability lawsuits. If gross negligence could be proven, then maybe even some airline company executives went to jail???

                            Even now, when there is human error and an airliner crashes, I don’t think anyone goes to jail?

                            We are still in the early days.

                            1. 1

                              What does that solve?

                              1. 9

                                It has a net-positive social effect.

                                1. Giustice.
                                2. the U.S.A. would prove to their citizens that they hold the monopoly of the legitimate use of physical force: otherwise, if you accept that a company can kill, killers will all become entrepreneurs
                                3. all the future boards of directors of any robotics company will take human safety very seriously and will continue to take it seriously every time a board of director go in jail
                                4. the whole DataScience/AI industry will learn to sell just what they can explain (aka debug) and prove correct (which is much more than you think, actually!)
                                5. the whole software industry will begin to take software quality as a serious topic
                                6. ISIS won’t have a very good reason to infiltrate AI software companies in the U.S.A. …

                                I think I could go on for a while…

                                1. 1

                                  if you accept that a company can kill, killers will all become entrepreneurs

                                  It’s called a private milicia. They’ve been there before Uber and Google. 🙄

                                  1. 3

                                    Are you stating that in the U.S.A. a private militia has the right to kill people without questions from courts?

                                    I really did not knew that!

                                    Because, you know, some people says you should not require explanations from an AI!

                                    And if a private militia can kill people with that same freedom… I can suddenly understand U.S.A. problems with guns!

                                    1. 2

                                      It’s the 2nd Amendment: final check against government corruption when all three branches fail to do their job. Given how divided the media keeps US, it will basically turn into a shooting gallery with each side taking on their media-designated enemies.

                                      The only neutral scenario I could think of where it may apply is people taking out politicians that took bribes to pass laws that harmed consituents. And were immune to prosecution. People on both sides tend to look down on whoever takes bribes for laws. As in, it enforces integrity of essential system with everything else handled within the system.

                                      Id still be afraid to see any use of 2nd Amendment play out, though. Will be a lot of collateral murder.

                                      1. 0

                                        @nickpsecurity I read your reply three times, looked at wikipedia and still I do not understand what you mean.

                                        The monopoly of legittimate use of violence is given to states by their people.

                                        No State is obliged to respond in courts about each single life it takes to preserve law.
                                        That’s because the state itself represent the Giustice (on behalf of its people, in a democracy).

                                        The state does not need to explain why it kill: the explainations are due for the people that reppresent the state (police, judges and so on..) to ensure they do not abuse the power the state give them.

                                        Does the 2nd Amendment give the U.S.A. citizens the same right of the state?
                                        That would explain @oz comment, but still it sound extremely strange.

                                        For example, why killers do not always appeal to it when in court?

                                        1. 3

                                          Quick request: If you reply to someone, they get an email saying that your replied. If you use @ in front of name, they get another email saying they were “mentioned” in same thread. I suggest leaving out the @ when it’s the person you were replying to so they just get one email. I also leave it off if it’s another party if they’re already reading the thread.

                                          Regarding 2nd Amendment, the wording of the Amendment was ambiguous leading to two interpretations:

                                          1. It’s an individual’s right to bear arms to use in self-defense against all enemies. That might include people attacking them, corrupt politicians, or foreign invaders. Some of these organize into unofficial militias that are basically groups that share this belief in a specific locale. There’s over 200 of them.

                                          2. It’s about a state-level, military organization governed by the laws of that state and controlled by its governor. That’s basically the Army and Air National Guard. These often also have police powers in a state, too.

                                          There’s no consensus on the subject. No 1 is used to justify gun ownership. Presidents also used to shoot people on the streets in less-civil times. No 2 is implemented across the states, too. I’m in No 1 territory just because I doubt U.S. military personnel make a good check against U.S. military personnel: probably see each other like cousins in a big family. There are some court opinions from long ago suggesting No 1 is OK when three branches fail to do their job. Anyone trying it will be imprisoned for murder, though, after being villified by whatever side voted for that person. Generally, most just move to a state that runs things the way they like tolerating the government’s abuses.

                                          The militias are doing nothing waiting for The Big Moment when the federal government does something so bad it justifies them going to war. We’ve had smaller moments over and over and over: Feds like so-called “fait accompli” strategy where they do a little bit of evil at a time building up power slowly with each move independently justified with media narrowly focusing on it in isolation. Like the boiling frog metaphor, the citizens tolerate more corruption that way with them not seeing bigger picture or slowly forgetting why certain things happened to begin with. The Big Moment won’t come because it already did over time. A worse situation will down the road. I found it illuminating to compare the abuses listed in Declaration of Independence that justified war on British rule against the abuses of current U.S. government. There’s too many similarities.

                                          The militias haven’t done anything about anything, though. Mostly just drink, socialize, and sport shoot in the woods that I can tell. The folks that have shot politicians have usually been crazy or evil doing it for their own reasons. They’re really random. They definitely don’t help justify any legitimate use of 2nd Amendment when that happens: every shooting has people try to roll back No 1 on the list. Who knows what will happen in future but that’s the relevant background on the subject.

                                          1. 2

                                            Thanks nickpsecurity.
                                            Sorry for the duplicated mails… my fault, but maybe Lobste.rs misses a DISTINCT clausole.

                                            Your post gave me an interesting and deep historical perspective over a U.S.A. issue that I cannot really understand as an European.

                                            This deeply improve my understanding, thanks!

                                            Anyone trying it will be imprisoned for murder, though…

                                            This is the point, I think: a State cannot allow anybody to kill without responding in court for murder. That’s just because otherwise it would loose the key of its own power: legitimacy over its use of violence.

                                            This does not means that each person responding on court of a murder is guilty and will go to jail. Just that he has to prove that the death was not reconducible to his own actions.

                                            So, in this case, Uber must prove that they had no way to prevent the death.

                                            Eg they cannot test the car in roads closed to the public traffic, they had never observed another driver distracted at the driving seat before, that the car was correctly manutened, that the LIDAR system was tested to work at that speed and lighting conditions, that the various AI component had no bug and so on…

                                            1. 2

                                              Yeah, they should have to explain that stuff if they were to get tried for it. The case for many companies is they just get investigated and sued with their lawyers holding it off. Sometimes they loose a lot of money on it. Their next move is to do the minimum necessary to avoid a similar loss. This might achieve real, risk reduction. Or it will be a dodge with another disaster down the road.

                                              Most of the time these are mechanical processes we understand really well. Self-driving cars aren’t. So, I have no idea what will happen just because a robust version of the concept hasn’t been demonstrated even by academics. They might even be able to use that as a defense: “we did all we could. Not even cutting-edge R&D was doing much better on correctness.” Of course, the LIDAR results vs the Grand Challenge I read about long ago makes me think there were some truly reckless acquisition and testing practices. Hopefully, lots of LIDAR experts can chip in testimony saying it’s total garbage to set some kind of baseline for what’s acceptable.

                                              Seeing and responding to a big-ass object right in front of it should probably be in the baseline. ;)

                      1. 3

                        Did you try to apply terminal padding?

                        Like this: https://i.redd.it/rh3n3dxby8fy.png

                        Every terminal has its own setting how to do this kind of padding, i.e. for gnome-terminal or xfce4-terminal you can set it like this:

                        [~/.config/gtk-3.0]$ cat gtk.css 
                        VteTerminal, vte-terminal {
                            padding: 20px;
                        }
                        
                        1. 1

                          That screenshot looks so… zen.

                          1. 1

                            What does this do?

                            1. 2

                              Not OP, but padding is spacing inside the object. So the text gets pushed 20px away from the border.

                          1. 21

                            Is anyone else bothered by the use of the term ricing? As far as I know it is co-opting the automotive term which has racist origins.

                            1. 21

                              If somebody brings up ricing and linux, I have to think of this old site making fun of gentoo users w/o a clue:

                              https://web.archive.org/web/20080830031318/http://funroll-loops.info/

                              1. 15

                                This thread got pretty ugly. It started out good talking about the history of the term and what it means to people but has sunk into personal attacks. If someone would like to cite academic sources on the history of the term in tech or racing, go ahead, but otherwise we’ve stopped adding new information and this thread is done. Please don’t post further comments.

                                I’m also going to delete the comments with personal attacks. Please don’t do this. If you’re right, being mean doesn’t make you more right. Nobody has ever taken incoming vitriol and abuse are a sign that someone must really be worth listening to and seriously considering, and they’re not appropriate here.

                                Tagging so everyone in the thread sees this: @fimad @fs111 @voronoipotato @djsumdog @mjtorn @nebkor @brendes @btaitelb @dz @vhodges @leolambda

                                1. 5

                                  Sorry, I missed this because I was writing the post and went out to the food truck. honest mistake, wasn’t trying to be a butt. I got a little reactionary there, it won’t happen again.

                                  1. 3

                                    Nobody has ever taken incoming vitriol and abuse are a sign that someone must really be worth listening to and seriously considering, and they’re not appropriate here.

                                    Let’s etch that in bronze and hang that over every discussion area on the Internet, please.

                                    1. 2

                                      Exactly.

                                  2. 13

                                    Hmm, I didn’t know about that at all. Would be nice to have a better term. Customization seems too general.

                                    1. 10

                                      “Tweaking” seems to capture it pretty well.

                                      1. 9

                                        I considered that, but “tweaking” also means being high on stimulants, which is just common enough in the hacker community that I think it would be confusing.

                                        Perhaps modding, but that’s already a massively overloaded term: game modding, hardware modding, etc.

                                        I’m inclined to use “dotting”, as in “dotfile”, but also with the connotation of meticulousness (as in “dotting i’s and crossing t’s”. Its alternate definitions are pretty tame, as well.

                                        1. 1

                                          Dotting sounds what a dotard does, but I guess that’d be “doting”.

                                          1. 1

                                            Yeah, good point. I like “styling”.

                                      2. 7

                                        tuning, maybe?

                                        1. 1

                                          That looks more apropriate: https://en.wikipedia.org/wiki/Tuning

                                          Fine tuning a computer environment” could be your job. “Like car tuning but for software” would be the hobby.

                                        2. 5

                                          from other communities: Hot Rodding (cars - more Chip Foose than useless spoilers on the back) and Modding (computer cases)

                                          1. 3

                                            Given that there’s a lot of style at work, maybe “peacocking”, spiffing up”, “turning out”, something riffing on fashion.

                                            1. 2

                                              It’s like styling, but like even more so. Stylizing?

                                              1. 4

                                                Styling is good, yeah. “Stylize” actually means “to depict or treat in a mannered and nonrealistic style”, so I don’t think it’s really applicable here.

                                            2. 3

                                              I had never seen it used in the Linux desktop. The term ricer may not have the same racist meanings as before but two things are common about ricers in my area:

                                              1. mostly second hand Japanese cars because they are cheap but American pickup trucks are also part of it
                                              2. many ricers seem to be of Hispanic ethnicity so it’s no longer a racist slang about Asians

                                              My personal view is that, even when a word has no racist origins, if there is a specific ethnicity that it applies to, it will quickly become a racist word anyway. Luckily there are more and more white dudes who bought their first car and became a ricer 🍚

                                              1. 5

                                                I had never seen it used in the Linux desktop.

                                                My perspective is exactly the opposite – I have never heard this term in connection to cars, just with *nix customization, especially in and around the Linux/Unix community. In over 4 years I’ve never heard anyone use it in any other context, nor was I in any sense aware that it had this other meaning. And I would suppose that most people, especially non-car enthusiasts like me would have probably never found out, nor use the term with this connotation.

                                                All in all, it seems like a fantastic starting point for a horrible confusion…

                                              2. 5

                                                Yes, and yes. :( . It’s unfortunate when a racist term becomes so normalized that it’s just vernacular. Then the people who want to use it xenophobically basically get to do so and nobody speaks up because it’s just a word everyone uses. The term in guns is “Tacticool”. Perhaps there’s a good word for this that is less regressive and a little more general.

                                                1. 5

                                                  It doesn’t have racist origins; or at least not in the context we used it in back when I was in various SCCA and use to race. A ricer is just someone who adds all kinds of shit to their car. Each sticker adds 2hp. The K&N air filter adds 10hp. Big cardboard wing adds 90hp. Fart can exhaust adds 30hp. That carbon fibre hood? 120hp right there.

                                                  Most ricers were white. They were just kids who didn’t know dick about cars and pretended they did. They’d fill the parking lot and hang out in their riced out Hondas while the rest of us raced. I mean if you stretch, some people might trace ricer back to the term wigger referring to white people enacting black culture.

                                                  Ricers had nothing to do with race and more to do with shitty car mods like these: https://www.reddit.com/r/Shitty_Car_Mods/

                                                  1. 12

                                                    Ricer aka rice burner kinda does though because it was about japanese cars. Yes this is where the term comes from and no I’m not shitting you.

                                                    Rice burner is a pejorative, used as early as the 1960s, originally describing Japanese motorcycles, then later applied to Japanese cars, and eventually to Asian-made motorcycles and automobiles in general. The term most often refers to vehicles manufactured in East Asia, where rice is a staple food.

                                                    I’ll be honest terms like wigger are also regressive. I’m not telling you how to speak or trying to say this is what you meant by it. Obviously you can use a word with racist or ethnocentric origins non-racistly. Just keep in mind that not everyone who uses it is using it the way you’re using it. Also keep in mind that someone who sees you using it might think you have it out for a specific ethnicity until they get to know you a bit better.

                                                    Frankly the title evokes a “Yikes” from me but in a “Yikes they don’t even know how bad that sounds” way. Like people who know you will probably go “Oh but that’s djsumdog, he doesn’t mean it in a racist way”, but wow it is just a really bad idea to lead with a racially loaded term in your article title to the general public.

                                                    1. [Comment removed by author]

                                                      1. [Comment removed by moderator pushcx: https://lobste.rs/s/es3acm/how_i3_vim_ricing_enhance_my_developer#c_u525ta]

                                                        1. [Comment removed by author]

                                                          1. 0

                                                            Someone can be unaware of how racist language affects thoughts and opinions without “being a racist”. Being said yea just because you heard the term from a person of the affected group does not mean it’s cool to say. Case in point if you dropped the n-word because you saw a black person doing it you’d probably get some frowns.

                                                            1. [Comment removed by author]

                                                              1. 11

                                                                I think that’s a really good definition of a microaggression, a term that people don’t knowingly use offensively, but which has offensive origins and still conveys that offensiveness to some.

                                                                Growing up, I’d use the term jip [sic] all the time as a synonym for screwing someone over in a deal. I actually thought it was less offensive to say than to say screw. Then I learned that the word has racist origins about stereotypes for Gypsies, so I went through the process that I think a lot of us go through. At first I was defensive because there was a discongruity in my reality between how I saw myself and how others might see me, so I rationalized that the word didn’t really mean that any more. And if someone happened to be offended by it, they were probably just being overly sensitive and should get a thicker skin.

                                                                But over time, I realized I had the choice when using words, and that it’s not up to me to dictate how others should feel. So I slowly started correcting myself, because when given the choice, I’d rather not use words that offend a group of people, especially when I’m not part of that group.

                                                                1. 3

                                                                  I didn’t think you meant that, sorry I was responding to the intense reaction to your post. Yeah I do think that’s the case. The root problem is like when you use a word that has racist origins, and a racist takes it as like “Ah they also hate the japs” validation for their racist attitudes. Which is bad. It also sucks because words that are that way primarily the racists, and the marginalized know what it means because they grew up in an environment where the intention behind the origin was more clear.

                                                                  I hope you understand I do not agree with painting you as a bad guy simply because you grew up in an area where a word was the norm and you didn’t see harm with it. Doesn’t mean there isn’t harm? It just means it was the norm and you were used to it and it would be exceptional for you to escape that norm, and not the default expectation. At least you’re not shutting down the discussion.

                                                                  Suffice to say, normal people have likely forgotten it, racists remember these things with a death grip and will use it to dehumanize people as much as physically possible.

                                                          2. 3

                                                            You quoted it yourself: it’s pejorative, not racist. The difference is significant, yet the whole point is moot, because so few people are neurotic about political correctness in slang etymology[citation needed]

                                                            1. 5

                                                              Things can be both pejorative and racist? Many racist things are pejorative. The term is racist because it uses East Asian products as a way to describe inferiority. To put in in a more personal way it would be like me saying “oh that’s snake code” as a pejorative for python programmers.It tries to illogically assert that since you’ve seen a python programmer make bad code, that a python programmer can never write good code. This is of course is horseshit, and is bigoted against python programmers. I’m merely trying to dislodge bullshit like that from the public consciousness.

                                                              1. [Comment removed by moderator pushcx: https://lobste.rs/s/es3acm/how_i3_vim_ricing_enhance_my_developer#c_u525ta]

                                                                1. [Comment removed by moderator pushcx: https://lobste.rs/s/es3acm/how_i3_vim_ricing_enhance_my_developer#c_u525ta]

                                                                  1. [Comment removed by moderator pushcx: https://lobste.rs/s/es3acm/how_i3_vim_ricing_enhance_my_developer#c_u525ta]

                                                                    1. [Comment removed by moderator pushcx: https://lobste.rs/s/es3acm/how_i3_vim_ricing_enhance_my_developer#c_u525ta]

                                                                      1. [Comment removed by moderator pushcx: https://lobste.rs/s/es3acm/how_i3_vim_ricing_enhance_my_developer#c_u525ta]

                                                                        1. 1

                                                                          There’s nothing wrong with LeoLambda’s article, I liked it too. The title gave me a yikes, but that doesn’t mean that they’re a bad person it probably just means they either didn’t know about the origin of the word, or they knew about it but thought it wasn’t used that way anymore. I also like talking about culture, it doesn’t mean I’m virtue signaling. Though frankly I think you are virtue signalling to the pc-panic crew. You basically pooped your pants when you read the word racist like christ himself was being crucified. Exploring alternative words that are less racist isn’t virtue signalling it’s called not being actively hostile to an entire demographic for no reason.

                                                                        2. -1

                                                                          Potentially ironically, “hysterical” has sexist origins.

                                                                          This whole conversation is a little frustrating to me. I hope @mjtorn and @brendes are just reading past what’s being said to them, due to defensiveness and confirmation bias. The responses to their comments aren’t being worded to tiptoe around their feelings, which is also pretty understandable—these conversations are an emotional investment, and there are lots of aggressive racists out there who will throw that investment back in your face. I don’t really have a solution, but I think the situation is regrettable. The path to realization that subtle racism is everywhere always seems to involve an epiphany after the fact, not careful reading and understanding of the arguments.

                                                            2. 7

                                                              From my experience it is probably racist. Case in point: In Edmonton they call riced cars ‘Nip’d up’ (racial slang for Japanese) since it would be mostly Asian drivers doing the mods.

                                                          1. 4

                                                            What are your thoughts on the plain text accounting ecosystem, for example Ledger CLI? Would that be a sufficient replacement for moneywell if you had some scripts that produced the graphical reports that you want?

                                                            1. 5

                                                              It’s not graphical reports that I want (I never use them actually). I want something that does envelope budgeting that will automatically distribute income to the envelopes based on a spending plan (recurring bills, expenses, etc). It’s the one feature keeping me on MoneyWell, which I’ve used since 2008.

                                                              1. 5

                                                                I understand. I used to do envelope budgeting but got away from it as my income grew and my expenses didn’t.

                                                                It’s possible to do envelope budgeting with ledger with a little planning. It might not be as easy, though, and there’s still much room in the ledger community to improve automatic downloaders.

                                                                1. 1

                                                                  Have you looked into GoodBudget?

                                                                  1. 2

                                                                    No, I don’t really want to use a web app for managing my finances.

                                                                    1. 1

                                                                      There are also native mobile apps for both Android & iOS.

                                                              1. 1

                                                                Wiz. The more distributed social apps, the better, I say.

                                                                1. 6

                                                                  We’ve finalized the speaker list for Heartifacts, a mental health and community building conference by Code & Supply† I’m organizing here in Pittsburgh. We’ll be announcing speakers this week once all have ACK’d. I’m excited about the line-up!

                                                                  Recently, I made a few tweaks to homebrew-bundle to improve its usability and speed.

                                                                  This week, I need to send my work Mac in for repairs, so I’m going to spend some time honing my home directory management stuff to more cleanly work on my personal Mac, which I’m subbing in for the duration that the work Mac is in the shop. It’s using an older, non-versioned version of my home directory stuff and is sorely out of date compared to the hotness on the work Mac.

                                                                  group behind Abstractions and Uptime

                                                                  1. 2

                                                                    Why this over something else?

                                                                    1. 16

                                                                      Good bittorrent daemons are hard to find. rTorrent is common but it tacks on this difficult curses interface you have to deal with. Transmission is okay but it tends to get buggy and break down at scale. Deluge is buggy as hell. btpd is too bare bones, a lot of important features are missing. All of these options also have really poor RPC protocols that use a lot of network, are annoying to write clients for, and don’t scale.

                                                                      synapse focuses only on being a good daemon and delivers only that. The UIs are offloaded to separate projects. If that doesn’t seem like much, that’s because it’s not - but surprisingly this is not easy to find. We made it because there were no good options.

                                                                      1. 3

                                                                        Transmission is okay but it tends to get buggy and break down at scale.

                                                                        I must not have used it at scale before, it always seems to work for me. What sort of failure modes do you observe? Corrupted downloads? Halted downloads w/peers available? Other?

                                                                        1. 9

                                                                          Transmission crawls to a halt if you have several hundred torrents. The RPC protocol also becomes unweildy, because it polls for updates and has to resend large amounts of data every time it refreshes. Synapse is more performant with large torrents or a large number of torrents and the RPC is push based, with subscriptions and differential updates.

                                                                        2. 2

                                                                          Has synapse been tested at scale then?

                                                                          Everything I’ve tried has been horrible at scale except rTorrent, and most of the non-rTorrent choices can be pretty horrible even when at a modest amount of torrents (qBittorrent at a certain point ‘invisibly’ adds torrents etc.). With rutorrent as the frontend, I’ve been pretty happy with rTorrent.

                                                                          Synapse looks interesting, though I’m not terribly enthuasiastic about the node.js webclient (the node.js Flood client uses significantly more resources on my system than does the php rutorrent).

                                                                          1. 4

                                                                            Receptor is 100% frontend, pure static content. Node is just used for compiling and packaging it. You don’t even have to install it yourself - a hosted version is available at web.synapse-bt.org.

                                                                            1. 3

                                                                              I’ve done load testing (though not particularly realistic) and it appears that both synapse and receptor perform reasonably at the order of 1000 torrents. One of the goals of the project is to perform well at scale and there’s been a fair amount of ongoing work to achieve that.

                                                                            2. [Comment removed by author]

                                                                              1. 2

                                                                                Sequential downloading and file priority are both implemented.

                                                                              2. 1

                                                                                offloading UI to separate projects

                                                                                I love that approach!

                                                                            1. 7

                                                                              make is also something that every macOS, Linux, or BSD user has available to them. This is a reason why I believe and execute in practice that each project should have a Makefile, even if make compile literally just runs gradle build or cargo build or rake. Each Makefile should have a deps task that somehow installs any development environment dependencies, including pulling Docker containers if they’re used in the development of the project. Each should have a build task that executes any release build stuff but doesn’t run tests. Each should have a test task that executes those tasks.

                                                                              This is especially useful when your organization is not standardized on one language or toolset. By using something basic, something that everyone can understand and already has available, you reduce the barrier to entry for onboarding and encourage folks to share knowledge by encoding their knowledge into that Makefile when they learn a new task to be done in the process of development.

                                                                              1. 2

                                                                                While I absolutely agree with this sentiment, my shop is heavily influenced by Windows development practices. Make isn’t inherent in this environment. I have spent the last year trying to shoehorn my regular UNIX-like routines into the Windows environment (MSYS2 is a real gem and I highly recommend it to everyone on Windows), and now I feel comfortable enough to use these tools I’ve grown comfortable with. There is nothing stopping me from including a Makefile in any repository for any project, I just fear it would be only for my sake.

                                                                                1. 3

                                                                                  The idea is largely “use something that everyone already has and probably knows”. If all Windows developers have a tool that they all have installed, even if that’s Visual Studio, then that’s the unifying, baseline tool that Make is elsewhere.

                                                                                  1. 2

                                                                                    Ah, I should have extrapolated more: our team is all over the map in terms of what we work on. The .NET developers do indeed use VS, but they are beginning to branch out into some Node.js development as well. They will no doubt begin to use task runners for these projects, which in turn could be a good time to introduce Make into the process (or some MS equivalent that can be run out of VS, I’m lost in this are because I don’t do this work).

                                                                                    My side of the team is all PHP developers who don’t really have a build process for what we do, but this is changing as we begin our transition from Magento 1 to Magento 2. Unifying all of us across the team would be fantastic and I’m all for team cohesion at the process level, but there are just situations that may not always work out within a team.

                                                                                    This is getting me to think more about process though and I’m going to start bringing this up at team meetings.

                                                                                    1. 2

                                                                                      If you have VS, you have nmake. In fact you have nmake even if you only have the command line SDK.

                                                                                1. 2

                                                                                  If you’re on macOS and already have Dash.app installed, check out open dash://manpages:$1 (e.g. open dash://manpages:ls).

                                                                                  1. 3

                                                                                    And if you want a nice-ish PDF:

                                                                                    man -t ls | open -fa Preview

                                                                                    1. 3

                                                                                      I put together a script for that. It’s a little overengineered to catch missing dependencies, but it’s kinda nice because it puts the PDF output in $TMPDIR as a cache for subsequent retrievals of the same manpage.

                                                                                      https://github.com/colindean/hejmo/blob/master/scripts/man2pdf

                                                                                  1. 2

                                                                                    “You don’t need a blockchain” is the new “You need a block chain” article.

                                                                                    1. 3

                                                                                      I’ve lost track of the number of organizations and people I’ve talked out of a blockchain solution in the last ~6 years that I’ve seen Bitcoin as more than just a cryptocurrency.

                                                                                      My entry-level question when someone tells me that they want to start their own cryptocurrency:

                                                                                      Are you OK with people buying drugs with it?

                                                                                      If the answer is No, then a cryptocurrency is not their solution. Not because people will buy drugs with it, but because if the creators can control who buys what with their currency, then it’s not a cryptocurrency.

                                                                                    1. 4

                                                                                      I guess there are another few things to add to your threat modeling, if you haven’t considered it already: malicious or incompetent domain registrars and when-I-wake-up TLD administrators.

                                                                                      1. 7

                                                                                        In preparation for tax season, I’m tweaking my plaintext accounting setup. I recorded all of 2017: every transaction that touched my bank or credit cards is queryable. I’m switching processors for 2018 to a setup that’s already saved me about two hours per month. I’d love to get to a point where I can do make irs1040 and it spits out the content of all of the boxes that my transaction data can reflect.

                                                                                        I’ve already got make networth and make cashflow working, complete with nice graphs in the terminal courtesy of iTerm2’s imgcat.

                                                                                        I’m hoping to generalize my setup so that I can release it eventually. I’ve found very few examples of workflows so I want to contribute mine to the world so that the plaintext accounting ecosystem is more approachable.

                                                                                        1. 2

                                                                                          Some friends and me collected quite a few interesting ledger-cli graphs (using GNUplot and a pie-charting tool of mine) on Github: https://github.com/cbdevnet/ledger-reports

                                                                                          Though some of them break when using them with multiple commodities… Might have to get around fixing that some time after my exams :)

                                                                                          1. 2

                                                                                            This looks really awesome! Any chance you could throw up some example images?

                                                                                            1. 1

                                                                                              Good suggestion, thanks! I’ve just opened an issue for that. As I’m not quite comfortable with using my own data for presentation purposes, this will include generating a somewhat-random example ledger file and generating the demo statistics from that :)

                                                                                          2. 1

                                                                                            I’d be very interested in seeing your setup when you’re done. The notion of using a CLI program for doing this sort of accounting intrigues me a bit.

                                                                                            1. 3

                                                                                              A good start is to watch a recording of one of my talks and those of some others who have produced some content about it: https://www.youtube.com/results?search_query=plaintext+accounting&page=&utm_source=opensearch

                                                                                              I’m probably still a few months away from having my stuff sufficiently abstracted.

                                                                                              1. 1

                                                                                                “The notion of using a CLI program for doing this sort of accounting intrigues me a bit.”

                                                                                                It was the default on most cash registers of big chains for a long time. The ones in my area I shop at just now all got the graphical apps. It was mainframe, terminal-style stuff on backend for some. So, CLI on each side. Here is one for UNIX I found when I looked up that stuff.

                                                                                                1. 3

                                                                                                  There’s a difference between CLI and TUI. Most cash registers I’ve seen were TUI, IIRC.

                                                                                                  Still, there’s a certain Spartan flavor to TUIs, such that they can be quite efficient for their tasks.

                                                                                                  1. 1

                                                                                                    Ok, yeah, TUI was more what I was thinking of. The ones I dealt with were usually more efficient than their GUI replacements. Way more reliable, too.

                                                                                            1. 2

                                                                                              Off-topic but relevant to the link: WAPO’s new method of nudging folks with ad-blockers is pretty anti-user. It appears to push the root of the site onto the history, so a reload of the page loads the front page instead of the story. The way to stop it? Stop page loading as soon as the body text loads: the gatekeeper is JavaScript and among the last things to load.

                                                                                              1. 4

                                                                                                I’m using uBlock Origin and uMatrix and I don’t see anything.

                                                                                                1. 1

                                                                                                  Pihole, here.

                                                                                                  1. 2

                                                                                                    I’ve always found the granularity of running my adblock/noscript in-browser to far exceed any convenience advantage enjoyed by a pihole. IP bans just aren’t enough, especially vs “modern” sites with tons of JS.

                                                                                              1. 3

                                                                                                I think MUTE was inspired by ant colonies, too.