Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

Inferno Gate! Hell Fire! SALAMANDER BREAK! DIGICODE... SCAN! #DigimonFrontier #Digimon

16,193 Aufrufe • vor 1 Monat •via X (Twitter)

0 Kommentare

Keine Kommentare verfügbar

Kommentare vom Original-Post werden hier angezeigt

Ähnliche Videos

Myron Breaks Down The Full History Behind Israel’s Conflict With Iran! Myron Gaines ⏲️ TIME STAMPS ⏲️ 00:00 : Intro | "You'll know more than 99% of people on the Middle East" 00:31 : The 1996 Clean Break Memo | Written for Netanyahu by American Zionists 01:43 : US citizens writing foreign policy for Israel | "What the hell?" 02:51 : Egypt & Jordan peace deals | Camp David Accords & the map explained 04:06 : Year 2000 PNAC paper | "Rebuilding America's Defenses" & the neocons 04:48 : "A new Pearl Harbor" | How 9/11 was used to justify war on the Middle East 06:17 : Iraq War | Why Saddam Hussein was the #1 target & his history with Iran 07:41 : Saddam invades Kuwait | Desert Storm, Iraq War I & why we jumped in 09:00 : Osama bin Laden's real backstory | Billionaire family, CIA backing & radicalization 11:24 : Gaddafi gave up his nukes and they killed him anyway | Obama & Hillary's role 13:00 : Iran is the last country left on the Clean Break list | Everyone else is gone 13:36 : How Iran's government works | Khamenei, the IRGC & why the president has no real power 15:19 : The Axis of Resistance explained | Soleimani's genius & Iran's ring of fire around Israel 16:54 : Iran's 4 weapons | Ballistic missiles, drones, proxies & nuclear threshold program 19:27 : The JCPOA explained | Trump pulls out in 2018, Iran starts enriching higher 21:44 : October 7th | Why Hamas attacked & what the mainstream narrative gets wrong 22:55 : The 4 real reasons Hamas attacked | Abraham Accords, red heifers, occupation & hostages 25:44 : What actually happened on Oct 7th | The Hannibal Directive & the real numbers 27:55 : Hezbollah's role | Shooting rockets to divert IDF resources from Gaza 29:06 : Israel invades Lebanon | Killing Nasrallah, the pager attack & the fall of Assad 31:01 : The 12-day Israel–Iran war | How the current conflict began 32:37 : Before the war: Iran said no to all 3 US demands | Why the war was inevitable 34:22 : Where we are now | Ceasefire, the energy crisis & Trump's Venezuela miscalculation 35:27 : Recap | 30 years of history from 1996 to 2026 in one lesson

Myron Gaines Clips

28,760 Aufrufe • vor 2 Monaten

This is a typical example of “while men slept”. Make we sha no dey do watin go cary us go hell fire ooo 😒. God abeg!!! First of all, Imisi is not an “uneducated Yoruba woman”, as you said. She's proud of who she is, who God has made her, and most importantly where she came from (Ebute Meta), she never hides it for once, she carry am for head like gala. Let's get it straight abeg! You can excuse everything with fancy words, but let’s not twist facts to suit our narrative, remember, everyone is watching: Faith dragged a pot, insulted Imisi as “uneducated Yoruba alubosa (onions)” reduced her to his maid at home. At least, if he doesn't respect Imisi, he should respect the person (his maid at home) who cares for him at home. I have attached the video of the part that was deliberately left out, you can watch it in case you missed it. That wasn’t just a slip, it was aimed to degrade her. Imisi has always been the bigger person, laughing off insults that would break others. If Imisi does not appear as the most glamorous housemate, we believe that does not make her less of a woman, and the narrative of “in real life she can never near me” and I'm happy to tell him that in real life their path will never cross too if not for the show✌🏾 Imisi is more than their taunts, she is talented, strong, and hearty. Come what may, she will continue to stand up for herself in the face of it all with her TEN TOES DOWN!!! #ImisiAyanwale #BBNaijaS10 #BBNaija cc: Big Brother Naija MultiChoice Group

IMISIOLUWA🧡

477,897 Aufrufe • vor 11 Monaten

🔥✝️ NEW SONG: “Viva Cristo Rey” — The Western Ballad of José Sánchez del Río Dedicated to my second-born child — my first-born son — who chose José Sánchez del Río as his patron saint. Some saints lived long lives. Some wrote books. Some founded orders. And some — like José Sánchez del Río — lived only fourteen years, yet carried a courage that could set a nation on fire. This song tells his story the way it deserves to be told: as a Western-style martyr’s ballad, a tale of a boy who refused to betray Christ, who walked through dust and blood with unshakable resolve, and whose final words became a battle cry echoing through generations: “¡Viva Cristo Rey!” During the Cristero War, when the Mexican government outlawed the Church and tried to silence the faith, José stepped forward and said: “I am His, whatever comes my way.” He gave up his horse so another could escape. He endured imprisonment in a desecrated church. He suffered torture that would break most grown men. He encouraged others to stay faithful even while he was being led to death. At the cemetery gate, they told him to deny Christ… but instead, he lifted his eyes toward Heaven and shouted: “¡Viva Cristo Rey!” This track is dedicated to my son, who chose this heroic young martyr as his patron saint. May he grow in the same courage, conviction, and love for Christ the King. 🎵 “Viva Cristo Rey” — a Western ballad for those learning what real courage looks like. 🎧 LISTEN HERE: Spotify: Apple Music: Amazon: 🔗 FOLLOW Peter's Barque: Instagram • X • TikTok • Facebook ☕ Support the mission: 🏷️ HASHTAGS: #PetersBarque #VivaCristoRey #JoseSanchezDelRio #CristeroWar #CatholicMusic #CatholicArt #SaintStories #YoungSaints #CatholicFaith #ChristianMusic #CatholicReels #CatholicTok #PatronSaints #HeroesOfTheFaith #DesertSaintsAndDustyRoads #GunslingerSaints #NewMusic #WesternBallad

Peter's Barque

11,158 Aufrufe • vor 7 Monaten

