🙊Christer Ericson Profile
🙊Christer Ericson

@ChristerEricson

7,096
Followers
1,096
Following
364
Media
12,732
Statuses

Personal opinions on gamedev, tech, and (sigh) politics. Skepticism. Science. Snark. Author of RTCD (see blog). Work:

Los Angeles
Joined November 2009
Don't wanna be here? Send us removal request.
Pinned Tweet
@ChristerEricson
🙊Christer Ericson
6 years
CRC Press who acquired the rights to my book "Real-Time Collision Detection" has informed me they will hire a "reviser" to "extend the lifecycle of your book." I'd appreciate retweets to make it widely known that any RTCD 2nd Ed. is against my wishes and without my involvement.
27
542
536
@ChristerEricson
🙊Christer Ericson
3 months
This is a fraction (a few of our PS4 devkits) of the infrastructure that builds Call of Duty 24/7. Add PS5s, XBox gen 8+9, thousands of CI/CD worker VMs (100s of Dell R650-class hosts), GPUs/VGPUs, phones+Mac hosts, and you have our massive “COD scale” build/test infrastructure.
Tweet media one
@biovf
David Sena
3 months
@ChristerEricson It always gets to me how little weight a lot of folks in the industry put on this kind of complexity. The amount of effort to deliver a successful game under these conditions is staggering. Only worse is delivering cross-platform games with low'ish end mobile platforms included
6
7
225
47
385
3K
@ChristerEricson
🙊Christer Ericson
5 years
How does one make something this impressive in a game creator tool? How does one make a game creator tool that enables stuff of this quality to be made within? I don't understand any of this. #DreamsPS4
7
96
583
@ChristerEricson
🙊Christer Ericson
5 years
Oh look, the recording of my GDC 2003 talk on "Memory Optimization" is on YouTube. The vast majority of the talk still holds true today. Probably worth a view if you never saw it.
10
112
405
@ChristerEricson
🙊Christer Ericson
9 months
ECS has become what Scene Graph was in early 90s (or whenever): the pre-thought solution you're "supposed" to be using. We're in a time when critical thinking is at an all-time low, so canned thinking is the last thing we need. (I partly blame design pattern mentality.)
@SebAaltonen
Sebastian Aaltonen
9 months
There’s too much ideologic debate going on with ECS. Many game devs have used to having a framework-style engine that forces similar object structure for everyhing. Be it OOP game objects, traditional ECS or inner join ECS.
2
3
98
12
47
302
@ChristerEricson
🙊Christer Ericson
3 months
For those of you who haven’t been exposed to just how many platform combinations game developers might have to support. 👇🏻 (and this doesn’t even list the complexity of mobile, especially android proliferation)
@Griff_
Martin Griffiths
3 months
Here’s a fun list of the platform combinatorics we currently support in No Man’s Sky. These all have to work for each update and every patch that goes out the door! It’s a long list, which I hope conveys the complexity involved in releasing a large cross platform game like ours:…
37
120
869
6
31
320
@ChristerEricson
🙊Christer Ericson
3 years
What are some key “best practice” systems or features every game/program/system *should* have? I’ll start: * A “kill switch system” through which you can enable/disable full systems or single features thereof. For debugging, crash avoidance, A/B testing, etc. Your turn!
64
57
323
@ChristerEricson
🙊Christer Ericson
7 years
If you check in code that not 90%+ of your team's engineers can read right away, you are programming for your own ego. Don't be that guy.
15
120
249
@ChristerEricson
🙊Christer Ericson
6 years
Career advice: people won't know how awesome you are if you don't show them somehow. Tweet, blog, present, write, talk, meet, etc. Share good things and people will notice. It's good for both personal growth and your career.
6
47
235
@ChristerEricson
🙊Christer Ericson
3 years
Similar to the other thread. What are your most important best practice implementation tips? Mine: NEVER write directly to the destination file. Write to temp file with unique/random file name and do atomic rename to dest file when done. Guarantees no 1/2-written files. Yours?
@ChristerEricson
🙊Christer Ericson
3 years
What are some key “best practice” systems or features every game/program/system *should* have? I’ll start: * A “kill switch system” through which you can enable/disable full systems or single features thereof. For debugging, crash avoidance, A/B testing, etc. Your turn!
64
57
323
24
26
233
@ChristerEricson
🙊Christer Ericson
6 years
I wish they had illustrated radians like this back in my school days. Very much a "a picture is worth a 1,000 words" example.
@PhysicsFootnote
Derek McKenzie
6 years
Here's a nice little animation to help introduce the concept of radians...
3
113
317
4
53
224
@ChristerEricson
🙊Christer Ericson
2 years
Bought for $2.9M. Listed for $48M. Top bid was $280. 😂 (no “M”) I’m looking forward to all NFTs crashing like that. The sooner the better, and all this BS nonsense can just stop.
2
29
217
@ChristerEricson
🙊Christer Ericson
1 year
I buy a ton of books that I don’t necessarily get around to reading, but I’m soo eager to read every single word of this one. I *know* it’s going to be good! (By one of the co-founders at Sucker Punch Productions.)
Tweet media one
8
7
200
@ChristerEricson
🙊Christer Ericson
6 years
Here's my C++ tip list for the year: 1. Don't. 2. Just don't.
11
50
185
@ChristerEricson
🙊Christer Ericson
5 years
This. So much this. And *this* is why I’m so anti-C++. The mental bar for “modern C++” is already insanely high and keeps getting higher and higher with each toke of the C++ committee crackpipe.
@SebAaltonen
Sebastian Aaltonen
5 years
Avoid writing code that your collegues can’t understand or modify. Maintenance of code requiring special skill set is problematic. Usually a lot simpler ”90%” solution is a far better choice in the long run. Writing tricky algos/structures/code isn’t a proof of skill. It’s a trap
9
85
318
15
34
177
@ChristerEricson
🙊Christer Ericson
5 years
Code simplicity is measured NOT in succinctness, elegance, or something dumb like that. Code simplicity is measured in how little code, how little *other* code, and how few concepts are needed to understand it.
14
43
172
@ChristerEricson
🙊Christer Ericson
5 years
@ericniebler @ocornut Goal of programmers is to ship, on time, on budget. It’s not “to produce code.” IMO most modern C++ proponents 1) overassign importance to source code over 2) compile times, debugability, cognitive load for new concepts and extra complexity, project needs, etc. 2 is what matters.
6
38
157
@ChristerEricson
🙊Christer Ericson
4 years
Said this before, but it can never be repeated too many times: The most important quality for code is that it is "changeable"; all other important qualities follows from changeability. And what's changeable code? Chris McEvoy has a good summary here:
4
24
156
@ChristerEricson
🙊Christer Ericson
5 years
Be green. Program in C.
@stevestreeting
Steve is not here anymore
5 years
An interesting measurement of relative energy efficiency of various languages HT @FlohOfWoe
Tweet media one
35
235
509
4
47
141
@ChristerEricson
🙊Christer Ericson
5 years
It's ironic that dynamic languages rely on unit tests, type tagging, and linting to reach the runtime stability of static/compiled languages. It's almost like dynamic languages are trying to tell you to use static/compiled languages to begin with!
10
20
133
@ChristerEricson
🙊Christer Ericson
2 years
"Don't use goto" is terrible. It's just opinion. (Bad opinion cuz it's wrong.) It really means "avoid spaghetti code." That's a stronger guide. Still terrible, mostly opinion. Try "prefer linear code." It subsumes the others, and is *justified* by caching, no/few branches, etc.
16
10
133
@ChristerEricson
🙊Christer Ericson
5 years
"Don't repeat yourself" (DRY) is ironic dogma, since those who espouse that principle do nothing but repeat themselves: "apply DRY, apply DRY!" Pragmatically, repetition is sometimes exactly the right tool, e.g. for decoupling. Guide: 2x repetition is OK-ish, 3x+ not so much.
12
31
126
@ChristerEricson
🙊Christer Ericson
6 years
Advice to programmers: the code you write is not the product. Stop disproportionately elevating the "importance" of how you author that code.
13
24
124
@ChristerEricson
🙊Christer Ericson
5 years
While the C++ threads have been painful to read I still love them, because they inform me about who is employable and who is not.
6
8
122
@ChristerEricson
🙊Christer Ericson
5 years
Even though you’re a not-worth-it terribly-overpriced event (and I was in SF, but didn’t attend), thank you GDC for being an excuse for meeting up with all of these people in our industry, old and new. Can we just replace GDC with a giant free meet-and-greet event please?
12
4
115
@ChristerEricson
🙊Christer Ericson
16 days
Is there a Zig vs Jai vs Odin vs Rust (vs C/C++) comparison (table) anywhere? That would be an interesting read. Meanwhile… so was this:
@LogLogGames
LogLog Games
17 days
Here's also our postmortem of 3 years of Rust gamedev, and why we're leaving Rust #rustgamedev #rustlang
71
264
2K
9
2
112
@ChristerEricson
🙊Christer Ericson
4 years
The Share button idea was a stroke of genius by @Nathan_Gary (then of Sony Santa Monica Studio) -
4
18
100
@ChristerEricson
🙊Christer Ericson
9 months
Well. This is sort of exciting. The rest of the world is discovering/recognizing the concept of data-oriented design and the performance benefits. (20 years later, but still!)
@_plop_
Jeremy Laumon
9 months
ASTs are large and full of pointers. How do you make compilation faster? You guessed it 😏 Cool talk by @chandlerc1024 !
Tweet media one
5
25
157
3
11
108
@ChristerEricson
🙊Christer Ericson
6 years
Graphics programmers are shady people.
4
14
107
@ChristerEricson
🙊Christer Ericson
6 years
If you spend more time as a programmer talking about code and programming languages than you spend talking about how to solve problems and how to further the product/tool you're working on, then you're doing it wrong.
8
18
106
@ChristerEricson
🙊Christer Ericson
3 years
@tom_forsyth @pmgentry @omershapira English is a stupid language with random spellings and pro-nun(!)-ciations. When I came to the US 20+ years ago, I believed - as one would! - these were pro-noun(!)-ced as such: suffice - like office circumference - like interference (or circumcision) But nooo...
20
5
98
@ChristerEricson
🙊Christer Ericson
7 years
Order of importance: 1:Solve the right problem. 2:Solve it correctly. 3:Solve it efficiently. Lots of talk about 3, not enough about 1 & 2.
5
34
102
@ChristerEricson
🙊Christer Ericson
5 years
@TimSweeneyEpic @aras_p One of many concerns with this kind of code is that a group of C++ culprits refer to it as "modern C++ techniques", where the use of 'modern' (to impressionable minds) suggests there's something good about this code when it's just an abomination. We all need to fight this.
9
11
100
@ChristerEricson
🙊Christer Ericson
6 years
Microsoft Windows needs a performance-oriented product manager who says "I don't care" when programmers make rational excuses for why opening folders, launching executables, etc. are piss-slow, and sets programmer goals in ms for those actions (over "Aero" BS goals or whatever).
10
17
96
@ChristerEricson
🙊Christer Ericson
8 months
I mean, sure, Gaussian splatting is cool. But now animate it. Or move a light.
16
5
95
@ChristerEricson
🙊Christer Ericson
3 years
It blows my mind again and again when (small teams of) users create these amazing things in PlayStation Dreams. It also suggests that the traditional tools that game devs have/use to build game levels are both abysmal and antiquated compared to what they could be.
2
7
93
@ChristerEricson
🙊Christer Ericson
4 years
It's 2020, by now recruiters should know that "fully stocked kitchen" is not how you entice candidates. I'd like that to be "100% employer 401(K) matching" or "vesting every month" or "6 weeks starting vacation time." That's how you get someone to perk up!
10
7
94
@ChristerEricson
🙊Christer Ericson
3 years
Great talk from Casey. "SOLID" and similar touted methodologies/concepts - including, gasp, design patterns - is just dogma and should be treated as such. Instead, measure, and apply common sense. Don't let dogma fester, because you'll end up elevating it as rule.
@cmuratori
Casey Muratori
3 years
My lecture "Where Does Bad Code Come From?" is now available on YouTube. This was an invited presentation to @infura_io , originally broadcast as a livestream:
16
38
247
5
7
93
@ChristerEricson
🙊Christer Ericson
8 years
"Programming isn't about doing sexy tasks, it's about making shit work." - @jtilander
5
34
90
@ChristerEricson
🙊Christer Ericson
3 years
@omershapira God of War didn't ever use ref counting. Objects were either manually tracked, or the whole heap they were in was deleted. (Each streaming sublevel had its own heap.) Manual memory management FTW.
6
2
89
@ChristerEricson
🙊Christer Ericson
3 months
Changeable code is defined by 2 key metrics: * Ease of understanding (How much other code/language concepts must be understood to change code) * Ease of change (How much other code must be changed; and simplicity of performing change itself) These 2 subsume most other factors.
@ChristerEricson
🙊Christer Ericson
3 months
Code reuse is the dumbest idea. Modules is better. “But they’re the same!” No! Code reuse begets architecture astronauts, whereas modules lead to over-encapsulation. Astronauting is perf death. Encapsulation gives rigid code. Right mindset abstraction is write *changable* code.
6
7
80
3
17
88
@ChristerEricson
🙊Christer Ericson
4 years
Great illustration of how 1) games are usually crap until the very last seconds of development, and that 2) even though commonly believed, games are rarely "almost done" at the point they're cancelled. (via @GameOverThirty )
@askagamedev
Ask a Game Dev
4 years
@nite_moogle I think I am going to use this to explain why delaying a game might not work. Like so:
Tweet media one
2
7
34
6
20
87
@ChristerEricson
🙊Christer Ericson
3 months
@jwatte Don’t have a simple answer for that because there’s several games in flight, different configs / platforms / data sets. And so much depends on warm caches. But last time we checked some sort of build is triggered by check-ins roughly every ~11 seconds.
2
0
85
@ChristerEricson
🙊Christer Ericson
7 years
Code only specifies how, not why. Thus "self-documenting code" is an oxymoron. And a moron is one who argue otherwise. Comment your code.
11
35
86
@ChristerEricson
🙊Christer Ericson
2 years
This is a mindset problem. Do programmers who think it’s ok that comments get “out of date” also think it’s ok that code gets “out of date?” I’m guessing not. Then they should just be a *professional* and give comments the same attention they give code. It’s that simple.
10
6
85
@ChristerEricson
🙊Christer Ericson
6 years
Clean up long-standing "technical debt" little-by-little, by doing gradual cleanup in the systems that new features touch on. Tech leads, empower you teams to do this.
5
31
85
@ChristerEricson
🙊Christer Ericson
6 years
I don't know who made this, but it's the best thing I've seen all week.
Tweet media one
4
19
79
@ChristerEricson
🙊Christer Ericson
2 years
@ddiamond @JMRothberg This started in May, they have had months to order vaccines, tracking, vaccinate, etc. If Covid should have taught them anything, it’s the importance of resolute, early action. Call them out for what they are: incompetent.
4
4
81
@ChristerEricson
🙊Christer Ericson
6 years
Time to repost my "floating-point tolerances" blog post from a decade ago: (Prompted by reading something that used a mumbo-jumbo way of comparing floating-point values.)
0
22
79
@ChristerEricson
🙊Christer Ericson
3 months
Code reuse is the dumbest idea. Modules is better. “But they’re the same!” No! Code reuse begets architecture astronauts, whereas modules lead to over-encapsulation. Astronauting is perf death. Encapsulation gives rigid code. Right mindset abstraction is write *changable* code.
@kenpex
c0de517e/AngeloPesce
3 months
@kechogarcia At EA once we tried to pull out the camera library - a thing that has only one output: a 4x4 matrix per frame. We never managed, it would have required to rewrite most things. At that was EA, a company that is built on the idea that reusing code modules is fantastic.
1
0
25
6
7
80
@ChristerEricson
🙊Christer Ericson
2 years
For those comfortable at the intersection of math, French, and Asterix:
Tweet media one
1
9
80
@ChristerEricson
🙊Christer Ericson
2 years
Don’t identify with the code you write or measure success in “code legacy.” Your (and others) job is to successfully move the project forward thru states A->B, B->C etc. Your code being replaced going from B to C doesn’t undo you brought project to state B in the first place!
6
9
78
@ChristerEricson
🙊Christer Ericson
8 years
The programmers who argue for less check-in procedure and automated testing are often the ones who need that the most.
7
14
70
@ChristerEricson
🙊Christer Ericson
7 years
Saying "I've seen your source code" grants you voodoo powers over programmers, allowing you to control them through their shame.
5
17
73
@ChristerEricson
🙊Christer Ericson
5 years
@olson_dan @SebAaltonen @aras_p The problem isn't "range-based" (loops or otherwise). It's that everything "modern" in C++ is implemented as a library instead of natively. So you get: terrible syntax, obscure errors, slow compiles, bad code gen, unpredictable code gen, an inconsistently designed language, etc.
5
12
73
@ChristerEricson
🙊Christer Ericson
3 months
@biovf • Jan van Valberg, GDC 2018 “Automated Testing and Profiling for Call of Duty” • Adrian Astley, GDC 2022 “Tools Summit: Efficiently Shuffling Loads of Data from Place to Place” (Probably need Vault access?)
2
3
72
@ChristerEricson
🙊Christer Ericson
4 years
@niklasfrykholm Best rename other folders to e.g. "includo" and dobug" for maximum speed gains.
0
2
72
@ChristerEricson
🙊Christer Ericson
5 years
Best, most-informed, style guide I've ever seen. If it was up to me, the OMG-DESIGN section (which is the most important part of the document) should be adopted by every team in the world.
3
10
70
@ChristerEricson
🙊Christer Ericson
5 years
"Skills: Object-oriented software development, Test driven development, Agile, Scrum, MVC, Design Patterns" - all the things I don't want to see in one single resume. Bingo!
11
9
69
@ChristerEricson
🙊Christer Ericson
5 years
It seems timely to retweet this. Perhaps I'll remember to retweet it every December.
@ChristerEricson
🙊Christer Ericson
6 years
Here's my C++ tip list for the year: 1. Don't. 2. Just don't.
11
50
185
6
21
68
@ChristerEricson
🙊Christer Ericson
8 years
Do this.
@InternDept
Intern Department
11 years
We boost tessellation in the engine's wireframe views so that artists think they're getting denser meshes than they actually are
0
16
38
2
22
65
@ChristerEricson
🙊Christer Ericson
6 years
Tired: debugging your code by single stepping. Wired: debugging your data center with a thermal camera.
Tweet media one
3
13
67
@ChristerEricson
🙊Christer Ericson
2 years
The time to fix technical debt is always *right now*. Tech debt grows. If you wait, the debt is larger and the disincentive to fix it will grow proportionately. OFC can't just work on tech debt; it needs to be triaged/prioritized. But someone/s should always work on tech debt.
9
10
67
@ChristerEricson
🙊Christer Ericson
4 years
MDK for PlayStation 1 shipped with tons of if-statements that said "if you're standing in *this* area, don't fall through the floor", to combat a seriously flawed auto-conversion of the BSP-based collision geometry from the PC version.
@Polygon
Polygon
4 years
The truth is that many games are held together by duct tape — and that’s OK
Tweet media one
18
170
787
5
8
66
@ChristerEricson
🙊Christer Ericson
3 years
Aggregation of marginal gains: Make big gains by dividing a process into many small steps and make tiny improvements to each step.
Tweet media one
10
17
67
@ChristerEricson
🙊Christer Ericson
2 years
Dijkstra’s anti-goto statement is 54 years old, uttered in a time when structured programming was barely invented and not well adopted. Elevating “never use gotos” today is akin to putting Old Testament nonsense up against modern science.
@ZPostFacto
Fletcher Dunn
2 years
I just replaced a loop with a "retry" goto and it made the code so much easier to understand. I was able to remove a couple of levels of indentation as well. F you Dijkstra, I'll do what I want!!!!!
1
0
35
6
10
65
@ChristerEricson
🙊Christer Ericson
9 years
When someone says "multi-threading is easy" what it really means is "I don't understand multi-threading."
8
44
64
@ChristerEricson
🙊Christer Ericson
8 years
The Hacks of Life: Simultaneous Mipmap Level Generation -
2
24
59
@ChristerEricson
🙊Christer Ericson
3 years
Thanks Eric! ❤️ I like to think it's all 100% relevant today still (latencies different, but proportionally same). "Memory optimization" talk audio/slides video here: PPT downloadable here:
@esmolikowski
Eric Smolikowski
3 years
Driving back from LA to SF after a couple of days of reviewing projects. Am listening to @ChristerEricson 2003 GDC talk about memory optimizations. Crazy how relevant this topic still is today. Probably more than ever.
4
0
40
1
14
59
@ChristerEricson
🙊Christer Ericson
5 years
@zeuxcg Alternatively, by putting electrodes in the users brain you could read out their input response before they have become conscious of it, and achieve negative latency. And also no longer need a controller. Win-win. #VPofIdeas
8
3
57
@ChristerEricson
🙊Christer Ericson
4 years
It was a bit better than that Jim. Person A takes our test. We pass. They reject the rejection. Posts their "solution" IN ANGER to the web to spoil the test. Person B comes around later. Takes same test. Submits the copied incorrect solution as their own. Oops.
@jtilander
Jim Tilander
4 years
I'm spluttering my coffee from laughing. Reminds me of the time where @ChristerEricson told me of the candidate that had copy pasted the (incorrect) answer on our take home test from the interweaving. But this one better.
1
0
17
2
7
56
@ChristerEricson
🙊Christer Ericson
5 years
Good talk, but... The concept of "abstraction penalty" (for performance) was well-shown by Stepanov's C++ benchmark around year 2000. () That you need to educate C++ devs about abstraction penalty in *2019* is why C++ is seen as such a joke.
@CppCon
CppCon
5 years
CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions” #CppCon #cpp #cplusplus
0
10
47
5
14
57
@ChristerEricson
🙊Christer Ericson
5 years
I looked at the 'twitter analytics' page for my twitter account earlier. 98% of you are interested in "tech news." That makes sense. The top interest though, at 99%, is "dogs." Wasn't expecting that. So here's a packet sniffing dog for you all.
Tweet media one
5
0
57
@ChristerEricson
🙊Christer Ericson
2 years
Given two single-sided triangles ABC/ADB (with shared edge AB) you can intersect a ray PQ against *both* tris in the same time it takes to intersect against *one* tri. Testing first if PQ is left/right of AB prunes one tri, while math contributes to test of the other tri.
5
8
56
@ChristerEricson
🙊Christer Ericson
3 months
@IcepatID Those are for testing the game. The VMs mentioned are for building the game. The photo I posted is just a tiny portion of the hardware infrastructure.
2
1
55
@ChristerEricson
🙊Christer Ericson
6 years
He misses the boat though. C++ is already fucked up beyond repair. At this point it's better to accept every kook submission in hope to accelerate C++'s demise.
@ThE_JacO
Raffaele Fragapane
6 years
When even @stroustrup thinks the C++ "standard" is spiraling down the drain you know you have a problem
0
13
31
7
13
54
@ChristerEricson
🙊Christer Ericson
4 years
I approve of this peaceful way of sending a message.
@RexChapman
Rex Chapman🏇🏼
4 years
This dude trolling the police with Star Wars - Imperial March is exactly the Twitter content I am here for today...
5K
199K
721K
1
6
54
@ChristerEricson
🙊Christer Ericson
4 years
Perhaps time for half of the US to wake up and realize that "medicare for all"/"socialized healthcare" is a) incredible, b) how all other modern countries IN THE WORLD work! The US is 3rd-world when it comes to healthcare. Vote democrat - any democrat - and fix this shit!
3
8
52
@ChristerEricson
🙊Christer Ericson
9 months
@iequalshane "It was more fun to design than actually use it." Yeah. Sadly it's a common pitfall for programmers. To put personal satisfaction ahead of the real-world needs. I call it "egotistic programming." It's important to recognize it and get it out of one's system.
2
3
53
@ChristerEricson
🙊Christer Ericson
3 years
@tom_forsyth @omershapira Insomniac Games did that in the PS1/PS2 era. I believe their memory manager was a piece of paper on Al Hastings desk? @shaun_mccabe ? @jonnyblahblah ? Q: "I need a 16K memory block." A: "You can have 4K at location X, and 12K at location Y."
3
2
54
@ChristerEricson
🙊Christer Ericson
4 months
@reduzio Neither (or possibly both). Good APIs are layered, and the system/component can be integrated at one of several levels, that trade off ease of integration vs control/depth of integration. This presentation (by @cmuratori ) is a must watch on the topic:
2
6
54
@ChristerEricson
🙊Christer Ericson
5 years
@AlenL @TimSweeneyEpic @aras_p A simple way is for senior programmers and other technology leaders to, regularly, speak up against this "modern C++" and C++ overuse, to positively influence current and next generation of programmers into a healthy programming culture. (And we can do that right here, right now)
7
6
54
@ChristerEricson
🙊Christer Ericson
5 years
hello plz send $70. I need to use it to buy hamburgers.
@RadwanSelo
Radwan Selo
5 years
@ChristerEricson hello can u plz send me ur rtcd book. I need to use it in my University research.
1
0
0
1
3
52
@ChristerEricson
🙊Christer Ericson
6 years
Check out the HDR research that @P_Malin of our Activision Central Tech group did for Call of Duty: WWII. (Some additional ShaderToy shaders in @P_Malin 's twitter feed as well.)
0
9
53
@ChristerEricson
🙊Christer Ericson
4 years
For your “end lockdown” friends:
Tweet media one
1
10
52
@ChristerEricson
🙊Christer Ericson
4 years
Why TDD is such a conceptual mistake: "Testing a program can be an effective way to catch coding errors. It is not a good way to find design errors..."
5
9
53
@ChristerEricson
🙊Christer Ericson
5 years
The only dogma you need is "dogma is bad."
6
12
51
@ChristerEricson
🙊Christer Ericson
4 years
Multi-threading without proper use of mutex.
@nixcraft
nixCraft 🐧
4 years
How AI can help answer the daily question: "What’s for breakfast and how to eat it optimally?" AI finding optimal way to eat breakfast:
7
113
400
6
4
50
@ChristerEricson
🙊Christer Ericson
6 years
Programmers are creators, not builders.
4
22
49
@ChristerEricson
🙊Christer Ericson
5 years
Technical debt comes not from code ugliness, bugs, or similar, but from loss of nimbleness. The best *actionable* definition I've seen that captures this comes from @splittingred , saying that: Technical debt is any code that decreases agility as the project matures. 1/2
2
11
50
@ChristerEricson
🙊Christer Ericson
6 years
If given too little time for a system, programmers are prone to hacky solutions. If given too much time, we are prone to overengineering. Somewhere in the middle lie the good, nimble solutions. Seek them. Learn to use time correctly.
2
12
50
@ChristerEricson
🙊Christer Ericson
2 years
#if 0 ... #endif is worst way of disabling code. Quickly leads to code rot. if (runtimeFlag) { ... } is best way, because 1) body is still compiled, stemming code rot, and 2) allows frequent intraday check-ins so others get visibility into changes you're making during dev.
11
1
50
@ChristerEricson
🙊Christer Ericson
4 years
It’s ironic how it takes experience to value experience.
2
5
50
@ChristerEricson
🙊Christer Ericson
5 years
@bkaradzic @mike_acton @deplinenoise @postgoodism @bmcnett Q: How many programmers does it take to develop Unity? A: All of them.
3
1
49
@ChristerEricson
🙊Christer Ericson
5 years
Great post. Must read for project leads.
@bernhardsson
Erik Bernhardsson
5 years
Why software projects take longer than you think – a statistical model (blog post)
42
473
1K
0
9
48
@ChristerEricson
🙊Christer Ericson
3 years
Space Karen.
1
3
48