Tuesday, March 31, 2026

What is Free Indirect Discourse? Examples

 What Is Free Indirect Discourse—and How Can It Elevate Your Writing?

In the art of composition, it is no small difficulty to convey the sentiments and internal struggles of such persons without resorting to overt exposition. Yet there exists a method by which an writer may accomplish this task: the use of free indirect discourse. This narrative device, by which the thoughts and feelings of a character are related in a way that permits the author to maintain the illusion of omniscience (the all-knowing narrator) while at the same time providing insight into the private and even unspoken thoughts of a character, is one of the most sophisticated literary techniques. As an example, the following excerpt from Pride and Prejudice may be offered for the your consideration. In it, Jane Austen offers this moment of reflection from Elizabeth Bennet after an uncomfortable exchange with Mr. Darcy:

“She grew absolutely ashamed of herself. Of neither Darcy nor Wickham could she think without feeling she had been blind, partial, prejudiced, absurd.”

 -- Chapter 36 of Pride and Prejudice

Here, we are not told Elizabeth thought herself absurd, nor are we given the scene through direct internal monologue. Instead, Austen allows us to dwell within Elizabeth, to see what she sees and feel what she feels. The judgment rendered—"blind, partial, prejudiced, absurd"—is Elizabeth’s own, but the rhythm and syntax retain a detached quality that prevents the reader from feeling as though they are being forced to view the world through a particular lens. Indeed, the effect is the opposite. As readers, we are drawn deeper into the moment and, consequently, deeper into the character. This, then, is the subtle genius of free indirect discourse: it allows the author to maintain a third-person narrator while simultaneously giving the reader a sense of being an intimate party to a character. 

Yet the artistry of free indirect discourse is not confined to matters of romance! It may be employed with equal grace to colour even the description of a house. Consider, for instance, the arrival at Barton Cottage in Sense and Sensibility:

"As a house, Barton Cottage, though small, was comfortable and compact; but as a cottage it was defective, for the building was regular, the roof was tiled, the window shutters were not painted green, nor were the walls covered with honeysuckles."

-- Chapter 6 of Sense and Sensibility

What begins as a neutral observation quickly transforms into a reflection of the characters' inner thoughts. Though the narrator never declares, “they were disappointed,” the contrast between the ideal of a quaint, romantic cottage and the reality of Barton Cottage becomes evident as the reader is drawn into the characters' minds. We see, through the narrator, what is there: a small comfortable, compact, regular house. But then the narrator leads us, in turn, to see what the characters themselves see: a building that does not live up to expectations.  

As a somewhat indulgent and entirely unashamed demonstration of free indirect discourse, I offer the following excerpt from one of my WIPs. Admittedly, it is a bit of a self-serving exercise—after all, what better way to illustrate a technique than by shamelessly showcasing my own writing?

"Miss Fairfax's plans for the next day were laid out with more than usual caution and deliberation, and she provided herself with every necessary accessory for being smart, without excessive ornament, in case she should have the happiness of meeting Mr. Frank Graham. When she came to look over her wardrobe, she found that almost every thing was either marked, old, or seedy; and nothing presented itself in the light of being particularly pretty, except some lace which had been the work of many hours, and which she had never dared to wear because it was too valuable to trifle with. This, however, she resolved to fix on her dress—and it was put on with the pleasure of knowing that she would appear to advantage."

This passage is a good demonstration of FID because, even though the narrative is in the third person, we get a direct window into Miss Fairfax’s thoughts and feelings. For example, the fact that she lays out her plans "with more than usual caution" and chooses accessories "in case she should have the happiness of meeting Mr. Frank Graham" shows her emotional investment in the idea of meeting him, without directly saying, "Miss Fairfax hopes to meet him." It allows the reader to feel her quiet excitement and attention to detail, all while still maintaining the third-person narrative.