I am no longer a human being, nor even anything. I have become a walking void. The days repeat themselves as punishment for a crime I don't remember committing, and the night is longer than life, and memory is full of unspeakable things. Even the tears have left my eyes, and my heart no longer has room for another collapse. I am so tired of being broken that patience has become meaningless. Dostoyevsky says that the most difficult battle a person can fight is to be a broken person inside and yet try to appear strong to the world.. But I'm not trying anymore.. The mask of strength I pretend to have has fallen and only pain remains.. My dear friends and loved ones... With deep sadness and sorrow, I inform you that the army killed Anas Al-Sharif, Mohammed Qureiqa, and Al Jazeera cameramen in front of the gate of Al-Shifa Hospital... They are trying to silence us... They don't want the truth to be revealed... My colleagues sustained minor injuries when our office was damaged. The photo below shows the damage to our office at Al-Shifa Hospital... I could have been the one who got hurt if the assassination had happened the night before... My friends and loved ones, tonight was absolute hell in Gaza. Tanks fired hundreds of shells, some close, some far away. They also launched a violent fire belt... For those who don't know what a fire belt is, I invite you to watch the video below. Warplanes drop a large number of missiles, one after the other, on a specific area. Note that the sound of the explosions in reality is much more terrifying than what the cameras show. The explosions also cause an earthquake throughout Gaza. Can anyone endure this terrifying minute? That minute doesn't count as 60 seconds.. That minute is counted by the number of heartbeats .. My dear friends and loved ones... When the sun rises, the first thing I do is check on the cats who have been through a difficult time. Everyone knows they are sensitive creatures and are frightened by the sound of explosions. I fed them and provided them with clean water with the help of my son Ayman. Today is Ayman's birthday. He is now 14 years old. I wish circumstances would allow us to celebrate. Maybe next year we can celebrate and have a good time in peace... but on one condition: if we stay alive.. It seems that the army's plans to occupy Gaza City have begun to be implemented... and there is a possibility that I will leave my home and leave everything behind. I still buy cat food and food for my family on a daily basis due to the high prices, despite the influx of some food supplies... I appreciate your support very much and I am very grateful to you... I am grateful to everyone who has stood by me unconditionally and without reason. I am very grateful to everyone who supports me morally and financially. I am grateful to everyone who loves us sincerely and unconditionally... Your prayers and supplications are with us in these difficult times.

help cats

42,846 Aufrufe • vor 11 Monaten

A Tale of Two Palestinian Cities. Some were outraged when I stated earlier that we, as Gulf Arabs, no longer wish to destroy our nations and futures for a cause that, for 70 years, has brought us nothing but terrorism, accusations, betrayal, and alliances with our enemies. The moment we say: “We want to live,” we are branded Zionists. By who? By people sitting comfortably in Malaysia, Pakistan, Indonesia, the West - sipping lattes and tweeting from safe homes - demanding we fight and die for their version of solidarity. So let me show you two realities. The first video is from Gaza, April 2025 - 18 months into a war that never needed to happen. There was no prior Israeli provocation, no bombing campaign, no invasion leading up to October 7. Things were improving. Israel was issuing 22,000 daily work permits for Gazans, and negotiations were underway - with Saudi mediation - for improving Gaza’s conditions in exchange for moderation. Then Hamas, acting on behalf of Iran, blew it all up. October 7 wasn’t resistance. It was sabotage. A completely unnecessary massacre - not for Palestinian liberation, but to derail Saudi-Israeli normalization and regional peace. It was Tehran’s agenda, paid in Palestinian blood. The second video is from the Palestinian capital, Ramallah, also April 2025 - the ICON Mall grand opening. Music. Dancing. Luxury stores. BMWs pulling in. Palestinians celebrating as if Gaza were on another continent. No outrage. No mourning. Just luxury shopping and selfies. If they, the fellow Palestinians, aren’t standing in the rubble, why are we told we must? Let’s also get this straight: Gaza has been “free” since 2005. The siege? It started in 2007, after Hamas took power by killing 300 fellow Palestinians (PA Police) and throwing them off rooftops. Since then, Israel still gave out work permits. Egypt, on the other hand, kept the Rafah border completely sealed. Even during the war’s worst days, Egypt wouldn’t open it - barely for aid, not for refugees. Not one work permit. Nothing. If Gaza was truly a prison, why didn’t Hamas break out through Egypt? Why always toward Israel? Because Egypt would shoot - not negotiate. But you won’t see the usual online “activists” blaming Cairo. No. It’s always easier to guilt-trip the Gulf Countries. So no - we will not join your death cult. We will not die for the cause while Ramallah dances and Cairo locks the gate. And to all the comfortable, self-righteous voices screaming “solidarity”: shut the fuck up and go die in Gaza yourselves if you care that much. Don’t lecture us from safety. Don’t demand sacrifice from others while you live off hashtags. If the people of Ramallah aren’t bothered - if their own fellow Palestinians can dance on the same day others die - why the hell should we? Spare us the pious performative grief. We’ve seen through it. The cause was hijacked long ago by ye Ayatollahs of Tehran - and we are done dying for other people’s delusions.

Aimen Dean

1,342,425 Aufrufe • vor 1 Jahr

