jeudi 11 septembre 2025

Your Wardrobe is Outdated. Can AI Fix It?

Your AI Stylist: Building the Perfect Men's Wardrobe with Artificial Intelligence

The ideas are human, the polish may be AI. All thoughts, research, and perspectives in this post are my own. I use AI tools to assist with final editing and refinement.

Ever wished you had a personal stylist, but without the hefty price tag? What if an algorithm could help you build a highly functional, perfectly coordinated, and stylish wardrobe tailored specifically to you? We're diving into the exciting world of using Artificial Intelligence to craft a men's wardrobe, showing you how to leverage this powerful tool and customize it for your unique needs.

Why Use AI for Your Wardrobe?

Let's face it, building a great wardrobe can be a daunting task. There's a myriad of styles, colors, fits, and a constant stream of trends. AI, however, offers some compelling advantages:

Advantages:
  • Time-Saving: Instead of endless scrolling or trying on clothes, AI can quickly generate ideas and core principles for your wardrobe.
  • Consistency: It excels at maintaining a consistent color palette and style across all recommendations, ensuring everything works together seamlessly.
  • Personalization at Scale: While a human stylist can personalize, AI can do it faster and potentially more thoroughly based on a detailed prompt.
  • Cost-Effective (or Free!): Using readily available AI models can give you professional-level advice without the typical cost of a human stylist.
Drawbacks:
  • Lacks Human Intuition & Emotion: AI won't understand subtle nuances of personal taste, emotional connections to clothes, or the "feel" of an outfit.
  • Requires Good Prompts: The quality of the output is directly dependent on the quality and detail of your input prompt. "Garbage in, garbage out" applies here.
  • Can Be Generic Without Specificity: If you're too vague, the AI might give very general advice that isn't particularly useful.
  • Doesn't Account for Fit: While it can recommend types of fits (e.g., slim, relaxed), it can't physically assess your body for precise tailoring needs.
  • No Tactile Experience: You can't feel the fabric or see how it drapes in person before purchasing. But you can generate images by AI of combinations of wardrobe pieces before buying anything.

Deconstructing the Prompt: How to Guide Your AI Stylist

To get the most out of your AI stylist, you need to provide it with a detailed and well-structured prompt. Let's break down the example prompt used for the Gemini deep research query and explain the reasoning behind each element, along with how you can personalize it.

The original prompt was:

"I want you to create style and wardrobe recommendations for a man in his 30's with blond hair, blue eyes and fair skin, with tall and thin body type. He is working in IT consulting and but as a freelance he also enjoys remote working in cool coworking spaces. Try to limit the number of pieces of clothing required following the interchangeable wardrobe guidelines of Real Men Real Style ( https://www.realmenrealstyle.com/build-interchangeable-wardrobe/ ). Design also a consistent color palette for the clothes and accessories matching the tall, fair skin, blue eyes and blond hair tones of the target man."

Part 1: The "Who" - Demographics & Physical Traits

  • Prompt Segment: "a man in his 30's with blond hair, blue eyes and fair skin, with tall and thin body type."
  • Reasoning: This section provides crucial information that influences both style recommendations and, most importantly, the color palette.
    • Age (30s): Helps the AI understand the general life stage and appropriate formality/modernity of styles. A 20-year-old's wardrobe will differ from a 50-year-old's.
    • Hair, Eye, Skin Color (Blond hair, blue eyes, fair skin): These are vital for determining a flattering color palette. Certain colors will wash out fair skin or clash with cool-toned features, while others will enhance them.
    • Body Type (Tall and thin): This guides the AI on recommended fits and silhouettes that will flatter the individual. For example, avoiding overly baggy clothes or suggesting layering.
  • How to Personalize:
    • Age: "in his 20s," "in his 40s," "mature man."
    • Hair Color: "dark brown hair," "black hair," "red hair," "grey hair."
    • Eye Color: "brown eyes," "green eyes," "hazel eyes."
    • Skin Tone: "medium skin tone," "dark skin tone," "olive skin."
    • Body Type: "athletic build," "stocky build," "broad shoulders," "short and muscular." Be as specific as possible.

