Gleam: A Type-Safe Language on the Erlang VM

2025-02-28
Gleam: A Type-Safe Language on the Erlang VM

The author explores Gleam, a type-safe language running on the Erlang VM, using it to build an open-source feed aggregator. Comparing it to Rust and Erlang, the author highlights Gleam's combination of Rust's type system and Erlang's concurrency model while avoiding their drawbacks. The post details building the aggregator, covering design, implementation, error handling, and Erlang interoperability. The author concludes that Gleam's Erlang/OTP integration is its killer feature, though not yet fully stable, making it suitable for personal projects.

Read more
Development

A Pixel Parable: Behind the Scenes at Lucasfilm Games

2025-01-08
A Pixel Parable: Behind the Scenes at Lucasfilm Games

This article recounts the journey of Mark, an illustrator with no prior gaming experience, at Lucasfilm Games. Through sheer luck and talent, he transforms from a computer novice into a key member of the studio, ultimately impacting the gaming industry with his unique pixel-handling techniques. The narrative is full of dramatic twists and turns, showcasing the hardships and creativity of early game development, and the blossoming of individual talent under restrictive conditions.

Read more
Game Pixel Art

Software Design Is Knowledge Building: A Case Study

2025-01-01
Software Design Is Knowledge Building: A Case Study

A company outsourced its integration service to a SaaS provider, then decided to build an in-house replacement, SVC, due to cost concerns. A highly skilled engineer, X10, independently completed SVC's development. However, subsequent teams struggled to maintain and modify the system, experiencing extremely low efficiency. The article analyzes the reason: the output of software development is not code, but the engineers' understanding of the system and its business logic—a 'theory'. After X10 left, the team lacked this 'theory', leading to difficulties in system maintenance, making it like a 'haunted house'. The author argues that software design should focus on knowledge building to facilitate understanding and maintenance by subsequent teams, avoiding the creation of 'legacy systems'.

Read more