🔊CHURCH: WE ARE STANDING IN THE GAP TODAY! LET’S PRAY FOR OUR FAMILY, FRIENDS, AND ALL WHO ARE LOST WHILE THE DOOR OF GRACE IS STILL OPEN! Lord,🕊️ We come before You in the name of Jesus—not in our own strength, but covered by the blood of the Lamb—and in holy urgency we declare that You are the God who seeks and saves the lost, not willing that any should perish, but that all should come to repentance and eternal life with You! 🔥We come boldly before Your throne to lift every soul represented by this fire. This is not a metaphor, this is not our imagination, but the eternal end of every person who dies without Jesus! 👉🏼This is where rebellion leads. This is where deception ends. This is where excuses are stripped away! So many today are walking toward this fire—unaware or unwilling to turn! 🔁Father, we stand in the gap now—while there is still breath, while mercy is still available, while repentance is still possible! 👉🏼We present before You our mothers and fathers, sisters and brothers, nieces and nephews, cousins, aunts and uncles, friends, neighbors, and all who are deceived; all who are hardened; all who are wounded; all who are bound by sin, fear, pride, trauma, addictions, false beliefs, or false peace!!! ⚔️In the authority of Jesus Christ, we come against every work of the enemy assigned against their souls! We come against and bind every spirit of deception, confusion, blindness, rebellion, pride, unbelief, false doctrine, false religion, and false peace! 🪢We bind every lie that exalts itself against the knowledge of God—every false identity and every argument raised against the truth! 💣We tear down every idol exalted above You: love of self, love of comfort, love of pleasure, love of money, love of the world, and every identity not rooted in Christ alone! We tear down every stronghold built in their minds: 👉🏼strongholds of trauma, 👉🏼strongholds of fear and anxiety, 👉🏼strongholds of shame, guilt, and condemnation, 👉🏼strongholds of bitterness, offense, resentment, and unforgiveness, 👉🏼strongholds of rebellion and stubbornness, 👉🏼strongholds of self-sufficiency and control, 👉🏼strongholds of hopelessness, despair, and fatalism. 💣We tear down every false belief formed through pain, loss, abuse, disappointment, or deception. 💥We break every agreement—knowingly or unknowingly—with lies spoken over them, lies they believed, and lies passed down generationally!! ❌We cancel every repeating cycle of bondage, addiction, immorality, unbelief, broken relationships, and destruction! 💣In Jesus’ name, we break the power of every fear—fear of surrender, fear of truth, fear of obedience, fear of rejection, fear of loss, and fear of death! ⚔️We break every bond of addiction, lust, perversion, escapism, and hidden sin!!! ❌We cancel every word spoken over them that contradicts Your truth. ❌We cancel every generational pattern that keeps repeating destruction. ❌We cancel every demonic assignment sent to delay, distract, or destroy their destiny in Christ. 💥We destroy every resistance to the Holy Spirit—every quenched conviction, delayed obedience, and hardened heart! 🛡️We declare that the weapons of our warfare are not carnal, but mighty through God for the pulling down of strongholds!!!! Father, we ask that You would remove the veil from their eyes. 👉🏼Let scales fall. 👉🏼Let truth pierce through every layer of deception. 👉🏼Let hearts be softened where they have grown calloused. 🕊️Holy Spirit, we ask You to pursue them relentlessly, yet gently! ✅Meet them in dreams and in the moments of silence. Meet them in the middle of their pain and in the questions they cannot escape! ✅Cause divine interruptions! Send sisters and brothers across their path who speak truth with love! ✅Remove influences that keep them bound! Expose what is false and collapse what is built on sand! ✅Lord Jesus, reveal Yourself to them as You truly are—not religion, not control, not condemnation, but —The Way, The Truth and The Life!! ✅Let them feel the weight of eternity—not terror, but urgency. Let them hunger for truth and become restless in sin and unable to find peace apart from You! 📖Your Word is clear: Eternity is real, hell is real! Salvation is NOW—before the Tribulation begins! FATHER, SAVE THEM!!! 🔥Pull them back from the edge! Rescue them from a destiny they were never created for! Let this be the moment where fear gives way to repentance, and repentance gives way to salvation!! 👉🏼We declare that today is the day of salvation! 👉🏼We declare that mercy still stands! 👉🏼We declare that the cross is ENOUGH! 👉🏼We stand on Your promises! That You draw all people to Yourself, that Your arm is not too short to save, and that You leave the ninety-nine to go after the one!! Even when we do not see it, even when nothing seems to change, we trust that You are working behind the scenes! 🤲🏼We place our loved ones fully into Your hands, refusing fear, despair, and hopelessness! 👆🏼We declare that salvation belongs to You! 👆🏼We declare that chains will break! 👆🏼We declare that prodigals will return! 👆🏼We declare that what the enemy meant for evil, You will turn for good! 🩸Cover them with the blood of Jesus. Protect them from deception and from taking the MARK OF THE BEAST! Preserve them until the moment You bring them home! 💙And Father, guard our hearts as we pray. Teach us to intercede without carrying burdens You never asked us to carry, teach us when to pray, when to wait, and when to trust You in silence. 🙌🏼We thank You in advance for what You are doing—even now. We give You all the glory!!! We pray in the mighty Name of Jesus Christ! Amen. MARANATHA! COME, LORD JESUS, COME!!!🤍

Maranatha777

40,228 Aufrufe • vor 7 Monaten

BLAZE OF FURY I slam down on the little shrimp with the full, earth-shaking tonnage of my colossal bulk. His puny frame flattens like a stomped roach beneath me, and a vicious snap cuts the air as his lungs cough up a sad, broken yelp. It’s fuckin’ wild how his skinny, fragile build sets my blood ablaze—like a brittle twig trembling beneath my hulking, boulder-like chest, begging to be crushed. My pecs squash him flat, mashing his mug into the mat with skull-shattering might. I smack my cock against the twin curves of his ass and grind it awake along their sculpted swell. My hips pound his dainty backside, even as he squirms, tensing and trying to buck me off. His pathetic fuckin’ resistance melts like butter under my sheer dominance—nothing but a sorry little twitch-fest. My junk roars to life faster than a souped-up dragster. I’m a goddamn bulldozer rolling over this fuckin’ worthless speck. I jerk up a couple inches and smash back down hard. A nasty crack rips from his guts under my brutal hammering, but all he’s got left is a faint gasp as the air ditches him. I drag myself slow, pulverizing him into the mat with every fiber of my strength, and growl in his ear: “Wrestle, runt!” I hoist my bulk up a hair, and the wimp starts thrashing under me. He knows I get off on his flailing fight—I crave those desperate, doomed swings. His mousy muscles got no shot at budging me, but even half-dead, he’s hell-bent on lighting my fuse. His tiny bum rubs my dick like mad, sparking like a match on rough timber. My member’s pulsing, primed to pay him back. Wielding my titanic bulk like a sledgehammer, I unleash a savage pounding on him. My gut slams him down with crushing weight. Every hit’s meaner than the last, sinking him deeper into the mat. His wriggling quits cold, his body caving to my relentless beatdown. The hardest blows grind his bones to dust, but he’s silent now—just ragged breaths forced out by my strikes. Conscious? Who gives a shit. After a dozen ruthless smacks, I flop onto him. His frail frame is scorching from the thrashing I dished out. My gargantuan mass locks him in place—no squirming, no breathing, nada. He’s mine to break, and my sheer heft could snuff him out for good. But I ain’t done—my cock’s howling for more. I peel off him. The shrimp wheezes, clawing for air, fumbling his wrecked shell. I give him a sec to pull it together—the grand finale’s coming. He knows a stiff corpse won’t rev my engine. I hiss in his ear: “Flip over!” Battered to hell, he still spins onto his back like a whipped little shit. He wouldn’t dream of crossing me—fear and heat tangle in his eyes as my monstrous shadow looms. I reward his obedience by slamming down full-force. His chest plate cracks, ribs splinter. My meat smacks his steel-hard cock with a loud thwack. The twisted little freak loves it. I’ve flattened him helpless again, and my shaft drinks in his agony. I grind it against his dick, mashing his lean torso with my thick, beefy bulk. His ribcage buckles as I lean in hard. His feebleness and frailty stoke my sadistic blaze. “Wrestle!” I snarl, easing up an inch to let him fan my flames. He tries to fight back—he knows every twitch stokes my fire. He’s desperate to keep me happy; he’s seen what happens to uppity punks who don’t. He don’t want that smoke. His beat-up, aching husk battles to please me. He’s so goddamn insignificant—my junk’s a live grenade. The big finish is close. I start ramming him for real with my cock, fuckin’ banging him into oblivion. My loins grind into his core with full throttle. Our tools collide, sizzling like live wires. My titan’s bulk pounds and smashes the runt under my brutal girth, raging harder each blow. His flopping fades fast, my crushing hits paralyzing him. He’s got no choice but to bow to my beastly fury. His shell cracks under my onslaught—too flimsy to take it. Bones groan and give, sinking with my blows. He’s gotta be out cold, but his stiffy’s trembling, ready to blow. I dive at him with unhinged rage, ready to tear him apart. His delicate rig shatters for good, bones snapping like brittle straw. My cock erupts like a damn volcano, and his tags along. Our gear’s drenched, dripping with heat. I unload again with feral power, roaring deep from my gut, and collapse, winded, on his smashed-up wreck. Our juices meld through the fabric like molten lava rivers. I sprawl over him, catching my breath. He’s pitifully small and breakable, the little shit. The shrimp’s out, his pretty face calm—miles from the fuckin’ hell he just ate. He nailed his role and served me right. I growl low, a sated beast’s rumble: “Good boy, you little fuck.”

