1. Bazel 8.0.0: Key Changes and What They Mean for Your Build Pipelines

    Posted on in programming

    Bazel 8.0.0 marks a significant milestone in the evolution of the popular build and test tool. This release, announced on December 9, 2024, introduces a wide range of changes, many of which are driven by a continuing effort to streamline Bazel’s core and move critical rules into …

  2. Understanding the “Semaphore Released Too Many Times” gsutil Error

    Posted on in system_administration

    When working with Google Cloud Storage (GCS) via gsutil, most file operations run smoothly. However, occasional cryptic error messages may appear that leave you scratching your head. One such error is:

    Semaphore released too many times MiB]  99% Done
    CommandException: 1 files/objects could not be copied/removed.
    make: *** [Makefile …
  3. Counting Lines of Code by Language in a Code Repository

    Posted on in programming

    Understanding the composition of a codebase can provide valuable insights: Which languages dominate the repository? Where might maintenance efforts be concentrated? Counting lines of code by language is a common task when assessing project complexity, preparing for audits, or reporting progress in multi-language environments.

    In this article, we’ll explore …

  4. Counting Bazel Targets by Top-Level Directory

    Posted on in programming

    When working with large Bazel code repositories, it’s not always clear how targets are distributed across directories. Understanding how many targets each top-level directory contains can help gauge complexity, identify hotspots, or guide refactoring efforts.

    While Bazel itself doesn’t have a direct command to provide a “count of …

  5. Protobuf in Rust: Integrating Another Language into the gRPC Ecosystem

    Posted on in programming

    We’ve now built similar RPC setups using Thrift and Protobuf/gRPC in Java and Python. Following the pattern established with Thrift, let’s integrate Rust into our Protobuf/gRPC ecosystem. Rust’s performance and safety features make it a popular choice for high-performance back-ends, and this exercise will show …

  6. Getting Started with Thrift: Building a Java Server and Python Client

    Posted on in programming

    In our first article, we introduced Thrift and Protobuf and laid out our plan to build cross-language client/server applications. Now, it’s time to dive into a hands-on example with Thrift. In this article, we’ll define a simple service using Thrift’s IDL, implement a server in Java …

Slaptijack's Koding Kraken