Say you have an Elixir Map. What's the fastest way to iterate the values? The candidates to consider are: Use Enum.map/2 and just pick out the values, ignoring the keyUse Map.values/1 and pipe the resulting list into Enum.map/2 I put together the following Benchfella microbenchmark: defmodule BasicBench do use Benchfella @test_map Map.new(1..10_000, fn k -> … Continue reading The fastest way to iterate a Map’s values in Elixir
Ian Bogost writes for The Atlantic that programmers should stop calling themselves engineers. It's a good article, and he's right about software devs cheapening the word "engineer" with their Wild West practices. This is a sentiment that's been echoed for years. At the same time, though, there's a worthwhile distinction to be drawn between "I … Continue reading Go ahead, call yourself a software engineer.
The most recent episode of CppCast featuring David Sankel ends with a good reminder: There is no One Software Methodology to Rule Them All, because we work in different contexts. Your environment matters. If you're a startup whose principle threat is obscurity, "move fast and break things" is good advice. If you're an avionics developer, … Continue reading No Size Fits All
Notes from a talk by Ken Mitchell of AMD Have to pay attention to cross core memory latencies in Threadripper Improvements in Windows Insider Program for TR memory interconnects Instruction set evolution: Zen+ has a ton of new features—pay attention to CLZERO, SSE3 Avoid mixing legacy SIMD and AVX instructions (has a penalty for switching)—move … Continue reading Ryzen Optimization
Notes from a roundtable discussion moderated by Andrew Fray at GDC 2019 For more, see autotestingroundtable.comFirst steps getting started with testingFirst decide what you want out of testing; if you want a rock-solid engine, need unit tests (despite it being hard on a legacy engine)Unit testingAnalyze how long it takes you to go through a … Continue reading Automated Testing Process Roundtable
Notes on a roundtable discussion at GDC 2019 Run by Chris Rando (@Rodneysquint)IGDA QA communityQA Mixer first floor of Marriot MarquisHow do we articulate how QA prevents bugsBug preventionDoing acceptance testing—QA sets the criteria to decide when something's done (rather than just doing some testing when the devs say it's done)QA involved in game design … Continue reading Preventing Bugs: The Dark Matter of QA
Notes on a talk by Steve Filby of Evil Empire & IndieCatapult, formerly Motion Twin at GDC 2019 BackgroundMotion Twin did F2P browser games, tried to move to mobile F2P/premiumThrew out everything to make Dead Cells for PCLeft in 2016 to start marketing agency Indie CatapultStarted Evil Empire recentlyHow we made Dead Cells a hit … Continue reading Decorticating “Dead Cells”: A business & marketing deep dive