No Limits Wrestling 🔞 brutal gay fetish fiction

11,051 Aufrufe • vor 1 Jahr

Fernando Tatis Jr is hitting .242 with a 3.5° average launch angle and a career-low 20% pull rate. Everyone has ideas and analysis on how to fix Fernando Tatis Jr’s swing. It’s pretty awful and I can’t take anymore of this, I have to say something because I haven’t seen a single person give the right answer. I’ve seen multiple people talk about timing mechanisms like toe tap, stride, and leg lift in his swing mechanics that have absolutely nothing to do with his problem. That reverting to past timing mechanisms would somehow help him. THEY ARE ALL WRONG Because they’re all looking in the wrong place. This isn’t a stride problem or timing problem. It’s a tilt problem. Stride, leg lift, and toe tap are timing mechanisms. They control WHEN the hips fire not HOW the bat moves through the zone. A hitter with a Sosa leg kick and a no-stride Ichiro stance can produce identical launch angles.Timing has no lever that touches the bat at contact. What actually sets launch angle is attack angle or the vertical direction the bat is traveling at the moment it meets the ball. Swing up through the zone = ball lifts Swing flat = grounders Swing down = choppers Attack angle is the only mechanical input that matters for elevation and attack angle isn’t random. It’s a direct output of shoulder tilt. When the trail shoulder drops below the lead shoulder at contact, the entire swing axis tilts. The bat is now forced to travel upward through the zone. More tilt > steeper attack angle > higher launch angle. Period. Tatis’s attack angle tells the entire story: 2023: +12° attack angle, +1° pull-side direction/25 HRs 2024 : +10° attack angle. -2° oppo direction 21HRs in 104 games 2025: +8° attack angle, 0° direction/25 HRs, healthy 2026: +5° attack angle, −5° oppo direction His swing has flattened AND drifted away from his pull side. Both are tilt collapse. That −5° oppo attack direction is the giveaway. When you lose tilt, your bat doesn’t just flatten it also gets steered toward the opposite field, because a level swing naturally pushes the barrel away from your pull side. He’s not late. He’s not under-striding. His axis collapsed Over the last few years and it’s worse than ever this year. This explains the 20% pull air rate too. Pulling the ball in the air requires positive attack angle AND a contact point out front. (Ramon Laureanos 2025 attack Angle was +14) If you tinker with timing on a flat swing, an earlier contact point just produces a pull-side grounder. The direction changes. The launch angle does not. Let me break it down for you: Stride > Weight Shift > Hip Rotation >TILT > ATTACK ANGLE > BAT PATH > Contact > Launch Angle Stride is four steps upstream. Tilt is the gate. Attack angle is the output that actually moves the ball. So now we know what’s wrong, how do we fix him? Souza and the Padres staff need to focus on the following; 1.Restore 8–12° rear-high shoulder tilt 2.Get attack angle back to +10° to +12° with neutral or +1° pull direction 3.THEN evaluate timing tweaks 4. If someone is telling him to flatten out his swing or to let the ball travel more PLEASE STOP DOING THAT. That doesn’t work for him You cannot time your way to elevation. Fix the tilt. Attack angle returns. Pull air follows. Please watch the video to see how his swing has gotten worse and flatter. We only have bat path data starting in 2023

Mission Valley Mafia

159,502 Aufrufe • vor 3 Monaten

They went as Peacekeepers. They returned as Warriors. How a trapped unit of the Indian Army & Air Force executed a textbook tri-service blitzkrieg 10,000 km from home. This is Operation Khukri: The siege that broke the rebels. 🚁⚔️ In the sweltering jungles of Sierra Leone in 2000, the world witnessed a masterclass in grit, honor, and firepower. This wasn't just a rescue mission; it was the Indian Army shattering the myth of an invincible enemy. The story of how 223 Indian soldiers chose death over surrender- 1. THE SIEGE -->It was meant to be a UN peacekeeping mission. But the 5/8 Gorkha Rifles found themselves surrounded by the brutal Revolutionary United Front (RUF) rebels, a militia known for chopping off civilian limbs. -->For 75 days, 223 Indian soldiers were held hostage in Kailahun. Cut off from supplies. Surrounded by thousands of drug-fueled rebels. 2. THE ULTIMATUM The RUF demanded that the Indians surrender their weapons to walk free. Major Rajpal Punia (the Company Commander) delivered a response that should be etched in history: "We are Indians. We are Gorkhas. We do not surrender our weapons. We will die fighting, but we will not give you our rifles." The soldiers preserved their honor, surviving on half-rations, preparing for the inevitable fight. 3. THE PLAN: OPERATION KHUKRI Diplomacy failed. The Indian government decided: If they won't let us out, we will break out. It was a tri-service, multinational blitzkrieg. The Hammer: Indian Para (SF) dropped behind enemy lines. The Shield: 18 Grenadiers & Mechanised Infantry pushing through the jungle. The Sky: Indian Air Force Mi-35 Attack Helicopters and Mi-8s flying 10,000 km from home. 4. THE BREAKOUT (July 15, 2000) At dawn, the jungle exploded. While the Para SF secured the flanks, Major Punia’s besieged Gorkhas did the unthinkable; they didn't just wait to be rescued. They launched a fighting breakout. Storming out of their base, they engaged the rebels head-on. The "peacekeepers" unleashed hell, dismantling the rebel blockade mile by mile. 5. THE IAF THUNDER The weather was atrocious, but the IAF pilots refused to stay grounded. Mi-35 gunships provided devastating close air support, raining fire on RUF positions, clearing the path for the ground columns. It was a rare display of Indian air power on African soil. 6. THE VICTORY -->In 48 hours, the siege was broken. -->Indian Hostages Rescued: 223 (100%) -->RUF Rebels Neutralized: 500+ (estimates vary, but their command structure was shattered) -->Indian Casualties: 1 Braveheart, Havildar Krishan Kumar. 7. THE LEGACY Operation Khukri wasn't just a win; it restored the UN's credibility in West Africa. The RUF, previously feared as "invincible ghosts of the jungle," was crushed by the discipline and ferocity of the Indian Army. You can surround an Indian soldier. You can cut off his food. But you never ask him to surrender his weapon. Jai Hind. 🇮🇳 Col AJ🇮🇳 Colonel Mayank Chaubey Major Sammer Pal Toorr (Infantry Combat Veteran) Aadi Achint 🇮🇳 TheGlobalDecoder #IndianArmy #OperationKhukri #GorkhaRifles #SierraLeone #IndianAirForce #ParaSF #UN