IN SUMMARY:

  • Free Indirect Discourse (FID) is a narrative technique that allows the third-person narrator to blend seamlessly with a character’s inner thoughts and feelings, offering an intimate perspective without overt exposition or direct internal monologue.

  • You use it in instances when you want to show a character's emotions or perceptions indirectly, letting readers experience their thoughts and feelings without explicitly stating them.

Beginner’s Guide to Learning C++

Beginner’s Guide to Learning C++: From Grades to Functions

So you, like many other budding programmers, have realized that C++ is a great language to learn as a foundation for thinking like a programmer. Not because it is the newest shiny thing, and not because every developer wakes up chanting its name like a sacred ritual, but because it teaches you what code is actually doing. That matters. A lot. If you are a student, or anyone aiming for a programming job, learning C++ gives you a sturdy base for understanding the kind of concepts that show up everywhere else: variables, types, input, output, conditions, loops, functions, memory, and the discipline of writing code that makes sense to both humans and machines. I had professors who treated C++ like a moral test. I had friends who thought anything with semicolons was medieval. They were all wrong in different ways. The truth is simpler: if you learn to write C++ well, you learn to think carefully, and that is a habit that never goes out of style.

The first thing beginners need to understand is that every line in a program has a job. Nothing is decorative. Nothing is there just to look clever. Even a tiny program that calculates grades is teaching you the basic shape of programming. Here is a simple example:

#include <iostream>
using namespace std;

int main() {
    float score1, score2, score3;
    cout << "Enter three scores: ";
    cin >> score1 >> score2 >> score3;
    float average = (score1 + score2 + score3) / 3;
    cout << "Your average is: " << average << endl;
    return 0;
}

Now, if you are new, this may look like a small wall of symbols designed by an angry mathematician. It is not. It is just a conversation between you and the computer.

#include <iostream> tells the compiler to bring in a library that handles input and output. “Input” means receiving data from the user. “Output” means showing data to the user. Without iostream, the program would not know what cout or cin are. Think of it as opening the door before trying to invite anyone in.

using namespace std; is a shortcut. It lets you write cout instead of std::cout, and cin instead of std::cin. In tiny beginner programs, that is perfectly fine. In larger programs, some developers avoid it because they like strict naming and fewer chances for conflict. That is a later lesson. For now, it helps reduce the clutter so you can focus on the logic.

int main() is the starting point of the program. When the computer runs your code, it begins here. Every C++ program needs a main function. That is not optional. It is like the front door of a house. You can renovate the kitchen later, but you still need a way in.

Inside the curly braces, you declare variables. float score1, score2, score3; creates three places in memory to store decimal numbers. This is where data types matter. A float can hold values like 92.5. An int holds whole numbers like 92, but not 92.5. That difference sounds small until your grade calculator starts quietly ruining your math. If you use the wrong type, the computer does exactly what you asked, not what you meant. That is one of the first lessons in programming: the machine is honest to a fault.

Then cout << "Enter three scores: "; prints a message to the screen. The << symbols send data out to the console. After that, cin >> score1 >> score2 >> score3; reads what the user types and stores those values into the variables. In plain English: ask for input, receive input, use it.

The line float average = (score1 + score2 + score3) / 3; does the actual math. The parentheses matter because they tell C++ to add the scores first and divide afterward. Without careful grouping, you may still get an answer, but it may not be the answer you wanted. Computers are excellent at being precise and terrible at guessing.

Finally, cout << "Your average is: " << average << endl; displays the result, and return 0; tells the operating system that the program finished successfully. The endl adds a new line, which makes the output easier to read. A tiny detail, yes, but beginners should learn to respect tiny details. Tiny details are how programs stay sane.

A lot of beginners make the same mistakes here. They forget semicolons. They use the wrong data type. They try to divide integers and wonder why the result looks suspiciously neat. They type a variable name slightly differently from the one they declared. These errors are normal. In fact, they are useful. Ugly code first, clean code later. That is not laziness; it is the proper order of learning. You cannot clean a room you have never made messy.