Part 2: The "What" - Lifestyle & Profession

  • Prompt Segment: "He is working in IT consulting and but as a freelance he also enjoys remote working in cool coworking spaces."
  • Reasoning: This is where the AI understands the functionality of the wardrobe.
    • IT Consulting: Suggests a need for business casual or smart casual attire that can be polished for client meetings, but also comfortable for office work.
    • Freelance/Remote Working/Coworking Spaces: Introduces a need for more relaxed, contemporary, and versatile pieces that fit a modern, flexible lifestyle. This could mean elevated loungewear, stylish activewear, or comfortable smart casual. It signals a blend of professional and leisure needs.
  • How to Personalize:
    • Profession: "corporate lawyer," "creative director in an ad agency," "teacher," "manual laborer," "retiree who enjoys travel."
    • Hobbies/Lifestyle: "enjoys hiking and outdoor activities," "frequently attends formal events," "travels extensively for work," "spends weekends on a sailboat," "is a stay-at-home parent."

Part 3: The "How" - Wardrobe Philosophy & Specific Guidelines

  • Prompt Segment: "Try to limit the number of pieces of clothing required following the interchangeable wardrobe guidelines of real men real style ( https://www.realmenrealstyle.com/build-interchangeable-wardrobe/ )."
  • Reasoning: This is a powerful instruction!
    • "Limit the number of pieces...interchangeable wardrobe guidelines": This tells the AI to focus on a minimalist yet versatile wardrobe where most items can be mixed and matched. This prevents the AI from recommending a huge, disparate collection.
    • Specific Resource (Real Men Real Style link): By providing a link to a reputable style guide, you're giving the AI a concrete framework to follow. It can analyze the principles laid out in that article (e.g., focus on neutrals, classic pieces, various levels of formality) and apply them. This makes the output far more refined and practical.
  • How to Personalize:
    • Different Style Guides: If you prefer a different philosophy (e.g., "capsule wardrobe for minimalist style," "maximalist approach with bold patterns"), provide a link or describe the principles.
    • Number of Items: "Keep the core wardrobe to under 20 pieces," "focus on a 7-day work wardrobe."
    • Specific Elements: "Include at least one statement jacket," "emphasize sustainable fashion brands."

Part 4: The "Color" - Palette Precision

  • Prompt Segment: "Design also the a consistent color palette for the clothes and accessories matching the tall, fair skin, blue eyes and blond hair tones of the target man."
  • Reasoning: This reiterates and emphasizes the importance of a coordinated color scheme.
    • "Consistent color palette": Ensures everything harmonizes.
    • "Matching the tall, fair skin, blue eyes and blond hair tones": Directly instructs the AI to leverage the physical traits for color selection. For someone with this profile (cool undertones), the AI would likely lean towards cool blues, greys, certain greens, and avoid overly warm or bright colors that could wash them out.
  • How to Personalize:
    • Emphasize Preferences: "Include my favorite color, forest green," "avoid bright reds," "focus on earthy tones."
    • Specific Moods: "A palette that evokes sophistication," "a playful and vibrant palette."

Part 5: A Critical review - The Final Human Touch

  • Human Action: Review carefully the AI-generated output and generate images of the resulting wardrobe items being worn. AI output must indeed always be verified as it might hallucinate information, or generate the wrong number of clothwear ( the interchangeable wardrobe should contain 4 pieces of each wardrobe piece but in the example above it sometimes did suggest 5). Better find out an issues before actually doing your shopping!
  • Reasoning: AI is imperfect and can hallucinate or fail to take some constraint into account
    • Check the Math and Logic: The first step is to fact-check the AI against your own rules. In our prompt, we asked it to follow the principles of a highly interchangeable wardrobe, which often suggests a balanced number of items (e.g., four tops, four bottoms, etc.). Did the AI stick to that? Sometimes it might get excited and suggest five shirts or only three pairs of trousers. Your job is to be the editor, trimming or adjusting the list to meet your specific goals. It's much better to catch these discrepancies now than after you've bought an extra, unnecessary item.
    • Run a "Virtual Try-On" with Image Generation: This is where the magic really happens. You can use an AI image generator to see how the recommended outfits might actually look on you. This step helps bridge the gap between a text list and a real-world look. By generating a few of these images with different combinations, you can instantly assess the overall vibe. Do the colors work together as well as you imagined? Does the silhouette flatter your described body type? This visual feedback is invaluable for spotting potential issues and building confidence in your new wardrobe plan.
  • How to do it:
    • Create a new, specific prompt for an image generator. Combine your physical traits with the clothing items the AI stylist recommended.: Example: "Generate an image tall, thin man in his 30s with blond hair and blue eyes. He is wearing the following: Navy Blazer + Heather Grey Crewneck Sweater (over a White T-shirt) + Olive Chinos + White Leather Sneakers."
    • Resulting image: 