The Sacred Scroll

80,451 Aufrufe • vor 6 Monaten

🚨🇺🇸 EXCLUSIVE w/ REP. JIM JORDAN: “FREE SPEECH IS UNDER ATTACK” If you don’t believe Congressman Jim Jordan, Chairman of the House Judiciary Committee, that our freedom is in serious jeopardy, then you’re living under a rock. Forget the censorship of Biden’s laptop, Covid, the Twitter Files, or even the banning of the U.S President Here’s some recent examples in the EU: * Comedian Graham Linehan was arrested this week for making a joke about a trans-man on X. * Bernadette Spofforth was arrested for falsely identified the Southport stabbing suspect as "Ali Al-Shakati," with the comment, “If this is true, then all hell is about to break loose”, then deleting her tweet an hour later. * Lucy Connolly was jailed for 3 years after tweeting "Mass deportation now, set fire to all the f**** hotels full of the bastards for all I care... If that makes me racist, so be it,” and deleting after 3.5 hours * And craziest of all, Patryk Jaki, a Memeber of the European Parliament, is facing jail for LIKING a video on X showing migrant violence. Just liking! Rep Jim Jordan is leading a U.S delegation focused on fighting against this authoritarian censorship. In this rare long form interview, Rep Jordan not only talks about free speech, but about the Epstein files, the MAGA split between ‘Israel First’ and ‘America First’, the raid on John Bolton, America’s ballooning debt, and the crackdown on crime by the National Guard. 01:45 – “In the UK last year: 12,183 arrests for offensive posts online.” 05:11 – A comedian was arrested for posting a photo of a protest with the caption: “A photo you can smell.” 07:06 – “Everything they told us about COVID was false – and they censored anyone who said otherwise.” 07:58 – Biden WH to Twitter: “Take down this tweet from RFK Jr. ASAP.” 09:46 – Meta tells Congress: “We were pressured to censor. We did. We’re sorry.” 11:18 – EU threatens Elon over airing an interview with Trump. 12:35 – “I will not hesitate to make full use of our toolbox” – EU letter to Musk. 14:46 – The law didn’t change. The threats just got quieter. 17:21 – Jordan exposes GARM, a global ad cartel blacklisting conservative platforms. 18:38 – Biden’s “Disinformation Governance Board” = a real-life Ministry of Truth. 19:45 – “The most important right is the right to talk. If we lose that, we lose everything.” 21:45 – On Israel: “We must be unwavering. It’s a miracle state. There’s a special bond.” 25:28 – FBI Director and AG to testify on Epstein & Schiff leaks in coming weeks. 28:52 – “We can’t indict, but we can expose. And we are.” 31:41 – “The only thing we get wrong at the start? It’s always worse than we thought.” 36:46 – What keeps Jordan up at night: “Losing the First Amendment.” 39:15 – On U.S. debt: “You need growth. You need to stay the reserve currency. And you need to stop the spending.” 45:50 – Jordan says Comey, Schiff, Clapper, and Bolton all mishandled classified info – while accusing Trump of doing the same. 49:39 – Crime in D.C.? “An 80% drop in carjackings after Trump sent in the Guard.” 52:36 – On China: “I don’t think totalitarianism beats freedom. Not in the long run.”

Mario Nawfal

2,126,762 Aufrufe • vor 11 Monaten

#Syria: #DuraEuropos offers a spectacular and unique testimony to the collision between 2 Empires in the mid-3rd century. Dura's final moments 👇 The site is located in the N. Abukemal countryside and overlooks the #Euphrates Valley. The Romans had chosen the town to establish their Eastern military HQ as a forward position against the rival Persian Empire. The Roman commander's Palace offered a commanding, breathtaking view over the Euphrates Valley and the lands beyond. The Romans had prior Intelligence the Persians planned to take the town and began work to fortify it. Both sides were experts in urban siege. Dura was already impregnable on 3 sides: 2 overlooked a wadi and the 3rd was built atop a cliff over 40 m high. As a result, only the Western side, opening onto a plateau and the desert, was vulnerable to an assault. Thus, the Romans significantly reinforced the Western urban section with: - an outer mudbrick glacis abutting the rampart to withstand Persian artillery - the demolition of the Roman tower-tombs outside the city, to prevent the Persians from using them as watchtowers - the sacrifice of the entire first row of urban buildings (including the famous Synagogue) to erect a massive earth bank granting quick access to the wall walk. Both the outer glacis and the inner earth berm were also designed to support the rampart on both sides and prevent it from collapsing once the Persian mines began. In 256, the Persian army, led by King Shapur I, began to move to take the town. The King, who mobilized a sizable army, laid siege to the town, blocking the Western side. The Persians first tried conventional tactics, launching assaults on the main gate (see 0:02-0:10), but all attempts to enter the town were defeated by the Romans. Then the Persians began digging mines under the rampart, aiming to make it collapse. But, as seen, the Romans had prepared for this scenario: although the foundations of both the rampart and several towers were damaged by the mines, the double (outer and inner) protection built by the Romans held and prevented the rampart from collapsing. While the rampart cracked (see 0:14) and sank several meters, no breach was created. The Persians also used mines to try to directly enter the town, but the Romans detected them and built their own counter-mines, killing the enemy soldiers in underground battles. As an anecdote, the skeleton of a Persian soldier was found during archaeological excavations conducted in the 20th century. He was buried in a collapsed mine, still wearing his chainmail, along with Roman coins he stole while passing through a tomb during the mining operation. Dura also offers the first documented use in History of the principles of chemical warfare: remains of sulfur dioxide and fire accelerants were found - along with bodies - in some mines, believed to have been used to spread toxic fumes and kill soldiers. After all attempts to break into the town failed, the Persians had no other choice but to begin one of the greatest siege works in History (only surpassed by Masada): the construction of a massive assault ramp, aiming to surpass the height of the rampart (8–9 m). It's believed the Persians forced residents of nearby villages who didn't take shelter in Dura to build it, as the Romans heavily targeted them with artillery and arrows, killing scores. But the construction of the ramp went ahead and the Romans used the Persian technique against them: they dug 2 tunnels from inside the town and mined the assault ramp, causing parts of it to collapse. Yet the Persians had time and manpower on their side and the assault ramp was eventually completed, allowing them to storm the town. The last Roman soldiers of the garrison retreated to the citadel (seen at 1:14), where they resisted until the end. The population of Dura was then deported to the Persian Empire and the town was abandoned, which allowed for an exceptional state of preservation, with some of the most stunning discoveries for this period: papyri, clothes and wall paintings - all preserved thanks to the dry climate. The precise timing of Dura's fall isn't known, but it's believed to have taken about one year. The stubborn resistance of the Roman garrison significantly delayed Shapur I from moving further West, which would culminate with the capture of Antioch in 260, at a time when the Roman Empire faced an acute crisis.

