Skip to content

Plutonic Rainbows

Optimisations

I optimised performance by deferring render-blocking resources and streamlining my external connections. I added the defer attribute to my jQuery and Lightbox2 script tags so they load in the background without delaying the initial page render. I also improved connection times by adding preconnect links for my external resources from code.jquery.com and cdnjs.cloudflare.com. Additionally, I modified the Lightbox2 stylesheet link using a media attribute trick to ensure it doesn’t block rendering. This should improve load times while maintaining functionality.

Design Tweaks

In recent weeks, I’ve refined the design aesthetics of this blog, focusing primarily on the background and link colors. Additionally, I’ve added Lightbox functionality. Since the Lightbox resources are served via a CDN, the overhead is minimal.

CloudFront speeds up image retrieval by caching images at multiple edge locations around the world. When a user requests an image, CloudFront delivers it from the nearest edge location instead of fetching it from your origin (like your S3 bucket), which might be far away. This significantly reduces latency and load times. Additionally, CloudFront optimizes network routing and supports features like compression and smart caching policies to ensure that content is delivered as efficiently as possible.

Enhancements

OpenAI has integrated Deep Research into its desktop applications and enabled multi-modal support for both o3-mini and o3-mini-high. This upgrade is important because it now allows file uploads of both text and images. I do wonder if it is still worth the pro cost subscription.

Interactive Syntax App

Today, I embarked on an exciting journey into natural language processing by creating a syntax tree application using Python’s NLTK library. The project started by demonstrating the significance of syntax in NLP, where I built a simple Python script that tokenizes input sentences, performs POS tagging, and uses a regular-expression-based grammar to generate syntax trees. This approach provided a clear, structured visualisation of how sentences are parsed, setting a strong foundation for the project. With the core NLP functionality in place, I integrated a web interface using Flask, allowing users to enter sentences and see their parsed syntax trees in real time. To elevate the user experience, I turned to D3.js to create an interactive, horizontally oriented SVG visualisation. This step involved dynamically sizing the SVG based on the tree’s layout and adding zoom and pan features so that users could easily navigate through complex trees. The result was a sleek, responsive display that brought the underlying language structure to life.

To add a final touch of interactivity and polish, I implemented smooth hover animations and tooltips for each node in the tree. When a user hovers over a node, its circle gently enlarges while a tooltip appears, providing detailed information about the node. Throughout this process, I ensured that all text elements maintained a clean and modern appearance. This project not only deepened my understanding of NLP and web visualisation but also showcased how to seamlessly merge backend processing with interactive front-end design.

Nishane Unutamam

After reading a few positive reviews, I decided to purchase this product. It is available exclusively in a 30 ml bottle, and the quality is outstanding. It makes an immediate impact and wonderfully evokes the timeless charm of vintage Polo Ralph Lauren.

It opens with a sharp burst of aromatic herbs and mint that immediately grabs attention, before evolving into a complex heart where animalic and spicy nuances — most notably a potent castoreum — intermingle with earthy, resinous notes.

Despite its bold and polarising opening, the dry down reveals a surprisingly balanced composition, merging warm, woody elements with subtle sweetness that endures impressively over time. Ultimately, Unutamam is celebrated for its transformative character and lasting impact, making it a fragrance best suited for those willing to embrace its unconventional and provocative nature.

Bayesian Average

I have updated the app to now calculate a weighted score (using a Bayesian average–style formula) for each prompt and display the results on the admin dashboard. This version of the app continues to provide personalised prompt generation, user authentication, rating submission (on a 1-to-10 scale with an optional comment), and an admin dashboard that shows aggregated data (with the top three results highlighted in the table).

Data-Driven Enhancements

Today, I integrated several new features into my prompt evaluation app to enhance its functionality and data-driven personalisation. I expanded the rating scale from a simple binary choice to a 1-to-10 scale, allowing for more nuanced feedback from users. I also updated the prompt generation process to keep prompt text and seed words separate, ensuring that the descriptive content is richer and more varied. Additionally, I incorporated a trained machine learning model into the prompt selection function — this model weights candidate one-liner prompts based on historical user ratings, and it gracefully falls back to random selection if the model isn’t available.

I further enhanced the admin dashboard to provide a clear visual representation of prompt performance. Using Chart.js, I set up a bar chart that displays the average rating and count for each prompt description, and I implemented a feature to highlight the top three performing prompts with distinct colours. These updates, along with maintaining user authentication and basic administrative routes, have made my application more sophisticated and have paved the way for future improvements in personalisation and data analysis.

Later in the day, I added a comments section for users — this will also be saved to the SQL database.

Building a Dynamic Prompting App

Today, I integrated several key features into my prompt evaluation app. I enhanced the application by implementing dynamic prompt generation with AJAX, transitioned from CSV storage to an SQLite database using SQLAlchemy, and added an admin dashboard complete with Chart.js visualizations to review evaluation data. I also introduced user authentication with Flask-Login, enabling secure registration, login, and logout functionality, and I improved navigation by adding clear links between the prompt evaluation page and the admin dashboard.

Sphaîra

Persico's work on the album opens with a burst of real-world textures that blend found sounds, birdsong and ambient recordings into a soundscape that feels both contemporary and steeped in history. On tracks like The Center Cannot Hold and Brutal Threshold, her inventive layering of pebbly noises and breathy vocal drones creates an impression of communing with the past, all while utilising modern sound manipulation techniques.

Throughout the album, Persico, with help from Belgian sound designer Koenraad Ecker, transforms everyday recordings into rich tapestries of audio that hint at sacred, folk and operatic traditions. This process reveals the hidden energy of old spaces, as elements such as distant police sirens and corroded metallic scrapes gradually expose the deep, archival layers embedded in the recordings.

The album continues this experimental journey by exploring various sonic territories on tracks like Maze, Rashid Karami, Kairos and Voices Organ. Whether it's the evocative call to prayer merging with environmental sound or the industrial rhythms and meditative mantras that punctuate the pieces, each track offers a fresh perspective on how the legacy of historic spaces can shape and inspire the modern auditory experience.

You can purchase the album here.

EU gets OpenAI Deep Research

Thankfully, just a few days after it was announced for professional users in the United States, the European Union has finally gained access to this new technology. I tried it out today and found it exceptionally impressive. It actually employs the full 03 model, which has yet to be released for public use. The power of this new technology is that it can search the entire web and collect real-time information before reasoning about that information.