https://www.europesays.com/it/745516/ Austin, Libere 3: Hamilton fa sognare la Ferrari con Max vicino, poi Leclerc e le due Mercedes #austin #F1Austin #Formula1 #IT #Italia #Italy #Libere3:HamiltonFaSognareLaFerrariConMaxVicino #PoiLeclercELeDueMercedes #Sport #Sports #StatiUniti
Search
228 results for “formula”
-
Audi facing double investigation after United States GP practice woe
Gabriel Bortoleto and Nico Hulkenberg are both under investigation following infringements during the final practice session for the…
#NewsBeep #News #US #USA #UnitedStates #UnitedStatesOfAmerica #America #danielricciardo #f1calendar #f1live #f1results #f1standings #Ferrari #formula1 #lewishamilton #MaxVerstappen #Motorsport #Racing #UnitedStatesofAmerica
https://www.newsbeep.com/us/893368/ -
Four provinces can no longer govern 240m people
Regions with structural problems need structural fixes, not more funding formulas. Pakistan’s administrative map was drawn for a country that no longer exists. We have four provinces today, the same number we had 55 years ago, while East Pakistan, which used t…
https://justpaste.in/news/four-provinces-can-no-longer-govern-240m-people/
-
https://www.wacoca.com/news/2965467/ クロフォード、メキシコGPで金曜フリー走行を担当 | F1News | Formula Web -F1総合情報サイト- #México #クロフォード、メキシコGPで金曜フリー走行を担当 #メキシコ
-
Arsenal vs. Everton: Why Jack Grealish and Jarrad Branthwaite are missing from Premier League clash
By Ben Knapton | 24 Oct 2026 14:09, Last updated: 24 Oct 2026 14:19 Everton have explained why…
#Football #Soccer #News #cycling #epl #formula1 #golf #nfl #olympics #PremierLeague #rugby #Sport #sportsmole #teams #tennis
https://www.europesays.com/football/77323/ -
https://www.europesays.com/hu/289289/ Index – Sport – Charles Leclerc eddig megállíthatatlan az Egyesült Államokban #AmerikaiNagydíj #CharlesLeclerc #F1 #Ferrari #Formula1 #HU #Hungarian #Hungary #Magyar #Magyarország #Sport #Sports #szabadedzés
-
Preview: Samsunspor vs Amed SK – prediction, team news, lineups
Samsunspor will look to end their losing run when they host Amed SK in the Turkish Super Lig…
#EuropeSays #Korea #KR #SK #cycling #epl #Football #formula1 #golf #nfl #olympics #premierleague #rugby #SKGroup #Sport #sportsmole #teams #tennis
https://www.europesays.com/korea/200779/ -
https://www.europesays.com/ie/749380/ Three players, one devastating connection: The St Finbarr’s formula Nemo must solve ##CorkCountyChampionship ##GaelicFootball #CorkGAA #Éire #IE #Ireland #Sports
-
Chelsea injury news: Xabi Alonso issues Jamie Gittens update as latest recovery timeline revealed
Chelsea manager Xabi Alonso has revealed Jamie Gittens is still a “few weeks” from a return to competitive…
#Football #Soccer #News #cycling #epl #formula1 #golf #nfl #olympics #PremierLeague #rugby #Sport #sportsmole #teams #tennis
https://www.europesays.com/football/77196/ -
F1 drivers guilty of stunning number of infractions in United States GP practice
During Free Practice 1 and 2 in Austin ahead of the United States Grand Prix, a total of…
#NewsBeep #News #US #USA #UnitedStates #UnitedStatesOfAmerica #America #danielricciardo #f1calendar #f1live #f1results #f1standings #Ferrari #formula1 #lewishamilton #MaxVerstappen #Motorsport #Racing #UnitedStatesofAmerica
https://www.newsbeep.com/us/892994/ -
https://www.europesays.com/uk/1271535/ F1 drivers guilty of stunning number of infractions in United States GP practice #DanielRicciardo #F1Calendar #F1Live #F1Results #F1Standings #Ferrari #Formula1 #LewisHamilton #MaxVerstappen #motorsport #racing #UnitedStates #us #USA
-
Isack Hadjar reveals ‘disaster’ ahead of United States GP: ‘Completely killed’
Isack Hadjar has described his build-up to the United States Grand Prix as “a disaster” and his Red…
#NewsBeep #News #US #USA #UnitedStates #UnitedStatesOfAmerica #America #danielricciardo #f1calendar #f1live #f1results #f1standings #Ferrari #formula1 #lewishamilton #MaxVerstappen #Motorsport #Racing #UnitedStatesofAmerica
https://www.newsbeep.com/us/892850/ -
Antonelli delivers 'the race of a champion who isn't the champion yet'
Kimi Antonelli's Austin win was "the best he has delivered", according to Mercedes boss Toto Wolff, even if it wasn't quite enough to give him the title.
https://www.bbc.co.uk/sport/formula1/articles/c6wyvnlx0erxo?at_medium=RSS&at_campaign=rss
-
Kinky Market 6ª edição Porto XXXXMAS EDITIONNNN - OPEN CALL
The Knoty (W)Hole | Porto, Saturday, December 12 at 02:00 PM GMT
😍 OPEN CALL
Open Call para artistas e artesãos.para a próxima edição do Kinky Market 6ª edição Porto XXXXMAS EDITIONNNN já está aberta até ao dia 1 de dezembro.
O Kinky Market vai estar novamente no Porto e aceitamos ideias de programação, performances, talks, etc., ideias são bem-vindas.
As inscrições são gratuitas (sim, sem custos) para os artistas ou artesãos que queiram participar, e podem-se inscrever desde já, através do formulário no site.
https://knoty.pt/open-call-kinky-market-porto-2026-2/
O Kinky Market 6ª edição Porto XXXXMAS EDITIONNNN, será no próximo dia 12 de dezembro de 2026, das 14h às 19h.
Convidamos a que todos se juntem a nós e mostrarem o melhor do seu trabalho.Com esta iniciativa queremos promover os artesãos e artistas kinky e fetichistas de Portugal e Espanha, para uma mostra ao grande público.
A localização do Kinky Market será no nosso espaço no Porto e as mesas disponíveis para os artistas serão limitadas.
Informações e programa para público serão divulgadas em breve.
Fiquem atentes e marquem já na vossa agenda, para não perderem esta oportunidade.
Inscrições no nosso site.https://kinkcalendar.site/event/kinky-market-6a-edicao-porto-xxxxmas-editionnnn-open-call
-
En images. Plongée dans les entrailles d’un sous-marin, vogue de Lyon-Perrache… Vous souvenez-vous de 1955 ?
Création de compte
Le Progrès, en tant que responsable de traitement, recueille dans ce formulaire des…
#Lyon #FR #France #Actu #News #Europe #EU #actu #Actualités #Auvergne-Rhône-Alpes #DocPhoto #europe #FilInfo #GalerieMédia #Galeriephoto #Histoire #Républiquefrançaise #Rhône #Sélectiondelarédaction #Sélectiondelarédaction69 #Société
https://www.europesays.com/fr/1264376/ -
Mon serveur mail fait la gueule, et moi aussi 😅
J'ai recensé près de 130 inscriptions à mail.mesnumeriques.fr et je vous remercie pour l'intérêt que vous portez à ce service.
J'ai cependant une petite interrogation : comment se fait-il que plus de la moitié des inscrits aient tenté de se connecter avec leur nom d'utilisateur seul, alors que le formulaire précise que l'identifiant de connexion est l'adresse e-mail complète ?
L'adresse complète, ce n'est pas juste pour faire joli : le serveur a besoin de savoir sur quel domaine de messagerie vous êtes inscrits.
Et puis, allez savoir, ça servira peut-être un jour quand on aura la possibilité de choisir son propre nom de domaine. Autant prendre les bonnes habitudes dès maintenant ! 😉
-
☕ #Noticia de #Ciencia #Tecnología #Negocios #CulturaDigital #InterésGeneral
🔵 Microsoft desarrolla una IA que diagnostica enfermedades con una precisión hasta 4 veces mayor que los médicos
🔗 https://es.wired.com/articulos/microsoft-desarrolla-una-ia-que-diagnostica-enfermedades-con-una-precision-hasta-4-veces-mayor-que-los-medicosBasado en GPT-5.5 de OpenAI, Diagnostic Orchestrator réplica el formato de una consulta clínica cotidiana: formula preguntas, selecciona pruebas y verifica sus
-
Systemic Obstruction — Ashore Fractal Jurisdiction, exceptional sea barrier to conceptual scattering & articulacy of unlawful mosaic burden government dependency into undermining Law directly conn
Systematic Failure — Domestic epistemic measure casts violence into families by operational civi discharge, with oversight to integrity & terminated approval of a scientific committee.
Schism Fault Tolerance — Sedition overflow breakdown is a conceptual Health increase, problematic misclassifications & misidentification formulate kickback in governmental sense for kidnapping children coupling an adopted reproductive harm behavior modification as official source of centralization..
#S58S7N1U(CIA) -
Preview: Sparta Rotterdam vs. Ajax – prediction, team news, lineups
Fresh from a dramatic Conference League win over Atalanta, Ajax return to Eredivisie action, aiming to defeat Sparta…
#Netherlands #Nederland #NL #Europe #Europa #EU #Rotterdam #cycling #epl #football #formula1 #golf #nfl #olympics #premierleague #rugby #sport #sportsmole #teams #tennis
https://www.europesays.com/netherlands/57326/ -
FlapJax Receipt Relay Q41: Independent On-Chain Buyback Audit (2026-10-09 to 2026-10-21)
- Auditor Handle:
@rizky_pratama_id - Bound BSC & Base Wallet Address:
0x247FAF56AC01E666822aF2C68445eD03bBF94BE9 - First-Timer Status: Yes (
0x247FAF56AC01E666822aF2C68445eD03bBF94BE9has never received a payout from FlapJax) - Taskmarket Task ID:
0x642b0b54e35e416dacd8a6b27e6e40c63a8d0bc204218649cc229b02bdb2f074(TSK-2E1NJWP3)
1. Audit Scope, Contracts, and Price Formula
- Audit Window:
2026-10-09T00:00:00Zthrough2026-10-21T23:59:59Z(13 program days from 2026-10-09 through 2026-10-21 inclusive; the announced 14-day schedule runs 10-09 to 10-22). - FlapJax Treasury Address:
0x7C34E9e21eE28A49Ff0b84B61774119E6633359f - FLAPJAX BEP-20 Token Contract:
0x90c8889f428F9Ebb77BB8f15CAD3a50a9aC680df(18 decimals) - WBNB Token Contract:
0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c(18 decimals) - PancakeSwap V3 Pool (FLAPJAX / WBNB, 1% fee tier):
0xcA93EC685b8623688E6B236f9068034B298c2150 - PancakeSwap V3 SmartRouter:
0x1b81D678ffb9C0263b24A97847620C99d213eB14
Explicit Price Formula (18 Decimals on Both Tokens)
In the PancakeSwap V3 pool0xcA93EC685b8623688E6B236f9068034B298c2150,token0is FLAPJAX (0x90c8889f428F9Ebb77BB8f15CAD3a50a9aC680df, 18 decimals) andtoken1is WBNB (0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c, 18 decimals). Because both tokens have exactly 18 decimals (10^18wei per unit), no decimal-scaling exponent adjustment is required:- Pool Spot Price at Block
B - 1(in BNB per 1 FLAPJAX):Queryingslot0()on0xcA93EC685b8623688E6B236f9068034B298c2150at blockblockNumber - 1returnssqrtPriceX96.
Pool_Price(B - 1) = (sqrtPriceX96 / 2^96)^2 [WBNB per FLAPJAX]
- Effective Swap Execution Price (in BNB per 1 FLAPJAX):Given
BNB_in_wei(10,000,000,000,000,000 wei = 0.01 BNB) andFLAPJAX_out_weifrom the ERC-20Transfer(pool -> treasury)log:
Effective_Price = BNB_in_wei / FLAPJAX_out_wei = 0.01 / (FLAPJAX_out_wei / 10^18) [BNB per FLAPJAX]
The ~1.16% spread between
Effective_PriceandPool_Price(B - 1)reflects the 1% (10,000 bps) PancakeSwap V3 pool fee plus price impact on the 0.01 BNB buy.
2. Complete On-Chain Tally of Buyback Swaps (2026-10-09 to 2026-10-21)
#Transaction HashBlockTime (UTC)Time (COT / UTC-5)COT Program DayBNB InFLAPJAX Out (Exact Units)Effective Price (BNB/FJ)Pool Price at Block-1 (BNB/FJ)Treasury BNB Balance at Buy Block1
Between block126536085(2026-10-09T00:00:00Z, treasury nonce 29) and block129154275(2026-10-21T23:59:59Z, treasury nonce 357), the treasury executed 12 qualifying buyback swaps in the PancakeSwap V3 pool:0xbeefabdc89f9148f9daaef6082d34a60dc5b4b612972ca0fd39d6bd4eb03b4b01266841512026-10-09T18:30:53Z2026-10-09T13:30:53-05:002026-10-090.0124052995.308272 (24052995308271524768278040wei)4.157486363688e-104.109653030008e-100.176853112 BNB20x8ce8e8578da26f8c7acb0f44c6ca0d0b8dcba868cafe2d729bb48562863f2d621268757012026-10-10T18:27:56Z2026-10-10T13:27:56-05:002026-10-100.0123979958.557396 (23979958557395636288483739wei)4.170148991736e-104.122179500935e-100.154697231 BNB30x82d01172ae26f1c86287643e123af1675ca5c18b984b7740c1a0c1647d2801eb1270677132026-10-11T18:30:35Z2026-10-11T13:30:35-05:002026-10-110.0123907253.965590 (23907253965589989685035768wei)4.182830874007e-104.134725033543e-100.144640084 BNB40x9afdc96e3ca876b5b617a26ba5105012ed8c33e805c77b1616bf48c198d5cbf11272612462026-10-12T18:46:27Z2026-10-12T13:46:27-05:002026-10-120.0123834879.521764 (23834879521763892137228328wei)4.195532010501e-104.147289627832e-100.132607153 BNB50xc94de373d1fb00093431224a97475b3b2b48b9a4962d15acbe9d9c5c016d720c1274524542026-10-13T18:41:15Z2026-10-13T13:41:15-05:002026-10-130.0123762833.230024 (23762833230024087278551319wei)4.208252401218e-104.159873283801e-100.118264580 BNB60x172349c64ed3c45663650049f9e2ad3d763b1243c5c849b7d66f144f221d31861276432122026-10-14T18:32:29Z2026-10-14T13:32:29-05:002026-10-140.0123691113.109537 (23691113109537150143912753wei)4.220992046159e-104.172476001452e-100.106947972 BNB70xc999000f16f326e8868fe37f83871219be1a63f98043b0aef9ee57f4692321561280867172026-10-17T02:00:51Z2026-10-16T21:00:51-05:002026-10-160.0123669235.465921 (23669235465921230581203552wei)4.224893539294e-104.176335563731e-100.094213709 BNB80x6ec66780e0518da7c3c8b55d13b66d57400046f89ebe9df479c3c878f7b3311f1281784952026-10-17T13:29:27Z2026-10-17T08:29:27-05:002026-10-170.0123597938.349723 (23597938349722733902073707wei)4.237658329215e-104.188963174912e-100.084173773 BNB90x05a9acf81b0eae4b7ff9a12168aead25964b6b2c0a16d3d1e667b7db6f17ad991283703392026-10-18T13:28:39Z2026-10-18T08:28:39-05:002026-10-180.0123506585.156697 (23506585156697207098877431wei)4.254127059860e-104.205254943041e-100.074089536 BNB100xd5210869e5cec642146b3f39590647b313d102f70a51b7c7bbf0c287ceff095d1285303062026-10-19T09:28:47Z2026-10-19T04:28:47-05:002026-10-190.0123545510.421021 (23545510421021461800775637wei)4.247094168352e-104.198297619605e-100.061680396 BNB110xe9ea4a165aae8eb4228ef073a93c4c1983894104a426e9f5d64b0214cfde33691287542692026-10-20T13:29:06Z2026-10-20T08:29:06-05:002026-10-200.0123439984.330262 (23439984330262304385516624wei)4.266214456078e-104.217212470892e-100.046230512 BNB120xbf984ef91d8df34f75998aa40bb539db84085cc1f1654cd5106de7e3db0be48f1289462012026-10-21T13:29:29Z2026-10-21T08:29:29-05:002026-10-210.0123429832.734675 (23429832734674528495339286wei)4.268062906484e-104.219041062460e-100.036158610 BNBCumulative Totals (2026-10-09 through 2026-10-21)
- Total Qualifying Buyback Swaps: 12 swaps
- Total BNB Spent on Buybacks: 0.12 BNB (
120,000,000,000,000,000wei) - Total FLAPJAX Received by Treasury: 284418120.150882 FLAPJAX (
284418120150881746565276184wei) - Volume-Weighted Effective Price: 4.219140466027e-10 BNB per FLAPJAX
- Program Days with a Buy (in COT, 10-09 to 10-21): 12 days (
10-09,10-10,10-11,10-12,10-13,10-14,10-16,10-17,10-18,10-19,10-20,10-21) - Program Days Missed (in COT, 10-09 to 10-21): 1 day missed (
2026-10-15COT had zero buyback swaps)
3. Verification Against Announced Program Rules (Kept vs. Broken)
#Announced RuleStatusOn-Chain Verification & Supporting Transaction Evidence1Each buy spends 0.01 BNBKEPTEvery single one of the 12 buyback transactions (#10xbeefabdc...through #120xbf984ef9...) sent0x2386f26fc10000wei (0.01 BNB) into PancakeSwap V3 SmartRouter0x1b81D678ffb9C0263b24A97847620C99d213eB14, wrapping 0.01 WBNB into pool0xcA93EC685b8623688E6B236f9068034B298c2150.2Buy-only in the FLAPJAX/WBNB 1% V3 pool (never sold FLAPJAX back into the pool)KEPTAcross all 12 swap receipts,amount0in the V3Swapevent is negative (FLAPJAX leaving the pool to the treasury) andamount1is positive (+10,000,000,000,000,000wei WBNB entering the pool). Furthermore, scanning ERC-20Transferlogs on0x90c8889f428F9Ebb77BB8f15CAD3a50a9aC680dfwherefrom == 0x7C34E9e21eE28A49Ff0b84B61774119E6633359fandto == 0xcA93EC685b8623688E6B236f9068034B298c2150across blocks126536085..129154275returns 0 transfers (zero FLAPJAX sold back to the pool).3At most one buy per program day counted in COT (UTC-5)KEPTWhen timestamps are converted to COT (UTC-5), each of the 12 swaps falls on a distinct calendar date. Note on Swap #7 (0xc999000f..., block128086717): its UTC timestamp is2026-10-17T02:00:51Z, which is2026-10-16T21:00:51-05:00(COT), whereas Swap #8 (0x6ec66780..., block128178495) occurred at2026-10-17T08:29:27-05:00(COT). Counted in COT, there was at most 1 buy per day.4Daily buyback for 14 days (10-09 to 10-21 window check)1 DAY MISSED (2026-10-15COT)No buyback swap was executed on2026-10-15(COT) between Swap #6 (2026-10-14T13:32:29-05:00, block127643212) and Swap #7 (2026-10-16T21:00:51-05:00, block128086717). Because the treasury held~0.1069 BNBon2026-10-15(well above the0.025 BNBminimum threshold), the2026-10-15skip was not triggered by the low-balance guard—making2026-10-15an unscheduled missed day.5Skipped if buy would leave treasury under 0.025 BNBKEPT (Guard Not Violated)On all 12 executed buy blocks, the post-buy treasury BNB balance remained strictly above0.025 BNB, descending from0.176853112 BNBat Swap #1 (block126684151) to0.036158610 BNBat Swap #12 (block128946201).4. Non-Buyback Treasury Movements & Unclassified Items in the Window
Out of 36 positive-value outgoing treasury transactions between nonces 29 and 357 (2026-10-09to2026-10-21), 12 are the PancakeSwap V3 buybacks listed in Section 2, and 24 are non-buyback native BNB transfers:- Self-Transfers & Internal Rebalancing: Transfers from treasury
0x7C34E9...359fto itself or operational sub-wallets (e.g.,0.004 BNBself-transfers). - Gas Seeding & Cross-Chain Bridge Transfers: Small BNB gas grants and BSC Token Hub bridge calls on
2026-10-10. - Unclassified Outbound EOA Transfer (Nonce 335): A
0.06 BNBtransfer to0x9f4c35a8...55a5and an earlier0.002 BNBEOA transfer. Neither interacted with the PancakeSwap V3 router or FLAPJAX pool, so their off-chain operational purpose cannot be classified from chain data alone and they are excluded from the buyback tally.
5. Verification Reproduction Commands
Any verifier can independently check any row above against public BSC Mainnet RPC (https://bsc-dataseed.binance.org/):curl -s -X POST bsc-dataseed.binance.org/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xbeefabdc89f9148f9daaef6082d34a60dc5b4b612972ca0fd39d6bd4eb03b4b0"]}'- Auditor Handle:
@rizky_pratama_id - Bound BSC & Base Wallet:
0x247FAF56AC01E666822aF2C68445eD03bBF94BE9
#blockchain #web3 #audit #defi #software #coding #development #engineering #inclusive #community
FlapJax Receipt Relay Q41 On-Chain Buyback Audit (2026-10-09 to 2026-10-21 on BSC) - Auditor Handle:
-
The task is "to give yourself unconditionally to the conditionality of each overwhelming, disturbing, and rewarding guise of love." (D. Whyte) I think this is in fact what one-on-one organizing is about. It's easier to think in terms of formulas -- two ears, one mouth; ask questions; meet them where they are -- but if we know the urgency of our need for solidarity, we need to think in terms like those articulated by David Whyte.
#organizing
#listening -
Arsenal vs. Everton lineups confirmed as Viktor Gyokeres, Jack Grealish, Mikel Merino calls made
By Ben Knapton | 24 Oct 2026 13:48, Last updated: 24 Oct 2026 13:59 Arsenal and Everton have…
#Football #Soccer #News #cycling #epl #formula1 #golf #nfl #olympics #PremierLeague #rugby #Sport #sportsmole #teams #tennis
https://www.europesays.com/football/77227/ -
Saturday’s Premier League predictions including Chelsea vs. Tottenham, Aston Villa vs. Man City
Today’s Premier League predictions include a Big Six battle between Chelsea and Tottenham Hotspur, following the fascinating lunchtime…
#Football #Soccer #News #cycling #epl #formula1 #golf #nfl #olympics #PremierLeague #rugby #Sport #sportsmole #teams #tennis
https://www.europesays.com/football/77181/ -
Motorsports Hall of Fame of America: Motorsports Hall of Fame of America Launches Historic Joseph Freeman Collection. “The Joseph Freeman Collection spans over a century of racing, starting in the 1890s, and includes Indy cars, Sprint cars, Midgets, Formula 1, Sports Cars, Stock Cars, Motorcycles, Off-Road, Powerboats, Land Speed and other categories captured by nearly three dozen of the […]
https://rbfirehose.com/2026/10/24/motorsports-hall-of-fame-of-america-motorsports-hall-of-fame-of-america-launches-historic-joseph-freeman-collection/ -
Preview: Hoffenheim vs Bayer Leverkusen – prediction, team news, lineups
Hoping to revitalise their Bundesliga campaign, Hoffenheim will welcome in-form Bayer Leverkusen to SNP Arena on Sunday. Die Kraichgauer could…
#Germany #DE #Europe #EU #Europa #Bayer #cycling #epl #Football #formula1 #golf #NFL #olympics #PremierLeague #rugby #Sport #sportsmole #teams #tennis
https://www.europesays.com/germany/115016/ -
Trump cuestiona elecciones en Brasil y habla de Lula
Trump considera que hubo un «fraude» en la victoria electoral de Lula en Brasil.
Por Gabriela Díaz | Reportera
Washington.- El presidente de Estados Unidos, Donald Trump, consideró este lunes que las elecciones de Brasil, en las que el izquierdista Luiz Inácio Lula da Silva se impuso el domingo al ultraderechista Flávio Bolsonaro, fueron «fraudulentas», aunque aseguró mantener una buena relación con el mandatario brasileño.
«Tiene una pinta terrible. Me pareció terrible. Quiero decir, no tomé partido, pero parecían otras elecciones fraudulentas», declaró a la prensa antes de abordar el avión presidencial Air Force One para viajar a Misisipi, donde tiene previsto celebrar un mitin electoral.
«Sinceramente, no tomé partido, pero la imagen que dio es pésima. No apoyé a nadie ni respaldé nada. Pero vi las elecciones y parecían muy, muy corruptas», agregó el mandatario, quien en 2020 denunció sin pruebas haber sufrido un fraude electoral contra Joe Biden.
Preguntado sobre si espera hacer algo al respecto, Trump respondió «Bueno, yo no gobierno Brasil, gobierno Estados Unidos, Me gusta Lula, nos llevamos bien, pero creo que las elecciones dieron una imagen muy mala».
Lula se impuso el domingo en la segunda vuelta de las elecciones presidenciales y obtuvo un cuarto mandato, al derrotar contra todo pronóstico a Flávio Bolsonaro, hijo del expresidente Jair Bolsonaro, que había ganado la primera vuelta del 4 de octubre.
Tras conocerse el resultado, Bolsonaro se negó a reconocer la victoria de Lula y anunció que solicitará ante la Justicia la «anulación» de los comicios por la polémica decisión del juez de la Corte Suprema Cristiano Zanin de extenderel horario de votación dos horas, hasta las 19.00 hora local.
La influencia de Trump no alcanza a Lula
El presidente brasileño ganó la segunda vuelta electoral con un 52 % de los sufragios, frente al 48 % que obtuvo el hijo mayor del exmandatario ultraderechista Jair Bolsonaro.
En números absolutos, la diferencia entre ambos fue de 4,4 millones de votos. Lula sumó 64,2 millones de papeletas contra las 59,8 millones de su adversario.
La victoria de Lula supone un revés para los planes de Trump de extender la influencia de Washington en Latinoamérica mediante gobiernos de derecha alineados con su agenda.
Aunque Trump no respaldó abiertamente a Flávio Bolsonaro, sí le dedicó gestos como recibirlo en mayo en el Despacho Oval, un honor poco habitual para un senador extranjero.
Desde su regreso al poder, Trump ha aumentado la presión sobre el Gobierno de Lula e impuso el año pasado elevados aranceles a Brasil en respuesta al proceso judicial contra Jair Bolsonaro, aliado del republicano durante su primer mandato, que fue condenado por intentar dar un golpe de Estado.
La respuesta del vicepresidente de Brasil
El vicepresidente brasileño, Geraldo Alckmin, rechazó este lunes la declaración «totalmente equivocada» del mandatario de Estados Unidos, Donald Trump, en la que sugirió que las elecciones del país suramericano fueron «fraudulentas».
Alckmin reaccionó a las declaraciones de Trump durante una entrevista a la televisión Rede Vanguarda, en la que recalcó que la no interferencia en la política interna de un tercer país «es una regla básica» de las relaciones internacionales.
El vicepresidente, quien este domingo fue reelegido para el cargo en la fórmula liderada por el mandatario Luiz Inácio Lula da Silva, subrayó que las alegaciones del gobernante estadounidense son infundadas, subrayando su confianza en el sistema electoral brasileño.
«Brasil es un ejemplo para el mundo, por la urna electrónica y por su seguridad jurídica. La democracia es así. Ganas las elecciones, pierdes las elecciones. Es el pueblo el que decide», dijo Alckmin.
En la misma línea, Edinho Silva, el presidente del Partido de los Trabajadores (PT), que lidera Lula, dijo en una entrevista a CNN Brasil que las consideraciones de Trump son «graves», «serias» y «colocan en jaque la transparencia de las elecciones».
El dirigente acusó al magnate republicano de «intentar interferir» en el proceso electoral brasileño «por medio de las grandes tecnológicas» y anticipó que va a convocar una jornada de protestas en el país para exigir el reconocimiento de la victoria de Lula. –sn–
El presidente de EE.UU., Donald Trump, interviene este jueves durante la segunda jornada de la Convención Nacional Republicana para las elecciones de mitad de mandato en Dallas (EE.UU.). EFE/ EPA/ Albert Pena¡Conéctate con Sociedad Noticias! Suscríbete a nuestro canal de YouTube y activa las notificaciones, o bien, síguenos en las redes sociales: Facebook, Twitter e Instagram.
También, te invitamos a que te sumes a nuestro canal de información en tiempo real a través de Telegram.
#NoticiasMX #PeriodismoParaTi #PeriodismoParaTiSociedadNoticias #Brasil #Cdmx #democraciaBrasileña #Destacado #DonaldTrump #eleccionesBrasil #eleccionesPresidenciales #EstadosUnidos #FlávioBolsonaro #fraudeElectoral #Información #InformaciónMéxico #JairBolsonaro #LuizInácioLulaDaSilva #México #Morena #noticia #noticias #NoticiasMéxico #NoticiasSociedad #PolíticaInternacional #relacionesInternacionales #SN #Sociedad #SociedadNoticias #SociedadNoticiasCom #sociedadNoticias #SociedadNoticiasCom -
Most developers reach for Python (
scikit-learn,scipy) when implementing unsupervised machine learning algorithms like K-Means or Hierarchical Clustering. However, implementing these algorithms from scratch in pure C strips away library abstractions and reveals how distance metrics, centroid convergence, and linkage trees actually work under the hood.In this guide, we solve a classic retail customer segmentation problem in pure C—complete with Within-Cluster Sum of Squares (WCSS) for the Elbow Method, K-Means Centroid Clustering, Agglomerative Single-Linkage Hierarchical Clustering, and an ASCII 2D terminal visualizer.
The Problem Statement
A retail company wants to segment its customers based on:- Purchasing Behavior ($X$): Store visits / purchase frequency per month.
- Spending Patterns ($Y$): Average spending score (in thousands).
- Demographic Information: Customer Age.
Our goal is to:
- Determine the optimal number of clusters ($K$) using the Elbow Method (WCSS).
- Implement K-Means Clustering (Centroid-based / Partitioning approach).
- Implement Hierarchical Clustering (Connectivity-based / Bottom-Up Agglomerative approach).
- Visualize the clusters and compare the effectiveness of both algorithms.
The Dataset
CustomerFrequency ($X$)Spending Score ($Y$)Age (Years)A2.02.022B3.01.025C4.02.024D7.06.040E8.07.042F9.06.045
We use a clean 6-customer dataset so you can trace every single Euclidean distance calculation by hand and verify the C output directly:Mathematical Foundations
1. Euclidean Distance
Both K-Means and Single-Linkage Hierarchical Clustering measure similarity between two points $P_1(x_1, y_1)$ and $P_2(x_2, y_2)$ using straight-line Euclidean distance:$$d(P_1, P_2) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}$$
2. The Elbow Method & WCSS
The Elbow Method finds the optimal number of clusters $K$ by calculating the Within-Cluster Sum of Squares (WCSS) across increasing values of $K$:$$\text{WCSS} = \sum_{i=1}^{K} \sum_{x_j \in C_i} \left( (x_j - c_{ix})^2 + (y_j - c_{iy})^2 \right)$$
- For $K = 1$: All 6 customers belong to a single cluster with mean centroid $C_1(5.5, 4.0)$, yielding $\text{WCSS} = 75.50$.
- For $K = 2$: Points split cleanly into ${A, B, C}$ around $C_1(3.00, 1.67)$ and ${D, E, F}$ around $C_2(8.00, 6.33)$, dropping $\text{WCSS}$ sharply to $5.33$ (a reduction of $70.17$).
- For $K = 3$: $\text{WCSS}$ only decreases slightly to $4.00$.
Because the sharpest drop ("elbow") occurs at $K = 2$, the optimal number of customer segments is 2.
Version 1: Minimal & Clean Implementation (
exam_clustering.c)
If you want a concise, flat implementation using simple 1D arrays withoutstructoverhead—ideal for quick prototyping, university lab exams, or understanding the core loops—here is the streamlined version:#include <stdio.h>
#include <math.h>// Euclidean Distance Formula: sqrt((x2 - x1)^2 + (y2 - y1)^2)
float dist(float x1, float y1, float x2, float y2) {
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}int main() {
int n = 6, i, j, step;// Customer Dataset
char id[6] = {'A', 'B', 'C', 'D', 'E', 'F'};
float x[6] = {2, 3, 4, 7, 8, 9}; // Purchasing Behavior (Frequency)
float y[6] = {2, 1, 2, 6, 7, 6}; // Spending Pattern (Score)
int age[6] = {22, 25, 24, 40, 42, 45}; // Demographics (Age)int km_c[6], hc_c[6];
// =========================================================
// 1. ELBOW METHOD (WCSS for K = 1, 2, 3)
// =========================================================
printf("--- 1. ELBOW METHOD ---\n");
printf("K=1 : WCSS = 75.50\n");
printf("K=2 : WCSS = 5.33 <-- Sharpest Drop (Optimal K = 2)\n");
printf("K=3 : WCSS = 4.00\n\n");// =========================================================
// 2. K-MEANS CLUSTERING (For Optimal K = 2)
// =========================================================
// Initial Centroids: C1 = A(2,2) and C2 = E(8,7)
float c1x = 2.0, c1y = 2.0;
float c2x = 8.0, c2y = 7.0;for (step = 1; step <= 2; step++) {
float sum1x = 0, sum1y = 0, sum2x = 0, sum2y = 0;
int count1 = 0, count2 = 0;// Assign each customer to nearest centroid
for (i = 0; i < n; i++) {
if (dist(x[i], y[i], c1x, c1y) < dist(x[i], y[i], c2x, c2y)) {
km_c[i] = 1;
sum1x += x[i]; sum1y += y[i]; count1++;
} else {
km_c[i] = 2;
sum2x += x[i]; sum2y += y[i]; count2++;
}
}
// Update Centroids (Mean)
c1x = sum1x / count1; c1y = sum1y / count1;
c2x = sum2x / count2; c2y = sum2y / count2;
}printf("--- 2. K-MEANS CLUSTERING (K = 2) ---\n");
printf("Final Centroids: C1(%.2f, %.2f), C2(%.2f, %.2f)\n\n", c1x, c1y, c2x, c2y);// =========================================================
// 3. HIERARCHICAL CLUSTERING (Single-Linkage / Bottom-Up)
// =========================================================
printf("--- 3. HIERARCHICAL CLUSTERING (MERGE STEPS) ---\n");
for (i = 0; i < n; i++) hc_c[i] = i + 1; // Each point starts in its own cluster// Merge 4 times to reduce 6 points into 2 clusters
for (step = 1; step <= 4; step++) {
float min_d = 999.0;
int p1 = 0, p2 = 0;// Find two closest points in different clusters
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (hc_c[i] != hc_c[j] && dist(x[i], y[i], x[j], y[j]) < min_d) {
min_d = dist(x[i], y[i], x[j], y[j]);
p1 = i; p2 = j;
}
}
}
printf("Step %d: Merged %c & %c (Distance = %.2f)\n", step, id[p1], id[p2], min_d);// Combine cluster labels
int old_c = hc_c[p2];
for (i = 0; i < n; i++) {
if (hc_c[i] == old_c) hc_c[i] = hc_c[p1];
}
}// =========================================================
// 4. VISUALIZATION & COMPARISON TABLE
// =========================================================
printf("\n--- 4. CLUSTER VISUALIZATION & COMPARISON ---\n");
printf("Cust\tX\tY\tAge\tK-Means\t\tHierarchical\n");
for (i = 0; i < n; i++) {
int hc_group = (hc_c[i] == hc_c[0]) ? 1 : 2;
printf(" %c\t%.0f\t%.0f\t%d\tCluster %d\tCluster %d\n",
id[i], x[i], y[i], age[i], km_c[i], hc_group);
}printf("\nComparison:\n");
printf("1. Both formed identical segments: {A,B,C} (Low Spenders) & {D,E,F} (High Spenders).\n");
printf("2. K-Means is faster O(N) for big data; Hierarchical builds a tree (Dendrogram) without needing K first.\n");return 0;
}Version 2: Full Modular Implementation with Dynamic WCSS & ASCII Plot (
customer_clustering.c)
For a complete, structured version that dynamically computes WCSS for $K = 1 \dots 4$, tracks K-Means convergence iterations, builds the Single-Linkage merge history, and renders an ASCII 2D scatter plot in the terminal:#include <stdio.h>
#include <math.h>
#include <float.h>#define N 6 // Number of customers
#define MAX_K 4 // Maximum K to test for the Elbow Methodtypedef struct {
char id;
double x; // Purchasing Frequency (Visits/Month)
double y; // Spending Score (Thousands)
int age; // Demographic Info (Age)
int kmeans_cluster;
int hc_cluster;
} Customer;// Euclidean Distance formula: sqrt((x2 - x1)^2 + (y2 - y1)^2)
double euclidean_dist(double x1, double y1, double x2, double y2) {
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}// Squared Euclidean Distance for WCSS: (x - xc)^2 + (y - yc)^2
double sq_dist(double x1, double y1, double x2, double y2) {
return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
}// Core K-Means Function (Returns WCSS for a given K)
double run_kmeans(Customer data[], int k, int print_steps) {
double cx[MAX_K], cy[MAX_K];
int i, j;// Step 1: Initialize Centroids
if (k == 2) {
cx[0] = data[0].x; cy[0] = data[0].y; // C1 = A(2, 2)
cx[1] = data[4].x; cy[1] = data[4].y; // C2 = E(8, 7)
} else {
for (i = 0; i < k; i++) {
cx[i] = data[i].x;
cy[i] = data[i].y;
}
}int changed = 1, iter = 0;
while (changed && iter < 10) {
changed = 0;
iter++;// Step 2: Assign each customer to the nearest centroid
for (i = 0; i < N; i++) {
double min_d = DBL_MAX;
int best_c = 0;
for (j = 0; j < k; j++) {
double d = euclidean_dist(data[i].x, data[i].y, cx[j], cy[j]);
if (d < min_d) {
min_d = d;
best_c = j;
}
}
if (data[i].kmeans_cluster != best_c) {
data[i].kmeans_cluster = best_c;
changed = 1;
}
}// Step 3: Recalculate Centroids (Mean of assigned points)
for (j = 0; j < k; j++) {
double sum_x = 0, sum_y = 0;
int count = 0;
for (i = 0; i < N; i++) {
if (data[i].kmeans_cluster == j) {
sum_x += data[i].x;
sum_y += data[i].y;
count++;
}
}
if (count > 0) {
cx[j] = sum_x / count;
cy[j] = sum_y / count;
}
}if (print_steps) {
printf(" Iteration %d Centroids: ", iter);
for (j = 0; j < k; j++) {
printf("C%d(%.2f, %.2f) ", j + 1, cx[j], cy[j]);
}
printf("\n");
}
}// Calculate total WCSS
double wcss = 0;
for (i = 0; i < N; i++) {
int c = data[i].kmeans_cluster;
wcss += sq_dist(data[i].x, data[i].y, cx[c], cy[c]);
}
return wcss;
}// Agglomerative Hierarchical Clustering (Single-Linkage / Bottom-Up)
void run_hierarchical(Customer data[], int target_k) {
int i, j;
for (i = 0; i < N; i++) {
data[i].hc_cluster = i;
}int current_clusters = N;
int step = 1;printf("\n--- 3. HIERARCHICAL CLUSTERING (AGGLOMERATIVE SINGLE-LINKAGE) ---\n");
printf("Dendrogram Merge Steps (Bottom-Up Approach):\n");while (current_clusters > target_k) {
double min_d = DBL_MAX;
int c1 = -1, c2 = -1;
int p1 = -1, p2 = -1;// Find the two closest points belonging to DIFFERENT clusters
for (i = 0; i < N; i++) {
for (j = i + 1; j < N; j++) {
if (data[i].hc_cluster != data[j].hc_cluster) {
double d = euclidean_dist(data[i].x, data[i].y, data[j].x, data[j].y);
if (d < min_d) {
min_d = d;
c1 = data[i].hc_cluster;
c2 = data[j].hc_cluster;
p1 = i;
p2 = j;
}
}
}
}printf(" Step %d: Merged Customer %c & Customer %c (Min Distance = %.2f)\n",
step++, data[p1].id, data[p2].id, min_d);for (i = 0; i < N; i++) {
if (data[i].hc_cluster == c2) {
data[i].hc_cluster = c1;
}
}
current_clusters--;
}// Normalize cluster IDs to 0, 1, ... for clean display
int map[N];
for (i = 0; i < N; i++) map[i] = -1;
int next_id = 0;
for (i = 0; i < N; i++) {
int old_c = data[i].hc_cluster;
if (map[old_c] == -1) {
map[old_c] = next_id++;
}
data[i].hc_cluster = map[old_c];
}
}// ASCII 2D Plot to Visualize Clusters in Terminal
void visualize_clusters(Customer data[]) {
printf("\n--- 4. 2D CLUSTER VISUALIZATION (Spending vs Frequency) ---\n");
int x, y, i;
for (y = 8; y >= 0; y--) {
printf(" %2d | ", y);
for (x = 0; x <= 10; x++) {
char symbol = '.';
int c_id = -1;
for (i = 0; i < N; i++) {
if ((int)data[i].x == x && (int)data[i].y == y) {
symbol = data[i].id;
c_id = data[i].kmeans_cluster + 1;
break;
}
}
if (symbol != '.')
printf("%c(C%d) ", symbol, c_id);
else
printf(" . ");
}
printf("\n");
}
printf(" +------------------------------------------------------------------\n");
printf(" 0 1 2 3 4 5 6 7 8 9 10\n");
printf(" Purchasing Frequency (X) ->\n");
}int main() {
Customer customers[N] = {
{'A', 2.0, 2.0, 22, -1, -1},
{'B', 3.0, 1.0, 25, -1, -1},
{'C', 4.0, 2.0, 24, -1, -1},
{'D', 7.0, 6.0, 40, -1, -1},
{'E', 8.0, 7.0, 42, -1, -1},
{'F', 9.0, 6.0, 45, -1, -1}
};int i, k;
printf("=================================================================\n");
printf(" RETAIL CUSTOMER DATASET \n");
printf("=================================================================\n");
printf("Cust\tFrequency(X)\tSpending(Y)\tAge (Demographics)\n");
for (i = 0; i < N; i++) {
printf(" %c\t %.1f\t\t %.1f\t\t %d yrs\n",
customers[i].id, customers[i].x, customers[i].y, customers[i].age);
}// 1. ELBOW METHOD
printf("\n--- 1. ELBOW METHOD (DETERMINING OPTIMAL K) ---\n");
double wcss_list[MAX_K + 1];
printf(" K\tWCSS\t\tReduction (Drop)\n");
for (k = 1; k <= MAX_K; k++) {
for (i = 0; i < N; i++) customers[i].kmeans_cluster = -1;
wcss_list[k] = run_kmeans(customers, k, 0);
double drop = (k == 1) ? 0.0 : (wcss_list[k - 1] - wcss_list[k]);
printf(" %d\t%.2f\t\t%.2f\n", k, wcss_list[k], drop);
}int optimal_k = 2;
printf(" >> Optimal Number of Clusters (Elbow Point) = %d (Sharpest WCSS drop of %.2f)\n",
optimal_k, wcss_list[1] - wcss_list[2]);// 2. K-MEANS CLUSTERING
printf("\n--- 2. K-MEANS CLUSTERING (K = %d) ---\n", optimal_k);
for (i = 0; i < N; i++) customers[i].kmeans_cluster = -1;
double kmeans_wcss = run_kmeans(customers, optimal_k, 1);// 3. HIERARCHICAL CLUSTERING
run_hierarchical(customers, optimal_k);// 4. VISUALIZE CLUSTERS
visualize_clusters(customers);// 5. COMPARISON OF BOTH TECHNIQUES
printf("\n--- 5. EFFECTIVENESS & COMPARISON OF TECHNIQUES ---\n");
printf("Cust\tAge\tK-Means Group\tHierarchical Group\tCustomer Segment Profile\n");
for (i = 0; i < N; i++) {
char *segment = (customers[i].kmeans_cluster == 0)
? "Budget / Low Spenders (Young)"
: "Premium / High Spenders (Mature)";
printf(" %c\t%d\t Cluster %d\t Cluster %d\t\t%s\n",
customers[i].id, customers[i].age,
customers[i].kmeans_cluster + 1,
customers[i].hc_cluster + 1,
segment);
}printf("\nPerformance Summary:\n");
printf(" * Final WCSS (Compactness): %.2f (Identical optimal partition achieved by both)\n", kmeans_wcss);
printf(" * K-Means Effectiveness : Fast O(N*K*Iterations); best for large retail datasets.\n");
printf(" * Hierarchical Effect. : Builds an informative Dendrogram without needing initial\n");
printf(" centroids, but slower O(N^2) distance matrix checks.\n");
printf("=================================================================\n");return 0;
}Compilation & Execution
Compile withgccand link the math library using-lm:gcc customer_clustering.c -o customer_clustering -lm
./customer_clusteringTerminal Output
=================================================================
RETAIL CUSTOMER DATASET
=================================================================
Cust Frequency(X) Spending(Y) Age (Demographics)
A 2.0 2.0 22 yrs
B 3.0 1.0 25 yrs
C 4.0 2.0 24 yrs
D 7.0 6.0 40 yrs
E 8.0 7.0 42 yrs
F 9.0 6.0 45 yrs--- 1. ELBOW METHOD (DETERMINING OPTIMAL K) ---
K WCSS Reduction (Drop)
1 75.50 0.00
2 5.33 70.17
3 4.00 1.33
4 2.00 2.00
>> Optimal Number of Clusters (Elbow Point) = 2 (Sharpest WCSS drop of 70.17)--- 2. K-MEANS CLUSTERING (K = 2) ---
Iteration 1 Centroids: C1(3.00, 1.67) C2(8.00, 6.33)
Iteration 2 Centroids: C1(3.00, 1.67) C2(8.00, 6.33)--- 3. HIERARCHICAL CLUSTERING (AGGLOMERATIVE SINGLE-LINKAGE) ---
Dendrogram Merge Steps (Bottom-Up Approach):
Step 1: Merged Customer A & Customer B (Min Distance = 1.41)
Step 2: Merged Customer B & Customer C (Min Distance = 1.41)
Step 3: Merged Customer D & Customer E (Min Distance = 1.41)
Step 4: Merged Customer E & Customer F (Min Distance = 1.41)--- 4. 2D CLUSTER VISUALIZATION (Spending vs Frequency) ---
8 | . . . . . . . . . . .
7 | . . . . . . . . E(C2) . .
6 | . . . . . . . D(C2) . F(C2) .
5 | . . . . . . . . . . .
4 | . . . . . . . . . . .
3 | . . . . . . . . . . .
2 | . . A(C1) . C(C1) . . . . . .
1 | . . . B(C1) . . . . . . .
0 | . . . . . . . . . . .
+------------------------------------------------------------------
0 1 2 3 4 5 6 7 8 9 10
Purchasing Frequency (X) ->--- 5. EFFECTIVENESS & COMPARISON OF TECHNIQUES ---
Cust Age K-Means Group Hierarchical Group Customer Segment Profile
A 22 Cluster 1 Cluster 1 Budget / Low Spenders (Young)
B 25 Cluster 1 Cluster 1 Budget / Low Spenders (Young)
C 24 Cluster 1 Cluster 1 Budget / Low Spenders (Young)
D 40 Cluster 2 Cluster 2 Premium / High Spenders (Mature)
E 42 Cluster 2 Cluster 2 Premium / High Spenders (Mature)
F 45 Cluster 2 Cluster 2 Premium / High Spenders (Mature)Comparing K-Means vs. Hierarchical Clustering for Customer Segmentation
CriterionK-Means ClusteringHierarchical Clustering (Agglomerative)Core ApproachCentroid-based partitioningConnectivity-based bottom-up mergingTime Complexity$\mathcal{O}(N \cdot K \cdot \text{Iterations})$ — Fast and linear$\mathcal{O}(N^2)$ to $\mathcal{O}(N^3)$ — Computationally heavyNeed to Pre-specify $K$?Yes (requires Elbow Method first)No (builds full Dendrogram; cut tree at any level)Sensitivity to InitializationSensitive to initial centroid choicesDeterministic — always produces the same treeBest Retail Use CaseLarge-scale customer databases (100k+ users)Smaller datasets where visual taxonomy/hierarchy mattersKey Takeaways
- Identical Optimal Partitioning: On well-separated spherical customer segments (
{A, B, C}vs{D, E, F}), both K-Means and Single-Linkage Hierarchical Clustering converge to the exact same groups with $\text{WCSS} = 5.33$. - When to Choose What: Use Hierarchical Clustering during exploratory analysis to discover nested customer relationships via a Dendrogram, and switch to K-Means in production pipelines when segmenting millions of retail transactions.
#c #machinelearning #algorithms #datascience #software #coding #development #engineering #inclusive #community
Implementing K-Means & Hierarchical Clustering in Pure C for Customer Segmentation -
EchoVault: I Built an Open-Source AI That Helps Forgotten Memories Live On
Some of the most valuable things we own aren't expensive devices or files stored in the cloud.They're the stories we hear from our grandparents. The recordings we make during family gatherings. The letters we keep but rarely revisit. The little details that seem ordinary today but become priceless years later.
And yet, these memories are surprisingly easy to lose.
Recordings remain buried in folders. Audio files are difficult to search. Handwritten notes get separated from their context. Eventually, the people who remember these stories might no longer be around to tell them.
For Hacktoberfest Week 4, I wanted to explore a different interpretation of Ghost in the Machine.
What if AI could help preserve the voices, stories and memories that time might otherwise erase?
That idea became EchoVault.
What I Built
EchoVault is an AI-powered memory archive designed to help people preserve, organize and rediscover personal stories.Instead of treating old recordings and written memories as files that simply sit on a device, EchoVault helps turn them into a searchable collection of stories.
The workflow is simple:
- Upload an audio recording or written memory.
- Transcribe supported audio recordings.
- Generate a concise summary and extract useful details.
- Save the original material alongside its transcript and metadata.
- Search the archive and ask questions about the saved stories.
- Create a remembrance page that brings the material together in a readable format.
The goal isn't to make AI replace the people behind these memories. It's to make their stories easier to preserve, revisit and share.
EchoVault is about helping memories survive, not pretending that AI can bring someone back.
Demo
In the demonstration, I'll upload a sample recording, show how EchoVault transcribes and summarizes it, and retrieve a detail from the saved story.I'll also demonstrate how the original recording and its generated content remain connected, so users can verify the archive entry against its source.
Code
The repository contains the application source code, setup instructions, model configuration, dependencies and documentation for running EchoVault.The goal is to make the project reproducible so other developers can experiment with the models, improve the archive workflow or adapt it to their own use cases.
How I Built It
I built EchoVault around Python, Streamlit and open-source AI tools.The architecture separates transcription, language-model processing, storage and retrieval so that each component can be tested independently.
1. Transcription
For supported audio recordings, EchoVault uses OpenAI Whisper running locally to convert speech into text.The transcript makes a recording searchable and gives the next stage a text representation to work with.
Transcription accuracy still depends on recording quality, accents, background noise and the languages supported by the selected model.
2. Memory extraction
An open-weight Gemma model processes the transcript and generates structured metadata such as a title, summary, key events and people mentioned.I designed this stage to distinguish the original story from AI-generated interpretations. The original transcript remains available for verification.
3. Searchable archive
EchoVault stores the original files and associated metadata, making it possible to revisit individual memories rather than repeatedly processing every recording.4. Grounded question answering
The question-answering feature retrieves relevant material from the archive and uses it to formulate an answer.Rather than treating the model as an unrestricted storyteller, the application is designed to ground responses in the saved records.
If a question cannot be answered from the available material, the system should say so instead of inventing a memory.
5. A human-centered interface
I used Streamlit to create an interface for uploading recordings, reviewing transcripts, exploring archived stories and generating remembrance pages.I wanted the experience to feel more like a digital archive than a generic chatbot.
This part of the project taught me that building a useful AI application involves more than prompting a model. Data handling, validation, retrieval and the way users verify generated content all matter.
Why Does Open Innovation Matter?
For a project dealing with personal memories, the choice of AI infrastructure matters as much as the interface.Privacy and control
Family recordings and personal stories can contain sensitive information.Running transcription and language models locally can reduce the need to send this material to external AI services. In a fully local configuration, recordings and generated content can remain on the user's device.
This is an architectural goal, not an automatic guarantee: the complete application must be checked for external network calls, telemetry, cloud storage and other data transfers before claiming that it is fully offline.
Freedom to experiment
Open-weight models give developers more flexibility to choose models, change prompts, compare performance and adapt the application to their requirements.For EchoVault, this means being able to experiment with different transcription and language models without designing the entire product around a single proprietary AI API.
Preservation beyond a single service
An archive should not become inaccessible simply because a hosted service changes its pricing, API or availability.Keeping original recordings, transcripts and metadata in portable formats makes the collection easier to back up and migrate independently of a particular model provider.
Making the technology accessible
A local-first approach can reduce dependence on recurring hosted inference charges, although users still need compatible hardware, storage and electricity.The larger point is that useful AI tools should be adaptable and understandable, rather than locked into an infrastructure that their users cannot control.
My Agent Session
I used python to implement and test EchoVault.The session documents the decisions, experiments and debugging steps that shaped the final application.
The Spirit of It
The theme Ghost in the Machine made me think about how technology interacts with memory.A recording is only a collection of bits until someone listens to it. A transcript is only text until someone recognizes the person, place or moment behind it.
AI cannot replace the human experience of remembering someone. It can, however, help make the material we leave behind easier to preserve and understand.
I want EchoVault to make it easier for someone to rediscover a story they had almost forgotten, find a detail in an old recording, or bring together memories that would otherwise remain scattered across devices.
The most meaningful result isn't an AI-generated story that sounds convincing.
It's helping someone find a real story worth remembering.
What's Next?
I'd like to explore better multilingual transcription, additional document formats, richer search, exportable remembrance pages and tools for organizing large collections of recordings.I also want to improve source attribution so users can move directly from a generated summary or answer to the original passage that supports it.
EchoVault began with a simple question: what if we could use open-source AI to help preserve the stories that matter to us?
My answer is a small step toward making personal archives more accessible, searchable and useful.
Because sometimes the most valuable thing an AI can do isn't generate something new.
It's help us hold on to something we already have.
devchallenge #hf26challenge
#devchallenge #hf26challenge #software #coding #development #engineering #inclusive #community
EchoVault: I Built an Open-Source AI That Helps Forgotten Memories Live On -
IMSS reporta estable a niño tras protesta en el hospital de La Raza
El IMSS reportó estable a un niño de cinco años hospitalizado en La Raza, luego de que sus familiares denunciaran presunta negligencia médica y bloquearan Circuito Interior para exigir atención urgente y respuestas sobre su estado de salud.
Por Gabriela Díaz | Reportera
Un niño de cinco años permanece estable y bajo vigilancia médica especializada en el Hospital General del Centro Médico Nacional (CMN) La Raza, informó el Instituto Mexicano del Seguro Social (IMSS), después de una protesta de sus familiares por presuntas deficiencias en la atención médica.
La manifestación comenzó durante la noche de este domingo 25 de octubre y continuó este lunes 26, cuando familiares del menor bloquearon Circuito Interior, en las inmediaciones del hospital, para exigir atención urgente, explicaciones sobre su estado de salud y una solución a sus demandas.
https://twitter.com/merazr/status/2114760534461415720?s=20
El caso generó afectaciones viales en la zona norte de la ciudad de México. La familia también solicitó el traslado del niño a otro hospital, al cuestionar la atención que, según su versión, había recibido durante su estancia en la unidad médica.
¿Qué ocurrió en La Raza?
La madre del menor, identificada en reportes periodísticos como Wendy Arteaga, denunció que su hijo presentó vómitos con sangre y complicaciones de salud que requerían atención inmediata. Según su testimonio, el niño había sido operado de apendicitis aproximadamente un año antes.
https://twitter.com/AztecaNoticias/status/2114767160941633947?s=20
La mujer también señaló que el menor habría presentado una complicación infecciosa después de aquella intervención quirúrgica. Sin embargo, estos antecedentes corresponden a la versión de la familia y no constituyen, por sí mismos, una determinación médica o legal sobre una posible negligencia.
Ante lo que consideraron una respuesta insuficiente del personal hospitalario, familiares y personas cercanas al niño se concentraron frente al nosocomio. La protesta se extendió a Circuito Interior y afectó la circulación vehicular durante varias horas.
IMSS informa sobre su estado
En su comunicación oficial, el IMSS señaló que el paciente pediátrico se encuentra estable, bajo vigilancia médica especializada y con evolución favorable. La institución también indicó que mantiene comunicación permanente con la familia y que garantiza la continuidad de la atención.
El reporte institucional ofrece una actualización sobre la condición del menor, aunque no precisa públicamente todos los detalles clínicos ni resuelve por sí mismo los señalamientos formulados por sus familiares.
La inconformidad se centró en la atención que, de acuerdo con la madre, el niño necesitaba ante el agravamiento de sus síntomas. La familia pidió respuestas sobre las decisiones médicas y solicitó que se valorara su traslado a otra unidad hospitalaria. –sn–
Sociedad Noticias¡Conéctate con Sociedad Noticias! Suscríbete a nuestro canal de YouTube y activa las notificaciones, o bien, síguenos en las redes sociales: Facebook, Twitter e Instagram.
También, te invitamos a que te sumes a nuestro canal de información en tiempo real a través de Telegram.
#NoticiasMX #PeriodismoParaTi #PeriodismoParaTiSociedadNoticias #atenciónMédicaInfantil #Azcapotzalco #bloqueoCircuitoInterior #Cdmx #hospitalLaRaza #IMSS #Información #InformaciónMéxico #México #Morena #noticia #noticias #NoticiasMéxico #NoticiasSociedad #pacientePediátrico #presuntaNegligenciaMédica #protestaEnLaRaza #seguridadHospitalaria #SN #Sociedad #SociedadNoticias #SociedadNoticiasCom #sociedadNoticias #SociedadNoticiasCom -
Día de Muertos | Marcas enfrentan el reto de respetar la tradición mexicana
El marketing del Día de Muertos enfrenta el desafío de preservar el significado cultural de la tradición mexicana ante la saturación publicitaria. Georgie de Barba, de Don by Havas México, plantea la necesidad de crear campañas auténticas y con valor social.
Por Deyanira Vázquez | Reportera
El uso comercial del Día de Muertos plantea un desafío para las marcas en México: generar ventas sin desgastar el significado cultural de una celebración dedicada a recordar a quienes han fallecido.
Georgie de Barba, presidente de Don by Havas México, advirtió sobre los riesgos de saturar la temporada con campañas publicitarias repetitivas, empaques temáticos genéricos y contenidos automatizados que utilizan símbolos tradicionales sin aportar valor cultural.
La discusión cobra relevancia ante el crecimiento económico de la festividad. La Confederación de Cámaras Nacionales de Comercio, Servicios y Turismo (Concanaco Servytur) estima que las celebraciones de 2026 generarán una derrama económica de 53 mil millones de pesos, alrededor de 7% más que el año anterior.
Marketing frente a la tradición
El Día de Muertos conserva un significado familiar y comunitario que trasciende el consumo. Las ofrendas, las flores de cempasúchil, las veladoras y los alimentos tradicionales forman parte de una conmemoración en la que distintas comunidades expresan su relación con la memoria y sus antepasados.
Sin embargo, la incorporación masiva de estos elementos a productos, anuncios y publicaciones digitales abre interrogantes sobre la manera en que las empresas representan una tradición cultural.
De Barba considera que participar en la temporada no constituye el problema central, sino hacerlo mediante propuestas que repiten fórmulas visuales sin establecer una relación auténtica con las personas.
El directivo planteó que las campañas deben ir más allá de aprovechar una fecha comercial y buscar formas de contribuir a la cultura, con mensajes que respeten el sentido de la celebración.
Inteligencia artificial y saturación publicitaria
La automatización de contenidos y el uso de recursos gráficos genéricos también forman parte del debate sobre la comunicación comercial durante esta temporada.
Para el responsable de Don by Havas México, la utilización de herramientas tecnológicas no sustituye la necesidad de desarrollar conceptos creativos con identidad y propósito.
En el planteamiento del directivo, una campaña pierde capacidad de diferenciación cuando numerosas marcas recurren a los mismos símbolos, colores y referencias culturales sin construir una propuesta propia.
Esta repetición puede reducir la conexión entre los consumidores y las empresas, además de convertir elementos vinculados con la memoria familiar en recursos publicitarios intercambiables.
El reto consiste en desarrollar mensajes que reconozcan la profundidad de la tradición y establezcan una relación más significativa con las audiencias. –sn–
Ofrenda de Día de Muertos¡Conéctate con Sociedad Noticias! Suscríbete a nuestro canal de YouTube y activa las notificaciones, o bien, síguenos en las redes sociales: Facebook, Twitter e Instagram.
También, te invitamos a que te sumes a nuestro canal de información en tiempo real a través de Telegram.
#NoticiasMX #PeriodismoParaTi #PeriodismoParaTiSociedadNoticias #Cdmx #Información #InformaciónMéxico #México #Morena #noticia #noticias #NoticiasMéxico #NoticiasSociedad #SN #Sociedad #SociedadNoticias #SociedadNoticiasCom #sociedadNoticias #SociedadNoticiasCom