Qalaat Al Mudiq

11,244 Aufrufe • vor 5 Monaten

Foi divulgada uma nova lista das "100 Melhores Músicas de Anime Japonês" Mais de 166 profissionais da música de vários países do mundo participaram da votação. 1. Neon Genesis Evangelion – A Cruel Angel's Thesis 2. Naruto: Shippuden – Blue Bird 3. Dragon Ball Z – CHA-LA HEAD-CHA-LA 4. Demon Slayer: Kimetsu no Yaiba – Gurenge 5. Sailor Moon – Moonlight Densetsu 6. Tetsujin 28-go – Tetsujin 28-go 7. Astro Boy – Astro Boy 8. Your Name. – Zenzenzense 9. One Piece – We Are! 10. A Viagem de Chihiro – Always with Me 11. Oshi no Ko – Idol 12. Attack on Titan – Guren no Yumiya 13. Mashle: Magic and Muscles – Bling-Bang-Bang-Born 14. GeGeGe no Kitaro – GeGeGe no Kitaro 15. Q-Taro the Ghost – Obake no Q-taro 16. Chainsaw Man – KICK BACK 17. Nausicaä do Vale do Vento – Kaze no Tani no Nausicaä 18. Ponyo – Gake no Ue no Ponyo 19. Sally, a bruxinha – Mahou Tsukai Sally no Uta 20. Meu Amigo Totoro – Sanpo 21. Lupin the Third – Lupin III Theme 22. Dandadan – Otonoke 23. Perman – Bokura no Perman 24. Anpanman – Anpanman no March 25. Doraemon – Niji 26. Pokémon – Mezase Pokémon Master 27. Himitsu no Akko-chan – Himitsu no Akko-chan 28. Space Battleship Yamato – Uchuu Senkan Yamato 29. My Hero Academia – Peace Sign 30. Demon Slayer: Kimetsu no Yaiba (Entertainment District Arc) – Zankyousanka 31. Sazae-san – Sazae-san Ikka 32. Star of the Giants – Ike Ike Hyuuma 33. Doraemon – Boku Doraemon 34. SPY×FAMILY – Mixed Nuts 35. Castelo no Céu – Kimi o Nosete 36. Rurouni Kenshin – Sobakasu 37. Princesa Mononoke – Mononoke Hime 38. Dragon Ball – Makafushigi Adventure! 39. Mazinger Z – Mazinger Z 40. Moomin – Nee! Moomin 41. Demon Slayer: Kimetsu no Yaiba (Mugen Train) – Homura 42. Jujutsu Kaisen – Where Our Blue Is (Ao no Sumika) 43. Attack No.1 – Attack No.1 44. Cat's Eye – Cat's Eye 45. Doraemon – Himawari no Yakusoku 46. Serviços de Entregas da Kiki – Yasashisa ni Tsutsumareta nara 47. Galaxy Express 999 – Ginga Tetsudou 999 48. Serviços de Entregas da Kiki – Rouge no Dengon 49. Detective Conan – Nazo 50. Fire Force – Inferno 51. BEASTARS – Kaibutsu 52. Manga Nippon Mukashi Banashi – Nippon Mukashi Banashi 53. Mobile Suit Gundam – Tobe! Gundam 54. Detective Conan – Utsukushii Hire 55. Candy Candy – Candy Candy 56. Rosa de Versailles – Bara wa Utsukushiku Chiru 57. Ashita no Joe – Ashita no Joe 58. The End of Evangelion – Tamashii no Rufuran 59. Diários de uma Apotecária– Hana ni Natte 60. Oblivion Battery – Lilac 61. Fist of the North Star – Ai wo Torimodose!! 62. Touch – Touch 63. Sussurro do Coração – Country Road 64. Cutie Honey – Cutie Honey 65. Aim for the Ace! – Ace wo Nerae! 66. Captain Tsubasa – Moete Hero 67. Haikyuu!! – Orange 68. Hutch the Honeybee – Minashigo Hatchi 69. One Piece Film: Red – Shin Jidai 70. Gatchaman – Gatchaman no Uta 71. City Hunter – Get Wild 72. Slam Dunk – Sekai ga Owaru made wa... 73. Chibi Maruko-chan – Odoru Ponpokorin 74. Chainsaw Man – Chu, Tayousei. 75. Naruto: Shippuden – Silhouette 76. Tokyo Revengers – Cry Baby 77. The Melancholy of Haruhi Suzumiya – God knows... 78. Dragon Ball Super – Limit-Break x Survivor 79. Kiteretsu Encyclopedia – Hajimete no Chuu 80. Kinnikuman – Kinnikuman Go Fight! 81. Perman – Kite yo Perman 82. Attack on Titan – Shinzou wo Sasageyo! 83. Ninja Hattori-kun – Ninja Hattori-kun 84. Naruto – GO!!! 85. Crayon Shin-chan – RPG 86. Cowboy Bebop – Tank! 87. Slam Dunk – Kimi ga Suki da to Sakebitai 88. Fireworks – Uchiage Hanabi 89. Death Note – the WORLD 90. Miyuki – Omoide ga Ippai 91. K-On! – Fuwa Fuwa Time 92. Princess Mononoke – Ashitaka Sekki 93. The Tale of the Heike – Hikaru Toki 94. Higurashi When They Cry – Higurashi no Naku Koro ni 95. Fist of the North Star – Yuria... Eien ni 96. Fullmetal Alchemist – LET IT OUT 97. Yu Yu Hakusho – Hohoemi no Bakudan 98. Dororo – Dororo no Uta 99. Fairy Tail – ft. 100. Dragon Ball GT – DAN DAN Kokoro Hikareteku

