Skip to content

Plutonic Rainbows

Typography Refinements

I spent some time today refining the typography on this blog after noticing that my section headers and article titles were competing for attention. They had identical visual weight, which made it difficult to distinguish between navigation elements and actual content.

The solution turned out to be fairly straightforward. Rather than making everything lighter, I implemented a progressive weight scale using the Commissioner variable font's range. Article titles remain at weight 600 but are now larger, while subheadings step down to 550, section headers to 500, and supporting elements to 450. This creates a natural reading flow that guides the eye through the content hierarchy.

I also increased the spacing around article titles and tightened their line height for better multi-line rendering. The section headers now have a subtle opacity reduction to further distinguish them from main content.

These changes feel like a meaningful improvement to me. The text no longer fights for attention, and there's a clearer sense of structure when scanning through posts. Sometimes the smallest adjustments can make a significant difference in how content is perceived and consumed.

Frederic Malle - The Night (Again)

Having been disappointed with my first sample, I recently ordered another from a trusted online retailer, thinking perhaps the original had been a faulty batch or somehow diluted.

Unfortunately, this new sample smells almost identical to the first. There is no oud to speak of — just a lingering rose note. For me, the oud simply isn’t present, and I cannot understand how this fragrance has gained such a reputation as an oud powerhouse.

In any case, I will not be purchasing a full bottle. Unless the day comes when I can thoroughly test it in a department store, it will remain a fragrance I have no intention of buying.

Bleaklow by The Stranger

James Leyland Kirby — better known for his haunting work as The Caretaker — ventures into darker territory with 'Bleaklow,' an album that trades his usual deteriorating ballroom memories for the windswept desolation of Northern England's moorlands. This isn't the interior decay of abandoned hotels that The Caretaker explores, but rather the outer spaces where humans can only visit, terrains that exist beyond habitation. The opening track 'Something to Do with Death' sets the tone immediately with unstable, fizzing drones punctuated by pained, high-pitched howls that transmit waves of genuine dread. Throughout its eleven tracks, Kirby masterfully manipulates sound into intimidating monstrosities — formidable sonics and fearsome drones that map out a sonic cartography of the Eerie North West, from the titular Bleaklow plateau to the subterranean cave systems and crags that dot these lonely landscapes.

What makes 'Bleaklow' such a unique jewel in Kirby's extensive catalogue is its complete departure from his sample-based turntable work, instead crafting original dark ambient compositions that feel simultaneously deeply unsettling and oddly comforting. Tracks like 'Indefinite Ridge' create that destabilizing sound that seems to pull you into the moorland itself, while 'Kirkbymoorside' and 'Ominous Sunset' build layers of industrial ambience that feel both majestic and oppressively lugubre. The 2014 remastered edition — with Matt Colton's pristine vinyl mastering and Ivan Seal's new artwork — only emphasizes the album's power, revealing new depths in these already cavernous soundscapes. As critic Mark Fisher noted, Kirby should be understood more as an artist than merely a musician, and 'Bleaklow' stands as testament to this vision — a work that shames the conceptual poverty of much contemporary art through its commitment to place, atmosphere, and the haunting presence of landscapes that remember their dead.

The Rise of Agents in Agentic Coding

Agentic coding represents a paradigm shift in software development where specialized AI agents act as autonomous team members, each bringing unique expertise to the development process. These agents — ranging from architecture advisors and security engineers to QA specialists and integration experts — work collaboratively to handle everything from boilerplate code generation and automated refactoring to real-time error detection and comprehensive testing. Real-world implementations like Anthropic's Claude Code, GitHub Copilot Workspace, and Cursor IDE demonstrate how these systems can analyze entire repositories, suggest architectural improvements, and execute complex multi-file operations while maintaining consistent quality standards across massive codebases. The advantages are transformative: tasks that once took hours now complete in minutes, senior-level expertise becomes democratically accessible to all developers, and code quality remains consistently high without the variability of human fatigue.

While challenges persist — including context window limitations in massive codebases, occasional hallucinations requiring verification systems, and the complexity of coordinating multiple agents — the trajectory is unmistakable. Current trends show agents evolving beyond text generation to execute commands, modify files, and interact directly with external systems, enabling automated deployment workflows and self-healing applications. Specialized ecosystems are emerging for specific domains, languages, and frameworks, while next-generation memory systems allow agents to learn from past decisions and adapt to team coding styles. The future of development isn't about replacing programmers but amplifying their capabilities: developers will orchestrate agent teams, define high-level objectives, and focus on creative problem-solving while agents handle implementation details. Teams that embrace this agent-collaborative approach will dramatically outpace those that don't, making the question not whether to adopt agentic coding, but how quickly you can integrate it into your workflow.

Bleu de Chanel L'Exclusif

Chanel's latest release, Bleu de Chanel L'Exclusif, officially launched on August 26, 2025, represents the most mysterious and intense expression of the iconic Bleu de Chanel lineage. Created by Olivier Polge as an Extrait de Parfum, this ambery-aromatic composition centers around New Caledonian sandalwood, resinous cistus labdanum, amber, and leather notes that create a warm, dense fragrance sitting closer to the skin than its predecessors. Opening with the familiar citrus blast of the Bleu de Chanel line, it quickly evolves into something more sophisticated as the labdanum becomes dominant, creating a smooth, incense-like presence with markedly improved longevity over the Parfum version.