Once you understand a simple input-and-output program, the next idea is control flow. That means making decisions. Suppose you want the program to turn the average into a letter grade. That is where if, else if, and else come in.

char letterGrade;

if (average >= 90) {
    letterGrade = 'A';
} else if (average >= 80) {
    letterGrade = 'B';
} else if (average >= 70) {
    letterGrade = 'C';
} else if (average >= 60) {
    letterGrade = 'D';
} else {
    letterGrade = 'F';
}

cout << "Your letter grade is: " << letterGrade << endl;

This is a conditional statement. It asks questions and follows the first true path. If the average is 92, the program does not keep checking every condition in the world like a nervous intern. It stops at the first one that matches. That is how code decides what to do.

Notice the use of char for letterGrade. A char stores a single character, such as A, B, or F. That is another data type. Beginners often think data types are boring because they look like labels, but they are actually one of the most important parts of programming. A type tells C++ what kind of data something is, what operations are allowed, and how to store it efficiently. A number is not just a number. A whole number is not the same as a decimal number. Text is not the same as a single character. This is why programmers care so much about types. The program has to know exactly what it is dealing with.

Now let us talk about loops, because loops are one of those ideas that make beginners feel either brilliant or haunted. A loop repeats something. That is all. If you need to do the same thing many times, you use a loop instead of writing the same code over and over again like a person being paid by the line count.

for (int i = 1; i <= 3; i++) {
    cout << "Student " << i << endl;
}

This means: start with i = 1, keep going while i <= 3, and after each round increase i by one. The variable i is commonly used as a counter, though you could name it something more meaningful if you were feeling civilized. The body of the loop, between the curly braces, runs once for each value of i.

A loop like this is useful when you want to process several students, several scores, or several pieces of data without rewriting the same logic repeatedly. Here is a slightly more practical example:

for (int i = 1; i <= 3; i++) {
    float score;
    cout << "Enter score " << i << ": ";
    cin >> score;
    cout << "You entered: " << score << endl;
}

The important idea is that loops save time and reduce repetition. They also reduce mistakes. Copy-paste code has a way of multiplying errors like rabbits. A loop is cleaner, shorter, and easier to change later.

There is also the while loop, which keeps running as long as a condition remains true.

int count = 1;
while (count <= 3) {
    cout << "Count is " << count << endl;
    count++;
}

This does almost the same thing as the for loop above, but it separates the setup from the repetition a little differently. Beginners should learn both. The for loop is often used when you know how many times you want something repeated. The while loop is useful when you do not know exactly how many times you will need it. That is a concept you will see everywhere in programming.

To make this practical, imagine a slightly better grade calculator. Instead of hardcoding three scores, let the user decide how many scores to enter.

#include <iostream>
using namespace std;

int main() {
    int numScores;
    cout << "How many scores do you want to enter? ";
    cin >> numScores;

    float sum = 0;
    float score;

    for (int i = 1; i <= numScores; i++) {
        cout << "Enter score " << i << ": ";
        cin >> score;
        sum += score;
    }

    float average = sum / numScores;
    cout << "Average: " << average << endl;

    return 0;
}

This version is better because it is more flexible. That is the kind of improvement programmers should learn to appreciate. The first version works. This version works better. That is how real code improves: not by being perfect the first time, but by being revised into something more useful.

Let us look at what makes code cleaner. Clean code is not fancy code. Clean code is readable code. Clean code is code that another human can understand without needing a priest, a flashlight, and a month of vacation. You make code cleaner by naming variables clearly, using consistent indentation, avoiding repeated logic, and breaking large problems into small ones.

For example, instead of writing one long block that does everything, you can use a function.

float calculateAverage(float a, float b, float c) {
    return (a + b + c) / 3;
}