The AI-Generated Wardrobe for Our IT Consultant

Based on the prompt, here's a summary of the AI's recommendations, showcasing its ability to synthesize complex information:

Overall Style Philosophy: Smart casual, highly interchangeable, blending professional polish with relaxed comfort. Emphasis on clean lines, good fit, and versatility.

Color Palette: Dominated by cool tones to complement blond hair, blue eyes, and fair skin, with strategic warm accents for depth.

  • Core Neutrals: Navy, Charcoal Grey, Light Grey, White, Off-White/Cream.
  • Accent Colors: Sky Blue, Dusky Teal, Olive Green, Burgundy (as a deeper, muted warm tone), Tan/Stone.

Key Pieces & Why:

  • Outerwear:
    • Navy Blazer (Unstructured/Soft Shoulder): Versatile for client meetings, smart casual events, or layering over a tee.
    • Light Grey or Tan Mac/Trench Coat: Essential for weather protection and adding a sophisticated layer.
    • Lightweight Bomber Jacket (Olive Green or Navy): For casual, modern style in coworking spaces.
  • Shirts:
    • White & Sky Blue Oxford Cloth Button Downs (OCBDs): Timeless, can be dressed up or down.
    • Plain White T-Shirts (Crew & V-Neck): Foundational layering pieces.
    • Striped T-Shirt (Navy/White or Grey/White): Adds a touch of personality.
    • Chambray Shirt: Casual yet refined.
    • Lightweight Merino Wool Polo (Navy or Charcoal): Elevated casual.
  • Knitwear:
    • Crew Neck Sweater (Merino Wool, Navy/Charcoal/Burgundy): Layer over shirts or wear alone.
    • Cardigan (Light Grey or Navy): Adds warmth and a relaxed, professional touch.
  • Trousers:
    • Navy Chinos: Workhorse, easily dressed up or down.
    • Charcoal Grey Trousers (Wool Blend or Smart Cotton): More formal than chinos but still comfortable.
    • Tan or Stone Chinos/Smart Trousers: Lighter option for variety.
    • Dark Wash Slim-Fit Jeans (No Distressing): For casual Fridays, remote work, or weekends.
  • Footwear:
    • Brown Leather Derby Shoes: Versatile for business casual.
    • White Minimalist Sneakers: For a clean, modern, casual look.
    • Dark Brown Suede Chelsea Boots: Smart, comfortable, and stylish for cooler weather or an elevated casual look.
    • Loafers (Navy Suede or Brown Leather): For a relaxed yet polished feel.
  • Accessories:
    • Leather Belt (matching shoes - Brown/Black): Essential.
    • Watch (minimalist, classic design): Adds sophistication.
    • Simple Leather Messenger Bag/Backpack (Tan or Dark Brown): For carrying tech to clients or coworking spaces.
    • Pocket Squares (Subtle patterns in accent colors): For dressing up the blazer.

Fit & Silhouettes:
Given the tall and thin body type, the AI would likely recommend:

  • Slim but not tight fits for trousers and shirts to maintain a lean silhouette without looking baggy.
  • Layering to add subtle volume and interest.
  • Avoiding overly boxy or oversized cuts which can make a thin frame appear even more so.
  • Medium to wider lapels on blazers can help balance a tall frame.

Your Turn: Crafting Your Own AI-Powered Wardrobe

The power of AI lies in its ability to take detailed instructions and generate tailored results. Don't be afraid to experiment with your prompts! The more specific and comprehensive you are, the better your AI "stylist" will perform.

Start by considering:

  1. Who are you? (Age, physical traits)
  2. What's your life like? (Profession, hobbies, social life)
  3. What's your style philosophy? (Minimalist, bold, classic, trendy – and link to examples!)
  4. What colors do you love/hate?

