Hello, Bazel

  • Using secrets with Google AppEngine
  • Low-fat Skylark rules – saving memory with depsets
  • 9 years of blogging have totally been worth it
  • Aspects: the fan-fic of build rules
  • That’s senior programmer to you, buddy
  • The Haunted Homesteader
  • Recruiting review
  • Using AutoValue with Bazel
  • You do you
  • Snail Spam
  • Four alternative debugging techniques
  • Compilation à la mode
  • The Mixed-Up Directories of Mrs. Bazel E. Frankweiler
  • Custom, locally-sourced output filenames
  • Using environment variables in Skylark repository rules
  • Resting BUILD face
  • Communicating between Bazel rules: how to use Skylark providers
  • Collecting transitive runfiles with skylark
  • Startup idea #6ec4e42a-28cc-4425-9ebc-61ac8e224580: Adventurer’s gear for geeky hikers
  • Using a generated header file as a dependecy
  • Operation: Crappy Sewing Machine commences
  • New dog blog
  • configure: error: lib_i_don’t_care_about.so not found.
  • JoCo Cruise 2016: a misanthrope’s perspective
  • Star Trek invades our timeline
  • Flag-Friday: debugging tests with –java_debug
  • Saving the (prod) environment
  • Combining projects without converting to a monorepo
  • Non-technical advice for startups and open source projects
  • One weird trick for fast CI
  • Creating a javadoc rule for Bazel
  • Build, y u go slow?
  • Debugging flaky tests with Bazel
  • The Return of the Scala Rule Tutorial: The Execution
  • Tutorial: how to write Scala rules for Bazel
  • Trimming the (build) tree with Bazel
  • Positive reinforcement learning through barbacoa
  • New radio in town
  • Pain-free OAuth with AppEngine
  • API changes with extra cheese, hold the fear
  • Have you ever looked at your build? I mean, really looked at your build?
  • Hello, Bazel
  • Making wedding rings
  • Laptops are getting smaller all the time
  • Teaching CS
  • Sharing Programming
  • I will gladly write a test Tuesday for a program today
  • Innards of Tar
  • TEALS – Teaching CS on your way to work, part 2
  • Mestre Boneco’s Training Sequences
  • TEALS – Teaching CS on your way to work
  • Hello, Digital Ocean!
  • Makin’ Mazes
  • Update Your Feeds
  • Fixing CSS antialiasing on Chrome
  • Glupdate
  • Game Jam Resource List
  • Hello, Glass
  • Davy Jones’ Freezer
  • Getting Better All the Time via Code Review
  • Scratches & Bruises
  • User Support
  • The High Ground in Low Country
  • The Little Volcano that Could
  • MongoSF
  • The Joy of Programming
  • Speed Mentoring
  • Encouraging Female Programmers, Even the Redheads
  • How to Succeed in CS Without Really Trying
  • Velocity 2013
  • Using Visual “APIs”
  • The Professor, the Interviewer, and the Coworker
  • Smart Pointers and Heirloom Underpants
  • The Rise of Big Data
  • Upcoming Hackathons
  • Edutainment
  • Ludum Dare
  • Hello, Lumpy World!
  • The Basics of Signal Handling
  • Labeling Git Branches
  • Music Gremlins is Approved!
  • It’s turtles all the way down
  • Adding an Assertion Macro in Objective-C
  • MongoDB: The Definitive Guide 2nd Edition is Out!
  • First Two Weeks at Google
  • Stock Option Basics
  • Recruiting in all the wrong places
  • Programming a State Machine
  • Mad Art Skillz
  • Finished The Definitive Guide
  • Databases & Dragons
  • The Google Interviews
  • Guide to Tech Interviews
  • Goodbye 10gen, Hello Google
  • Intro to Fail Points
  • MongoDB Puzzlers #1
  • Humans are difficult
  • Introducing Noodlin – A Brainstorming App
  • MongoDB changing default: now write errors are reported
  • TDG Update
  • Got any advice?
  • How MongoDB’s Journaling Works
  • Go Get a Hot Water Bottle
  • ––thursday #7: git-new-workdir
  • How to Make Your First MongoDB Commit
  • A Neat C Preprocessor Trick
  • Call for Schemas
  • Git for Interns and New Employees
  • Controlling Collection Distribution
  • Summer Reading Blogroll
  • Replica Set Internals Part V: Initial Sync
  • Good Night, Westley: Time-To-Live Collections
  • The Snail Crawls On…
  • ––thursday #6: using git over ssh
  • Replica Set Internals Bootcamp Part III: Reconfiguring
  • 10 Kindle Apps for the Non-Existent Developer API
  • ––thursday #5: diagnosing high readahead
  • Replica Set Internals Bootcamp Part IV: Syncing
  • Night of the Living Dead Ops
  • ––thursday #4: blockdev
  • ––thursday #3: a handy git prompt
  • Debugging Sexism
  • ––thursday #2: diff ‘n patch
  • ––thursday #1: screen
  • Replica Set Internals Bootcamp: Part II – Creating a Set
  • git-oh-$#!†
  • The Comments Conundrum
  • Hacking Chess: Data Munging
  • Hacking Chess with the MongoDB Pipeline
  • And now, for something completely different
  • Replica Set Internals Bootcamp: Part I – Elections
  • Popping Timestamps into ObjectIds
  • SQL to MongoDB: An Updated Mapping
  • On working at 10gen
  • Getting Started with MMS
  • More PHP Internals: References
  • Playing with Virtual Memory
  • PHP Extensions Made Eldrich: Classes
  • PHP Extensions Made Eldrich: PHP Variables
  • PHP Extensions Made Eldrich: Hello, World!
  • PHP Extensions Made Eldrich: Installing PHP
  • PS1++
  • Mongo in Flatland
  • NoSQL vs. the world
  • A finite simple group of order two
  • Simulating Network Paritions with mongobridge
  • Trying Out Replica Set Priorities
  • The Scripting Language of Databases
  • Lorenz University: I can has degree?
  • Implementing Replica Set Priorities
  • “Scaling MongoDB” Update
  • Resizing Your Oplog
  • Enchiladas of Doom
  • My Life is Awesome
  • A Short eBook on Scaling MongoDB
  • Why Command Helpers Suck
  • How to Use Replica Set Rollbacks
  • How to Choose a Shard Key: The Card Game
  • Wireless dongle review
  • Setting Up Your Interview Toolbox
  • How I Became a Programmer
  • Firesheep: Internet Snooping made Easy
  • Bending the Oplog to Your Will
  • How not to get a job with a startup
  • Getting to Know Your Oplog
  • Replication Internals
  • Scaling, scaling everywhere
  • Writing MongoDB: The Definitive Guide
  • Choose your own adventure: MongoDB crash recovery edition
  • Oh, the Mistakes I’ve Seen
  • A Quick Intro to mongosniff
  • Return of the Mongo Mailbag
  • History of MongoDB
  • If it quacks like a RDBMS…
  • Buying an Mahattan Co-op
  • Sharding and Replica Sets Illustrated
  • Part 3: Replica Sets in the Wild
  • Replica Sets Part 2: What are Replica Sets?
  • Replica Sets Part 1: Master-Slave is so 2009
  • MongoDB backups & corn on the cob in 10 minutes
  • Managing your Mongo horde with genghis-khan
  • I Never Thought I’d Be On a Book
  • Large Hadron Collider Using MongoDB
  • With a name like Mongo, it has to be good
  • There must be 50 ways to start your Mongo
  • Once and Future Presentations
  • Sharding with the Fishes
  • Happy Belated Ada Lovelace Day!
  • MapReduce – The Fanfiction
  • Bug Reporting: A How-To
  • Sleepy.Mongoose: A MongoDB HTTP Interface
  • MongoDB Survey Results
  • “Introduction to MongoDB” Video
  • St. Clementine’s Day
  • Mongo Mailbag #2: Updating GridFS Files
  • FOSDEM: Some Pictures
  • FOSDEM
  • Mongo Mailbag: Master/Slave Configuration
  • Washington DC
  • MongoDB PHP Driver 1.0.3 Release
  • Upcoming Talks
  • Mongo Just Pawn in Game of Life
  • Public Speaking: The Prequel
  • NoSQL Trolls
  • Public Speaking
  • Installing Linux on a MacBook Air
  • Five Worst Places for Mosquito Bites
  • Foz do Iguacu
  • Replacing $ in the MongoDB PHP Driver
  • Testing MongoDB Replica Pairs with Perl
  • Final Days in CA
  • Reading in San Francisco
  • Adventures in Ramen
  • I’m going to Brazil!
  • OSCON
  • Soccer: No Slimy GirlS Allowed!
  • How do you make the web reliable?
  • CouchDB vs. MongoDB Benchmark
  • Because we are the Mutha Flippin Win
  • Revisionist history
  • PHP Extension Wiki
  • From Russia with Bugs
  • Get on the bus, Gus
  • Got Mongo Working on Hostmonster!
  • VM of Death and Doom from Hell
  • Another comic
  • Zen and the Art of Sewing Machine Matinence
  • Slug Sex
  • #1 Google Result!
  • Soup and Circus
  • And an irrational number of closets
  • RSS Idea
  • New comic up!
  • phpdoc hell
  • Pain in my CVS
  • Nifty Flash Thing
  • Downloading the Archives
  • Archive for the 'Uncategorized' Category

    Hello, Bazel

    Wednesday, March 25th, 2015

    Yesterday, my team open-sourced Bazel, the build system Google uses for most of its software. We have been working on open-sourcing Bazel for over a year, extricating dependencies, renaming and refactoring, and jumping through legal and political hoops. We were still missing a lot of stuff we wanted to add, but we thought it would […]

    Making wedding rings

    Tuesday, October 21st, 2014

    This weekend, Andrew and I made our own wedding rings. We’ve been married for several years, but we never got around to getting rings. We found out about a guy in NYC who does ring-making workshops: you come to his studio and spend a day making personalized, custom rings. It was fun, and now we […]

    Laptops are getting smaller all the time

    Thursday, October 9th, 2014

    As a “thank you” for hosting an intern this summer, Google gave me a little Android figurine. When I took it out of its box, a little backpack fell out, too. The backpack actually zipped and unzipped, but it didn’t have anything in it. So I decided to make a Macbook Air for it. First, […]

    Teaching CS

    Saturday, September 6th, 2014

    I taught my first AP CS class on Thursday. I was wearing a Google teeshirt (it was a “nice” one, have to dress up for the first day of school) so the first thing the students asked me was, “Do you work for Google?” Then: “Can we visit Google?” And: “Will this help us get […]

    Sharing Programming

    Tuesday, July 15th, 2014

    I’m going to be volunteer teaching AP computer science this fall at a NYC high school! Aside from actually prepping them for the AP exam, I’ve been thinking about how to share the programming culture I love with the students. Off the top of my head, I’d like to tell them about: Stuff you can […]

    I will gladly write a test Tuesday for a program today

    Tuesday, June 10th, 2014

    When I started at Google last year, I was really impressed by their testing. Every C++ class had three files: a <classsname>.h file, a <classsname>.cc, and a <classname>_test.cc. Every time something new is implemented, it has to be tested. The code review tool even warns you if you add a new .h without an accompanying […]

    TEALS – Teaching CS on your way to work, part 2

    Thursday, April 24th, 2014

    If you’re in NYC and thinking about volunteering, there is another TEALS information session tonight. After my last post on TEALS, Dan Goldin generously offered to answer some questions about his experience teaching students in Kentucky (remotely from NYC). What class are you teaching? What are they learning now? I’m currently teaching AP Computer Science […]

    Mestre Boneco’s Training Sequences

    Sunday, April 20th, 2014

    I’ve been doing capoeira for about a year now. It’s very fun and a great martial art for geeks (singing! dancing! friendly people!). I really recommend it if you’re trying to get into shape or build strength/flexibility. Different capoeira schools use different sequences of moves, and I’ve never been able to find the ones my […]

    TEALS – Teaching CS on your way to work

    Wednesday, April 16th, 2014

    Last night, I went to an information session about TEALS, a volunteer program where software engineers teach CS to high school students on their way to work. Basically, the schools schedule the CS class for first period so that the engineers can make it into work by 9:30. There are four programmer volunteers per class […]

    Hello, Digital Ocean!

    Sunday, April 13th, 2014

    I recently switched this blog to using Digital Ocean for hosting, so please let me know if you notice anything broken. On a side note, Digital Ocean is amazing and I highly recommend it to anyone who needs web hosting. You know how Github makes working with Git repos so pleasant? Digital Ocean does the […]

    kristina chodorow's blog