Otakus Brasil 🍥

43,380 Aufrufe • vor 1 Monat

Analyzing Episode 33. Season 3 aka Of Breaking Out, Waking Up and Fighting Together Evvvveeeettttt. Feels good to be back at analyzing Far City. And, it feels especially good to analyze ep 33 because it was a whopper of an episode. The flow of events, the dialogues, and the acting were all top-notch. Brilliant work. Now, let's get down to business. The episode kicks off with Sadotor (an amalgamation of Sadakat and dementor because fcuk if this woman doesn't suck all the happiness from any room she's in) kicking up a fuss and demanding Ciho and Alya get divorced. Now, I don't know if you've read my analysis of the Far City title song, but in it, I said from the lyrics and picturization of 'de mardin', it seems like Uzak Sehir is a tale of a land lost within its own oppressive history, crying out for a change. And the catalyst for that change is none other than Alya Albora. In the opening scene of ep 33, I was reminded yet again of why Alya is such an important character for this story - not just for Cihan, but also for Albora. Because Alya doesn't stand silent in the face of injustice or wrongdoing. She speaks out. Fearlessly. And each of her words helps lighten some of the burden of systematic abuse, both in the Albora family and the land. Some folks were calling out Alya for not loving Cihan enough or feeling something for Boran in ep32. I hope y'all have been satisfied. Because the only thing Alya feels for Frankenboran is disdain and anger. Rightly so. When Sadakat tries to pin the blame of 'shameless' on Alya and Cihan, Alya reads her the riot act and reminds her exactly of all the things Sadator has done that she should be ashamed of. She reminds her of the will imposed on her and Cihan. Something that Boran should be ashamed of. And then she points out that the only victims in this sorry tale are her, Cihan, and Deniz, because it's their lives that Boran and Sadator almost destroy. Lives that Sadotor is still trying to destroy. And let me tell you - THANK GOD. Because it was about time someone started speaking the truth in that household. That what Boran did wasn't some kind of supreme sacrifice - it was extreme selfishness. Like Alya says, when Boran sends her to Albora, to Sadotor, he knows exactly the kind of hell his mother is capable of unleashing. But instead of being truthful to his wife, Frankenboran gives Cihan one set of instructions, Vurgun another set of instructions, and tells Alya nothing at all. A more assholish move I've yet to see from a husband. Suffice it to say, Alya Albora wipes the floor with Sadotor with the truth. Because the truth can be a weapon in the hands of the oppressed, as long as they have the courage to speak. Something that's highly necessary for the Albora clan. My queen, that's all I can say for Alya. Now, let's switch to Ciho. Just like people were calling Alya ungrateful last week, folks are lynching Ciho for being a 'coward.' Le sigh. I mean, if that's the way you wanna go, no one's gonna stop you. But Cihan Albora is no coward. He's just a man, catching up to his learning curve. When Cihan tells Sadotor 'I wish you weren't my mom' I felt heartbroken for him. I was also incredibly, incredibly proud. Because just like Alya is breaking out of the circle of abuse, Cihan is waking up to his mother's constant, vile manipulation. The next scene that most stood out was Alya and Cihan's heart-to-heart along the banks of the Tigris. And, once again, let me say, I LOVE Alya Albora. She does love fearlessly, this woman. Which is why she tells Cihan outright that when Boran wakes up, she will divorce his ass. So, why does Cihan not come up with an equally kick-ass declaration? Because he's like the Eupharates, remember? Silent waters run deep, and Cihan's character isn't one to rush. Does that mean he's having second thoughts about Alya? HELL NO. The reason he's hesitant is because 1. he's not sure about Alya's feelings (until she tells him in that moment), and 2. he's the one who'll be burning bridges when this showdown happens. He doesn't regret falling in love with Alya, but when you're standing at the edge of a precipice, about to take a leap of faith, you can't help but think about what you're about to do. I know a lot of you had problems with him calling Alya Boran's wife legally, but he's trying to give her room and gauge her reaction. Remember, this is the guy who forces Alya to marry him in the beginning, and he still regrets that. He doesn't want a repeat. Then there's the fact that whether Alya wants to stay with him or go back to Boran is her decision. He knows that. He's shit scared of it, but he knows, if either Deniz or Alya wants to 'go back' to the status quo, they'd be well within their rights. He even says as much. So he keeps asking what if Boran wants you, because saying what if you want Boran is beyond horror. It's a death sentence for Cihan, and he knows it. His efforts finally bear fruit when Alya tells him straight up, she doesn't want Boran and that she wants to stay with the man she loves. The relief on Cihan's face is palpable then. Cihan once tells Sahin that when making a decision, it's best to focus on what you'll be giving up to help make up your mind. Alya is his very life; he makes that clear when he says, 'Sen bana nefes oldu.' So, giving her up is not an option. What that also means is that the brotherhood he's prized all his life (whether rightly or wrongly) will fall under fire, and he won't be able to stop it. And, how that will affect other parts of their lives is up in the air, so you can't blame the man for taking a moment to process. Neither he nor Alya have it easy, but in this case, Alya feels easier to break away. Cihan needs to shed a lifetime of memories he's burdened with. But, despite all that, I'm glad Alya tells him that if he doesn't have the courage to stand with her, she won't go back to Boran. As jarring as her words are, they act as a sort of wake-up call. Reminding Cihan what's at stake. That's needed, and you can see the effect they have almost a few scenes later. When Cihan is talking to Sadotor to ask her to leave Deniz alone, he finally drops his nice-guy act and threatens her exactly the way she operates. Tit for tat. And that made me really happy, because both he and Alya will need to be unrepentant and perhaps even ruthless to save their relationship from what's coming. What sets CihAl apart is their ability to read each other and to communicate. That comes through very clearly in this episode. Another thing that's made obvious is that these two not only belong together (Dicla and Firat) but also that they're never going to give up on each other. To wrap things up, ep 33 marks another turning point in CihAl's lives. This episode seemed to give me 'emancipation' vibes. Alya tears down the walls of guilt and silence that surround Albora ailesi. Meanwhile, Cihan starts taking apart the shackles his past and Sadotor's manipulation have forged around him since childhood. Both Cihan and Alya stop being just survivors and start becoming active fighters in their story, and I loved each minute of it. Till next time, happy reading y'all. #CihAl #UzakŞehir

CocoLoco

19,602 Aufrufe • vor 9 Monaten