Now your main program can call that function whenever it needs an average. Functions help you organize code, reuse logic, and avoid duplication. This is one of the biggest leaps from beginner to intermediate programming. First you write it ugly. Then you notice the repetition. Then you move the repeated behavior into a function. Then you feel slightly smarter. That is the natural order of things.

If you want to go further, arrays and vectors are the next steps. An array stores multiple values of the same type. A vector does the same thing but is easier to grow and manage in modern C++.

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<float> scores = {88.5, 91.0, 79.5};
    float sum = 0;

    for (int i = 0; i < scores.size(); i++) {
        sum += scores[i];
    }

    float average = sum / scores.size();
    cout << "Average: " << average << endl;

    return 0;
}

Here, scores[i] means “the element at position i.” This is a new concept, and it is an important one. You are no longer working with one variable at a time. You are working with a collection. That is how real programs often behave. A list of grades. A list of names. A list of product prices. A list of anything. Programming quickly becomes less about individual numbers and more about managing groups of related information.

That naturally leads to structs and classes, which let you bundle data together. For example, you might create a Student structure with a name, ID, and average grade. That begins to look like a real application, not just a classroom exercise. And yes, that is where C++ starts to feel useful in a more serious way. It is not just about learning syntax. It is about learning how software is built from pieces.

Here are some exercises that are worth doing, not because they are glamorous, but because they teach the right habits. Build a grade calculator that accepts any number of scores. Then change it so some scores count more than others. Then add letter grades. Then make it calculate several students instead of one. Then put the averaging logic into a function. Then store all the scores in a vector. Each step introduces a new idea, and each step makes the previous code feel more manageable.

That is the real value of learning C++ as a beginner. It teaches you to read code carefully. It teaches you to write code that is precise. It teaches you that types matter, loops matter, conditions matter, and structure matters. It teaches you to start simple and improve later, which is a much better approach than trying to look advanced before you understand the basics. The students who skip the fundamentals usually end up circling back to them anyway, just with more frustration and fewer excuses.

So write the messy version first. Make it work. Break it. Fix it. Refactor it. Learn why each line is there. Learn what each data type does. Learn how loops repeat work without wasting your time. Learn how conditionals make decisions. Learn how functions reduce repetition. Then, when you are ready, move to cleaner designs, better naming, more modular code, and larger projects.

That is how you build real programming skill. Not by memorizing a few tricks. By understanding why the code works, line by line, until the language stops looking like symbols and starts looking like logic.

Tuesday, April 29, 2025

Surgery Reveals the Body’s Poetry

There’s something magnetic about the moment just before a scalpel touches skin, the breathless pause when a body exists fully in itself, whole and unbroken, pulsing quietly yet insistently, like a secret refusing to be contained. I keep returning to that thought: how this same body that can be safely opened and stitched in a sterile theater is also the body that could snap, shatter, or be obliterated in a moment outside those walls—on a ladder, on a street corner, by a misstep, by someone else’s hand, by chance itself—and I can’t stop thinking how strange it is that life feels both durable and terrifyingly fragile at the same time. It’s almost like watching a spider cling to a branch in a high wind: it bends, it holds, it survives storms that would sweep away less tenacious creatures, and yet the smallest pressure applied in the wrong place—one careless human step, one gust too sharp—can end it in an instant. Ants can carry objects many times their weight and cross roads full of danger, yet a single careless footfall can crush them. And yet, somehow, they survive. Somehow, we survive.

I watched the Bentall Procedure recently, where the aortic root, valve, and part of the ascending aorta are removed and replaced, a process that seems so utterly miraculous that I couldn’t stop thinking about all the ways life is patched together every day without anyone noticing: a pulse kept steady by a doctor, a neuron firing, a heart that somehow doesn’t collapse under its own weight, or under the weight of chaos, of gravity, of all the things that could go wrong. At first, the patient is untouched, the chest rising and falling in that ordinary, miraculous rhythm, the skin intact, the heart hidden but loud, insistent, and completely indifferent to the watching eyes. There’s a quiet holiness there, a reminder that being alive is not heroic or spectacular—it’s just precarious, mundane, miraculous, terrifying, and ordinary all at once. And I find myself thinking: what does it mean to live if everything I love, everything I depend on, is just as exposed to collapse as this heart, as this body, as a spider’s web in the wind or an ant on the sidewalk?

