RSSAmplifier

Blog

Code Otaku

System Administration, Computer Programming, and Travelling

codeotaku.comRSS feed ↗40 posts

Latest posts

The Case of the Vanishing Fiber: A Ruby Mystery

Dr. Claude Watson investigates how a suspended CRuby frame kept a raw Fiber pointer after garbage collection had reclaimed its owner.

The Case of the Readable Dead Connection: A Ruby Mystery

Dr. Claude Watson investigates why a readable TLS socket could still be a dead HTTP/1 connection, and how a layered non-blocking peek exposed the truth.

Making Failure More Predictable in Ruby Systems

An Open Source Progress Report about predictable failure handling, lower-memory MIME lookup, and load-aware Falcon clusters.

The Case of the Blocking Operations: A Ruby Mystery

Dr. Claude Watson recounts an investigation into safely running blocking operations through Ruby's fiber scheduler.

Streaming Rack with Falcon

An overview of how to use Falcon to stream requests and responses in Rack applications.

Leveraging Falcon and Rails for Real-Time Interactivity

My RubyKaigi 2024 talk on how to use Falcon and Rails together to build real-time interactive applications.

Bringing Fiber Scheduling to Ruby

An Open Source Progress Report about Ruby's experimental Fiber Scheduler, Async, task-oriented project documentation, and parallel testing.

A Fiber Scheduler for Ruby

The final Ruby Concurrency Progress Report presents a per-thread Fiber Scheduler and evaluates it with native Net::HTTP requests.

Running Falcon Virtual in Production

An Open Source Progress Report about running Falcon Virtual in production, uncovering a Ruby socket vulnerability, and improving thread safety and developer tooling.

Improving Net::HTTP Concurrency

A live stream demonstrating the proposed scheduler interface for Ruby.

Modernizing Rack and Falcon Deployment

An Open Source Progress Report about Rack maintenance, Falcon production deployment commands, and programming education resources.

Making Ruby I/O Work with Event Loops

A Ruby Concurrency Progress Report introducing a prototype Scheduler that lets native Ruby I/O cooperate with fiber-based event loops.

Laying the Groundwork for Ruby 3 Concurrency

An Open Source Progress Report about Ruby scheduler hooks, Falcon production deployment, process metrics, and reusable Async connection pools.

Separating Concurrency from Parallelism in Ruby

A Ruby Concurrency Progress Report exploring fibers for cooperative concurrency, isolates for parallelism, and VM hooks connecting native I/O to event loops.

Making Ruby Concurrency Safer

An Open Source Progress Report about practical thread-safety fixes, Ruby concurrency, OpenSSL, Rack, and Faraday.

Streaming HTTP for Ruby

How to make streaming clients and servers using Ruby.

Fibers Are the Right Solution

Concurrency can be tricky and fibers are here to help.

HTTP/2 for Ruby Web Development

An overview of Falcon, a native HTTP/2 server for Ruby.

Asynchronous Ruby

Improve Ruby scalabiltiy using concurrent event-driven IO.

Improving Ruby Concurrency

Using event driven IO to improve Ruby's concurrency.

Improving Ruby Fibers

Using native assembly to improve Ruby's performance.

Transform Flow: A Mobile Augmented Reality Visualisation and Evaluation Toolkit

An overview of the Transform Flow toolkit assists with the development of mobile outdoor augmented reality applications, presented at CHINZ 2013.

Hybrid Tracking using Gravity Aligned Edges

A research paper about hybrid tracking algorithms for mobile outdoor augmented reality, presented at IVCNZ 2013.

Real-time Hybrid Tracking for Outdoor Augmented Reality

A complete overview of my thesis research into outdoor augmented reality on mobile phones/tablets.

Adaptive Hybrid Tracking for Mobile Outdoor Augmented Reality

Here are some of the details of my current research in Outdoor Augmented Reality.

Simple Garbage Collector

Ever wondered how garbage collection works?

Solving Sudoku Efficiently

Here is my solution to solve Sudoku efficiently.

There are more useless programs than useful programs.

This might come across as slightly trivial, but I enjoyed thinking about it none-the-less.

Implicit And Explicit Delimitation

I've been thinking about the differences in modern programming syntax, and how we separate expressions.

Kai 会

Kai is my attempt to build a programming language interpreter which can itself compile and execute code dynamically.

Visualising Information Change Over Time

Some examples of my source code visualisation research.

Mr. Painting Robot

Here are the first results of my Mr. Painting Robot research - looking good!

Computer Science in New Zealand High Schools

How is Computer Science being taught and how is it changing?

Image Processing

I've been working on an image analysis algorithm for generating painted images.. here are the results so far!

Richard Stallman In Christchurch

Richard Stallman visited Christchurch recently. The talk was fascinating.

Matrix Mathematics

Matrix Mathematics often becomes complicated when the words row-major and column-major are thrown about. Here is a clear and simple implementation in C++.

Compile Time Polymorphism

Compile Time Polymorphism through meta-programming is a powerful way to express your ideas - learn about how to do this using C++

Run Time Polymorphism

Run Time Polymorphism is a useful construct which allows us to change the behaviour of code depending on its input - but what are the costs associated with this technique?

A discrete solution for the inverse kinematics problem.

I developed an interesting solution to the inverse kinematics problem using the A* algorithm.

Permutation Generation

Here are a number of permutation generation algorithms in C++.