Skip to content

Category Archives: Uncategorized

a git pre-commit hook for tooltool manifest checking


I’ve recently been uploading packages to tooltool for my work on Rust-in-Gecko and Android toolchains. The steps I usually follow are: Put together tarball of files. Call from build-tooltool to create a tooltool manifest. Upload files to tooltool with said manifest. Copy bits from said manifest into one of the manifest files automation uses. […]

on the usefulness of computer books


I have a book, purchased during my undergraduate days, entitled Introduction to Algorithms. Said book contains a wealth of information about algorithms and data structures, has its own Wikipedia page, and even a snappy acronym people use (“CLRS”, for the first letters of its authors’ last names). When I bought it, I expected it to […]

why gecko data structures should be preferred to std:: ones


In light of the recent announcement that all of our Tier-1 platforms now have a C++11-supporting standard library, I received some questions about whether we should continue encouraging the use of Gecko-specific data structures. My answer was “yes”, and as I was writing the justification for said answer, I felt that the justification was worth […]

rr talk post-mortem


On Wednesday last week, I gave an invited talk on rr to a group of interested students and faculty at Rose-Hulman. The slides I used are available, though I doubt they make a lot of sense without the talk itself to go with them. Things I was pleased with: I didn’t overrun my time limit, […]

for-purpose instead of non-profit


I began talking with a guy in his midforties who ran an investment fund and told me about his latest capital raise. We hit it off while discussing the differences between start-ups on the East and West Coasts, and I enjoyed learning about how he evaluated new investment opportunities. Although I’d left that space a […]

gecko and c++ onboarding presentation


One of the things the Firefox team has been doing recently is having onboarding sessions for new hires. This onboarding currently covers: 1st day setup Bugzilla Building Firefox Desktop Firefox Architecture / Product Communication and Community Javascript and the DOM C++ and Gecko Shipping Software Telemetry Org structure and career development My first day consisted […]

gecko include file statistics


I was inspired to poke at which files were most heavily #include‘d and which files contributed the most text as a result of their #include‘ing after seeing the simplicity of Libre Office’s script for doing so. I had to rewrite it in Python, as the obvious modifications to the awk script weren’t working, and I […]

compiler-enforced locked accesses


If you’ve done any amount of threaded programming, you’ve probably run across code that looked like: // Only accessed with the mutex held. uint32_t mFlags; bool mConnected; nsTArray<int32_t> mData; // Only called with the mutex held. void DoSomething(); Perhaps you’ve even gotten to debug code which inadvertently violated the locking requirements of the members. Several […]

standardizing things my way


I was reading The Digital Doctor: Hope, Hype, and Harm at the Dawn of Medicine’s Computer Age and ran across a passage that resonated: Everybody, of course, supports standardization—in theory. But human beings (particularly, but not exclusively, famous Harvard professors practicing at famous Boston hospitals) want things to be standardized their way. The difficulty that […]

explicit is better than implicit: c++ implicitly defined member functions


In the tradition of The Zen of Python, I’ve been thinking about pushing for explicit declarations of otherwise implicitly-defined member functions in C++, both in code that I write and in code that I review: // Instances of this class should not be copied. MyClass(const MyClass&) = delete; MyClass& operator=(const MyClass&) = delete; // We […]