And then the body is opened.

Warning: Graphic Content
Click to reveal graphic image

The sternum is sawed. The ribs pulled apart. Layers peeled back to reveal the heart itself, pink and glistening, thumping with a life completely its own, a reminder of how fragile yet insistent life is, and I can’t stop thinking about how absurd it is that something so central, so essential, can be destroyed by a misstep or a moment of cruelty or accident, while in other ways the same body is shockingly resilient. I think about the human hand, the hands that protect and the hands that wound, and the paradox that to survive at all, we are utterly dependent on forces outside ourselves—yet we somehow persist. Levinas’s idea that the face of the Other calls us to responsibility resonates here, but I keep circling back to the question: what does it even mean to be alive when every moment carries the possibility of undoing? How do we live knowing that a single slip, a single wind, a single careless motion can shatter what seems so strong?

Eventually, the heart stops. Tubes go in. Machines take over. Blood flows through metal and plastic, and the body, once entirely self-sufficient, is suspended in a state of mechanical purgatory, dependent on human design and human decision. Watching this, I start thinking about all the ways survival outside the operating room is just as precarious, though far less visible: a child walking near traffic, a bird riding the wind, a spider holding on while the storm rages, a friend who collapses in exhaustion while holding up everyone else, an ant carrying more than its tiny body can bear, yet pressed on until a careless foot falls. And somehow, in the chaos, in all these micro and macro tests of resilience, life goes on. Somehow, there is survival, even when vulnerability is absolute.

Warning: Graphic Content
Click to reveal graphic image

In these moments, the body becomes more than anatomy. It becomes a mirror for everything that life asks of us: resilience, patience, vulnerability, acceptance, and awe. Literature has always understood this. Shelley, Poe, and the Gothic writers understood that the body—our fragile, pulsing, mortal body—is a place where terror and beauty coexist, where fascination and dread overlap. In the operating room, I see the same pattern: the body is at once vulnerable and protected, destroyed and repaired, ordinary and miraculous. And I realize, painfully and wonderfully, that this mirrors life itself: the fragility of everything we touch, the delicate equilibrium of all living things, the way a spider or an ant or a person can survive incredible pressures yet be undone by the smallest incident, and that in this tension, life continues.

Watching the heart outside of metaphor is like staring at existence itself: fragile, pulsing, trembling, and yet stubbornly persistent. And I can’t help thinking about the ordinary ways vulnerability plays out every day, from someone dropping a cup, to a ladder wobbling, to a small act of kindness or cruelty. The same body that can be carefully opened in surgery can be crushed in a moment outside. And yet, somehow, the world keeps turning, the heart keeps beating, the spider clings, the ant marches, and we keep living, suspended between fragility and resilience, chaos and care. And maybe that is what it means to be alive: to carry awareness of how easily everything can be undone, while continuing anyway, stubbornly, beautifully, and terrifyingly alive.

Monday, April 28, 2025

Ingrown Nail Becomes Metaphor

There’s something disturbingly soothing about watching a curved, inflamed toenail being carved free from swollen skin. The blade slices with surgical precision, blood beads along the edge, and then—relief. In a world constantly unraveling, these videos offer something rare: a clean resolution, a moment in which chaos is met with control, and discomfort is carefully dissolved.

