bitfield Profile Banner
John Arundel Profile
John Arundel

@bitfield

Followers
96K
Following
11K
Media
850
Statuses
24K

Go/Rust writer and teacher 🦀. Programming is fun, and you should have fun! Join my Code Club for free Rust + Go learning resources ↓

Joined April 2008
Don't wanna be here? Send us removal request.
@bitfield
John Arundel
7 years
The software to create the black hole in the movie 'Interstellar' is a full implementation of Einstein's equations in 40,000 lines of C++, and rendered thousands of 23-megapixel IMAX frames on a 32,000-core render farm at about 20 core-hours per frame
Tweet media one
208
10K
22K
@bitfield
John Arundel
5 years
Junior dev: My code is simple and easy to understand. Mid-level dev: My code is subtle, clever, innovative, expressive, hyper-optimized, and ingenious. Senior dev: My code is simple and easy to understand.
90
1K
5K
@bitfield
John Arundel
3 years
I once worked with a manager who asked “Why do we all need these SREs when the site never goes down?”, and I think about that a lot.
92
419
4K
@bitfield
John Arundel
1 year
The software industry is rapidly converging on just three languages: Go, Rust, and JS. It would be smart to learn one of those really well, and have at least a working acquaintance with the other two.
665
273
4K
@bitfield
John Arundel
7 years
If you think you're on the project from hell, this will cheer you up:. * 6M lines of obsolete flavour C++.* 50K classes.* CORBA.* 48hr build time.* Average dev turnover 3 months.* 35 managers for 25 developers.* Fired if you arrive at 9.01am.
Tweet media one
124
2K
3K
@bitfield
John Arundel
3 years
I like this.
Tweet media one
14
372
2K
@bitfield
John Arundel
8 years
gtop is a system monitoring dashboard that runs in a terminal, and by gosh, it's sexy.
51
880
2K
@bitfield
John Arundel
5 years
CI/CD is the purest expression of Conway’s Law: your CI/CD pipeline will be broken and messy in exactly the same ways your engineering org is broken and messy.
Tweet media one
24
694
2K
@bitfield
John Arundel
7 years
A paper about a C compiler which produces executables containing only printable characters, and the paper itself is produced by the compiler, and therefore is executable, and also plays music when you run it, and this is the paper: /by @tom7 /via @danluu
Tweet media one
23
960
2K
@bitfield
John Arundel
11 years
"We haven't got time to automate this stuff, because we're too busy dealing with the problems caused by our lack of automation.".—Everyone.
54
3K
2K
@bitfield
John Arundel
10 years
Understanding uptime:.98.12% - you have a few problems.99.65% - you have no major problems.100.00% - your monitoring is broken.
31
2K
1K
@bitfield
John Arundel
7 years
JUNIOR DEV: I'll copy and paste this code. MID-LEVEL DEV: Let’s refactor. If we add more abstractions, we can get rid of all this duplicated code!. SENIOR DEV: A little copying is better than a little dependency. Copy and paste it.
36
473
1K
@bitfield
John Arundel
7 years
“So, using whatever language you want, php, python, perl, javascript, program something that gets today’s date and time, then writes it to a file.”. Me:.$ date > today.txt. “We don’t feel you have the right skill set.”
37
430
1K
@bitfield
John Arundel
6 years
They say that every controversial political opinion you post on Twitter costs you half your followers. Well, here we go, then:. • Cancel Brexit.• Impeach Trump.• Black lives matter.• Refugees are people too.• Believe women.• Tabs, not spaces.
120
182
996
@bitfield
John Arundel
7 years
Writing better code, in five (not so) easy steps:. 1. Zero comment policy. Instead of comments, focus on code readability. 2. Zero TODO policy. Your codebase is not a project management system. 3. Self-documenting code.4. Immutables.5. One LoC per thought.
Tweet media one
45
445
848
@bitfield
John Arundel
7 years
Interviewed for a sysadmin job at a small firm. Fluffed a question on octal permissions values in chmod. Rejected: "Your Unix knowledge isn't quite strong enough". Unix user for 30 years, full-time pro sysadmin for 20, published six books on config management #ShareYourRejections.
54
169
810
@bitfield
John Arundel
3 years
LeetCode is a useless interviewing tool. Very few of our jobs are actually about finding an efficient algorithmic solution on the spot, with no support, and real life generally requires days of work on a design. Why are we using riddles to hire developers?
36
100
763
@bitfield
John Arundel
7 years
Cheer up. You could be working on Oracle:. * 25 million lines of C.* Thousands of flags.* 30 hours to run tests.* At least 100 tests always fail.* 2 months for code review.* 2 years to ship a feature.
18
350
749
@bitfield
John Arundel
7 years
Carbon is a nice tool for making quick, pretty code screenshots. Just paste and save
Tweet media one
10
223
704
@bitfield
John Arundel
1 year
Why would you waste your time learning to use a debugger? Are you planning to write bugs?.
53
89
677
@bitfield
John Arundel
7 years
There's a great interview about 'Interstellar' with Double Negative's @pauljfranklin (VFX Sup) and Oliver James (Chief Scientist), co-authors of the paper:
1
134
660
@bitfield
John Arundel
9 years
Containers! Is there any word more thrilling to the human soul?
Tweet media one
28
510
592
@bitfield
John Arundel
6 years
People don't talk all that much about code that uses simple patterns, because it is "boring". In my view, your first task as a beginner is to learn to write "boring" code well
Tweet media one
12
163
593
@bitfield
John Arundel
7 years
“I didn't expect this ever to cause any problems" is probably the last thing we'll hear as the world ends
12
310
585
@bitfield
John Arundel
7 years
This looks brilliant. “Next time you get a dodgy email in your inbox, forward it on to me@rescam.org, and a proxy email address will start replying to the scammer for you, doing its very utmost to waste their time.”
11
302
560
@bitfield
John Arundel
7 years
The amazing PDP-11 shaped computing as we know it today. “Before the PDP-11, there was no UNIX. Before the PDP-11, there was no C. This is the computer that C was designed on.” /by @davecheney
Tweet media one
23
300
557
@bitfield
John Arundel
4 years
“This is how insanely bad Bitcoin is for the environment: If you buy a Tesla with Bitcoin, the mining of those bitcoins costs around 80 tons of CO2—four times more than the Tesla itself saves over a gasoline-powered car in its lifetime.”
32
310
541
@bitfield
John Arundel
7 years
Shout out to all those installing long-overdue updates on their family's computers, phones, devices, consoles, routers, set-top boxes, fridges, and cars. Happy Patch Christmas, everybody!.
5
175
522
@bitfield
John Arundel
7 years
ssh-audit is a tool for checking the security of SSH servers (think of it as like SSL Labs for your SSH server), which can warn about weak ciphers, hashes, etc /via @michael_eder_
Tweet media one
6
252
538
@bitfield
John Arundel
10 years
Tweet media one
17
839
509
@bitfield
John Arundel
9 years
I think the watershed moment when a cool, innovative startup becomes an obese, moribund corporation is probably the adoption of JIRA.
27
336
479
@bitfield
John Arundel
7 years
"How often do we have unforeseen problems?"."One hundred percent of the time.".
Tweet media one
4
266
494
@bitfield
John Arundel
7 years
Technical writing is 10% typing and 90% trying to think of good examples.
7
105
486
@bitfield
John Arundel
7 years
"We don't have the time to do good engineering, because we need to get the company out of the hole it's in."."Gee. How'd the company get into such a hole, anyway?"."Bad engineering.".
6
267
497
@bitfield
John Arundel
7 years
Homebrew is like a really boring text adventure. > INSTALL MACVIM.You need to install Python first. > INSTALL PYTHON.You need to update your Xcode to do that!. > PUT THE JUNK MAIL ON THE SATCHEL.You don't have that item. > BREW DOCTOR.You were eaten by a grue!.
16
125
461
@bitfield
John Arundel
8 years
Don't try to fix your company's broken culture; you can't. Just go work for a better company (or start one).
26
222
473
@bitfield
John Arundel
8 years
Joplin is an open-source, cross-platform Evernote replacement for Windows, MacOS, Linux, Android, iOS, and the command line. Supports sync, Markdown, images, attachments, and Evernote import
Tweet media one
7
161
464
@bitfield
John Arundel
4 years
robots.txt
Tweet media one
2
76
457
@bitfield
John Arundel
7 years
"I spent the last three days setting up my programming environment."
Tweet media one
13
233
453
@bitfield
John Arundel
8 years
If you ever suffer from the illusion that your work is important, spending a few hours in an ICU will cure you of that pretty quickly.
16
185
451
@bitfield
John Arundel
8 years
Mind. Blown. “Pingfs is a filesystem that stores data in the Internet itself, as ICMP packets going to remote servers and back”
34
237
440
@bitfield
John Arundel
5 years
You can master basically any skill if you're willing to commit to doing it a little bit every day. That means doing it when you're tired, or busy, or stressed, hung over, no matter what. The secret is not intelligence, talent, or even free time, but simply an effort of will.
15
128
454
@bitfield
John Arundel
6 years
The C coding standards of OpenBSD are among the highest you'll ever find. The OpenBSD source tree is a great learning resource, with clear explanatory documentation, which can also teach you something about being a good programmer in general
6
138
428
@bitfield
John Arundel
9 years
"Can I work remotely?" is a great question to ask about a job, even if you don't intend to. If they say no, look for a better company.
22
260
412
@bitfield
John Arundel
7 years
Kernighan's Law: “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” More wise and funny programming principles
Tweet media one
10
199
403
@bitfield
John Arundel
9 years
Finally, a mobile device I can take decent notes on.
Tweet media one
27
160
393
@bitfield
John Arundel
7 years
Docker has freed us from the nightmare of configuration management, and replaced it with the nightmare of Dockerfiles.
21
125
399
@bitfield
John Arundel
6 years
"Should I use curl or wget?" Neither. You should use httpie
Tweet media one
13
121
403
@bitfield
John Arundel
3 years
Rob Pike's rules:.1 You can't tell where a program will spend its time.2 Don't optimise until you've measured.3 Fancy algorithms are slow for small N, and N is usually small.4 Fancy algorithms are buggier than simple ones.5 Data structures, not algorithms.
5
99
398
@bitfield
John Arundel
6 years
“This feature should be easy. It’s just a little bit of code, right?”.—How to spot a non-developer.
23
86
366
@bitfield
John Arundel
7 years
“Don't use feature branches: work on master all the time. Make changes in tiny steps. Each change is itself atomic and leaves the code in a working state. We are happy to deploy changes into production that are not yet complete, but don’t break anything.”
22
174
362
@bitfield
John Arundel
7 years
You think you would, but you really wouldn't.
Tweet media one
14
67
338
@bitfield
John Arundel
6 years
If you're having trouble hiring, you might want to rethink your remote work policy. It's the choice between two talent pools: the one that lives within an hour of your physical office, or, you know, literally the ENTIRE WORLD.
@rdutel
Rodolphe Dutel
6 years
- 99% of my work is done on a computer. Can I work remotely?.- No, come to the office. - But my entire job is emails & conference calls!.- To the office. - My project team work in another country, it won’t. - . the office. - . You’re not listening to me, are you?.- OFFICE!.
8
127
344
@bitfield
John Arundel
7 years
If you force people to work 12-hour days you won’t get any more productive work out of them than someone doing 8 hours. They’ll just read news websites for an extra four hours and take a lot of tea breaks. Ask me how I know.
24
98
342
@bitfield
John Arundel
5 years
My new book is out now! It's called "For the Love of Go: Fundamentals", and it's an introduction to test-driven Go development for complete beginners, but experienced Gophers may find it interesting too. And it's priced at a pocket-friendly $4.99. #golang.
17
95
349
@bitfield
John Arundel
7 years
“After another three years and a few large projects in Go, I no longer like the language and wouldn’t use it for a new project. Here are 10 reasons why.” #golang.
9
177
353
@bitfield
John Arundel
9 years
How Dropbox hacks your Mac (by faking what looks like an OS X authentication dialog):
Tweet media one
19
556
334
@bitfield
John Arundel
9 years
Where bad decisions come from:. “1. We must do something. 2. This is something. 3. Therefore we must do this.“.
12
288
323
@bitfield
John Arundel
6 years
Software must be one of the only industries where workers are trying to make the product better and managers are actively stopping them.
10
115
336
@bitfield
John Arundel
7 years
“Kanban.bash is a personal, command line to-do manager / kanban board for minimalist productivity bash hackers.”
Tweet media one
5
160
349
@bitfield
John Arundel
8 years
"Feel like trolling a colleague? Just add 'source ~/evil.sh' to their .bash_profile and watch the chaos ensue."
Tweet media one
23
225
329
@bitfield
John Arundel
5 years
Unpopular opinion: you need a degree-level education in computer science to be a really good developer. If you have one from a university, great. If not, it's time to start educating yourself. The resources are there; all you need is willpower, effort, and time.
62
54
342
@bitfield
John Arundel
8 years
Hi, my name is John. I’ve been wrangling computers for 35 years, and I’ve learned you can’t just Google kindness, decency, and humility.
8
116
329
@bitfield
John Arundel
9 years
httpstat shows a visual breakdown of HTTP request timing, from DNS lookup to content transfer h/t @l4rk
Tweet media one
8
221
339
@bitfield
John Arundel
7 years
Controversial hot take: If one of your monitoring checks has been red for a week or more, get rid of the check. If the service was that important, it would have been fixed by now, and monitoring unimportant services is a waste of time.
15
124
327
@bitfield
John Arundel
4 years
Don't just say 'hi', or 'can I ask a quick question?' in chat, then wait for the other person to respond. Instead, say 'hi' and ask your question right away. It's a way to respect their time and attention.
37
97
335
@bitfield
John Arundel
7 years
Your email inbox is not your to-do list. Your open browser tabs are not your to-do list. Your starred items in Slack are not your to-do list. Your to-do list is your to-do list.
33
106
329
@bitfield
John Arundel
3 years
“Next time I interview for a job, I'm going to ask ‘What is the entire process for a one line change in code to make it to production?’ I think that will tell me a lot.”.—@jeremykahne.
15
50
325
@bitfield
John Arundel
7 months
”For probably 80% of the software we write, Go gets the job done just fine. Rust, on the other hand, neatly fills the gaps where Go isn’t an ideal choice: kernels, firmware, embedded devices, real-time systems.“
16
43
348
@bitfield
John Arundel
7 years
If you like PingFS, the filesystem that stores data in ICMP packets, you'll love DNSFS. “There are surely a lot of open DNS resolvers on the internet that are just asking to be used for storing random things in them.” Let's make it happen /by @Benjojo12
5
185
308
@bitfield
John Arundel
7 years
If your tests are failing and you can’t figure out why, then congratulations! Your tests just found a bug that you couldn’t.
9
121
320
@bitfield
John Arundel
7 years
The skills programmers need now are drastically different from what they were in the 1990s. They need less mathematics and algorithms, and more ‘sociotech’ skills: navigating relationships between people and communities
16
135
317
@bitfield
John Arundel
3 years
If the programmers like each other, they play a game called “pair programming”. And if not, then the game is called “peer review”. —@ashalynd.
5
89
311
@bitfield
John Arundel
6 years
The eight best command-line tools you're not using: tldr, rupa/z, diff-so-fancy, bat, ripgrep, exa, fd, and fzf
5
111
321
@bitfield
John Arundel
7 years
“The Raspberry Pi isn’t susceptible to Meltdown / Spectre, because of the particular ARM cores that we use. To see why, here’s a little primer on modern processor design. We’ll illustrate these concepts using simple programs in Python ” /via @walter_smith.
4
221
309
@bitfield
John Arundel
6 years
A regular salary is the death of self-development. Why learn new things, when you get paid regardless? Why put in effort, energy, and inspiration, when you're not rewarded for them? Why push the edge of what you can do, so long as the checks keep coming anyway?.
187
77
327
@bitfield
John Arundel
7 years
"Are you done meeting with those idiots from the customer yet?" When you send someone a private Slack message, assume it's going to pop up when the recipient is screen-sharing on a conference call, because it will.
21
104
296
@bitfield
John Arundel
7 years
A primary cause of software complexity is that vendors uncritically adopt almost any feature that users want. People seem to misinterpret complexity as sophistication. The incomprehensible should cause suspicion rather than admiration. —Niklaus Wirth
Tweet media one
7
169
299
@bitfield
John Arundel
7 years
"Making distributed systems reliable is inherently impossible; we cling to Byzantine fault tolerance, hoping that a series of complex software protocols will somehow protect us from the oncoming storm of furious apes tampering with our network packets."
Tweet media one
5
113
305
@bitfield
John Arundel
7 years
"People think that web browsers are elegant, and web pages are light, fluffy things you can edit in Notepad as you trade ironic comments with your friends in the coffee shop. Nothing could be further from the truth. A modern web page is a catastrophe."
Tweet media one
19
122
301
@bitfield
John Arundel
7 years
The real risk with remote workers is not that they might goof off, but that they might work too hard. “Five years of remote working really took a toll on my mental comfort sometimes, and had some unwanted impact on my family relationships.” /by @madewulf.
10
159
307
@bitfield
John Arundel
1 year
Go is too simple to write complicated programs, while Rust is too complicated to write simple programs. It all depends which problem you’d rather have. #golang #rustlang.
53
15
311
@bitfield
John Arundel
7 years
“WTF is a personal terminal-based dashboard utility written in Go, designed for displaying infrequently-needed, but very important, daily data.”
Tweet media one
8
115
303
@bitfield
John Arundel
8 years
Finally someone implemented the 'do what the fuck I mean' CLI we all want: /via @jessereynolds
13
199
293
@bitfield
John Arundel
9 years
Also, if you can’t deploy your automated, resilient, self-scaling infrastructure because GitHub is down, you may have missed a step.
@PonteIneptique
Thibault Clérice (ponteineptique on Ciel Bleu )
9 years
Github is down. This is not a drill. Civilisation died in this kind of situation. Probably.
Tweet media one
4
235
282
@bitfield
John Arundel
7 years
“Everybody just downloads precompiled binaries from random websites. Often without any authentication or signature. You don’t need to exploit any security hole anymore. Just build a container, and have people load your malicious binary to their network.”
12
148
289
@bitfield
John Arundel
5 years
I've written a book! Essentially, it's an attempt to cut through all the Kubernetes hype and bullshit, and provide a practical guide to getting stuff *done* with containers and cloud: using PaaS, deploying real apps, CI/CD, backups, scaling, observability.
9
41
301
@bitfield
John Arundel
8 years
Bad code has few comments. Good code has many comments. Great code needs no comments.
33
143
283
@bitfield
John Arundel
1 year
The key difference between Rust and Go: you think you can understand Go code, but you're wrong. On the other hand, you think you CAN'T understand Rust code, and you're right.
13
41
308
@bitfield
John Arundel
7 years
Proselint is a linter for prose—a command-line tool which analyzes text for redundancy, jargon, illogic, clichés, sexism, misspelling, inconsistency, misuse of symbols, malapropisms, oxymorons, security gaffes, hedging, apologizing, pretension, and more
Tweet media one
9
102
285
@bitfield
John Arundel
9 years
This idea makes a lot of developers extremely angry. They presumably don't see it as their job to care whether their code actually works.
94
146
280
@bitfield
John Arundel
4 years
“Bitcoin is the worst waste of resources and energy in human history. It is physically and structurally unsustainable. This is a call to ethical hackers to help destroy Bitcoin, through computer attacks and short selling.”
16
102
258
@bitfield
John Arundel
7 years
Use stable versions. Use the stack that everybody else is using. Use the big cloud provider. Monitor everything to death. Be extremely change-averse. Build everything automatically from config management. Avoid surprises. Don't get paged on the weekend. Choose life.
14
117
285
@bitfield
John Arundel
6 years
People no longer want heroes, ninjas, and rockstars; they want senior engineers who mentor, knowledge share, balance their work and life so that they don’t burn out and build sustainable and maintainable software
6
111
294
@bitfield
John Arundel
1 year
@joe_hellerstein I rather resent the implication that anything a journalist doesn't understand must be boring. In my experience, the opposite is more likely to be the case.
0
3
285
@bitfield
John Arundel
1 year
The genius of Go is that it has a garbage collector. The genius of Rust is that it doesn't need one.
14
20
299
@bitfield
John Arundel
6 years
If your UI component ever steals focus again while I'm in the middle of typing, I will end you. I will fucking end you. Got that, chief?
Tweet media one
8
47
275
@bitfield
John Arundel
7 years
Kubris, n.: the quality of extreme or foolish pride or dangerous overconfidence in one's Kubernetes skills. See also 'clustastrophe'.
4
95
283
@bitfield
John Arundel
9 years
I'm now a certified devops consultant!. Look, here's my self-signed certificate.
4
146
274
@bitfield
John Arundel
6 years
Pull requests are the de facto standard workflow, but an inefficient one. In trunk-based development, everyone commits on master, unfinished features are hidden by flags, and code reviews are per-commit. It sounds appalling, but it makes sense
13
95
284