# Alpaca.cpp

Run a fast ChatGPT-like model locally on your device.

This combines the LLaMA foundation model with an open reproduction of Stanford Alpaca a fine-tuning of the base model to obey instructions (akin to the RLHF used to train ChatGPT) and a set of modifications to llama.cpp to add a chat interface.

# Fastmail: Announcing Squire 2.0

Squire is our rich text editor that powers the mail composer in Fastmail, providing support for formatting and WYSIWYG text editing in all modern browsers.


Now, there are a good number of rich text editors. However, most have the luxury of strongly limiting what the person can enter to ensure the data model doesn’t break. We can’t use those because we must be able to handle arbitrary HTML because it may be used to forward or quote emails from third parties and must be able to preserve their HTML without breaking the formatting. This is Squire’s advantage.

# After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

On the morning of Jan. 26, as two Alaska Airlines flights from Seattle to Hawaii lifted off six minutes apart, the pilots each felt a slight bump and the flight attendants at the back of the cabin heard a scraping noise.

As the noses of both Boeing 737s lifted skyward on takeoff, their tails had scraped the runway.

Caused by an update to the software that calculates thrust and speed settings for takeoff:

That morning, a software bug in an update to the DynamicSource tool caused it to provide seriously undervalued weights for the airplanes.

A concurrency bug?

Peyton added that even though the update to the DynamicSource software had been tested over an extended period, the bug was missed because it only presented when many aircraft at the same time were using the system.

Good procedures overall for noticing, stopping all airplanes, and fixing the system.

The dilemma of safety-critical systems: update the system and suffer new bugs or never update and end up with an and old barely usable system prone to mistakes.

# How a Zig IDE Could Work

After parsing, the Ast is converted to an intermediate representation, Zir. This is where Zig diverges a bit from more typical statically compiled languages. Zir actually resembles something like Python’s bytecode — an intermediate representation that an interpreter for a dynamically-typed language would use. That’s because it is an interpreter’s IR — the next stage would use Zir to evaluate comptime.

Ast and Zir infra is good. It is per-file, so it naturally just works in an IDE.

# The evolution of Facebook’s iOS app architecture

After years of iteration, the Facebook codebase does not resemble a typical iOS codebase:

  • It’s full of C++, Objective-C(++), and Swift.
  • It has dozens of dynamically loaded libraries (dylibs), and so many classes that they can’t be loaded into Xcode at once.
  • There is almost zero raw usage of Apple’s SDK — everything has been wrapped or replaced by an in-house abstraction.
  • The app makes heavy use of code generation, spurred by Buck, our custom build system.
  • Without heavy caching from our build system, engineers would have to spend an entire workday waiting for the app to build.
  • FBiOS was never intentionally architected this way. The app’s codebase reflects 10 years of evolution, spurred by technical decisions necessary to support the growing number of engineers working on the app, its stability, and, above all, the user experience.

It must be either brilliant to work on or an absolute pain.