Ingrown toenail procedures have quietly become their own internet genre. Millions of people, myself included, watch strangers' toes—swollen, infected, grotesque—get restored in slow, deliberate acts of minor surgery. But this isn’t about sadism or simple satisfaction. It’s about the metaphor embedded within the procedure: something is wrong, and someone knows exactly how to fix it. And maybe that is why it fascinates us so much—we are drawn to these moments because, in them, the fragility of the body is met with human ingenuity, precision, and care, which is both comforting and unsettling at once. There’s a strange pleasure in seeing vulnerability acknowledged and then resolved, a recognition of our own precariousness in every careful slice.

My favorite videos come from the Korean channel 풋풋한Lee쌤 Fresh Foot, which has over 330,000 subscribers. Lee works with remarkable calm—scooping out pus, straightening curled nails, scraping out the dirt buried beneath. It's oddly intimate. The comments reflect a shared emotional release that people usually get while watching these videos:

"어머 이렇게 이쁜발톱이 이렇게 이쁘게 잘 펴진 발톱 너무너무너무 개운해여 👍 아파하지않는 발주인분 고생하셨습니다!!"
“Wow, such a beautiful toenail—so satisfying to see it straightened. Kudos to the patient!”

"난 내성발톱도 없는데 왜 자꾸 보게될까..쾌감이..크"
“I don’t even have ingrown nails—so why can’t I stop watching? The pleasure… wow.”

"발톱밑에 때 파낼때 쾌감이 장난아님 어휴 속이 다 시원"
“When they scrape the gunk from under the nail—what a release. My soul feels refreshed.”

These videos are not beautiful in the traditional sense. They are mundane, sometimes visceral, and undeniably intimate. A foot—typically hidden and unremarkable—becomes the narrative’s center. The camera lingers on the nail as it emerges from its embedded prison. It’s not just medical—it’s symbolic. Restoration becomes ritual: pain is acknowledged, addressed, and corrected. And yet, I can’t help thinking about why this is satisfying at all. Why does the human mind take comfort in the minor, controlled destruction of flesh to restore order? Why do we watch, rapt, as something small yet grotesque is corrected, and feel a ripple of relief as if our own vulnerabilities were being tended to, even briefly? There is something almost contradictory in this: it is disturbing and soothing, grotesque and redemptive, intimate and communal. It reminds me of life itself—how the tiniest, most fragile things can cause profound discomfort, yet also profound satisfaction when repaired.

Philosophically, this speaks to something deeper. Freud said the body is the birthplace of neurosis—a terrain of conflict and repression. Foucault viewed medical intervention as an extension of societal control over deviance. These videos reflect that intersection: the body made wrong, then made right. They offer us a world where solutions exist, where discomfort has a name and a fix, where suffering is temporary and measurable. And at the same time, it’s a reminder of the absurdity of human fascination—how we can sit, mesmerized, by someone else’s foot, extracting pus and nail fragments, and feel a strange sense of satisfaction, as though witnessing this tiny triumph over disorder confirms that the universe is not entirely indifferent, even if just for a moment.

From the boils of The Plague to Mary Shelley’s creature—assembled, stitched, and brought to life—the disordered body reveals deeper spiritual or moral tension. And yet, in these clips, the grotesque becomes something else: relief. The moment the nail is freed, the toe bandaged, the swelling eased—it’s not just repair. It’s redemption. A small, domestic miracle. And strangely, the pleasure we take is almost like a quiet acknowledgment that life itself is fragile, and yet repairable, that chaos can be met with order, however minor, however fleeting. That we can watch something break and then be fixed and feel a shadow of hope for ourselves—that is maybe the strangest part of all.

To watch a twisted nail corrected is to believe, even briefly, that we are not beyond help. That order can be restored. That pain, however small, can be undone. It tells us the world is broken—but not irreparably. And perhaps that is why I return, video after video, to this strangely specific corner of the internet, not just for curiosity, but for the quiet satisfaction of seeing fragility met with care. Or maybe... I’m just justifying why my YouTube feed is 90% ingrown toenail videos. Either way, I’m hooked.