With a well-crafted prompt, you can unlock a whole new way to think about and build your perfect wardrobe. Give it a try – your future, perfectly-dressed self will thank you!

jeudi 12 juin 2025

Unleash Your Personal DDD Expert with Gemini Gems

It seems that we can't escape AI lately. Even at the last week's Europe 2025 DDD conference, Large Language Models managed to creep in most presentations, like the Cyrille Martraire's 'Breaking conventions for more performant models'

A key takeaway from these presentations was the importance of good prompting to get satisfying results. By telling ChatGPT or Gemini that it should create bounded contexts or domain objects as a 'DDD expert', we can achieve better outcomes.

Curious to try this out, I decided to create a 'DDD Expert' Gem in Gemini. Here are the steps I took:

Generate the DDD Expert Prompt

Gemini can generate its own custom persona. There is no added value in handcrafting it unless you require something truly exotic:

Save the persona

To easily find and reuse the DDD expert persona prompt I'm saving it as a Gemini Gem. This way, I'll always have a DDD expert AI just one click away!

Use the gem

I'm now asking my DDD gem to generate bounded contexts and suggest aggregate roots for a DnD character sheet management tool.

Looking at the full output for my request, I can see recommendations for the bounded contexts, along with their responsabilities, aggregates, domain objects and ubiquitous language. Event if the result is not perfect that's a good draft to refine my first prompt with more requirements and details.

Let's note the context map at the end explaining how my bounded contexts interacts together with events and where to use anticorruption layers. The AI now invites the user to generate the domain objects or dig further into any context.

Going deeper

You can follow the suggestion of the LLM to go deeper in a specific context: 'Can you dig deeper in the character creation context?'. In my case, the LLM explored the character creation process step by step with Java code mentioning command objects, updates to the aggregate and the need to complete the character creation and generate the CharacterCreated event transactionally.

Key takeaways

Determinism

While writing this blog post, I ran the same prompt with the persona five or six times. The result was never exactly the same, but that might be a good thing; it provides quickly provides different perspectives on how this application could be built and sparks further reflection.

Speed

For my simple use case ( with not much context or business constraints ), the chatbot generated a draft quickly. An interesting experiment would be to see how well it performs when it needs to evolve a system with already defined domain objects, aggregates, and bounded contexts. I would also like to try implementing my AI-generated design to see how practical it actually is for developers.

Reuse

Given the simplicity of creating 'Gems' in Gemini, I could imagine myself creating many of them to gain perspectives using different paradigms like evolutionary architecture, DDD, hexagonal architecture, and more.

Conclusion

Those were my thoughts while playing with Gemini, Gems, and DDD design. I hope you enjoyed the post, and feel free to point me to any resources on architecture design prompting!

vendredi 6 juin 2025

My 3-Day Dive into Domain-Driven Design – Conference Reflections from Antwerp

As I look at the central station from the window of my hotel room in Antwerpen, vivid pictures of the talks and workshops of the last two days of conference pop back into my mind.

Since I never quite found the time to finish the Big Blue Book of DDD, I chose to immerse myself by attending the conference instead.

Here is my attempt to remember and capture the most interesting tidbits of content and material from the talks I attended along with links to the slides and books mentioned. I hope it helps you!

Day 1

A Hands On Introduction to Domain Driven Design and Hexagonal Architecture - Jeremy Davis

This hands-on workshop is perfect for beginners to DDD that want to translate these design principles to running Java code. It also showcases event-driven communication and hexagonal architecture.

All instructions and code are in a fork of the workshop repository here.

Interactively designing distributed systems integration with collaborative modelling - Kenny Baas-Schewegler - Maxime Sanglan-Charlier - Krisztina Hirth

The Boing 737 MAX: When Humans and Technology Don't Mix - Kyle Kotowick

An interesting talk about the causes of the Boing 737 MAX crashes.

Day 2

A Defence of Technical Excellence - Chris Simon

A talk about storytelling, causal loop diagrams and technical quality. By showcasing different system theories in causal loops on LOOPY Chris showcases the added business value of technical quality. The distinction of technical and external quality is made. A re-examination of the concept of iron triangle comparing it to its historical roots is done.

