Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
nickm12
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
24 ms
·
271.
▲
by
nickm12
6y ago
This line about the monorepo from the Dan Luu post always confuses me: > With a monorepo, you just refactor the API and all of its callers in one commit. I have experience working a monorepo at a mid-sized tech company (~1000 developers)
272.
▲
by
nickm12
6y ago
Brazil was originally built on a Perforce monorepo. It didn't start being git until 2013 or so and even then packages could migrate between the Perforce repository and git repository. So Brazil is not an alternative to a monorepo.
273.
▲
by
nickm12
6y ago
A branch in a git repository defines a snapshot of the entire repository. You can't have two branches checked out simultaneously. If your repository has a file at a path, you can't have some part of the repository depending on tha
274.
▲
by
nickm12
6y ago
I will also say that it's been my experience that a lot of Amazon developers find Brazil very opaque and frustrating. It reminds me of my experience learning git. In my early days I'd just try to mimic procedures without understan
275.
▲
by
nickm12
6y ago
> For context, only a single major version of a package is allowed to exist in a version set at a time. This is not entirely true. A version set can have an arbitrary number of major versions of the same package. This is convenient if yo
276.
▲
by
nickm12
6y ago
> Any (hypothetical) build system that runs the tests after commits have been merged is not great. This is true and it's a problem with Brazil at Amazon. Certainly, if every developer does a dry-run build they can verify that their
277.
▲
by
nickm12
6y ago
The main power of Brazil is that every buildable unit ("package" in Brazil) can have multiple branches and then a software stack can be defined in terms of the set of branches ("version set" in Brazil) across all the sof
278.
▲
by
nickm12
6y ago
So the main thing that clicked with Brazil was really understanding how to use versionsets effectively to model software stacks and in particular thinking about a package's dependencies as part of its public interface. A common anti-pa
279.
▲
by
nickm12
6y ago
My first couple of years at Amazon I was completely mystified by Brazil, version sets, and VFIs. Eventually the lightbulb clicked and when I moved on to a company with a monorepo I really missed Brazil. My main gripe with Brazil is that the
280.
▲
by
nickm12
6y ago
I'm glad that it's back, but annoyed that the latest version is 10.15 only. I have a policy of staying one release back on Apple OSes that has served me well.
281.
▲
by
nickm12
6y ago
Well, I agree with the author that trying to formalize "tech debt" is not that valuable, but disagree with the conclusion that tech debt is bullshit, either as a metaphor or a meaningful concept we can use to make decisions. I tak
282.
▲
by
nickm12
6y ago
Solid article. I've worked with complex feature flags / gating systems for years at multiple large internet companies and have largely come to the same conclusions. That feature flags let one version of the software run in a combi
283.
▲
by
nickm12
6y ago
As a senior engineer, this hits home for me so hard. I use the documentation hack all the time. Junior engineers are frequently amazed by how much I know. My secret is that I know where the documentation is and when I learn something, I add
284.
▲
by
nickm12
6y ago
I for one don't understand why Section 3.3.1 wasn't the end of it. Google it if you don't remember that in 2010 Apple tried to mandate which programming languages could be used to develop apps on the iPhone. To this day, your
285.
▲
by
nickm12
6y ago
Tony Hoare, famously, called null references a "billion dollar mistake"[0]. Much preferred to checking return values is to use a language which models null references in the type system doesn't compile code that would try to
286.
▲
by
nickm12
6y ago
Agreed, but... often these ugly codebases are also very difficult to write tests for, because the code isn't well-factored, there are large functions which combine lots of unrelated behaviors, etc. etc. I inherited a codebase of this t
287.
▲
by
nickm12
6y ago
This! So many of the comments on this post are about writing tests, rather than writing tests first . I've tried TDD a couple of times and always hated it. Maybe it's one of those things where you have to get over the hump. But t
288.
▲
by
nickm12
6y ago
I still own a working Kinesis that is 20 years old (I think it's USB-1!) but I changed jobs two years ago and they paid for an Advantage 2. The biggest, biggest advantage is that it fixes the crazy firmware bugs in the old keyboard tha
289.
▲
by
nickm12
6y ago
Being able to side load apps, including entire app stores, is much more than "slightly better". I have been an Apple user for 34 years and was a huge advocate for Apple in the 2000s. However, when it was clear that Apple was going
290.
▲
by
nickm12
6y ago
Why do you believe that Amazon comingles inventory? Multiple sellers can sell under the same listing, but that is not the same thing as comingling inventory. Everything I've seen about Amazon fullfillment indicates that the product y
291.
▲
by
nickm12
6y ago
It's worse. The phone manufacturers have one set of names and the 3rd party charger manufacturers like Anker and RAVPoewr have their own. My experience is that USB-PD actually works as advertised, but it's really difficult to tell
292.
▲
by
nickm12
6y ago
What extra88 said. My Macbook charger is fixed at my desk and I wanted a travel charger that was compact and also had a USB-A port for other low-power devices I need to charge when I travel like my Fitbit and Kindle.
293.
▲
by
nickm12
6y ago
How does Google force anyone to use Golang? If you are a platform vendor like Apple or Microsoft you can be dictatorial and only support your language of choice; In fact Apple's infamous "section 3.3.1" was going to limit iPh
294.
▲
by
nickm12
6y ago
A while back I went down the USB-C charging rabbit hole with the simple goal of finding a 3rd party charger that could charge all my USB-C devices (13" Macbook, Motorola phone, Nintendo Switch) as fast as the charger that came in the b
295.
▲
by
nickm12
6y ago
I take it you weren't programming when Java was the new hotness?
296.
▲
by
nickm12
6y ago
I love this quote from a friend of mine who was learning Rust: "It's hard but I love it. Dealing with the compiler felt like being the novice in an old kung fu movie who spends day after day being tortured by his new master (rustc
297.
▲
by
nickm12
6y ago
Tandy and Commodore?? This is more of a hardware interface to an unpaid network service than a personal computer.
298.
▲
by
nickm12
6y ago
AWS is a bad example. They keep things running ridiculously long as long as customers are paying them.
299.
▲
by
nickm12
6y ago
I took this to be a contrived example to illustrate the point. I could imagine a process that creates a big data structure (e.g. parse an xml file), pulls some data out, and then drops the data structure. If you want to use that data sooner
300.
▲
by
nickm12
6y ago
I must be a crusty Python programmer, because none of the first few examples seemed like WTFs to me at all. I think a WTF is when you think you know a language and then see something that behaves completely unlike how you expect.
More ›