Here's the nut of what I'm referencing:
Posts by Bridget Phillips
Writing about jj and git this morning and lo and behold, what should pop up: lwn.net/Articles/105...
Even the folks maintaining git are seeing the light on jj
Git has always been hard to teach. It's been my experience that if something is hard to teach, it's not just a problem for the beginners. It's a problem for the experts, too.
It's just harder for the experts to see. /end
And so if I want to do something fancy with those two, and I'm having a hard time, I think of that as a me problem, not a git problem.
Either I don't know the tool well enough, or I'm doing something I shouldn't have tried to do in the first place.
I personally cope with git by leveraging those two entities. Staged changes and working copy? I just kick them until they do what I want them to.
But there's also the fact that the core idea of the commit and the branch made so much sense as a representation of the store and our relationship to it that we held onto them for dear life.
Most of these things are reasons why git caught on like wildfire, which all have the pain of nostalgia about them:
* it was so fast
* it never broke
* you could just use it against your SVN repo
* branches were suddenly easy
I have so many things that I could say about git that I am struggling to say what I need to say about git.
My big takeaway rereading that post is:
* Not all test shaped code is fit for automated test suites
* This includes flaky tests
* Test shaped code is frequently invaluable! People defend flaky tests for a reason
* Behind every flaky test is a reproducible test begging to be found
In retrospect, I was an idiot. But I find that you do learn more that way.
Got reminded today of the time when I got convinced not to use `Dispatchers.Default` or `Dispatchers.IO` in tests, which @swank.ca dug up this blog post about: publicobject.com/2022/03/14/u...
Worth a reread!
Well, if you're doing trunk based development, it means that you can develop locally against your bugfix without actually merging it into your PR.
Or have a branch that locally turns on debug mode, without having that in your PR.
It rules.
But you are then making a new empty commit atop each branch when starting work. And you only ever need one, so...
Why not make every single one of those working branches a parent of your working changes commit? What happens then?
If you then want that work to be a new commit (a new PR), you do jj commit. If you want it to modify an existing commit, you do jj squash.
This is the exact same as git commit and git commit --amend. Only difference is that the working copy is already a commit.
In fact, a typical workflow is to have a bunch of working branches, and then when you start new work on any one of them, you create a new nameless change on top of the branch.
The basic idea stems from this core idea jj gives you: your working copy is already a commit.
It doesn't have a name, but it does have changes and parentage, and so all your VCS's tools apply to it same as any other commit.
This is super rad and exactly the kind of unforeseen workflow I would expect to arise from the concepts jj gives you
It may not even make sense if you're too git brained. But it works!
this is rad
It's like dating
Well, now Matt Levine has written about it, so you don't need to read what I said anymore: www.bloomberg.com/opinion/news...
See his analysis on the deal, but essentially yeah — it's financial engineering to gamble on the bubble with the dead shell of Allbirds, Inc.
(I mean, that they got an immediate stock bump kind of is all the explanation needed I guess)
So why go to the hassle of standing up a new company at all? Why not take send the cash to stockholders and shut down the old Allbirds, Inc.?
I can't tell you *why*, but what it *is* is pretty clear: financial engineering to sneakily snake this new corp into existence.
5/end
So what will the current company named "Allbirds" become, then, if it's cashed out of the shoe business?
It will be an entirely new company called NewBird AI. Which I'm sure they spent all of five minutes dreaming up, since the name clearly doesn't matter.
4/x
Presumably American Exchange Group is another rollup company like Authentic Brands Group that buys up established brands at fire sale prices and then dials the quality wayyyyy down.
3/x
www.reddit.com/r/YouShouldK...
First, Allbirds shoes aren't going away. The Allbirds brand has been sold to American Exchange Group, which has a bunch of fashion brands: www.axnygroup.com/our-brands
2/x
Okay, the Allbirds deal is everywhere today because hah hah, but I actually read the press release and it is weirder than hah hah.
1/x
ir.allbirds.com/news-release...
In addition to the giraffe win
We're wrapping up our migration to Metro internally for Square Android. I summarized some of our challenges and steps we took in a blog post. If you use Dagger 2 for a Kotlin project, then you should migrate to Metro sooner rather than later.
engineering.block.xyz/blog/metro-m...
Big +1.
Joel and Jacob deserve so much credit for this. A project this big, hit with this kind of organizational instability...it's a real relay race. I know Cash also benefitted from their work.
Also, sorry for more AI posts.
I know the world has too much of them. But here we are. Blame jack, I guess