Model Drift and Software Attractors - Barry O'Reilly

A thought provoking talk about cargo culting in the software architecture industry, the confusion between cause and effect in the structure of successful software projects. He presents alternative ways to think about software.

Books mentioned:

- The reflective practitioner

Breaking conventions for more performant models - Cyrille Martaire

One of my favorite talks of the conference: Cyrille introduces how conventional thinking and representations of the domain get in the way of technical performance, problem solving or business value.

He then manages to demonstrate how good prompting can turn an AI assistant into a tool to help with Domain Driven Design.

Books mentioned:

- Domain Driven Development

My AI Learning Journey - Eric Evans

Eric Evans presents LLM and AI concepts and experiments, before moving to the presentation of a 'Domain Navigator AI' fine-tuned for DDD analysis of a GitHub repository. Sadly the link to this tool was not shared.

Day 3

Situational leadership - Beija Nigl

In this workshop the situational leadership framework is presented both as a generic method of leadership and as a tool that can be adapted within the context of the architecture practice. Teams of participants are then assembled to familiarize themselves with the four types of leaderships. The drawbacks and limitations of the SL model are also discussed.

The second part of the workshop invites the participants to practice Troïka consulting, a technique to brainstorm solutions to a client's problems.

Slides: https://miro.com/app/board/uXjVIrzyUuo=/?share_link_id=555609064106

Books mentioned:

- The situational leader

Becoming a great team - Woody Zuill and Kevin Meadows

In this original workshop all participants are invited to work together on reflecting on how they want to be treated at the workplace - and improve the way they treat others as a consequence.

Collaborative tools and dynamics like mobbing, team flow and psychological safety are presented and personal experiences are shared.

I liked the optimism and benevolence of the presenters as they invited us to think on how to experiment in our ways of working and become better colleagues.

Books mentioned:

- Team Flow

Conclusion

As someone new to DDD the conference was tremendously useful to grasp the concepts and mindset while meeting passionate practitioners from Belgium and beyond. I also enjoyed the fact that the subjects of the conference could go beyond the sole scope of DDD and also cover technical leadership, problem solving, event-driven architectures and system thinking topics.

Feel free to reach for me to share your thoughts about the conference or share with me the missing slide/workshop links

mercredi 28 mai 2025

AWS Summit Amsterdam 2025 highlights

Following the Amsterdam's AWS summit I want to share a couple of great talks: - APP303: Integration Patterns for distributed systems: a reflection on coupling, events and event-driven architectures. A thoughful analysis of the types of coupling that can exist in a system and the tradeoffs of event-driven patterns. - DEV405: Best Practices for serverless developers: Among the list of best practices, I learned more about powertools, a powerful library I didn't know about

vendredi 20 mai 2022

Trouver les plus gros fichiers, supprimés ou non, d'un repository git

Lancer dans git bash ou un shell linux: git rev-list --objects --all \ | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \ | awk '/^blob/ {print substr($0,6)}' \ | sort --numeric-sort --key=2 \ | cut --complement --characters=13-40 \ | numfmt --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest

jeudi 2 décembre 2021

Load key \"id_rsa\": invalid format

Copying a Windows ssh key to a linux machine and trying to ssh from there to a server, my ssh key was always refused. I finally found this thread recommending to check the ssh key headers to ensure it is valid, and discovered it was a putty key I needed to convert to Openssh format using Putty Generator.

mardi 9 novembre 2021

How to find and automatically remove old catalina logs

Tomcat can produce daily log files, potentially filling your disk space over time.

You can list the catalina log files old than 30 days using

find /srv/apache-tomcat-8.5.14/logs/catalina.*.log -mtime +30

To remove files older than 30 days, you can run the following command:

find /srv/apache-tomcat-8.5.14/logs/catalina.*.log -mtime +30 -exec rm -f {} \;

Finally, you can make it a cron to remove old log files daily:

crontab -e

In the cron file, add the regex and command:

# every day at 6PM
0 18 * * * find /srv/apache-tomcat-8.5.14/logs/catalina.*.log -mtime +30 -exec rm -f {} \;

You can then list all crontabs using

crontab -l

NB: if you want your command to run as sudo, you need to modify the sudo crontabs instead:

sudo crontab -e