The fragrance community's response has been mixed but generally positive, with reviewers praising its refinement while questioning its necessity within the existing ecosystem—one critic called it "the best designer release of 2025," though others find it redundant to the Parfum. At $205 for 60ml and $275 for 100ml, the pricing has drawn criticism, but the consensus suggests L'Exclusif successfully targets a more mature demographic seeking a sophisticated, grown-up interpretation of the Bleu de Chanel DNA.

CSS Optimization

I took a closer look at the blog's CSS today and noticed it had accumulated quite a bit of unused code over time. There were several classes like .highlight and .responsive-image that weren't actually being used anywhere, along with styles for HTML elements like abbr and dt that don't appear in any of the posts or templates.

After carefully going through and removing the unused bits, I found there were also some redundant font-family declarations scattered throughout — the same font was being specified multiple times when it only needed to be set once. I also spotted some performance-related CSS properties that seemed unnecessary for a simple static blog.

The cleanup managed to reduce the stylesheet from about 5KB down to 3.7KB, which is roughly a 27% reduction. Nothing looks different on the actual site, which was the goal — just cleaner code behind the scenes.

It's interesting how CSS can grow like this in any project that evolves over time. Features get added and refined, but the old styles often stick around even when they're no longer needed. Probably worth doing this kind of review more regularly to keep things tidy.

Study Plan

I'm working on an eight-month study plan to prepare for potential postgraduate study in AI. The plan starts with foundational reading including Bostrom's Superintelligence, Brian Christian's The Alignment Problem, and Melanie Mitchell's Artificial Intelligence: A Guide for Thinking Humans. This initial phase aims to provide context around ethical considerations and societal implications before tackling more technical material.

The next phase focuses on machine learning fundamentals through resources like Goodfellow's Deep Learning, Bishop's Pattern Recognition and Machine Learning, and fast.ai's practical tutorials. I hope to then explore natural language processing using Jurafsky and Martin's Speech and Language Processing, along with some hands-on projects involving language models and transformers, areas that might complement my linguistics background. The final months would revisit AI safety and governance topics while working on practical applications. The goal is to develop a basic understanding across theory, implementation, and ethical considerations.

Commissioner Font

Today I've updated the blog's typography system, migrating from a dual-font approach to Google Fonts Commissioner. This change brings a more unified visual identity while maintaining the readability improvements from the recent typography scaling updates.

Commissioner is a low-contrast humanist sans-serif with almost classical proportions, designed as a variable font. What makes it particularly appealing is its versatility — the variable weight axis allows smooth transitions from 100 to 900, though I'm using a focused range of 400-700 for optimal web performance. The humanist design provides excellent readability for extended reading sessions, while the variable weights give precise control over text hierarchy.

The previous system used Work Sans for body text and Montserrat for headings, which worked well but required loading two separate font families. By consolidating to Commissioner, I've reduced the number of font files while gaining more flexibility through the variable font technology. Body text renders at weight 400, while headings use weight 600, creating clear visual distinction without the need for separate typefaces.

Importantly, this update preserves all the responsive typography improvements implemented yesterday. The fluid clamp() scaling continues to ensure that headings guide rather than dominate, with smooth size transitions across all viewport widths. Commissioner's character fits naturally into these proportions, maintaining the balanced visual hierarchy that makes the content comfortable to read on any device.

From a technical perspective, the implementation uses Google Fonts' CSS API with automatic font-display: swap for optimal loading performance. The variable font format means a single WOFF2 file can handle all weight variations, reducing total download size compared to loading multiple static font files. This efficiency gain becomes more significant as the blog continues to grow.

Blog Update 3

Second and final phase of the 2025 improvements is now done.

I worked through the 18 improvements identified in my blog’s health check report, turning it into a more efficient and reliable static site generator. This included performance enhancements such as chunked file reading with 8KB chunks to prevent memory issues, concurrent processing with a ThreadPoolExecutor using 4 workers, and a markdown caching system that stores 604 posts for faster rebuilds. I also reduced storage needs by converting images to WebP and using batch processing, bringing the size down from 8.5MB to 2.14MB. Other updates included retry logic and connection pooling for network stability, progress bars for user feedback, and additional logging options with verbose and debug modes.

These changes brought the build times down by 41%, from 11.53 seconds to 6.82 seconds, while keeping everything compatible with existing workflows. I also improved the codebase by adding type hints, removing duplicate code, and creating utility scripts for image handling and progress tracking. The deployment system now has retry mechanisms for temporary failures and more efficient CloudFront configurations with specific path invalidations.

Overall, the updates make the blog faster, more efficient, and easier to maintain, while keeping the original functionality intact. Each change was implemented with the goal of making the system more dependable and user-friendly for long-term use.

Font Change

I thought I would experiment with a Whitney variant for the body text to see how the overall layout performs in practice. I’ve been using the same typeface for several years now, and while it has served me well, I’m curious whether switching to something closer to Whitney might improve readability in a noticeable way. Typography plays such a critical role in user experience, and even subtle changes can influence how comfortably text is read over longer sessions.

To properly evaluate this, I plan to test not only the aesthetic feel of the new font but also its technical performance. Specifically, I need to compare the latency and rendering speed of two fonts across different environments. This will help determine whether the change is purely cosmetic or if it has a measurable impact on responsiveness and user interaction. Ultimately, the goal is to find the right balance between visual clarity, reading comfort, and performance efficiency.