1. 2

    I look forward to watching the Mandalorian every evening with my son. Going to watch a few more over the weekend. Hopefully a long walk with my wife if we can still go out.

    Looking for some good movies to watch and things to do with the kids (8 and 11).

    1. 3

      This situation is like having a browser tab that I can’t close, that’s running one of those CPU heavy Javascript things that makes the computer’s fan whir. Doing the best I can, basically.

      1. 4

        Last week at where I work. I chose an interesting time to jump from a mid-sized, rather safe company to a startup. Mostly remoting now. With 2 or 4 children.

        Practicing nim and rust in exercism.io. I’m finding Nim a much more fun language than Rust right now. Many things in Rust are just difficult. There are fine reasons why they are, but it makes the whole experience very awkward sometimes.

        I have a massage appointment this week, and I’m wondering whether it’s safe to go. I’d rather go, because local businesses are certainly in lots of financial trouble and I’d like to not make that worse by cancelling… but there’s some asthma in my close family. Also my grandparents are over 90.

        1. 7

          If you have the financial resources, consider paying them and just not going. It’s going to take everyone staying away from one another to beat this thing.

          1. 5

            Thanks for introducing to https://exercism.io/ It Seems like an interesting and community-driven place to sharpen your tools. Planning to give a try!

            1. 2

              Could you share some examples of some of things you found difficult to do with Rust? I’m curious as someone just starting with it

              1. 2

                One of the exercises was implementing a singly linked list using boxed options. This is a bit brutal task for a Rust programmer. The implementation is basically shown here: https://rust-unofficial.github.io/too-many-lists/second-option.html

                It’s easy to type from an example, but try to figure all that by yourself as one is supposed to do when exercising. Yikes. Of course, every time the Rust Complainer complains at you, it’s for a very good reason. But figuring out what to do about it can be a bit harrowing experience.

                Contrived example. I get an error that’s roughly like this if I remember correctly:

                Expected: &Option<Box<&Node<T>>>
                Got: &Option<Box<Node<T>>>
                

                Try fix it, compile again:

                Expected: &Option<Box<Node<T>>>
                Got: &Option<Box<&Node<T>>>
                

                This can lead you to a endless maze where the only thing that’s certain is that Rust is too difficult for your tiny tiny brain.

                But as I said, a linked list (and other general data structures) is probably a bit brutal task for even a moderately skilled Rust programmer. I’m pretty sure you can be an effective Rust programmer in 99% of the tasks out there without knowing how to do this stuff from scratch yourself.

                1. 2

                  Thanks for the reply! I can understand being frustrated. I think there’s a mantra of sorts that asks one to “lean on the compiler” and let it guide you. Still, the error messages can be arcane and confusing. In any case, your example reminded me of this post about linked lists in Rust a friend of mine shared with me as I was starting to learn about a week ago. I haven’t gone through it yet, but it seems perfect for your use case ;)

                  1. 2

                    I think there’s a mantra of sorts that asks one to “lean on the compiler” and let it guide you.

                    Yeah, that works wonderfully if you’re almost doing the right thing. If you’re way off (like I was), the compiler will be just as confused as you are. Obviously.

                    1. 1

                      Your link seems to be a bit off. It points to Warp.

                      1. 2

                        Corrected! Thanks.

                    2. 2

                      Eh, also got annoyed by similar “bistable suggestions” in Rust error messages when I tried learning it recently. I’ve set it aside since, also because of other annoyances, and am having fun with Nim too ;) Though I think I will retry with Rust at some (unspecified) time in the future. Possibly more than once. It took many failed retries until I fell in love with Vim, and only when kinda forced to by life. It would be awesome to also have Rust as a tool in the toolbelt eventually, to conquer it and become fluent.

                1. 2

                  Not yet… definitely not traveling, and trying to avoid public spaces with lots of people, though.

                  I’ve encouraged the company I work for to come up with a plan and think about how we’ll react when certain things happen.

                  Curious if/when the schools get shut down.

                  1. 5

                    It is bike season! Hoping to put in an MTB ride and a gravel ride.

                    1. 3

                      Why is this tagged ‘erlang’? It seems pure rust, for rust, with only a joking comparison to erlang on the front page.

                      1. 1

                        Because it’s essentially Erlang for Rust, so people interested in Erlang might find it interesting. I’m an Erlang guy myself, and I was curious about it.

                      1. 1

                        Good article; it’s all about the incentives and economics.

                        I wrote something similar a while back: https://journal.dedasys.com/2014/09/24/perfect-software-versus-economic-reality/

                        1. 3

                          My parents’ 50th wedding anniversary!

                          That and my usual dose of freaking the hell out about the state of the world. I am struggling with that a lot lately.

                          1. 2

                            Tell you parents congratulations!

                          1. 2

                            Uncontrolled influences Additional sources of bias and confounding should be appropriately controlled. The bug rate (num616 ber of bug-fixing commits divided by total commits) in a project can be influenced by the project’s culture, the age of commits, or the individual developers working on it

                            Emphasis mine. I would expect an experienced developer working in Haskell to create fewer bugs than someone fresh out of college hacking on some PHP code.

                            1. 2

                              For sure. Maybe even an experienced developer hacking on some PHP code!

                            1. 1

                              I remember hanging out with some guys in Milan who had a bit of back door code that enabled them to run ‘unapproved’ stuff like IRC on the UNIX workstations.

                              1. 2

                                I think the biggest thing I can think of is that the web became one of the main platforms, rather than sort of an afterthought.

                                1. 1

                                  I currently use https://www.chargebee.com/ at work, and it seems pretty well thought out. I know it’s not as exciting as building my own system, but for a lot of businesses, it probably makes sense to start off with something where they’ve thought through many of the details. If nothing else, it’s a good way to figure out what your needs are, and how a fairly advanced system handles some of the details, prior to embarking on the creation of a custom billing system.

                                  1. 2

                                    It is likely that the billing landscape is better today than it was in 2013, probably due to the existence of articles like this.

                                  1. 2

                                    I’m imagining a mashup in my head between “built to last web site” and one of those “hard workin’ American man” Budweiser commercials.

                                    1. 4

                                      Oh god no no no no no no.

                                      At a previous gig folks had fallen for the siren song of Elixir tasks.

                                      You have to supervise them and handle failure modes and timeouts.

                                      It ends so, so badly otherwise. Don’t use them unless you really, truly don’t care about reliability (or your coworkers).

                                      1. 1

                                        What’s the best way to set up a normal-ish Erlang supervision tree from Elixir?

                                        1. 2

                                          The normal GenServer stuff seems to behave alright–it’s just that with tasks people often spin them off and if they die unexpectedly or hang there isn’t a good way of recovering their state or rerunning jobs.

                                          We had an internal library we used for queuing and catching error states, stacktraces, etc.

                                        2. 1

                                          Yeah! Is the system failure you describe documented anywhere? I’d love to circulate an analysis or put it in my notes in some fashion.

                                        1. 2

                                          Is there a low-friction way to give Matrix a try? Like a Lobste.rs channel accessible via a web client or something along those lines?

                                          1. 7

                                            Riot is a web client for Matrix that features user registration! https://riot.im/app

                                          1. 3

                                            It’s not totally clear what’s going on here:

                                            This code was deployed, and, what a surprise, I got the error: 2019-09-08 is an invalid time. – Huh, what do you mean the time is invalid?

                                            Where’d that data come from in the first place?

                                            If you use tzinfo aware code everywhere, you’re not as likely to run into this stuff, if you keep your DB up to date.

                                            1. 1

                                              Be interesting to compare and contrast with what Erlang is doing these days.

                                              1. 3

                                                My five-year-old is having a pirate-themed birthday party. There will be a bouncy castle, finger foods, a piñata, and beer.

                                                My older boy doesn’t do birthday parties at home. The new trend is these “indoor play park” things, which are basically enormous fancy play areas with trampolines, zip lines, ball pits, Lazer-Tag, etc. with extensive party facilities. Think Chuck-E-Cheese on steroids, and correspondingly more expensive. The vast majority of the birthday parties I’ve been to for my older son’s friends have been at these places and they’re expensive (for the hosting family, as I have painfully learned).

                                                1. 6

                                                  and beer

                                                  For the kids?

                                                  1. 4

                                                    By college, he’ll absolutely dominate at beer pong and quarters. That’s why you start them early.

                                                  2. 1

                                                    Agreed these indoor play parks are stupid expensive for the host family. (They’re great fun!) Are we systematically excluding some families from our kids’ lives though?

                                                    1. 3

                                                      I don’t think so, at least not on the party hosting side. More exclusionary would be the fact that we live in a relatively wealthy suburb, so the set of people who would get invited in the first place (by having met my kids) is limited.

                                                      Before we moved to our current house we lived in a much more diverse area (both demographically and financially). When my first son was born we put him in a church-run preschool in a suburb (we lived in town) because a relative was a teacher there. I remember being irritated when the mom’s group at the preschool released the zip codes for which they’d have rotating playdates and our zip code wasn’t included (even though farther-away ones were). It was pretty obviously either casual racism or classism, or both. I remember mentioning that it seemed unfair and was told, seemingly honestly, that they didn’t want to come to our neighborhood for “safety reasons”.

                                                      1. 1

                                                        Surely there is some family or two in your kids’ peer group which attends but does not host, or does not attend “because” they won’t host in the future? There are such families in mine. Heck, we’ve only hosted once, so far, but attended six or eight. We see the same folks at all these events, and since they represent only a subset of my son’s classroom, it means the same other folks are consistently missing. I think?

                                                        1. 1

                                                          live in a relatively wealthy suburb,

                                                          Yeah, a lot of the exclusion happens there, via zoning and land use laws, in the US at least.

                                                    1. 2

                                                      I think there’s still too much snow to go mountain biking, but it looks to be too warm/wet for an XC ski. Yuck!

                                                      1. 5

                                                        These retrospectives on evolving and ageing languages make good case studies. My personal takeaway: if you could write a piece of syntax as easily as any other library, all of these syntax tweaks and additions would become complete non-issues. It would eliminate reams and reams of bikeshedding in the issue tracker if you could just do import syntax/flipflop.

                                                        1. 3

                                                          Every Ruby project potentially having slightly different syntax sounds like a nightmare to me.

                                                          1. 4

                                                            Not trying to be glib, but… DSLs?

                                                            1. 2

                                                              DSL’s built on Ruby all follow the same syntax though.

                                                              I suppose there might be a few out there where Ruby is outright parsing some other text, but those are mercifully rare.

                                                              1. 2

                                                                But a DSL has a different syntax to vanilla Ruby, because otherwise it would be a regular library, not a DSL.

                                                                Is syntax sugar like a new sigil or infix operator (which is what most of these are) really that different to a DSL? Fundamentally, I mean, not just in that one of them uses tokens and the other uses characters. You have to learn something new the first time you encounter a new DSL exactly the same as you would for a new character syntax. Having been knee-deep in this kind of stuff for a few months now, I’m seeing less and less of a distinction.

                                                                1. 6

                                                                  There aren’t any real Ruby DSLs. Ruby programmers just oddly refer to class methods called at the top level without parentheses as “DSLs” (or, more rarely, instance methods called without parentheses in what other languages would call a “builder pattern”).

                                                                  Ruby doesn’t support macros or other syntax-level features that would enable an actual DSL.

                                                                  1. 2

                                                                    I know, they’re technically only eDSLs, but my point remains. All syntax changes are the same. They could have added real DSLs (edit: you know, “just add this massive feature” :) and never had to decide between @1 and _1.

                                                                    1. 1

                                                                      They’re DSLs in the sense that any library API is a DSL, and in this respect I think Ruby does DSLs a lot better than other languages with “real” DSLs. APIs can be (almost) as expressive as real DSLs and they’re still using normal language syntax and semantics. Lisp is definitely more expressive and it’s still technically using the same syntax, but the semantics can vary wildly.

                                                              2. 2

                                                                Until you realise that less powerful languages have the same problem - except their abstractions aren’t expressed in a clear DSL courtesy Ruby or Lisp metaprogramming, they’re splattered throughout the application in AbstractFactoryFactories and FooUtility classes.

                                                              3. 2

                                                                In Lisp we trust! ;-)