Gary Bernhardt Profile
Gary Bernhardt

@garybernhardt

Followers
44K
Following
2K
Media
131
Statuses
2K

Execute Program (learn programming tools quickly); Destroy All Software (dense programming screencasts); formerly Deconstruct conference.

Seattle, WA
Joined March 2007
Don't wanna be here? Send us removal request.
@garybernhardt
Gary Bernhardt
7 years
Computers exist to serve us, not the other way around. If it is not fast and reliable then it is wrong!.
10
132
620
@garybernhardt
Gary Bernhardt
8 months
RT @exec_prog: Black Friday sale: 40% off the first 12 months of an individual subscription!. And a new course: Python in Detail. 563 inter….
0
6
0
@garybernhardt
Gary Bernhardt
1 year
who in the hell called them security researchers and not sudoscientists.
0
17
149
@garybernhardt
Gary Bernhardt
1 year
RT @garybernhardt: In Python, it's a trace back. In Ruby, it's a back trace. In Java, it's a stack trace. All we need now is a trace stack.
0
73
0
@garybernhardt
Gary Bernhardt
1 year
RT @holman: Some of my favorite stories selling what would become GitHub Enterprise early on was dealing with the culture changes back then….
0
25
0
@garybernhardt
Gary Bernhardt
1 year
Pronouncing mdutil:.🧠 "emm-dee-you-till".🧠🧠 "emm-dee-yootle".🧠🧠🧠 "emm-doodle".🧠🧠🧠🧠 "mmdoodle".
3
0
34
@garybernhardt
Gary Bernhardt
1 year
RT @garybernhardt: who in hell called it "LCD Soundsystem Share “Dance Tonite” VR Experience | Pitchfork" and not "Get AnOculus!".
0
9
0
@garybernhardt
Gary Bernhardt
1 year
If you force code into an arbitrary shape, you'll deform it in other ways that are often worse than just letting it be the shape that it wants to be. Sometimes a line should be 150 characters long; sometimes a function should be 150 lines long. But usually not.
2
7
119
@garybernhardt
Gary Bernhardt
1 year
The vast majority of tests that I write are small, with a single assert. But sometimes there's a complex story to tell, which leads to complex setup, and sometimes it's easier to tell that story by building the story up piece by piece, asserting as you go. It's fine.
1
6
136
@garybernhardt
Gary Bernhardt
1 year
Me at 25: Tests should be 5ish lines! One assert per test!. Me at 40: This test is 56 lines long with 11 asserts. If I broke it up, it would be 11 separate tests, ~5x as much code, multiple helper functions and `beforeEach`s to avoid duplication, and more difficult to read.
16
72
1K
@garybernhardt
Gary Bernhardt
1 year
@exec_prog (ChatGPT is really good at some things! But the things that it's good at don't match our intuition. Proofreading is the kind of task that you'd expect it to be good at, but it's *really* bad at it in my experience.).
2
0
6
@garybernhardt
Gary Bernhardt
1 year
@exec_prog (After 6 years without ever using a spell checker, there were 3.5 typos in the entire course catalog. There may be grammatical errors lurking, though; those can't be automated away in the same way.).
3
0
3
@garybernhardt
Gary Bernhardt
1 year
@exec_prog Based on the error rate per word that I got in that experiment, asking ChatGPT to proofread the entire @exec_prog course catalog would result in ~600 spurious "errors".
1
0
7
@garybernhardt
Gary Bernhardt
1 year
Wrote a blog post (that I may not publish) about the spell checker that I just wrote for @exec_prog. As part of that, I asked ChatGPT to proofread a draft of the post. It ignored my instructions ("only report actual errors, not suggestions"). It also hallucinated one error.
1
0
12
@garybernhardt
Gary Bernhardt
1 year
I don't know what it is about Playwright in particular, but ChatGPT just doesn't understand it at all. I've asked it ten different questions today, and for every single one it hallucinated APIs. Then if I tell it that, it hallucinates another API. Then if I tell it that, it hallu.
5
0
36
@garybernhardt
Gary Bernhardt
1 year
If you read this as "[insert tool here] will amount to nothing". no. I don't know the future any more than the people who dumped billions of dollars into WS-*. But I do know that I don't know the future, which is pretty important.
0
1
31
@garybernhardt
Gary Bernhardt
1 year
I always listen to the confident, loud declarations about the future of programming (don't want to get left behind)! That's why I always start with a UML diagram, then let tooling generate aspect-oriented WS-* services, with the data stored in a network database. blockchain.
8
13
158
@garybernhardt
Gary Bernhardt
1 year
31 years of the web, it's used for pretty much everything. and checkboxes are still near-impossible to get right.
4
3
90
@garybernhardt
Gary Bernhardt
1 year
Newer programmers struggle with how unforgiving computers are. The compiler doesn't care about what you mean; it only knows the language's grammar and the code that you wrote. Not sure how to teach that, or even say it, without it feeling very demoralizing.
26
19
165
@garybernhardt
Gary Bernhardt
1 year
RT @simonw: One of my greatest current fears around AI is that people will start making bad life decisions right now - like giving up on le….
0
77
0
@garybernhardt
Gary Bernhardt
1 year
the hottest possible take: things are not simply good or simply bad.
5
5
35