#the rantings of a confused polymorph
Explore tagged Tumblr posts
Text
Sorta rant thing
Being a polymorph is so weird. I can’t seem to fully grasp what I look like, I got the basic idea down (a completely black alien void-like being that’s speckled with stars, has “paws”, large eyes, and long pointed “ears”) but other traits seem to flicker in and out of my mind. Sometimes I have legs, sometimes colored eyes, sometimes “fur” tufts on the side of my head, sometimes sharp teeth, I don’t know. I wish I could get my default/preferred form down 100% but it keeps changing. Sorta like I can mix and match traits involuntarily.
I’m not sure if the same happens to other polymorphs I just wish I understood why this is. I’m scared of being invalid for this IDK what to do.
#polymorphkin#polymorphkind#otherkin#alterhuman#otherkin help#alienkin#spacekin#the rantings of a confused polymorph
16 notes
·
View notes
Text
OK Bookchin
There is perhaps no modern thinker who has done more to damage the term “anarchism” than Murray Bookchin. Beyond all the physical repression over the centuries, by both capitalists and communists, the right and the left, Bookchin’s piece “Social Anarchism or Lifestyle Anarchism: An Unbridgeable Chasm” stands as the most notable instance of ideological sabotage against anarchism.
Even the title of the piece is a lie. The only reason this “chasm” exists, is because Bookchin and his followers have been harping about it for the last 20 years. Additionally, individualist and social anarchism share a long history of tolerating each other, if not working together. Bookchin conveniently ignores that fact that many individualist anarchists were members of the First International, right alongside social anarchists, and even Marxists. There may have been tension between these groups, but there was no chasm, as there was no chasm until Bookchin created one.
Bookchin starts by going through the history of individualist anarchism, making sure to label them as terrorists pretty quickly out of the gates.
“individualistic anarchists committed acts of terrorism that gave anarchism its reputation as a violently sinister conspiracy.”
This is patently false, as shown in the work “The Anarchist Beast” by Nhat Hong. If Bookchin knew what he was talking about, he would have known that the drive to label anarchists as terrorists was going strong since likely before the 1880s. Yes, some individualist anarchists were terrorists, but anarchism had largely been stuck with that label already. The deeds of terrorists are not what established the label, it was the fear of those in power, and their need to discredit anarchism.
“Despite their avowals of an anarchocommunist ideology, Nietzscheans like Emma Goldman remained cheek to jowl in spirit with individualists. “
Here, we see Bookchin using Nietzsche like his name is some type of slur, in addition to using him to discredit Emma Goldman. Goldman did far more to advance anarchy in this world than Bookchin ever did, and often did it side by side with more social leaning anarchists. Where is the chasm then? Of course Bookchin wants to dismiss Goldman away, as her very life disproves his thesis here.
“The period hardly allowed individualists, in the name of their ‘uniqueness,’ to ignore the need for energetic revolutionary forms of organization with coherent and compelling programs.”
Moving past the 1800s and early 1900s, Bookchin moves on in time, suggesting that social anarchists in the period past that had “compelling programs.” What were these programs exactly? Allying with the Stalinist red fascism in Spain and getting murdered? While individualist anarchists may have been focused on smaller scale actions, the larger scale actions of the social anarchists of the 1930s ended quite literally, in fascism. I would hardly call that compelling or coherent.
“These trendy posturings, nearly all of which follow current yuppie fashions…”
It is at around this point in the piece that Bookchin abandons his delusional version of history, and moves on to mere ad hominem attacks and mere complaining. Bookchin is the last person who should be complaining about anything fashion related! Look at his hat! Bookchin constantly looks like how he thinks a worker should look like, and could absolutely deal with some sense of fashion other than his self-styled “assembly line chic”.
“the 1990s are awash in self-styled anarchists who — their flamboyant radical rhetoric aside — are cultivating a latter-day anarcho-individualism that I will call lifestyle anarchism. Its preoccupations with the ego and its uniqueness and its polymorphous concepts of resistance are steadily eroding the socialistic character of the libertarian tradition.”
Here, Bookchin attempts to coin individualist anarchism as something he created, a “lifestyle anarchism”, if you will. He claims lifestyle anarchism erodes the socialistic character of anarchism? So be it! The socialistic tradition in anarchism is what has led historically to anarchists buddying up to, and later being murdered by, socialists and communists. If erosion of this socialistic character is what it takes for anarchists to stop thinking that leftist traditions have their best interests at heart…Erode away!
“The ego — more precisely, its incarnation in various lifestyles — has become an idée fixe for many post-1960s anarchists, who are losing contact with the need for an organized, collectivistic, programmatic opposition to the existing social order.”
What Bookchin does not realize, is that this type of collectivist, programmatic “opposition” has become ingrained in the social order itself. Mass politics, with its programs for social change, has become part of the status quo. The system itself would much rather have people mimicking its structures and playing within its rules, as opposed to the infinitely diverse forms of resistance available to all individuals at any moment. The state understands how to deal with the same dogmatic resistance it has faced for centuries. It is not prepared for outbursts of individuality, fluid and innumerable in their scope.
“Lifestyle, like individualist, anarchism bears a disdain for theory,”
Yes! We do! We disdain those who fetishize thought, while cowering from action. Unlike Bookchin, who spent his life writing dozens of books, and many more pieces outside of them, the individualists see the world as their parchment upon which to write. Action is worth more than a million words, and also the most effective way to breed more action. People have been theorizing about the same things for centuries now, to little effect. It has been those who commit themselves to enacting theory, rather than steeping themselves in it, who have made the strongest stands against rulership.
“The price that anarchism will pay if it permits this swill to displace the libertarian ideals of an earlier period could be enormous.”
And here is where we see that Bookchin is not interested so much in opposing rulership, as he is using anarchism as a method of control. As evidenced above, Bookchin cares more about anarchism as a static ideology, than as a fluid attempt by people to not be ruled. He is concerned with anarchism as a monolithic entity, because as a singular and dogmatic ideology, anarchism becomes another box in which to contain people’s ideas, and thereby control people’s actions.
“Thus, instead of disclosing the sources of present-day social and personal pathologies, antitechnologism allows us to speciously replace capitalism with technology, which basically facilitates capital accumulation and the exploitation of labor, as the underlying cause of growth and of ecological destruction. Civilization, embodied in the city as a cultural center, is divested of its rational dimensions, as if the city were an unabated cancer rather than the potential sphere for universalizing human intercourse…”
Bookchin also attempts to attack currents of thought like primitivism and anti-civilization, but really just proves that he does not understand the critique these strains are making. Anti-civilization ideas are generally not “anti” technology, so much as they are insisting on an honesty about technology. The technology that exists, exists because of a globalized system of coercion. As anarchists, we need to be critical of this system, and understand that without coercion modern technology would simply not exist. Those who critique technology often do not oppose technology itself, but the manner in which technology is produced. Bookchin’s claim of “antitechnologism” is either a misunderstanding, or a purposeful falsification.
It is also worth noting that Bookchin again vulgarizes primitivism and anti-civ ideas by equating civilization with cities. He dares not address something like Fredy Perlman’s idea of civilization as the roots of all hierarchy…as simply rulership. Instead, Bookchin shows his cowardice by addressing anti-civ ideas with a meme level understanding of it, avoiding those who have thought deeper on the subject.
“Lifestyle anarchism must be seen in the present social context not only of demoralized black ghettoes and reactionary white suburbs but even of Indian reservations, those ostensible centers of ‘primality,’ in which gangs of Indian youths now shoot at one another, drug dealing is rampant, and ‘gang graffiti greets visitors even at the sacred Window Rock monument,’ “
And, of course, no old white man rant would be complete without some statements that just end up sounding like a confused racism. Bookchin actually attempts to claim that lifestyle/individual anarchism is responsible or related to the severe marginalization of people of color?! I believe that responsibility lies with capitalism and the racist structures it has created, not some individualist spectre.
“Social anarchism, in my view, is made of fundamentally different stuff, heir to the Enlightenment tradition…”
Finally, Bookchin comes clean, after the thinly veiled racism, and comes forth with an admission of his true forebearers…the archetypical “old white dudes” of the Enlightenment. Bookchin’s anarchism is not rooted in a simple desire for “no rulers”, but tied up in the liberal white supremacism of Enlightenment ideas.
“it describes the democratic dimension of anarchism as a majoritarian administration of the public sphere.”
Bookchin cannot rid himself of statist ideas, as he goes on to talk about his notion of Communalism. Bookchin does not stop to think “What if the majority does not want to administrate anything?” To him, anarchism is just another system of rulership, albeit a “majoritarian” one. Anarchism to him, becomes less about “no rulers”, and more about “everyone rules”.
“The sovereign, self-sufficient ‘individual’ has always been a precarious basis upon which to anchor a left libertarian outlook.”
Clearly, Bookchin does not believe in any sort of “bottom up” egalitarianism, or else he would not be so quick to dismiss the individual. Free and empowered individuals make up free and empowered societies, and should absolutely be the basis of liberty. One cannot force a system onto people, and then call those people free, no matter how inclusive the system.
“Democracy is not antithetical to anarchism; nor are majority rule and nonconsensual decisions incommensurable with a libertarian society. “
Any sort of rule…Any sort of nonconsensual decision is antithetical to anarchism. Here, again, Bookchin shows his desire to control others in the name of freedom. He literally attempts to reconcile the very tools of the state with anarchism!
“That no society can exist without institutional structures is transparently clear to anyone who has not been stupefied by Stirner and his kind.”
Again, his blatant statism is laid bare. Is “institutional structures” not simply another name for “rulership”? Of course, given the many societal blueprints that Bookchin created in his lifetime, it is clear that Bookchin saw himself at the helm of, or at least a theoretician of these “institutional structures”. Bookchin is incapable of rejecting these structures, because he views them as instruments to be used in ruling over others.
“Certainly, it is already no longer possible, in my view, to call oneself an anarchist without adding a qualifying adjective to distinguish oneself from lifestyle anarchists.”
And again, Bookchin shows that he is the one attempting to dilute anarchism, by attempting to add qualifiers and appendages to it. If anarchism can be obscured by adjectives, then its true meaning of “no rulers” can be watered down and even changed into something else.
“Mere opposition to the state may well unite fascistic lumpens with Stirnerite lumpens, a phenomenon that is not without its historical precedents. “
Bookchin finishes with a bit of classist flair, using the same terms that Marx used with disdain when talking about the underclasses of people. Bookchin, the “good worker”, must berate and chastise others. In a fit of workerism, Bookchin then plays the card common to leftists, and sinks to claims of fascism, putting to rest the notion that he ever had any real argument to begin with.
This final cry of “fascism!” truly shows Bookchin’s true designs here. He is willing to use the threat of fascism to scare those who might not be convinced by the piece’s end into complying. This final statement perfectly illustrates the authoritarianism masking itself as anarchism that Bookchin exemplifies.
“Follow my ‘organized’ and ‘coherent’ plans, or you are a fascist!” he cries.
OK Bookchin…
#no wing anarchy#google murray bookchin#murray bookchin#left wing#anarchy#anarchism#social anarchism
38 notes
·
View notes
Text
Just Another Tuesday
A/N: Welp. Guess I did another one. The scene in the middle of this was bouncing around endlessly in my head until I wrote it down. Thought I should try and spruce it up and post it before it gets rendered non-canon by episode 85. Still feel a bit strange writing these characters, but hopefully I handled them ok.
Posted on fanfiction.net >here<. Posted on AO3 >here<.
Teaser: Their recent perils really had been his fault. But one look at Paultin was all it ever took to keep Strix from hurling a constant stream of fireballs and obscenities in his direction as her personal form of righteous retribution. No one should ever be manipulated and forced into killing their own family.
Disclaimer: I do not own Dice, Camera, Action or Dungeons and Dragons. Takes place after episode 84. Rated T for mild language.
Just Another Tuesday
"I hate this place."
The muttered rant had become a mantra for Strix. She'd said it over and over while despairing in Barovia, deep in the depths of Ironslag, and again in the stifling jungles of Chult. So it came as no surprise that her use of the phrase continued in the heart of the Shadowfell, trapped in a dilapidated carriage filled with barmy companions that was being pulled by a hook-handed ogre zombie.
Just another Tuesday. Or Wednesday. Monday? Whatever day it was.
Diagonal from her was Diath, arms folded and head against the window. The frown he wore was so commonplace now, as if permanently carved into his face. Even in his sleep, eyes closed and breathing slow, he looked troubled, fearful of the next thing he was sure to blame himself for. She'd known him longer than anyone, and every time she thought he couldn't get any worse, couldn't be any more hard on himself, something came along to prove her wrong.
Strix hated it. Diath should be jumping around doing somersaults or cartwheels or whatever fancy acrobatics he used to get out of trouble. He had no right to be sitting there so passively, looking like a child waiting to be reprimanded even in his dreams. Calm, collected, decisive, just a bit cocky - these were traits she once associated with him, but that felt like a lifetime ago.
In a way, it was a lifetime ago.
With a muffled whimper, she shook her head and turned her attention to Evelyn who sat next to her, also asleep - Did constructs sleep? Could she dream? - her lowered head bobbing with the movement of the carriage. She'd been doing that a lot lately, sleeping. It was strange, the normally too bright, too vibrant, too lively paladin being so quiet and solemn. When she was awake, she spoke less than usual, and her tone had become strained and melancholy, though she made feeble attempts to hide it.
Strix hated that too. While Evelyn's constant yammering about Lathander was enough to drive even the sanest crazy, the warmth she normally gave off had the power to soften the hardest of hearts. Admitting this out loud wasn't going to happen any time soon, but Strix missed her smile, her optimism. Evelyn shouldn't be sad. She didn't deserve to be sad. None of them did.
Well...
Despite being quite aware that he, at least, was awake, she couldn't be bothered to try and dull the harsh glare she sent Paultin in the seat across from her. However, as soon as it landed on him, it faded, as it always did, discarded with a tired sigh.
Their recent perils really had been his fault. He had chosen to put on that damned ring, ignoring all the warnings and their numerous pleas to take it off. His greed had divided them and dragged them to the Shadowfell, wasting precious time in their quest to free most of their party from the Death Curse, which even now desperately tried to claim them. Miranda was gone, Izek was on their tail, a broken dwarf turned to stone lay at her feet, and on top of all of that, everyone she loved and cared about was a shell of themselves, their hope and light sucked out thanks to remaining in such a dreadful plane for so long.
But one look at Paultin was all it ever took to keep Strix from hurling a constant stream of fireballs and obscenities in his direction as her personal form of righteous retribution.
He was different. Physically, yes, of course, how could she not notice how thin, pale, and horribly Strahd-like he had become under the ring's influence? But it went beyond that. After gulping down an entire pint of ale and smashing the tankard against one of the ice sculptures bearing his face, Paultin hadn't so much as glanced at a wineskin. Instead his eyes focused on nothing, clear but empty, ever staring out the window of the carriage and into the grey wasteland, his arm hanging loosely over Simon who refused to leave his side. There he remained, awake but limp, lost in his own thoughts, never moving. Once or twice she'd anxiously stared at his eyes, waiting impatiently for them to blink just to make sure he was still alive.
Paultin had never been one to hold a deep conversation, but the lively, often insensitive quips that used to fall from his lips so effortlessly were choked down. Now his responses were limited to unintelligible grunts, if any response was given at all. The wit and banter had been cast aside, replaced with suffocating silence.
A very big part of Strix did not want to feel sorry for such a selfish bastard. This had been entirely his own fault. He was to blame. Let him wallow in his guilt! By putting on that ring, he had brought the horror and misery to both him and the rest of their unlucky band. But...
But no one deserved his fate. No one should ever be manipulated and forced into killing their own family, no matter how foolish and greedy their actions.
Well, he was family to her, anyway. As for the reverse -
"Hey."
Strix jumped in her seat, barely stifling a shout of panic at the sudden break in the silence. Blinking rapidly, she looked up at the gaunt man sitting across from her, sure the voice had come from him though there were no outward signs to confirm it. His absent gaze hadn't left the dirty window pane, and he sat motionless as he had since the very first mile, arm still draped over Simon.
Frowning, she furrowed her eyebrows in confusion. "...what?"
A pregnant pause hung in the carriage, leaving her feeling antsy, wringing her hands and tapping her feet impatiently as she wondered if she'd really even heard anything, until finally Paultin opened his mouth to speak again.
"Promise me something."
A loud sigh escaped her lips as she folded her arms in an attempt to keep them still. His first words in... how long had it been? And the greedy bard wanted something. Because of course he did.
"Promise you what?"
Paultin drew in a long, slow breath before answering. "I want you to promise me that if anything like that happens again - "
"Uh-uh, nope, nope, no - " Her wild hair flew in her face as she began shaking her head, gripping her arms even tighter as she tried to tune out the rest of his words. She knew where this was headed. She was not having this conversation. She would not have this conversation. These would not be the first full words she would hear him say since climbing into this damned carriage!
" - whether it's the Ring of Winter or some other weird piece of shit we find - "
" - no, no, no no no - "
" - I want you to take me down, no hesitation."
" - no, NO! I said, no! I'm not listening to you! Stop it!" Strix reached up to grab her hat, pulling it down over her forehead as she brought her knees up to her chin, her head continuing to shake vigorously, a constant stream of denial pouring from her lips being muffled by her robes. She wasn't sure how long she sat like that before Paultin's voice broke through her defenses.
"Strix, I want you to calm down, and just listen to me for a minute."
Her eyes widened as the bard's words tickled in her ear, seeming to both electrify and calm her body at once, the magic lacing them registering right before she unwillingly gave in, heeding the quiet suggestion. Breathing slowed and sweaty hands unclenched as she at last peeked her head up to look at the one compelling her obedience. For the first time in this entire journey, he was leaning forward, looking at her, and what she saw in his eyes was not emptiness but resolve.
"Look. I need you to do this. Not just for you, not just for them - " he glanced at the - thankfully - still asleep Diath and Evelyn, Simon now looking up at him curiously " - but also for me. That - that was... I can't..."
Strix stared at him in forced but attentive silence, watching as his eyes broke from her's to study the floor, his mouth becoming a thin line, before looking back up, a gaze for once completely unguarded. His carefully built walls cracked as he pushed the rest of his sentence through his teeth, "...I can't go through that again. And I don't want anyone else in here to have to either. I need you to do this."
The rattle of carriage wheels over packed dirt and rock sounded almost deafening as Paultin's words hung in the air like a poisonous mist, leaving Strix's heart to pound and ache in her chest. She chewed on her lip but held his gaze as the magical compulsion wore off, fighting the urge to suddenly polymorph him in retaliation. Perhaps a scrawny, black chicken. Yeah...
She let out a defiant huff. "Why me?"
Leaning back, his eyes flickered over to Diath's sleeping form - "Because he's not strong enough." - before resting on Evelyn - "And she - she shouldn't have to."
That part of her that blamed him, hated him, wanted nothing more than to watch him suffer for his crimes - that same part of her could have agreed so easily. It remembered what happened when she tried talking instead of blasting. It remembered falling into a pool of her own blood, only saved by the uncanny timing of being called away to the Underdark. But that hurt and anger was not her whole, not even the majority, if she was being truly honest with herself.
"I can't promise that."
"Strix - "
"I can't promise I won't hesitate!" Quickly glancing around, she sighed in relief as Diath and Evelyn remained oblivious to the conversation despite her raised voice. She continued on, trying desperately to keep her voice low. "I've told you before - I want to keep this family safe, and that includes you, Paultin. You're my family too. You might be a selfish, greedy bastard with the attention span of a small child, but you're our selfish, greedy bastard. I will always want to save you if it's an option."
Strix paused, averting her gaze as she again began wringing her hands. He was watching her with an intensity she wasn't used to feeling from him, an unreadable expression on his pale face. But finally she forced her head back up, her milky white eyes shining with conviction.
"But there is one thing I can promise, and that is that I won't let you hurt them. Ever. If it comes to that - if you're threatening them - I'll do whatever it takes to stop you, even if I have to throw a hundred fireballs at you. That I promise you."
They both sat still for a moment, eyes locked, until at last Paultin pushed himself back to lean into his seat, his gaze wandering to the ceiling, his intensity slipping away.
"Hn."
A grunt. A grunt? That was the only response he could deign to bestow upon her after saying all that? Strix's knuckles grew white as she ferociously gripped her robes, staring daggers at the listless bard across from her. No. No fireballs. They needed the carriage. She opened her mouth, a barrage of curses at the ready when Paultin's nonchalant voice rang out instead.
"So how did Diath react to the whole 'ice clone pretending to charge at him with the Sunsword' thing? Was his face hilarious? I bet it was hilarious."
Blinking in confusion, Strix slowly dug through her memories until she realized what Paultin was referring to, and took a deep breath. That damned selfish, son of a -
"No, Paultin! It was not 'hilarious'! That stupid clone nearly gave both him and Evelyn heart attacks! ...can constructs even have heart attacks? I - I don't - I don't know! Whatever! Don't you even think about trying something like that again! You hear me, you - you - !"
Strix's diatribe broke off as she realized that her ranting and yelling had finally awoken the rest of their party. They both looked a bit disoriented at the rude awakening, Diath fumbling around for one of his daggers in alarm. Whipping her head back to direct a burning glare at Paultin for provoking her, she noticed something peculiar. Something she hadn't seen in... damn it, how long had it been!?
The barest hint of a smile tugged at the corners of Paultin's mouth. It wasn't vindictive or brimming with madness; it simply held a vague sense of amusement, like a child first discovering an adult's aversion to the word "poop".
He looked back at her calmly. "No promises."
The old, casual response was equal parts comforting and infuriating.
"What - what's goin' on? You two ok?"
Strix whirled on the innocent figure beside her. "No, Evelyn, I am not ok! I hate this place! It's dead and depressing and makes everyone barmy!"
Valiant attempts were made to quell her tirade by her now very much awake and confused companions, but none succeeded. All of the "calm downs" and "what happeneds" only made her more upset as that smug bastard who was the cause of everthing just sat there not paying any attention as he strummed away on his... on his mandolin...
Even the sounds of the carriage trundling along seemed to disappear as the quiet music drifted throughout the cabin. It wasn't his usual jaunty tune, meant to incite merriment and distract from the harshness of life, but rather a soft, calming melody, and as Strix studied him closer, she could see his hands shaking ever so slightly, the look on his face one of solemn concentration. Whether it was from a lack of playing the instrument or something deeper she would probably never know.
Paultin continued to play. Diath relaxed. Evelyn smiled. Simon watched the bard's hands, entranced. And Strix simply listened quietly, wishing vaguely that he had chosen the bagpipes instead. She'd always liked those.
Just another Tuesday.
A/N: As always, critics and grammar police are appreciated!
#dice camera action#waffle crew#strix#strix skizzicks#paultin seppa#diath woodrow#evelyn avalona helvig marthain#simon#my fanfiction#didn't think i'd ever write one and now i've done two#this arc man#so up my alley
18 notes
·
View notes
Link
(Via: Hacker News)
Metaprogramming, or the ability to inspect, modify and generate code at compile-time (as opposed to reflection, which is runtime introspection of code), has slowly been gaining momentum. Programmers are finally admitting that, after accidentally inventing turing complete template systems, maybe we should just have proper first-class support for generating code. Rust has macros, Zig has built-in compile time expressions, Nim lets you rewrite the AST however you please, and dependent types have been cropping up all over the place. However, with great power comes great responsibility undecidable type systems, whose undefined behavior may involve summoning eldritch abominations from the Black Abyss of Rěgne Ūt.
One particular place where metaprogramming is particularly useful is low-level, high-performance code, which is what Terra was created for. The idea behind Terra is that, instead of crafting ancient runes inscribed with infinitely nested variadic templates, just replace the whole thing with an actual turing-complete language, like say, Lua (technically including LuaJIT extensions for FFI). This all sounds nice, and no longer requires a circle of salt to ward off demonic syntax, which Terra is quick to point out. They espouse the magical wonders of replacing your metaprogramming system with an actual scripting language:
In Terra, we just gave in to the trend of making the meta-language of C/C++ more powerful and replaced it with a real programming language, Lua.
The combination of a low-level language meta-programmed by a high-level scripting language allows many behaviors that are not possible in other systems. Unlike C/C++, Terra code can be JIT-compiled and run interleaved with Lua evaluation, making it easy to write software libraries that depend on runtime code generation.
Features of other languages such as conditional compilation and templating simply fall out of the combination of using Lua to meta-program Terra
Terra even claims you can implement Java-like OOP inheritance models as libraries and drop them into your program. It may also cure cancer (the instructions were unclear).
As shown in the templating example, Terra allows you to define methods on struct types but does not provide any built-in mechanism for inheritance or polymorphism. Instead, normal class systems can be written as libraries. More information is available in our PLDI Paper.
The file lib/javalike.t has one possible implementation of a Java-like class system, while the file lib/golike.t is more similar to Google’s Go language.
I am here to warn you, traveler, that Terra sits on a throne of lies. I was foolish. I was taken in by their audacious claims and fake jewels. It is only when I finally sat down to dine with them that I realized I was surrounded by nothing but cheap plastic and slightly burnt toast.
The Bracket Syntax Problem
Terra exists as a syntax extension to Lua. This means it adds additional keywords on top of Lua’s existing grammar. Most languages, when extending a syntax, would go to great lengths to ensure the new grammar does not create any ambiguities or otherwise interfere with the original syntax, treating it like a delicate flower that mustn’t be disturbed, lest it lose a single petal.
Terra takes the flower, gently places it on the ground, and then stomps on it, repeatedly, until the flower is nothing but a pile of rubbish, as dead as the dirt it grew from. Then it sets the remains of the flower on fire, collects the ashes that once knew beauty, drives to a nearby cliffside, and throws them into the uncaring ocean. It probably took a piss too, but I can’t prove that.
To understand why, one must understand what the escape operator is. It allows you to splice an abstract AST generated from a Lua expression directly into Terra code. Here is an example from Terra’s website:
function get5() return 5 end terra foobar() return [ get5() + 1 ] end foobar:printpretty() > output: > foobar0 = terra() : {int32} > return 6 > end
But, wait, that means it’s… the same as the array indexing operator? You don’t mean you just put it inside like–
local rest = {symbol(int),symbol(int)} terra doit(first : int, [rest]) return first + [rest[1]] + [rest[2]] end
What.
WHAT?!
You were supposed to banish the syntax demons, not join them! This abomination is an insult to Nine Kingdoms of Asgard! It is the very foundation that Satan himself would use to unleash Evil upon the world. Behold, mortals, for I come as the harbinger of despair:
function idx(x) return `x end function gen(a, b) return `array(a, b) end terra test() -- Intended to evaluate to array(1, 2) 0 return [gen(1, 2)][idx(0)] end
For those of you joining us (probably because you heard a blood-curdling scream from down the hall), this syntax is exactly as ambiguous as you might think. Is it two splice statements put next to each other, or is a splice statement with an array index? You no longer know if a splice operator is supposed to index the array or act as a splice operator, as mentioned in this issue. Terra “resolves this” by just assuming that any two bracketed expressions put next to each other are always an array indexing operation, which is a lot like fixing your server overheating issue by running the fire suppression system all day. However, because this is Lua, whose syntax is very much like a delicate flower that cannot be disturbed, a much worse ambiguity comes up when we try to fix this.
function idx(x) return `x end function gen(a, b) return `array(a, b) end terra test() -- This is required to make it evaluate to array(1,2)[0] -- return [gen(1, 2)][ [idx(0)] ] -- This doesn't work: return [gen(1, 2)][[idx(0)]] -- This is equivalent to: -- return [gen(1, 2)] "idx(0)" end
We want to use a spliced Lua expression as the array index, but if we don’t use any spaces, it turns into a string because [[string]] is the Lua syntax for an unescaped string! Now, those of you who still possess functioning brains may believe that this would always result in a syntax error, as we have now placed a string next to a variable. Not so! Lua, in it’s infinite wisdom, converts anything of the form symbol"string" or symbol[[string]] into a function call with the string as the only parameter. That means that, in certain circumstances, we literally attempt to call our variable as a function with our expression as a string:
local lookups = {x = 0, y = 1, z = 2, w = 3 }; vec.metamethods.__entrymissing = macro(function(entryname, expr) if lookups[entryname] then -- This doesn't work return `expr.v[[lookups[entryname]]] -- This is equivalent to -- return `expr.v "lookups[entryname]" -- But it doesn't result in a syntax error, becase it's equivalent to: -- return `extr.v("lookups[entryname]") else error "That is not a valid field." end end)
As a result, you get a type error, not a syntax error, and a very bizarre one too, because it’s going to complain that v isn’t a function. This is like trying to bake pancakes for breakfast and accidentally going scuba diving instead. It’s not a sequence of events that should ever be related in any universe that obeys causality.
It should be noted that, after a friend of mine heard my screams of agony, an issue was raised to change the syntax to a summoning ritual that involves less self-mutilation. Unfortunately, this is a breaking change, and will probably require an exorcism.
The Documentation Is Wrong
Terra’s documentation is so wrong that it somehow manages to be wrong in both directions. That is, some of the documentation is out-of-date, while some of it refers to concepts that never made it into master. I can only assume that a time-traveling gremlin was hired to write the documentation, who promptly got lost amidst the diverging timelines. It is a quantum document, both right and wrong at the same time, yet somehow always useless, a puzzle beyond the grasp of modern physics.
The first thing talked about in the API Reference is a List object. It does not actually exist. A primitive incarnation of it does exist, but it only implements map() and insertall(). Almost the entire section is completely wrong for the 1.0.0-beta1 release. The actual List object being described sits alone and forgotten in the develop branch, dust already beginning to collect on it’s API calls, despite those API calls being the ones in the documentation… somehow.
:printpretty() is a function that prints out a pretty string representation of a given piece of Terra code, by parsing the AST representation. On it’s face, it does do exactly what is advertised: it prints a string. However, one might assume that it returns the string, or otherwise allows you to do something with it. This doesn’t happen. It literally calls the print() function, throwing the string out the window and straight into the stdout buffer without a care in the world. If you want the actual string, you must call either layoutstring() (for types) or prettystring() (for quotes). Neither function is documented, anywhere.
Macros can only be called from inside Terra code. Unless you give the constructor two parameters, where the second parameter is a function called from inside a Lua context. This behavior is not mentioned in any documentation, anywhere, which makes it even more confusing when someone defines a macro as macro(myfunction, myfunction) and then calls it from a Lua context, which, according to the documentation, should be impossible.
Struct fields are not specified by their name, but rather just held in a numbered list of {name, type} pairs. This is documented, but a consequence of this system is not: Struct field names do not have to be unique. They can all be the same thing. Terra doesn’t actually care. You can’t actually be sure that any given field name lookup will result in, y’know, one field. Nothing mentions this.
The documentation for saveobj is a special kind of infuriating, because everything is technically correct, yet it does not give you any examples and instead simply lists a function with 2 arguments and 4 interwoven optional arguments. In reality it’s absolutely trivial to use because you can ignore almost all the parameters. Just write terralib.saveobj("blah", {main = main}) and you’re done. But there isn’t a single example of this anywhere on the entire website. Only a paragraph and two sentences explaining in the briefest way possible how to use the function, followed by a highly technical example of how to initialize a custom target parameter, which doesn’t actually compile because it has errant semicolons. This is literally the most important function in the entire language, because it’s what actually compiles an executable!
The defer keyword is critical to being able to do proper error cleanup, because it functions similar to Go’s defer by performing a function call at the end of a lexical scope. It is not documented, anywhere, or even mentioned at all on the website. How Terra manages to implement new functionality it forgets to document while, at the same time, documenting functionality that doesn’t exist yet is a 4-dimensional puzzle fit for an extra-dimensional hyperintelligent race of aliens particularly fond of BDSM.
You’d think that compiling Terra on Linux would be a lot simpler, but you’d be wrong. Not only are the makefiles unreliable, but cmake itself doesn’t seem to work with LLVM 7 unless you pass in a very specific set of flags, none of which are documented, because compiling via cmake isn’t documented at all, and this is the only way to compile with LLVM 7 or above on the latest Ubuntu release!
Perhaps there are more tragedies hidden inside this baleful document, but I cannot know, as I have yet to unearth the true depths of the madness lurking within. I am, at most, on the third or fourth circle of hell.
Terra Doesn’t Actually Work On Windows
Saying that Terra supports Windows is a statement fraught with danger. It is a statement so full of holes that an entire screen door could try to sell you car insurance and it’d still be a safer bet than running Terra on Windows. Attempting to use Terra on Windows will work if you have Visual Studio 2015 installed. It might work if you have Visual Studio 2013 installed. No other scenarios are supported, especially not ones that involve being productive. Actually compiling Terra on Windows is a hellish endeavor comparable to climbing Mount Everest in a bathing suit, which requires either having Visual Studio 2015 installed to the default location, or manually modifying a Makefile with the exact absolute paths of all the relevant dependencies. At least up until last week, when I submitted a pull request to minimize the amount of mountain climbing required.
The problem Terra runs into is that it tries to use a registry value to find the location of Visual Studio and then work out where link.exe is from there, then finds the include directories for the C runtime. This hasn’t worked since Visual Studio 2017 and also requires custom handling for each version because compiling an iteration of Visual Studio apparently involves throwing the directory structure into the air, watching it land on the floor in a disorganized mess, and drawing lines between vaguely related concepts. Good for divining the true nature of the C library, bad for building directory structures. Unfortunately, should you somehow manage to compile Terra, it will abruptly stop working the moment you try to call printf, claiming that printf does not actually exist, even after importing stdio.h.
Many Terra tests assume that printf actually resolves to a concrete symbol. This is not true and hasn’t been true since Visual Studio 2015, which turned several stdio.h functions into inline-only implementations. In general, the C standard library is under no obligation to produce an actual concrete symbol for any function - or to make sense to a mere mortal, for that matter. In fact, it might be more productive to assume that the C standard was wrought from the unholy, broiling chaos of the void by Cthulhu himself, who saw fit to punish any being foolish enough to make reasonable assumptions about how C works.
Unfortunately, importing stdio.h does not fix this problem, for two reasons. One, Terra did not understand inline functions on Windows. They were ephemeral wisps, vanishing like a mote of dust on the wind the moment a C module was optimized. A pull request fixed this, but it can’t fix the fact that the Windows SDK was wrought from the innocent blood of a thousand vivisected COMDAT objects. Microsoft’s version of stdio.h can only be described as an extra-dimensional object, a meta-stable fragment of a past universe that can only be seen in brief slivers, never all at once.
Luckily for the Terra project, I am the demonic presence they need, for I was once a Microsoftie. Long ago, I walked the halls of the Operating Systems Group and helped craft black magic to sate the monster’s unending hunger. I saw True Evil blossom in those dark rooms, like having only three flavors of sparkling water and a pasta station only open on Tuesdays.
I know the words of Black Speech that must be spoken to reveal the true nature of Windows. I know how to bend the rules of our prison, to craft a mighty workspace from the bowels within. After fixing the cmake implementation to function correctly on Windows, I intend to perform the unholy incantations required to invoke the almighty powers of COM, so that it may find on which fifth-dimensional hyperplane Visual Studio exists. Only then can I disassociate myself from the mortal plane for long enough to tackle the stdio.h problem. You see, children, programming for Windows is easy! All you have to do is s͏̷E͏l͏̢҉l̷ ̸̕͡Y͏o҉u͝R̨͘ ̶͝sơ̷͟Ul̴
For those of you who actually wish to try Terra, but don’t want to wait for me to fix everything a new release, you can embed the following code at the top of your root Terra script:
if os.getenv("VCINSTALLDIR") ~= nil then terralib.vshome = os.getenv("VCToolsInstallDir") if not terralib.vshome then terralib.vshome = os.getenv("VCINSTALLDIR") terralib.vclinker = terralib.vshome..[[BIN\x86_amd64\link.exe]] else terralib.vclinker = ([[%sbin\Host%s\%s\link.exe]]):format(terralib.vshome, os.getenv("VSCMD_ARG_HOST_ARCH"), os.getenv("VSCMD_ARG_TGT_ARCH")) end terralib.includepath = os.getenv("INCLUDE") function terralib.getvclinker() local vclib = os.getenv("LIB") local vcpath = terralib.vcpath or os.getenv("Path") vclib,vcpath = "LIB="..vclib,"Path="..vcpath return terralib.vclinker,vclib,vcpath end end
Yes, we are literally overwriting parts of the compiler itself, at runtime, from our script. Welcome to Lua! Enjoy your stay, and don’t let the fact that any script you run could completely rewrite the compiler keep you up at night!
The Existential Horror of Terra Symbols
Symbols are one of the most slippery concepts introduced in Terra, despite their relative simplicity. When encountering a Terra Symbol, one usually finds it in a function that looks like this:
TkImpl.generate = function(skip, finish) return quote if [TkImpl.selfsym].count == 0 then goto [finish] end [TkImpl.selfsym].count = [TkImpl.selfsym].count - 1 [stype.generate(skip, finish)] end end
Where selfsym is a symbol that was set elsewhere.
“Aha!” says our observant student, “a reference to a variable from an outside context!” This construct does let you access a variable from another area of the same function, and using it to accomplish that will generally work as you expect, but what it’s actually doing is much worse more subtle. You see, grasshopper, a symbol is not a reference to a variable node in the AST, it is a reference to an identifier.
local sym = symbol(int) local inc = quote [sym] = [sym] + 1 end terra foo() var [sym] = 0 inc inc return [sym] end terra bar() var[sym] = 0 inc inc inc return [sym] end
Yes, that is valid Terra, and yes, the people who built this language did this on purpose. Why any human being still capable of love would ever design such a catastrophe is simply beyond me. Each symbol literally represents not a reference to a variable, but a unique variable name that will refer to any variable that has been initialized in the current Terra scope with that particular identifier. You aren’t passing around variable references, you’re passing around variable names.
These aren’t just symbols, they’re typed preprocessor macros. They are literally C preprocessor macros, capable of causing just as much woe and suffering as one, except that they are typed and they can’t redefine existing terms. This is, admittedly, slightly better than a normal C macro. However, seeing as there have been entire books written about humanity’s collective hatred of C macros, this is equivalent to being a slightly more usable programming language than Brainfuck. This is such a low bar it’s probably buried somewhere in the Mariana Trench.
Terra is C but the Preprocessor is Lua
You realize now, the monstrosity we have unleashed upon the world? The sin Terra has committed now lies naked before us.
Terra is C if you replaced the preprocessor with Lua.
Remember how Terra says you can implement Java-like and Go-like class systems? You can’t. Or rather, you will end up with a pathetic imitation, a facsimile of a real class system, striped down to the bone and bereft of any useful mechanisms. It is nothing more than an implementation of vtables, just like you would make in C. Because Terra is C. It’s metaprogrammable C.
There can be no constructors, or destructors, or automatic initialization, or any sort of borrow checking analysis, because Terra has no scoping mechanisms. The only thing it provides is defer, which only operates inside Lua lexical blocks (do and end)… sometimes, if you get lucky. The exact behavior is a bit confusing, and of course can only be divined by random experimentation because it isn’t documented anywhere! Terra’s only saving grace, the singular keyword that allows you to attempt to build some sort of pretend object system, isn’t actually mentioned anywhere.
Of course, Terra’s metaprogramming is turing complete, and it is technically possible to implement some of these mechanisms, but only if you either wrap absolutely every single variable declaration in a function, or you introspect the AST and annotate every single variable with initialization statuses and then run a metaprogram over it to figure out when constructors or destructors or assignment operators need to be called. Except, this might not work, because the (undocumented, of course) __update metamethod that is supposed to trigger when you assign something to a variable has a bug where it’s not always called in all situations. This turns catching assignments and finding the l-value or r-value status from a mind-bogglingly difficult, herculean task, to a near-impossible trial of cosmic proportions that probably requires the help of at least two Avengers.
There Is No Type System
If Terra was actually trying to build a metaprogramming equivalent to templates, it would have an actual type system. These languages already exist - Idris, Omega, F*, Ada, Sage, etc. but none of them are interested in using their dependent type systems to actually metaprogram low-level code (although F* can produce it). The problem is that building a recursively metaprogrammable type system requires building a proof assistant, and everyone is so proud of the fact they built a proof assistant they forget that dependent type systems can do other things too, like build really fast memcpy implementations.
Terra, on the other hand, provides only the briefest glimpse of a type system. Terra functions enjoy what is essentially a slightly more complex C type system. However, the higher-level Lua context is, well, Lua, which has five basic types: Tables, Functions, Strings, Booleans and Numbers (it also has Thread, Nil, Userdata and CData for certain edge cases). That’s it. Also, it’s dynamic, not static, so everything is a syntax or a runtime error, because it’s a scripting language. This means all your metaprogramming is sprinkled with type-verification calls like :istype() or :isstruct(), except the top came off the shaker and now the entire program is just sprinkles, everywhere. This is fine for when your metaprograms are, themselves, relatively simple. It is not fine when you are returning meta-programs out of meta-meta-functions.
This is the impasse I find myself at, and it is the answer to the question I know everyone wants to know the answer to. For the love of heaven and earth and all that lies between, why am I still using Terra?
The truth is that the project I’m working on requires highly complex metaprogramming techniques in order to properly generate type-safe mappings for arbitrary data structures. Explaining why would be an entire blog post on it’s own, but suffice to say, it’s a complex user interface library that’s intended to run on tiny embedded devices, which means I can’t simply give up and use Idris, or indeed anything that involves garbage collection.
What I really want is a low-level, recursively metaprogrammable language that is also recursively type-safe, in that any type strata can safely manipulate the code of any layer beneath it, preferably via algebriac subtyping that ensures all types are recursively a subset of types that contain them, ad nauseam. This would then allow you to move from a “low-level” language to a “high-level” language by simply walking up the tower of abstraction, building meta-meta-programs that manipulate meta-programs that generate low-level programs.
Alas, such beauty can only exist in the minds of mathematicians and small kittens. While I may one day attempt to build such a language, it will be nothing more than a poor imitation, forever striving for an ideal it cannot reach, cursed with a vision from the gods of a pristine language no mortal can ever possess.
I wish to forge galaxies, to wield the power of computation and sail the cosmos upon an infinite wave of creativity. Instead, I spend untold hours toiling inside LLVM, wondering why it won’t print “Hello World”.
In conclusion, everything is terrible and the universe is on fire.
0 notes
Text
Dental Cavitations: Definition, Facts, & Myths
Have you heard of dental cavitations? They can be big problems in your jawbone, but you may never know you have one.
What are dental cavitations?
There’s a lot of misinformation out there about dental cavitations. Some patients have been “led astray” because their doctors have misdiagnosed a dental cavitation.
Also, the fact that two major dental conditions sound similar can be confusing: dental cavitation and dental cavity.
A dental cavitation is a term that is used to describe an area of damage in the jawbone. The dictionary defines a “cavitation” as an empty space formed within a solid object or body.
“Cavitation” is not a medical term, although it is used by dentists and other healthcare professionals.
A dental cavitation is an area of infection, inflammation, or necrosis within the jawbone.
If not treated correctly, it will fester, and toxic elements could spread to other areas of the body.
On the other hand, a dental cavity (known by dentist as “dental caries”) is an area of break down in the structure of a tooth caused by acids produced by specific bacteria. It also is known as tooth decay where infection is eating into the enamel, dentin, or the root structure of a tooth.
If you truly have a “dental cavitation” in your jawbone, this can be a serious problem. Proper treatment could lead to an expensive surgical procedure to “repair” it.
But some patients are misdiagnosed with a dental cavitation. The dentist might see an area of “demineralization” in the jawbone that is not pathologic. If this demineralized area is treated as a true dental cavitation, it could lead to unnecessary surgery and significant expense.
Since “cavitation” is not a recognized dental term or condition, there is much confusion revolving around its diagnosis and treatment. In my opinion, misdiagnosis is an error that may be understandable. Yet, overdiagnosis of dental cavitations is fraud in my opinion and could lead to unnecessary treatment, high cost, and pain.
Let’s take a deeper dive into this area. I’ll describe some facts about “dental cavitations”.
Medical Terminology
The accepted medical term for a dental cavitation is “cavitational osteonecrosis” or “ischemic osteonecrosis”.
Some professionals that are not in the “know” will classify this jawbone disease as a sham. However, it is definitely real and definitely could cause isolated as well as systemic destruction.
This type of lesion may be a hollow space surrounded by dead bone, or it may be filled with various inflammatory, toxic, or infectious elements.
One of the problems with a dental cavitation is that most of these lesions are painless. However, if there is pain, they are usually called “Neuralgia-Inducing Cavitational Osteonecrosis” (NICO).
As I mentioned, these bone lesions must be diagnosed correctly. “Cavitation lesions” that are only areas of demineralization with no pathology rarely need to be treated. A good dentist will not convince you to treat this kind of demineralization if s/he knows there is no pathology.
Diagnosis of Cavitations
As I have suggested, dental cavitations may be difficult to diagnose. It is difficult or impossible to see these lesions when viewing a regular single dental periapical x-ray or a panoramic dental x-ray.
A panoramic x-ray shows the upper and lower jaw, the teeth, and the sinus spaces. (See Figure 1, which shows a 2-dimensional periapical dental x-ray with a difficult-to-see cavitation within the red circle.)
Figure 1 Cavitational Osteonecrosis in lower jaw (within red circle)
Most dental x-rays are 2-dimensional pictures of specific areas of your jaw and teeth. However, the jaw and teeth are three-dimensional structures. So, a 2-dimensional x-ray flattens the 3-dimensional object into a picture that shows minimal detail. More detail is required to identify potential areas of cavitational osteonecrosis.
To see this lesion in detail, the dentist should have the patient receive a 3-dimensional picture of the jaw. This can be done with a Cone Beam CT Scan (CBCT) of the potential lesion.
But before any x-ray is taken, the dentist must review the dental and medical history of the patient to determine the possible causes of the bone lesion before making the diagnosis.
Causes of Dental Cavitations
Dental cavitations in the jawbone could be the result of a variety of insults to the bone. Here are 5 possible causes:
Some type of trauma to the bone causing a blockage of blood flow could cause bone cells to die, thereby creating a hollow space within the bone.
Following an improperly performed procedure to extract a tooth could leave infection or debris in the bone socket, which could result in a dry socket and eventually a dental cavitation.
Overheating the bone during a dental procedure using cutting drills could cause the bone to die, leading to cavitational osteonecrosis.
A tooth abscess penetrating into the bone and becoming isolated within the bone could form a bone lesion.
Continuing infection at the base of a tooth root, which has a failing root canal, could be the culprit.
Linking Dental Cavitations to Chronic Disease
When harmful bacteria and toxic substances accumulate in the hollow space in a bone lesion, the immune system is activated via the mouth-body connection. Various biologically active chemicals are produced which can travel along nerve sheaths, through bone spaces, within lymph, and into the systemic bloodstream.
These biological chemicals and toxic substances can affect other cells and organs in the body — creating chronic systemic inflammation, chronic diseases, and chronic pain.
It is important to realize that pain and chronic disease could occur a distance from the jawbone lesion. This is another reason why it may be difficult to understand that the dental lesion caused an area of pain and chronic disease somewhere else in the body.
Published Research
Researchers have uncovered some facts you need to know. Most published articles use the terms of “cavitational osteonecrosis” and “NICO”:
In this 2010 peer-reviewed paper, the authors discussed 22 patients with NICO in the jawbone. They described the progression of the disease and treatment for this bone lesion.
In a paper published in 2012 in the National Journal of Maxillofacial Surgery, the clinicians described their diagnosis and treatment for a patient, whom they diagnosed with an isolated lesion of NICO in the lower jawbone.
The authors of this 2015 study evaluated 15 patients with unusual facial pain and trigeminal neuralgia. Their research suggested that the jawbone lesions, described as “cavitations” and “NICO”, might be the cause of the jaw pain as a result of the inflammatory cytokines that these lesions produced.
In this 2017 article published in Implant Dentistry, the surgeons covered their treatment for 34 patients who experienced dental cavitations in the area where dental implants were to be inserted. The dentists explained how these lesions were treated prior to placing the dental implants.
These articles are important because they discussed human case studies exhibiting these jawbone lesions and their potential threat to patient’s health. Most of the general public and many dental practitioners are unfamiliar with these lesions or have previously been misinformed.
Treatment of Dental Cavitations
Treatment of cavitational osteonecrosis consists of entering the lesion and cleaning it out thoroughly. The fluid and tissues removed from the lesion should be sent to pathology to be identified.
The dental surgeon may use a laser to decontaminate and debride the lesion. S/he may place a biologically active material into the bone space to enhance its healing.
In addition to surgically treating the bone lesion, it is important to support the patient’s immune system. There should be an integrative approach including a non-inflammatory nutrient-dense diet and various spore-based probiotics to support a diverse and abundant garden of healthy microbes in the gut.
Sometimes, it will be necessary to determine if any toxic substances already exist in the body like heavy metals, which may need to be reduced or eliminated.
My Final Thoughts
While the medical and dental professions are not completely convinced cavitational osteonecrosis exists, the few published research papers reveal it is true.
These lesions go undetected because they usually do not develop immediately after the bone insult.
And most importantly, various diseases and pain can manifest in areas of the body other than the jawbone. The medical literature needs more documented cases from researchers to wake up the healthcare professionals who are the ones to diagnose and treat this problem.
4 References
Glueck, C. J., McMahon, R. E., Bouquot, J. E., Khan, N. A., & Wang, P. (2010). T− 786C polymorphism of the endothelial nitric oxide synthase gene and neuralgia-inducing cavitational osteonecrosis of the jaws. Oral Surgery, Oral Medicine, Oral Pathology, Oral Radiology, and Endodontology, 109(4), 548-553. Abstract: https://www.ncbi.nlm.nih.gov/pubmed/20185342
Gandhi, Y. R., Pal, U. S., & Singh, N. (2012). Neuralgia-inducing cavitational osteonecrosis in a patient seeking dental implants. National journal of maxillofacial surgery, 3(1), 84. Full text: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3513818/
Lechner, J., & von Baehr, V. (2015). Peripheral neuropathic facial/trigeminal pain and RANTES/CCL5 in jawbone cavitation. Evidence-Based Complementary and Alternative Medicine, 2015. Full text: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4481083/
Chen, Y. W., Simancas-Pallares, M., Marincola, M., & Chuang, S. K. (2017). Grafting and Dental Implantation in Patients With Jawbone Cavitation: Case Series and 3-Year Follow-Up. Implant dentistry, 26(1), 158-164. Abstract: https://www.ncbi.nlm.nih.gov/pubmed/28098576
The post Dental Cavitations: Definition, Facts, & Myths appeared first on Ask the Dentist.
Dental Cavitations: Definition, Facts, & Myths published first on https://wittooth.tumblr.com/
0 notes
Link
Have you heard of dental cavitations? They can be big problems in your jawbone, but you may never know you have one.
What are dental cavitations?
There’s a lot of misinformation out there about dental cavitations. Some patients have been “led astray” because their doctors have misdiagnosed a dental cavitation.
Also, the fact that two major dental conditions sound similar can be confusing: dental cavitation and dental cavity.
A dental cavitation is a term that is used to describe an area of damage in the jawbone. The dictionary defines a “cavitation” as an empty space formed within a solid object or body.
“Cavitation” is not a medical term, although it is used by dentists and other healthcare professionals.
A dental cavitation is an area of infection, inflammation, or necrosis within the jawbone.
If not treated correctly, it will fester, and toxic elements could spread to other areas of the body.
On the other hand, a dental cavity (known by dentist as “dental caries”) is an area of break down in the structure of a tooth caused by acids produced by specific bacteria. It also is known as tooth decay where infection is eating into the enamel, dentin, or the root structure of a tooth.
If you truly have a “dental cavitation” in your jawbone, this can be a serious problem. Proper treatment could lead to an expensive surgical procedure to “repair” it.
But some patients are misdiagnosed with a dental cavitation. The dentist might see an area of “demineralization” in the jawbone that is not pathologic. If this demineralized area is treated as a true dental cavitation, it could lead to unnecessary surgery and significant expense.
Since “cavitation” is not a recognized dental term or condition, there is much confusion revolving around its diagnosis and treatment. In my opinion, misdiagnosis is an error that may be understandable. Yet, overdiagnosis of dental cavitations is fraud in my opinion and could lead to unnecessary treatment, high cost, and pain.
Let’s take a deeper dive into this area. I’ll describe some facts about “dental cavitations”.
Medical Terminology
The accepted medical term for a dental cavitation is “cavitational osteonecrosis” or “ischemic osteonecrosis”.
Some professionals that are not in the “know” will classify this jawbone disease as a sham. However, it is definitely real and definitely could cause isolated as well as systemic destruction.
This type of lesion may be a hollow space surrounded by dead bone, or it may be filled with various inflammatory, toxic, or infectious elements.
One of the problems with a dental cavitation is that most of these lesions are painless. However, if there is pain, they are usually called “Neuralgia-Inducing Cavitational Osteonecrosis” (NICO).
As I mentioned, these bone lesions must be diagnosed correctly. “Cavitation lesions” that are only areas of demineralization with no pathology rarely need to be treated. A good dentist will not convince you to treat this kind of demineralization if s/he knows there is no pathology.
Diagnosis of Cavitations
As I have suggested, dental cavitations may be difficult to diagnose. It is difficult or impossible to see these lesions when viewing a regular single dental periapical x-ray or a panoramic dental x-ray.
A panoramic x-ray shows the upper and lower jaw, the teeth, and the sinus spaces. (See Figure 1, which shows a 2-dimensional periapical dental x-ray with a difficult-to-see cavitation within the red circle.)
Figure 1 Cavitational Osteonecrosis in lower jaw (within red circle)
Most dental x-rays are 2-dimensional pictures of specific areas of your jaw and teeth. However, the jaw and teeth are three-dimensional structures. So, a 2-dimensional x-ray flattens the 3-dimensional object into a picture that shows minimal detail. More detail is required to identify potential areas of cavitational osteonecrosis.
To see this lesion in detail, the dentist should have the patient receive a 3-dimensional picture of the jaw. This can be done with a Cone Beam CT Scan (CBCT) of the potential lesion.
But before any x-ray is taken, the dentist must review the dental and medical history of the patient to determine the possible causes of the bone lesion before making the diagnosis.
Causes of Dental Cavitations
Dental cavitations in the jawbone could be the result of a variety of insults to the bone. Here are 5 possible causes:
Some type of trauma to the bone causing a blockage of blood flow could cause bone cells to die, thereby creating a hollow space within the bone.
Following an improperly performed procedure to extract a tooth could leave infection or debris in the bone socket, which could result in a dry socket and eventually a dental cavitation.
Overheating the bone during a dental procedure using cutting drills could cause the bone to die, leading to cavitational osteonecrosis.
A tooth abscess penetrating into the bone and becoming isolated within the bone could form a bone lesion.
Continuing infection at the base of a tooth root, which has a failing root canal, could be the culprit.
Linking Dental Cavitations to Chronic Disease
When harmful bacteria and toxic substances accumulate in the hollow space in a bone lesion, the immune system is activated via the mouth-body connection. Various biologically active chemicals are produced which can travel along nerve sheaths, through bone spaces, within lymph, and into the systemic bloodstream.
These biological chemicals and toxic substances can affect other cells and organs in the body — creating chronic systemic inflammation, chronic diseases, and chronic pain.
It is important to realize that pain and chronic disease could occur a distance from the jawbone lesion. This is another reason why it may be difficult to understand that the dental lesion caused an area of pain and chronic disease somewhere else in the body.
Published Research
Researchers have uncovered some facts you need to know. Most published articles use the terms of “cavitational osteonecrosis” and “NICO”:
In this 2010 peer-reviewed paper, the authors discussed 22 patients with NICO in the jawbone. They described the progression of the disease and treatment for this bone lesion.
In a paper published in 2012 in the National Journal of Maxillofacial Surgery, the clinicians described their diagnosis and treatment for a patient, whom they diagnosed with an isolated lesion of NICO in the lower jawbone.
The authors of this 2015 study evaluated 15 patients with unusual facial pain and trigeminal neuralgia. Their research suggested that the jawbone lesions, described as “cavitations” and “NICO”, might be the cause of the jaw pain as a result of the inflammatory cytokines that these lesions produced.
In this 2017 article published in Implant Dentistry, the surgeons covered their treatment for 34 patients who experienced dental cavitations in the area where dental implants were to be inserted. The dentists explained how these lesions were treated prior to placing the dental implants.
These articles are important because they discussed human case studies exhibiting these jawbone lesions and their potential threat to patient’s health. Most of the general public and many dental practitioners are unfamiliar with these lesions or have previously been misinformed.
Treatment of Dental Cavitations
Treatment of cavitational osteonecrosis consists of entering the lesion and cleaning it out thoroughly. The fluid and tissues removed from the lesion should be sent to pathology to be identified.
The dental surgeon may use a laser to decontaminate and debride the lesion. S/he may place a biologically active material into the bone space to enhance its healing.
In addition to surgically treating the bone lesion, it is important to support the patient’s immune system. There should be an integrative approach including a non-inflammatory nutrient-dense diet and various spore-based probiotics to support a diverse and abundant garden of healthy microbes in the gut.
Sometimes, it will be necessary to determine if any toxic substances already exist in the body like heavy metals, which may need to be reduced or eliminated.
My Final Thoughts
While the medical and dental professions are not completely convinced cavitational osteonecrosis exists, the few published research papers reveal it is true.
These lesions go undetected because they usually do not develop immediately after the bone insult.
And most importantly, various diseases and pain can manifest in areas of the body other than the jawbone. The medical literature needs more documented cases from researchers to wake up the healthcare professionals who are the ones to diagnose and treat this problem.
4 References
Glueck, C. J., McMahon, R. E., Bouquot, J. E., Khan, N. A., & Wang, P. (2010). T− 786C polymorphism of the endothelial nitric oxide synthase gene and neuralgia-inducing cavitational osteonecrosis of the jaws. Oral Surgery, Oral Medicine, Oral Pathology, Oral Radiology, and Endodontology, 109(4), 548-553. Abstract: https://www.ncbi.nlm.nih.gov/pubmed/20185342
Gandhi, Y. R., Pal, U. S., & Singh, N. (2012). Neuralgia-inducing cavitational osteonecrosis in a patient seeking dental implants. National journal of maxillofacial surgery, 3(1), 84. Full text: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3513818/
Lechner, J., & von Baehr, V. (2015). Peripheral neuropathic facial/trigeminal pain and RANTES/CCL5 in jawbone cavitation. Evidence-Based Complementary and Alternative Medicine, 2015. Full text: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4481083/
Chen, Y. W., Simancas-Pallares, M., Marincola, M., & Chuang, S. K. (2017). Grafting and Dental Implantation in Patients With Jawbone Cavitation: Case Series and 3-Year Follow-Up. Implant dentistry, 26(1), 158-164. Abstract: https://www.ncbi.nlm.nih.gov/pubmed/28098576
The post Dental Cavitations: Definition, Facts, & Myths appeared first on Ask the Dentist.
from Ask the Dentist https://askthedentist.com/dental-cavitation/
0 notes
Text
Dental Cavitations: Definition, Facts, & Myths
Have you heard of dental cavitations? They can be big problems in your jawbone, but you may never know you have one.
What are dental cavitations?
There’s a lot of misinformation out there about dental cavitations. Some patients have been “led astray” because their doctors have misdiagnosed a dental cavitation.
Also, the fact that two major dental conditions sound similar can be confusing: dental cavitation and dental cavity.
A dental cavitation is a term that is used to describe an area of damage in the jawbone. The dictionary defines a “cavitation” as an empty space formed within a solid object or body.
“Cavitation” is not a medical term, although it is used by dentists and other healthcare professionals.
A dental cavitation is an area of infection, inflammation, or necrosis within the jawbone.
If not treated correctly, it will fester, and toxic elements could spread to other areas of the body.
On the other hand, a dental cavity (known by dentist as “dental caries”) is an area of break down in the structure of a tooth caused by acids produced by specific bacteria. It also is known as tooth decay where infection is eating into the enamel, dentin, or the root structure of a tooth.
If you truly have a “dental cavitation” in your jawbone, this can be a serious problem. Proper treatment could lead to an expensive surgical procedure to “repair” it.
But some patients are misdiagnosed with a dental cavitation. The dentist might see an area of “demineralization” in the jawbone that is not pathologic. If this demineralized area is treated as a true dental cavitation, it could lead to unnecessary surgery and significant expense.
Since “cavitation” is not a recognized dental term or condition, there is much confusion revolving around its diagnosis and treatment. In my opinion, misdiagnosis is an error that may be understandable. Yet, overdiagnosis of dental cavitations is fraud in my opinion and could lead to unnecessary treatment, high cost, and pain.
Let’s take a deeper dive into this area. I’ll describe some facts about “dental cavitations”.
Medical Terminology
The accepted medical term for a dental cavitation is “cavitational osteonecrosis” or “ischemic osteonecrosis”.
Some professionals that are not in the “know” will classify this jawbone disease as a sham. However, it is definitely real and definitely could cause isolated as well as systemic destruction.
This type of lesion may be a hollow space surrounded by dead bone, or it may be filled with various inflammatory, toxic, or infectious elements.
One of the problems with a dental cavitation is that most of these lesions are painless. However, if there is pain, they are usually called “Neuralgia-Inducing Cavitational Osteonecrosis” (NICO).
As I mentioned, these bone lesions must be diagnosed correctly. “Cavitation lesions” that are only areas of demineralization with no pathology rarely need to be treated. A good dentist will not convince you to treat this kind of demineralization if s/he knows there is no pathology.
Diagnosis of Cavitations
As I have suggested, dental cavitations may be difficult to diagnose. It is difficult or impossible to see these lesions when viewing a regular single dental periapical x-ray or a panoramic dental x-ray.
A panoramic x-ray shows the upper and lower jaw, the teeth, and the sinus spaces. (See Figure 1, which shows a 2-dimensional periapical dental x-ray with a difficult-to-see cavitation within the red circle.)
Figure 1 Cavitational Osteonecrosis in lower jaw (within red circle)
Most dental x-rays are 2-dimensional pictures of specific areas of your jaw and teeth. However, the jaw and teeth are three-dimensional structures. So, a 2-dimensional x-ray flattens the 3-dimensional object into a picture that shows minimal detail. More detail is required to identify potential areas of cavitational osteonecrosis.
To see this lesion in detail, the dentist should have the patient receive a 3-dimensional picture of the jaw. This can be done with a Cone Beam CT Scan (CBCT) of the potential lesion.
But before any x-ray is taken, the dentist must review the dental and medical history of the patient to determine the possible causes of the bone lesion before making the diagnosis.
Causes of Dental Cavitations
Dental cavitations in the jawbone could be the result of a variety of insults to the bone. Here are 5 possible causes:
Some type of trauma to the bone causing a blockage of blood flow could cause bone cells to die, thereby creating a hollow space within the bone.
Following an improperly performed procedure to extract a tooth could leave infection or debris in the bone socket, which could result in a dry socket and eventually a dental cavitation.
Overheating the bone during a dental procedure using cutting drills could cause the bone to die, leading to cavitational osteonecrosis.
A tooth abscess penetrating into the bone and becoming isolated within the bone could form a bone lesion.
Continuing infection at the base of a tooth root, which has a failing root canal, could be the culprit.
Linking Dental Cavitations to Chronic Disease
When harmful bacteria and toxic substances accumulate in the hollow space in a bone lesion, the immune system is activated via the mouth-body connection. Various biologically active chemicals are produced which can travel along nerve sheaths, through bone spaces, within lymph, and into the systemic bloodstream.
These biological chemicals and toxic substances can affect other cells and organs in the body — creating chronic systemic inflammation, chronic diseases, and chronic pain.
It is important to realize that pain and chronic disease could occur a distance from the jawbone lesion. This is another reason why it may be difficult to understand that the dental lesion caused an area of pain and chronic disease somewhere else in the body.
Published Research
Researchers have uncovered some facts you need to know. Most published articles use the terms of “cavitational osteonecrosis” and “NICO”:
In this 2010 peer-reviewed paper, the authors discussed 22 patients with NICO in the jawbone. They described the progression of the disease and treatment for this bone lesion.
In a paper published in 2012 in the National Journal of Maxillofacial Surgery, the clinicians described their diagnosis and treatment for a patient, whom they diagnosed with an isolated lesion of NICO in the lower jawbone.
The authors of this 2015 study evaluated 15 patients with unusual facial pain and trigeminal neuralgia. Their research suggested that the jawbone lesions, described as “cavitations” and “NICO”, might be the cause of the jaw pain as a result of the inflammatory cytokines that these lesions produced.
In this 2017 article published in Implant Dentistry, the surgeons covered their treatment for 34 patients who experienced dental cavitations in the area where dental implants were to be inserted. The dentists explained how these lesions were treated prior to placing the dental implants.
These articles are important because they discussed human case studies exhibiting these jawbone lesions and their potential threat to patient’s health. Most of the general public and many dental practitioners are unfamiliar with these lesions or have previously been misinformed.
Treatment of Dental Cavitations
Treatment of cavitational osteonecrosis consists of entering the lesion and cleaning it out thoroughly. The fluid and tissues removed from the lesion should be sent to pathology to be identified.
The dental surgeon may use a laser to decontaminate and debride the lesion. S/he may place a biologically active material into the bone space to enhance its healing.
In addition to surgically treating the bone lesion, it is important to support the patient’s immune system. There should be an integrative approach including a non-inflammatory nutrient-dense diet and various spore-based probiotics to support a diverse and abundant garden of healthy microbes in the gut.
Sometimes, it will be necessary to determine if any toxic substances already exist in the body like heavy metals, which may need to be reduced or eliminated.
My Final Thoughts
While the medical and dental professions are not completely convinced cavitational osteonecrosis exists, the few published research papers reveal it is true.
These lesions go undetected because they usually do not develop immediately after the bone insult.
And most importantly, various diseases and pain can manifest in areas of the body other than the jawbone. The medical literature needs more documented cases from researchers to wake up the healthcare professionals who are the ones to diagnose and treat this problem.
4 References
Glueck, C. J., McMahon, R. E., Bouquot, J. E., Khan, N. A., & Wang, P. (2010). T− 786C polymorphism of the endothelial nitric oxide synthase gene and neuralgia-inducing cavitational osteonecrosis of the jaws. Oral Surgery, Oral Medicine, Oral Pathology, Oral Radiology, and Endodontology, 109(4), 548-553. Abstract: https://www.ncbi.nlm.nih.gov/pubmed/20185342
Gandhi, Y. R., Pal, U. S., & Singh, N. (2012). Neuralgia-inducing cavitational osteonecrosis in a patient seeking dental implants. National journal of maxillofacial surgery, 3(1), 84. Full text: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3513818/
Lechner, J., & von Baehr, V. (2015). Peripheral neuropathic facial/trigeminal pain and RANTES/CCL5 in jawbone cavitation. Evidence-Based Complementary and Alternative Medicine, 2015. Full text: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4481083/
Chen, Y. W., Simancas-Pallares, M., Marincola, M., & Chuang, S. K. (2017). Grafting and Dental Implantation in Patients With Jawbone Cavitation: Case Series and 3-Year Follow-Up. Implant dentistry, 26(1), 158-164. Abstract: https://www.ncbi.nlm.nih.gov/pubmed/28098576
The post Dental Cavitations: Definition, Facts, & Myths appeared first on Ask the Dentist.
Dental Cavitations: Definition, Facts, & Myths published first on https://wittooth.tumblr.com/
0 notes