What's next for OpenTUI? Here's a technical write-up. Over the last few months OpenTUI gained a lot of stability improvements, new unnecessary but fun features like live audio streaming, and useful features like rendering to the scrollback buffer mixed with a live TUI, called footer mode. Overall the feature set enables building large and complex applications. React and Solid make it super simple and convenient. There is still so much to do though. Three big milestones we have set out to achieve are: - Moving most of the behavioural logic currently living in TypeScript down to the native Zig core - Node compatibility - Optimizing the hell out of primitives like text rendering The render tree mechanisms are currently only usable from TypeScript. Think of the DOM, but controllable like a scene graph. Elements in the render tree are called renderables. They can expose a render method to draw themselves. All renderables are derived from a BaseRenderable. Renderables and the render tree will become native primitives. Building blocks usable from any language bindings. Reducing the TypeScript bindings to a very thin layer, with all the behavioural logic living in the native binary. Moving this down is not just a matter of porting TypeScript classes to Zig. TypeScript currently owns the tree, dirty-state propagation, layout reads, culling, and render ordering. If it still has to walk every node and call into native code for each step, we keep most of the complexity and add FFI overhead. Whole passes and their state need to move together. We took a big step towards this recently by building yoga-layout into the native binary. It exposes part of the official yoga-layout TypeScript package via FFI. Only the API surface that is actually used by OpenTUI. Covered by the test suite of the original yoga-layout package. This already gave a median speedup of ~2.5x, and up to 30x for narrow scenarios. The yoga-layout integration is useful beyond the speedup. Built-in text and editor measurement can now happen entirely in native code during layout instead of calling back into JavaScript. I ran an experiment last month taking this even further, having GPT 5.6 port yoga-layout from C++ to Zig, which gave extremely good results. It would be a burden to maintain right now though, so that's off the table for now. I might come back to it. Simon Klee is working relentlessly on Node compatibility and already has a full Node version of OpenCode running. Node got FFI support in v26.4.0, thanks to help from the Node community, namely Matteo Collina and Paolo Insogna. Behaviour and interfaces seem similar between Node and Bun, but there are some major differences. To get the best performance out of the Node FFI implementation, its usage has to follow some rules. Node has three ways to call native functions: the generic C++/libffi path, the SharedBuffer path, and the V8 Fast API. The generic path converts every argument in Node's C++ layer and then calls the function through libffi. It is flexible, but also the slowest option for frequently called functions. The SharedBuffer path is a middle ground. JavaScript writes scalar values and BigInt pointers into a small per-function buffer, reducing some conversion work. The actual native call still goes through libffi though. Typed arrays used as pointers cannot be packed into this buffer and fall back to the generic path. The path we really want is the V8 Fast API. Node generates a small machine-code trampoline for the exact function signature, allowing optimized JavaScript to call the native function without going through the generic converter or libffi. This only applies to JavaScript-to-native calls. Callbacks from native code into JavaScript still use libffi closures. Getting onto this path is quite strict. A signature can have at most eight arguments and everything must fit into CPU registers. x86-64 Unix systems have room for six GP (general-purpose) and eight FP (floating-point) arguments. AArch64 has room for seven GP and eight FP arguments. Anything that spills onto the stack falls back to a slower path. These are Node fast-path restrictions, not general FFI restrictions. Bun also does not support passing structs by value through its current FFI API. OpenTUI uses bun-ffi-structs to pack ABI-aligned struct data into an ArrayBuffer and passes a pointer instead. Despite the name, the package also works with Node. Pointers need some care too. Typed arrays and ArrayBuffers normally have to be resolved into BigInt addresses first. Eligible functions with exactly one pointer argument get another Fast API entrypoint that can extract the address directly from the buffer. An eligible signature is still not enough. V8 has to optimize a direct call with a fixed number of consistently typed arguments. Wrappers that collect arguments and forward them using spread or Reflect.apply can hide that call shape and keep the function on a slower path. The practical rules are: keep hot signatures within register limits, use direct fixed-arity calls with stable argument types, reuse owned buffers safely, and batch small operations. Then measure the real call site, because eligibility only makes a function fast-capable. We have to design the ABI around these constraints where it makes sense and gives the expected performance improvement. The third big area is text rendering. Today a Text renderable accepts a string, StyledText, or a tree of TextNodes. Before rendering, the TextNode tree is walked and flattened into styled chunks. Those chunks are packed in TypeScript, sent through FFI, copied into a native TextBuffer, and stored in a rope. Styles are represented separately as highlights. A TextBufferView then wraps the rope into visual lines, which are drawn into the visible buffer. This works, but updates are much more expensive than they should be. setStyledText effectively throws away and rebuilds the rope, copies and reparses all text and recreates the style highlights. Changing one TextNode also walks and flattens the complete tree before going through this path again. Text and style segments should instead live directly in the rope and support incremental replacement. Memory ownership is split between retained JavaScript buffers, the native memory registry, rope arenas, wrapping caches, styled-text storage, and highlights. Different operations preserve or reset different parts of that state. This is hard to reason about and can retain memory for much longer than expected. Text storage needs clearer ownership, with fewer lifetimes split across JavaScript and native code. The public API reflects the same split. The t template literal is convenient, but creates another intermediate chunk representation that is mutable, not cached, and not merged. Text also maintains both StyledText content and a special TextNode tree, which do not compose properly. TextNode is only a style scope, not a normal layout primitive, so Text renderables cannot naturally compose inside each other. I think this should become one Text primitive backed directly by rope segments. The template literal API might disappear or become a very thin helper around those native segments. Editing has another temporary layer in TypeScript. Extmarks currently monkey-patch editing operations, scan and adjust all marks after changes, maintain their own undo state, and recreate native highlights. They should become native marks anchored directly in the rope. A proper mark tree, similar to Neovim's marktree, could update marks together with edits, undo, and redo, and provide the foundation for highlights and concealment. Text wrapping has also become too complex. Supporting CJK, emoji, combining characters, ZWJ sequences, tabs, and different terminal width rules currently mixes byte offsets, grapheme indexes, and display-cell columns across several custom algorithms. Dirty views rewrap the complete document. Measurement and drawing can repeat some of the same work. The wrapping implementation needs an overhaul, but the exact shape is still open. The goal is to make Unicode handling easier to maintain, avoid repeated full-document work, and clearly separate byte offsets, graphemes, and terminal display cells. None of this will happen as one big rewrite. We will replace pieces when we understand the problem well enough and when the result is clearly simpler, faster, or more useful. To achieve all of this we might break public interfaces. Thanks to OpenCode and a lot of good models, migration to a new version with breaking changes mostly is not an issue anymore. What do you want to see next for OpenTUI?

kmdr

29,430 Aufrufe • vor 14 Tagen