1. 3

    For codebases with a concrete version, e.g. libraries or binaries shipped to customers: git tag -a #.#.# && git push --tags, then CI picks it up and runs the normal checks and tests followed by deployment to our artifact hosting system or our content delivery system.

    For codebases that are continuously delivered, a new release is built on every master merge. After successful checks and tests, CI builds a Docker image and pushes it to our internal artifact hosting system as well as Amazon ECS ECR. Right now, it’s a manual step to go log in to ECS and stop the running task for the service that was just released. We’re looking into ways to automate it (and I’d love some suggestions).

    1. 2

      I’ll be enjoying my last weekend outside of a software conference planning cycle for the next year. Abstractions 2 is in one year from this weekend (or next, can’t remember exactly) and I’m hosting my fellow organizers for a kickoff barbecue next weekend.

      1. 4

        My sense from using Scala professionally for the past approximate five years has been that most of the interests in building out tooling, infrastructure, etc. in that community are predominantly business-driven. That is, the Scala community tends to produce accelerators as a side effect of business need, not ars gratia artis, as many other communities do: Haskell, Rust, Go, etc. Or, somebody produces something once and doesn’t update it and doesn’t have the resources or skills to build a community around a much used project. This is not a condemnation of maintainers who don’t maintain, but rather a failure of the Scala community to produce a group of curators — people who will take on the load when maintainers abdicate —as well formed and intentional as many other communities have, or a culture of curation. “Disarray” is too strong of a word, but as someone who moves between four languages daily, I can compare communities and their resources pretty well and conclude that my technical decision to use Scala is sound while the political decision frustrates me at times.

        1. 4

          I think it couldn’t be farther from the truth.

          The main source of the embarrassing cycle of “Hype – Failed Promises – Abandonment – The Shiny New Thing – Hype – …” is in fact coming from the academic side.

          To be clear: I’m not blaming students that they drop their work and completely disappear the minute they handed in their thesis, and let other people deal with the consequences. That’s just the way it is.

          The problem is the ease with which they can get things added to the language/library, especially compared to the scrutiny outside contributions regularly receive.

          This pattern has repeated over and over, and I think it’s one of the unchangeable parts of the language/community.

          If you care about a quality, documentation, tooling, then Scala isn’t the right language for you. Simply because “we managed to ship a new version of Scala without breaking every IDE” is not a topic you can write a paper of.

          1. 1

            This is a very important point and I’m glad that you wrote it out.

            Would you say that the Scala ecosystem has a continuity problem because businesses and academia are focused primarily on the now and not necessarily building the road ahead for the community and then maintaining those roads once built?

            1. 6

              Think of it like this:

              The core open-source community is the pizza dough that provides long-term stability and maintenance, and the academia/businesses provide the toppings.

              Some languages have a large base of long-term, open-source contributors – they are family-sized pizzas which can accommodate a lot different toppings. People can get their favorite piece, everyone is happy.

              Scala is different. It has barely any substantial open-source contributors remaining – and everyone is fighting over the toppings to be placed on that coin-sized piece of pizza dough. As a result the kitchen is a complete mess, and nobody is happy.

              Scala’s problem is not the focus of businesses or academia, but that it doesn’t have any focus on it’s own.

              There is literally no one left (since Paul walked away) who is able to establish or uphold any kind of technical standards, or tell people “no, we are not adding another 6 new keywords to the language”. Heck, they couldn’t even get their compiler test suite green on anything newer than Java 8, but they kept publishing new versions anyway since 2017!

          2. 2

            conclude that my technical decision to use Scala is sound while the political decision frustrates me at times.

            Of course you would claim it’s sound, but is that objective? What do you base that decision on? Genuinely curious here.

            1. 2

              Thanks for asking. I based my decision mostly on architectural analysis with a healthy dose of personal experience. We’re building a new product with cloud and on-premises components. Originally, I’d intended to build everything from scratch but my team identified some OSS that did 100% of we needed with some extra complexity in managing it. The trade-off was a much faster time to delivery in exchange for playing in someone else’s sandbox and by their rules. That aspect was worth it but I lament not being able to write it all in Scala!

              However, our cloud services are written mostly in Scala. We have a few stateless microservices for which Scala was a great fit: high-performance OOTB for what within six months will be ~500 req/s and within two will likely exceed 4,000 req/s for one component with another being far more I/O bound. We’re integrating heavily with ecosystems that have Java libraries and we’ve found decent Scala wrappers that give us idiomaticity without building and maintaining them ourselves. We could have used just about any stack for these couple of services but Scala’s enabled us to express ourselves in types and exploit the advantages of functional programming. I’m chasing the holy grail of “it’s valid because it compiles” but we’ve got enough unit tests to complement our design that I’m pretty sure we’re on the right track.

              One notable failure was on service that is primarily a user-interactive web app. We had two false starts with Scalatra, which we’re using for the other services, and Play! before switching to Ruby on Rails (temporarily) out of frustration with documentation, lack of examples, lack of drop-ins like what are commonly available in the Rails ecosystem, from whence I came many moons ago. We chose Rails because of the component owner’s experience with it as well as my experience with it and JRuby, knowing that if we started to implement any shareable logic, we could do so in a way that all of our apps could consume. We learned about Lift too late and http4s and some others didn’t give us the right impression for a web app. I just learned about Udash last week and it may be a candidate for replacement. However, it’ll be several months: even uttering R-E-W-R-I-T-E would be kiboshed from on high at the moment as the component does what we need right now.

              Moving forward, we’ll be looking at moving some of these services to http4s, etc. once more of my team is comfortable with more hardcore Scala FP. Writing AWS Lambda functions in Rust is also on my radar, as a part of our on-prem product is written in Rust.

              1. 1

                Out of curiosity, did you evaluate Elixir? The obvious draw is the Ruby-like syntax but it seems that the Phoenix framework has a great concurrency story on top of being a Rails-inspired ‘functional MVC’ framework.

                1. 1

                  There was a running joke on my team and another about us throwing everything away and doing it all in Elixir! I mused about it a little but decided that we were better off in RoR because we can hire for it more easily if we ended up committing to the RoR implementation long-term and because we could run RoR on JRuby as a transition step back to Scala, should we have enough business logic to merit a shared implementation. So far, the latter hasn’t been the case since the app is 95% CRUD.

                  I’d really like to see an analysis of the websocket concurrency story of Elixir, Scala, and Rust, with perhaps some others for more general applicability. Our app is using good ol’ fashioned HTTP requests right now but we’ve identified some opportunities to shave some transfer overhead by switching to websockets eventually.

                  1. 1

                    That’s funny. I guess Elixir has some visibility in this space. I’m planning to use it to build a proof-of-concept. For me it’s the developer experience, combined with the performance and concurrency profile. Here are some comparisons: https://hashrocket.com/blog/posts/websocket-shootout

                    More results available here: https://github.com/hashrocket/websocket-shootout

                    1. 1

                      Thanks for those. I’m sad that they’re out of date but the info is useful nonetheless.

            2. 2

              I don’t think that’s fair at all. There are a number of actively maintained projects that are at the center of the community.

              I do think there are relatively few well maintained libraries outside of that core, but I think that’s a result of the community being relatively small, and the escape hatch of having java libraries available to do almost everything.

              Community (non corporate) projects and organizations:

              • All typelevel projects
              • monix
              • Scalaz
              • Sbt
              • Ensime

              All widely used, all with large contributor bases.

              Additionally the alternative compilers, scalajs and scala native.

              1. 4

                At least from my perspective it seems that:

                • Typelevel is more busy in dealing with US politics than writing software,
                • Monix is largely a one-man show,
                • Scalaz is one of the main departure points for many people that move to Haskell,
                • Sbt is so great that everyone is trying to replace it, and
                • Ensime …? You just literally read the article by the Ensime creator.
                1. 2

                  I do think there are relatively few well maintained libraries outside of that core

                  The Scala community does have a solid core and near-core extension community. I consider libraries like Monix, Cats, and Scalaz to be nearly a part of the standard library because of how often they are used. sbt and ensime are important but they’re not exceptional: every stack needs a build tool and editor integration. These are solid now, and I appreciate the work that goes into them. Frankly, it wasn’t until sbt hit 1.0.0 that I considered it ready for widespread use because of its obtuseness/unergonomic interface prior to then. I’m eager to see what Li Haoyi’s mill will become.

                  Things I’ve noted in the past that I’ve found in a less-than-desirable state compared to other stacks:

                  • Internationalization - fragmented ecosystem, sbt plugins outdated
                  • Authentication & Authorization - no nearly drop-in solution like Devise in the RoR ecosystem
                  • Project websites being down for weeks because someone forgot to re-up the TLS cert, even in a LetsEncrypt automation world
                  • Out of date documentation to the point of being dangerous practices with little more than a “someone submit a PR to fix that”. I get that maintainers get busy but when safety is the topic, is it acceptable to wait for a drive-by contributor to get it right and contribute the correction? What if they do that and then no maintainer merges it for years?

                  The Scala Center has the promise of addressing much of it but I speculate that it’s insufficiently funded to be the ecosystem plumbers and teachers it aspires to be. I’ve been impressed with its work so far, though.

              1. 4

                For folks like me who’ve been running the experimental Metal renderer for a while, I think this is the same one.

                1. 1

                  I wasn’t on beta, so this is nice to know about!

                1. 37

                  I think practically all “Why You Should…” articles would be improved if they became “When You Should…” articles with corresponding change of perspective.

                  1. 23

                    An even better formulation would be “Here is the source code for an app where I didn’t use a framework. It has users, and here are my observations on building and deploying it”.

                    In other words, “skin in the game” (see Taleb). I basically ignore everyone’s “advice” and instead look at what they do, not what they say. I didn’t see this author relate his or her own experience.

                    The problem with “when you should” is that the author is not in the same situation as his audience. There are so many different programming situations you can be in, with different constraints, and path dependence. Just tell people what you did and they can decide whether it applies to them. I think I basically follow that with http://www.oilshell.org/ – I am telling people what I did and not attempting to give advice.

                    (BTW I am sympathetic to no framework – I use my own little XHR wrapper and raw JS, and my own minimal wrapper over WSGI and Python. But yes it takes forever to get things done!)

                    1. 2

                      Thanks for the Taleb reference. I didn’t know it existed, and so far it is a good read.

                      1. 1

                        His earlier books are also good. It is a lot of explaining the same ideas in many different ways, but I find that the ideas need awhile to sink in, so that’s useful.

                        He talks about people thinking/saying one thing, but then acting like they believe its opposite. I find that to be painfully true, and it also applies to his books. You could agree with him in theory, but unless you change your behavior then you might not have gotten the point :-)


                        Less abstractly, the worst manager I ever had violated the “skin in the game” rule. He tried to dictate the technology used in a small project I was doing, based on conversations with his peers. That technology was unstable and inappropriate for the task.

                        He didn’t have to write the code, so he didn’t care. I was the one who had to write the code, so I’m the one with skin in the game, so I should make the technology choices. I did what he asked and left the team, but what he asked is not what the person taking over wanted I’m sure.

                        In software, I think you can explain a lot of things by “who has to maintain the code” (who has skin in the game). I think it explains why the best companies maintain long term software engineering staff, instead of farming it out. If you try to contract out your work, those people may do a shitty job because they might only be there for a short period. (Maybe think of the healthcare.gov debacle – none of the engineers really had skin in the game.)

                        It also explains why open source code can often be higher quality, and why it lasts 30+ years in many cases. If the original designer plans on maintaining his or her code for many years, then that code will probably be maintainable by others too.

                        It also explains why “software architect” is a bad idea and never worked. (That is, a person who designs software but doesn’t implement it.)

                        I’m sure these principles existed under different names before, and are somewhat common sense. But they do seem to be violated over and over, so I like to have a phrase to call people on their BS. :-)

                        1. 2

                          Yeah, the phrase works as a good lens and reminder. Interestingly, as most parents will attest to - the “do as I say not as I do” is generally unsuccessful with kids. They are more likely to emulate than listen.

                    2. 2

                      I definitely agree with this change. It’d get more people thinking architecturally, something that’s sorely needed.

                    1. 10

                      Google usually tells everyone what the best way to do things is

                      Why is this?

                      I speculate that it may be because organizations of its size have the resources – budget, mostly – to do research. They’ve been right enough that the industry tends to trust them without individually vetting everything that they do. Maybe there’s a hefty amount of cargo cult around it, too: it works for Google, so it’ll work for we common folk, and they tell us that it works so we believe it even more. It’s sales of a different kind.

                      1. 3

                        I’ve used ScalaCheck in the past but I’m not actively using it presently out of expediency.

                        I’m really interested right now in finding a tool that can look at a database table (MySQL currently) and generate records for it. I’m slowly tracking down a bug that seems to affect how some data is stored by a third-party app whose database I’m having to access directly (long story). Finding a tool that could just generate some rows would save me a lot of time.

                        1. 3

                          I’m surprised that the author managed to follow around 5000 (if I understood the article correctly) people on Twitter. it seems like the amount of noise on your feed would make it unusable at that point.

                          1. 2

                            I’m following 867 and my timeline is too much sometimes. I follow virtually no celebrities, a few politicians, a handful of the StockTwits old guard (the whole reason I joined Twitter 10 years ago), and a whole lot of tech people.

                            1. 1

                              Agree. I try to give myself a limit of about 400, because that’s the point where I’ve noticed that it becomes unmanageable. Right now I am following 525, and am overdue for some pruning, but I’m not sure how to do that effectively. :/

                            1. 3

                              I asked an applicant to a job posting I had open to complete a short 30-minute coding exercise when they didn’t have any public code available. Really, they had no Internet presence except for a barebones LinkedIn profile.

                              They provided their code test result as a git bundle and specifically called attention to their commit history. I was thoroughly impressed. It was like they’d memorized Deliberate Git, my favorite talk about git etiquette. Their code was great and the story the commit messages told was enlightening. They got an interview.

                              1. 1

                                They got an interview.

                                Typo?

                                1. 2

                                  Why? Singular they is a thing.

                                  1. 1

                                    When you don’t know their identity (see what I did?). “Whoever broke in cleaned their tracks”.

                                    It causes confusion when used in cases like this.

                              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.