G’day! Exploration towards building Ica (a GUI code editor) has continued in October. Having figured out a rendering strategy at the end of last month, the next step has been to design a framework/engine that sits atop the rendering layer and deals in terms of element trees, event listeners, and effect observers. At this level we don’t have to...
G’day! This month I wanted to start off working on something short, sweet and fun; something more akin to a typical weekend project that can be “completed” in a reasonable amount of time. I found inspiration from Devine’s personal wiki, XXIIVV, on a page that contained a grid-based clock with lines scanning across the screen as time progressed....
Earlier this month I was exploring Devine’s public wiki, XXIIVV, and I landed on the entry about time. This page contains a mesmerizing clock displaying time as a grid of lines scanning across the screen. Figure 1. Screenshot of Devine's Arvelie-Neralie grid clock. I was unfamiliar with the format of this clock, shown in figure 1 as “18T03...
Post, Repository Clock representing time as a grid of lines sweeping across the screen. Inspired by Devine’s Arvelie-Neralie clock.
G’day! Last month ended with completing the local-export subsystem in Pinto which was the last piece before I could use Pinto for my personal bookmarks. And that’s exactly what I’ve been doing, using Pinto almost everyday this month. I’ve discovered a few small bugs which have been fixed, and some areas where the UI can be improved. But for the...
G’day! This month I’ve been continuing the momentum with Pinto. The ideas developed from last month on tagging and the design of the Scoped Tagging mechanism (see Scoped Tagging of Bookmarks) have materialized into an implementation. We have scopes, we have tags, and we have pages and a UI to display them both. Figure 1. Screenshot of a page of...
G’day! Personal project work has continued this month on Pinto. If you didn’t see last month’s status update, Pinto is a bookmarking service and RSS feed reader with a few neat features planned. Early in the month I finished off listing bookmarks. From the list you can mark a bookmark as starred and toggle it as read/unread, delete the bookmark,...
A few months ago I wrote a post, On Organizing Bookmarks, that proposed an extension to simple bookmark tagging called Hierarchical Namespaced Tagging (HNT). Simple Tagging is the most common and familiar form of tagging seen on sites like Pinboard, Lobsters, and Youtube; in tools like Scrivener and Zotero; in browser-based bookmark managers; and...
G’day! For personal projects this month, the focus has been on Pinto and starting fresh with a new codebase. Pinto is a bookmarking service and RSS feed reader inspired by Pinboard and Miniflux, but with a few neat features planned such as bookmark linking. It really deserves it’s own post discussing the ideas and motivations, but at a high level...
G’day! This month has been fairly light on personal project work. The reason for this… We have relocated to London! There’s been a lot to pack up in Sydney, and lots to get setup in London but we are settling in and move into our new place next month. In the few spare moments this month I’ve started down a rabbit whole into the domain of Ecology...
G’day! This month the focus has continued on building concept pieces for a code editor which now has a name. Ica. As in short for Icarus… the last guy that tried to build an editor and got burnt along the way. Following on from last month, I added a new concept that takes the learnings from the CPU-rendered glyph atlas and renders on the GPU...
G’day! It’s been a month of travel and exploration, beyond just tech. I was in London for 2 weeks spending some time exploring the city and scoping out places we might live when we move in April. In personal projects, I continued work on Pinto for the first half of the month. I haven’t written much about it as I want to get it to a state where I...
In the last post, On Organizing Bookmarks, I wrote about an idea to improve tags for organizing bookmarks on social bookmarking sites such as Pinboard. To continue this theme, I want to explore bookmark linking as a way to extend bookmarking tools to work better with the distributed nature of the web, specifically with how posts are shared and...
Pinboard is a fantastic bookmarking site I’ve been using on-and-off to store my bookmarks for a few years now. These aren’t the kind of bookmarks one might store in their browser, that is links to frequently accessed sites. They are links to interesting articles and blogposts I’ve read or want to read. They form a reading list, and a reading log,...
This is the fourth and final post for the CDC series. If you’re just joining us, and would like to know more, jump on back to the first post which provides an Intro to Content-Defined-Chunking. In this post, we’ll be concluding our exploration of CDC strategies by looking at two recently developed algorithms that bring with them some interesting...
In the last post we took a look at Gear Hashing for Content-Defined Chunking (CDC), and outlined some problems we noticed when analyzing the distribution of generated chunks, namely the lack of uniformity in the chunk sizes, and that a large portion of chunks were much smaller than our desired chunk size. In this post, we’ll go through the...
In this post we’ll take a detailed look at Gear Hashing for Content-Defined Chunking (CDC). If you haven’t come across the term “CDC”, then take a look at the first post in this series that provides an introduction to this topic. As a quick refresher, the core problem we need to solve for CDC is determining chunk boundaries based on a sequence of...
This post is the first in a series on Content-Defined Chunking (CDC) where we’ll explore Gear-based chunking techniques. After this intro, we’ll look at implementing a chunking algorithm using Gear Hashing, before exploring significant improvements from the FastCDC, and then the RapidCDC and QuickCDC papers. But before all that… What is...
Today I came across some interesting behaviour implemented by ctags (specifically Universal Ctags) with the way some tag entries are handled. At first I was surprised. Then thinking about a bit more I can understand why. But still, I feel there must be a better way. Let’s take a look at some Rust code. struct Foo; impl Debug for Foo { fn...
We all know testing is important. And, I hope, it might even be familiar. You’re coding away and catch yourself thinking “I should probably test this”. And before you know it you’ve mashed on your keyboard and there appears #[cfg(test)] mod tests { ... } These are unit tests which are super easy to setup. No added dependencies, no added tooling....
I’ve been really confused lately about Rust’s trait objects. Specifically when it comes to questions about the difference between &Trait, Box, impl Trait, and dyn Trait. For a quick recap on traits you can do no better than to look at the new (2nd edn) of the Rust Book, and Rust by Example: Rust Book Traits: Defining Shared Behavior Rust Book...
A little while ago I came across this Snowflake generator. It’s a project by Raph Levein that takes a hash string and uses it to procedurally generate a unique snowflake. He explains that the original motivation was as a cryptographically secure visual hash, so that people would reliably be able to tell by visual inspection whether two hashes...
Post Github (lib) Github (wasm) Change the hash to see the snowflake update for each change. If you get tired of manually changing the hash, clicking on the snowflake (the canvas) will generate a snowflake from a random hash. Hash:
Procedural macros are a really powerful language feature in Rust and something I haven’t seen in many other languages. There are a heap of tutorials out there for procedural macros, including in The Rust Reference, and the first edition of the Rust Book. One of the more entertaining (and useful) posts is by Zach Mitchell where you get to “learn...
A few weeks ago I started looking into Game Development and exploring building games in Rust. Specifically I’ve been thinking about ECS game engines. These are just some initial thoughts and ideas. I’m not nearly at a stage to start building generic game engines for people to actually make games with. This is more of a project to explore game...
For the past month, I’ve started thinking about using technology and what we know about the human brain to influence our mental states. As part of that I’ve been working on understanding more about the state of flow, sometimes called ecstatis, “runner’s high” or being “in the zone.” What Is Flow Flow is a state of mind that allows you to operate...