Search
585 results for “spacer”
-
Saturn and 4 Icy Moons in Natural Color
This approximate natural-color image shows Saturn, its rings, and four of its icy satellites. Three satellites (Tethys, Dione, and Rhea) are visible against the darkness of space, and another smaller satellite (Mimas) is visible against Saturn's cloud tops very near the left horizon and just below the rings. The dark shadows o...
More: https://images.nasa.gov/details/PIA00400
Credit: NASA/JPL/USGS#dione #voyager #astrodon #astronomy #astrophotography #astrophysics
-
@osintleak have provided 4x Starter Licenses (1 month), and @usersearch_web 2.0 have provided 10 teams and 30 student participants with 1-month subscriptions to UserSearch.com.
The winners of OSINTLeak’s 1-month Starter plan is 0s1nt!
The winners of UserSearch’s 1-month subscriptions are: 0s1nt, Direwolfs, dorkingDork, Space Birds, ThreadPouncer, Grave-Diggers, UPJS, DragonByte Cyber at UAB, H1P1 and DUal Factor.
In addition, UPJS, ThreadPouncer, Space Birds, Grave-Diggers, and DUal Factor have won tickets to an upcoming Search Party event. 🙌
-
Voku & anarcho folk night with Commoner, Michael Turnini and Dungbeetle
Joe's Garage, Thursday, November 12 at 07:00 PM GMT+1
Voku at 19:00, music on the stage from 20:30 until 22:00 with Commoner, Michael Turnini, Dungbeetle. Free entrance, donations welcome.
Commoner, folk pop from UK, if Woody Guthrie was playing down your local skatepark... https://commonermusic.bandcamp.com/
Michael Turnini, acoustic skate punk from the little city of Shiner, Texas. https://michaelturnini.bandcamp.com/
Dungbeetle, banjo folk punk, soloproject from Belgium. Weaponised by their banjo, they sing songs about political causes and covers of folk legends. https://archive.org/details/dungbeetle-live-at-vrankrijk-in-amsterdam-ne...Volkseten Vegazulu is a people’s kitchens existing since the very beginning of Joe’s Garage, June 2005. Your donations are welcome. Food is vegan, no reservation. All benefits go to social & political struggles. Joe’s Garage is a space run by volunteers. Without a collective effort, without your active participation, we’re remaining closed. Get in touch in you feel like giving a hand. We’re always looking for cooks. Any help is welcome in the kitchen. Experience not required. If you want to know which days are still available, mail us
Since June 2005, Joe's Garage is an autonomous squatted political social center, a meeting place in the Transvaal neighborhood for squatters and non-squatters, subsidy free, not for profit, self-organized and entirely run by volunteers.
https://squ.at/joe
https://joe.squat.net -
Short answer: find people through work you can already click on, judge them by five specific pages instead of the homepage, and use the first call to ask what is not included. Those three habits filter out most of the bad options before money comes up.
Where to look
Start with sites you already use in your own industry. Scroll to the footer and look for a "site by" credit. If there isn't one, ask the owner who built it. A referral from someone whose site you can open and poke at is worth more than any directory listing.Other places that work:
- Industry associations, trade-show exhibitor lists, supplier newsletters — the people who serve the same kind of business you run tend to know each other.
- Freelance marketplaces and portfolio sites. Use them to collect names, not to decide. A platform rating is not evidence about your project.
- Your accountant, your chamber of commerce, a co-working space. Useful mainly when you want someone in your own timezone for calls.
What not to use as a filter: the lowest price, the longest list of services, and any promise about search rankings.
The five pages to open on every portfolio site
Their homepage is the page they spent the most time on. It is the least informative page they have.1. The busiest page. Find the page with the most repeated elements — a product listing, a services index, a team page. Ask yourself: does the layout hold with three items? With thirty? Does a long paragraph still read, or does the text run into the next block? This is the page that resembles your actual site.
2. The contact or enquiry page. Submit a test enquiry with your real email address. Did you get a confirmation? Did the form tell you clearly when you submitted it empty? A broken form on a developer's own site is the single most useful signal you will get, and it costs you two minutes.
3. The mobile version, on your phone, on mobile data. Not on their office wifi and not in a device simulator. Time how long until you can read the headline, tap the menu open, and try to fill the form with one thumb.
4. The second language, if you need one. Do not check whether the words are translated — check whether the pages are. Click three links from the translated homepage. Do they stay in that language, or dump you back into the default one? Does the product list show the same products?
5. The footer pages. Privacy policy, terms, cookie notice. If they build for customers in Europe or the United States and their own site has none of these, that tells you what will be missing from yours.
Two more checks, thirty seconds each:
- Open an address on their site that does not exist — add a few random letters to the end of a page address. A bare server error page means nobody is minding the details.
- Read one portfolio entry properly. Does it say what the client needed, what was built, and roughly how long it took? If every entry is a screenshot with no context, you cannot tell what they did and what was already there before they arrived.
One more thing worth doing: portfolios often include sites the person only partly worked on, or maintained rather than built. That is not dishonest, but it is worth asking directly — "what was your part on this one?" A straight answer is a good sign.
The first call: eleven questions
Ask these before you talk about price. The point is not to catch anyone out; it is to find out whether they have done this enough times to have opinions.1. Who actually does the work? A good answer names the person and says whether any part is subcontracted. A warning sign is "our team" with no names, or a salesperson who will not be involved after signing.
2. What do you need from me, and what happens if it arrives late? A good answer is a written list — logo files, company text, product photos, product data, hosting login — plus an explicit statement that the clock starts when the materials arrive, not when you pay. A warning sign is "just send whatever you have."
3. What will I see first, and when? A good answer is a live preview address with a date attached. A warning sign is "we'll send you screenshots."
4. How many rounds of changes are included, and what counts as a change? A good answer gives a number and a definition: text swaps and colour changes are one thing, a new page or a new feature is another. A warning sign is "unlimited changes" — that is not a policy, it is the absence of one.
5. What is not included? A good answer is a list: domain, hosting, business email, copywriting, photography, translation, ongoing updates. A warning sign is silence, or "everything is included."
6. Whose name is the domain and hosting in? A good answer is yours, from day one, and you get the login. A warning sign is theirs, "for management purposes." This is the most expensive mistake on the list — recovering a domain from someone who stops answering is slow and sometimes impossible.
7. Will I have admin access to the site when it's finished, and can I export the content? A good answer is yes, plus a plain explanation of what you will be able to change yourself. A warning sign is "you don't need access, we handle updates."
8. What happens after launch — what's covered, for how long, and what's billed extra? A good answer defines a window for fixing defects and a rate for everything after it. A warning sign is "free support forever", or no answer at all.
9. What is the timeline measured from? A good answer is a number of working days counted from the date your materials are complete. A warning sign is a confident "two weeks" said before they have seen your content.
10. What would make you turn this project down? A good answer names something real — a deadline they cannot hit, a platform that does not fit, a budget that does not match the scope. A warning sign is "nothing, we can do anything." Anyone who has done this for a while has walked away from something.
11. Can I speak to the client whose site you just showed me? A good answer is "I'll ask them" or "they've agreed to be a reference." A warning sign is every single project being off-limits.
Red flags and green flags
Red flags, in roughly the order they should worry you:- No written scope, or a scope that is one paragraph long.
- The domain and hosting stay in their name.
- A price far below everyone else, with no explanation of what was cut.
- Pressure to decide today.
- No preview address — screenshots only.
- Guarantees about search ranking, traffic, or sales.
- A portfolio where every site looks identical, and none of them is in your industry.
- They ask for the full amount up front.
- They cannot tell you what happens after launch.
Green flags:
- They ask about your business before they ask about colours.
- They can show you a site they built that is still running.
- They push back on something you asked for, and explain why.
- The exclusions are in writing before you ask twice.
- They name the person who will do the work.
Payment and paperwork
Two rules that solve most disputes before they start.Do not pay the full amount up front. Split it against things you can see: a deposit to start, a payment when the preview is up, the rest at launch. Milestones tied to deliverables beat milestones tied to calendar dates.
Get the scope in writing, including the number of pages, who writes the text, who supplies the photos, and what happens if you add a page later. If the document does not mention something, assume it is not included.
Before you contact anyone: thirty minutes of prep
Write these down and the conversation becomes much shorter:- One paragraph on what the business does, who buys, and the single action a visitor should take.
- Three sites you like, and one specific thing about each. Not "it looks nice" — "the product table fits forty items on one screen without scrolling sideways."
- The materials you can supply today, and the ones you cannot.
- A budget range, and a date you genuinely need it by.
- Two developers to get quotes from, not five. Comparing five quotes against a one-page brief teaches you nothing.
The quotes you get will only be as good as the brief you send. And a developer who asks you good questions is telling you they have been burned before — that is usually the one worth a second call.#career #freelance #webdev #software #coding #development #engineering #inclusive #community
How to vet a web developer before you pay: which pages to open, which questions to ask -
Arizona Labyrinth Connections @arizonalabyrinthconnections.wordpress.com@arizonalabyrinthconnections.wordpress.comSamhain, All Saints Day, All Souls Day
🎃Whispers of the Ancestors: Carrying the Light of Remembrance 💀
Día de los Muertos Creative Healing Workshop
A POP-UP OPPORTUNITY“In the darkest forest, the smallest gift of love can illuminate the path home.”
About the Workshop
As the veil thins during Día de los Muertos, we gather to honor those who came before us—our loved ones, our ancestors, and the enduring bonds that death cannot sever.
Join Robin B. Dilley, PHD, for a soul-nourishing creative journey centered around the tender Slavic folktale of Vasilisa the Beautiful and Her Magical Doll. In this timeless story, a dying mother leaves her young daughter a small, hand-crafted doll—a sacred family heirloom imbued with a mother’s protection, wisdom, and intuition. As Vasilisa embarks on a daunting journey filled with trials and shadows, the doll becomes her quiet guide, whispering light into the dark.
Grief and love are two sides of the same thread. Together, we will weave story, sacred craft, and remembrance to carve out time to:
Honor & Remember: Celebrate the stories, spirit, and memories of your departed loved ones.
Connect & Listen: Tap into ancestral wisdom and intuition as a source of comfort and guidance.
Heal & Transform: Transform grief into creative expression in a supportive, compassionate space.
Whether your grief is fresh or an old companion, this circle is an open hearth for your heart to rest and remember.
Event Details
- Date: Monday, November 2nd
- Time: 11:00 AM – 12:30 PM
- Location: Zoom
- Participation $35.00
- Pay Zelle:602-564-1919
- PayPal: CLICK HERE
What to Bring (Optional)
- A photo or small keepsake of a loved one or ancestor for our communal Ofrenda (altar).
- A journal and pen for personal reflection.
- Print Out of the Labyrinth Below
✨ Spaces are limited to keep our circle intimate. ✨
Reserve your spot today to step out of the everyday world and honor the roots that nurture your soul.
Reflective Labyrinth for All of You
7e1caa91-c189-4709-9d34-9057318c92e9.pngDownload #DayOfTheDead #grief #Labyrinths #PERSONALGOWTH #Samhain #spirituality #Storytelling #VasilisaSDoll #Workshops -
Persecuciones religiosas y mártires del siglo XX, Vicente Cárcel Ortí
El estudio de los conflictos del siglo XX suele enfocarse en las disputas económicas y territoriales, dejando en la sombra las batallas silenciosas que libraron millones de personas por defender sus creencias espirituales en la intimidad. El historiador valenciano Vicente Cárcel Ortí ofrece en este volumen una investigación documental profunda sobre los movimientos políticos que intentaron desaparecer por completo la fe en Europa y otras regiones del planeta. Apoyado en una cantidad impresionante de actas, cartas y archivos históricos que permanecieron bajo llave durante décadas, el autor saca a la luz los detalles de una de las olas de represión más violentas de la historia contemporánea.
El texto dedica sus páginas más detalladas a desmenuzar las operaciones del régimen socialista en la Unión Soviética y en los países que quedaron detrás de la cortina de hierro al terminar la Segunda Guerra Mundial. Las autoridades aplicaron un programa de ateísmo de estado que consideraba cualquier práctica religiosa como un crimen de traición, lo que desató una cacería brutal donde no importaban las edades ni las posiciones sociales de las víctimas. La obra rescata las historias particulares y las cifras de los miles de sacerdotes, religiosos y ciudadanos que prefirieron enfrentar los pelotones de fusilamiento o el desgaste inhumano en las minas de trabajo forzado del Gulag antes que firmar un papel renunciando a sus convicciones. Es una crónica indispensable para comprender hasta qué extremos puede llegar la intolerancia ideológica cuando se viste con el poder absoluto del estado.
— A. Eldritch, Periodista, Locutor, podcaster y bloger del fediverso
Alt text via @altbot y @TeLoDescribot
#RecomendaciónLiteraria #Historia #Libros #PensamientoCrítico #SigloXX #LibertadReligiosa
-
El libro negro del comunismo: Crímenes, terror, represión, Stéphane Courtois
Cuando pensamos en los grandes desastres del siglo XX, solemos enfocarnos en las batallas de las guerras mundiales, pero dejamos de lado los procesos internos que devastaron a sociedades enteras desde sus propios gobiernos. Este volumen, editado por un grupo de reconocidos historiadores europeos, ofrece un recorrido documental impresionante sobre los costos humanos de los regímenes de corte socialista a nivel global. A través de un uso impecable de los archivos oficiales que salieron a la luz después de la caída del bloque soviético, la obra desmenuza los mecanismos de control, el hambre provocada y los sistemas de campos de trabajo forzado que se cobraron millones de vidas en Europa Oriental, Asia y América Latina.
Uno de los apartados más crudos y detallados de la investigación se centra en la persecución que sufrieron las instituciones religiosas y sus creyentes. Las autoridades del régimen bolchevique vieron en la fe un enemigo ideológico directo, lo que desató una campaña violenta que incluyó la demolición de iglesias, la expropiación de todos los bienes de los templos y el arresto masivo de sacerdotes, monjas y laicos. El texto documenta con fechas y cifras exactas cómo el aparato del estado utilizó el terror para intentar erradicar las creencias espirituales de la población, enviando a miles de personas al Gulag simplemente por negarse a abandonar sus convicciones. Es una lectura indispensable para entender el lado más oscuro de la ingeniería social y la importancia de defender las libertades individuales frente al poder absoluto del estado.
— A. Eldritch, Periodista, Locutor, podcaster y bloger del fediverso
Alt text via @altbot y @TeLoDescribot
#RecomendaciónLiteraria #Historia #Libros #PensamientoCrítico #SigloXX #LibertadDeExpresión
-
This Body Time Combobulation
Mono's Bar, Friday, November 13 at 09:00 PM GMT
Time in Body & This Combobulation Association team up to present This Body Time Combobulation. Tickets live now on RA 🖤
Happening in Dublin's most punkest venue, Mono's Bar in Dalymount. We are absolutely stoked with the line up for this one. It's going to be another epic night in Bohs.
Featuring:
ZKELLIES (Live) (APT Records)
Maeve O'Neill
Richard B. (Industrial Lies)
ZKELLIES
ZKELLIES perform live techno played by hand & foot. It is music for dancing.
The ZKELLIES show is an attempt to perform techno music according to Steve Reich's principle of "no hidden structural devices". To this end, ZKELLIES utilise no backing tracks. No sequencers. No click track.
Longtime Irish underground music stalwart Andy Connolly (Naive Ted, Unscene) has enlisted the renowned pair of Dan Walsh (Fixity) & Killian Barton (Bill Karnation) to create a series of short musical phrases designed to be played by two drummers, moving between these phrases in the same way as a DJ builds a set, performing a perceived "faithful" version of loop-based, dancefloor focussed, techno music.
This particular strand of techno is traditionally created with sequencers controlling synthesizers & samplers. ZKELLIES is an attempt to take the sequencer out of the equation.
Though the music is semi-improvised & experimental in nature, there is no wish to subvert the norms of the techno space, only a desire to perform the music respectfully & in a different way.
It is music for dancing.
Maeve O'Neill
Renowned Irish electronic DJ known for relentless energy, hypnotic rhythms and expert use of acid lines. Has shared lineups with Eliza, Lolz, Gesloten Cirkel and ELLLL.
Richard B
30 years in electronic music, including 20+ years as techno editor at DJ Mag. Founder of First Cut and Industrial Lies. His vinyl sets range from new wave and Italo disco to jacking acid and raw Hague bangers.
Tickets
-
Noteworthy News From Raleigh October 25, 2026 Edition
Raleigh and the Triangle have plenty of noteworthy news to follow, from major passenger rail funding and affordable housing progress to new businesses, fall festivals and early voting deadlines. This DoRaleigh roundup brings together updates from Raleigh, Durham, Cary and Chapel Hill, along with North Carolina business and community headlines.
Raleigh Development, Transportation and Community News
S-Line passenger rail receives $550 million in federal fundingThe Raleigh-to-Richmond passenger rail project has reached another funding milestone. Federal transportation officials announced $550 million for the S-Line, supporting work toward a route expected to reduce travel time between the two cities by up to 90 minutes while increasing service and reliability. The funding advances the project; it does not mark the start of passenger service.
Source: U.S. Department of Transportation.
Affordable rental homes take shape in Southeast RaleighSoutheast Raleigh Promise is making progress on Promise 25, a development bringing 25 affordable rental homes to nine city-owned parcels. The city approved $3.3 million in gap financing for the project, which includes a mix of housing types. Initial homes have been completed, with the full project expected to finish by summer 2027.
Sources: City of Raleigh and WRAL.
Downtown South apartment plans move forwardKane Realty has filed plans for 350 apartments as the first phase of Downtown South, according to Raleigh Magazine. Construction is planned to begin by the end of 2026, making this a development to watch as Raleigh adds housing.
Durham park improvements face delaysPlanned amenities at Durham’s East End and Long Meadow parks will not begin construction this fall as originally expected. INDY Week reports that rising costs and design challenges have pushed the work back by approximately two years while officials pursue $15 million in federal grant funding.
Source: INDY Week.
Wake County receives farmland preservation fundingThe Wake County Soil and Water Conservation District received approximately $10 million in state funding tied to farmland protection and agricultural growth, according to CBS 17. The awards include $7.9 million for 12 projects and a separate $2 million award, with more than 600 acres slated for permanent protection.
Raleigh tracks progress toward 24,000 treesRaleigh’s goal is to reach 24,000 trees planted by 2032. The city’s Every Tree Counts initiative includes trees planted by residents, businesses and community partners, giving private-property plantings a role in the communitywide effort.
Source: City of Raleigh.
Midtown real estate forum set for October 27The Midtown Raleigh Alliance’s Real Estate Forum takes place Tuesday, October 27. Local real estate leaders will discuss housing trends, neighborhood development and projects shaping North Hills and Midtown, according to Raleigh Magazine.
Raleigh Restaurants, Nightlife and New Businesses
Low Bar Lounge opens beneath Whiskey KitchenLow Bar Lounge has opened below Whiskey Kitchen in downtown Raleigh. The underground venue offers cocktails, beer, wine and THC seltzers, with nightly service until 2 a.m. The space draws inspiration from a limousine company that once occupied the property and was previously home to digital art venue IMURJ.
Food industry professionals can also look for Sunday Family Meal, a rotating buffet offered Sundays at 5:30 p.m. for $20. Check with the lounge for current availability and participation details.
Sources: WRAL and Raleigh Magazine.
Sippin’ Santa returns to Wye HillWye Hill Kitchen & Brewing will host Sippin’ Santa from November 13 through December 31. The seasonal pop-up brings tropical holiday decorations and themed cocktails to the restaurant at 201 S. Boylan Avenue. Reservations are available through Wye Hill’s event page.
Details: Sippin’ Santa at Wye Hill.
South Block plans North Hills locationAcai bowl, smoothie and juice brand South Block is coming to 4121 Main at North Hills Street. Founded in Arlington, Virginia, the company plans to open beside bartaco in North Hills’ Main District during the first quarter of 2027.
Source: North Hills.
Raleigh construction executive backs luxury handbag brandCooper Tacia General Contractors CEO John Cooper has invested more than $1 million in Dadov, the luxury handbag company he co-founded with designer Islam Dadov, according to Triangle Business Journal. The brand debuted at Paris Fashion Week this fall and is exploring boutiques in Paris and major U.S. cities. A standalone Raleigh store is not currently planned, though Triangle retail placement remains a possibility.
Triangle Business, Technology and Education
Raleigh Founded enters a new chapterFormer executive directors Lauren Romer and Jess Porta are taking the lead through their new venture, Lotos Ventures, as Raleigh Founded’s original ownership group winds down operations at the end of October. The transition encompasses the North Street, Downtown Cary and Centennial Campus locations, continuing the coworking community’s mission of connecting entrepreneurs and businesses.
Source: Raleigh Founded’s announcement.
Loren Gold named next Visit Raleigh president and CEOLoren Gold will become president and CEO of the Greater Raleigh Convention and Visitors Bureau, also known as Visit Raleigh, on January 1, 2027. He succeeds Dennis Edwards, who is retiring at the end of 2026. Gold has served as executive vice president since 2007 and brings nearly four decades of hospitality experience.
Source: Visit Raleigh.
NC TECH recognizes industry leadersNC TECH announced eight recipients of its 2026 Individual Awards, including SAS CEO Jim Goodnight, Vantaca CEO Ben Currin and Charlotte CIO Markell Storay. The honorees will be celebrated November 16 at the Sheraton Imperial Hotel in the Research Triangle Park area.
Details: NC TECH Awards.
Pendo introduces Floor 404 puzzle gameRaleigh-based Pendo has launched Floor 404, a free daily puzzle game focused on improving AI agents. According to GrepBeat, players solve challenges by supplying virtual agents with better context, illustrating concepts behind the company’s Pendo for Agents platform.
Cary drugmaker announces FDA approvalAsahi Kasei Therapeutics announced FDA approval of Hovilpri, or pritelivir, for mucocutaneous herpes simplex virus lesions that are refractory to standard antiviral treatment in immunocompromised adults. The approval covers lesions with or without resistance to standard treatment. The company expects U.S. availability before the end of 2026.
Source: Asahi Kasei.
Duke and UNC place in WalletHub’s top 25Duke University ranked No. 14 and UNC-Chapel Hill ranked No. 24 in WalletHub’s 2027 Best Colleges and Universities rankings. The study compares institutions across factors including costs, student selectivity, campus experience and educational outcomes.
Source: WalletHub.
North Carolina ranks fourth for doing businessNorth Carolina placed No. 4 in Area Development’s 2026 rankings of the best states for doing business. The report highlighted strengths including innovation and research, manufacturing workforce skills, industrial site availability, government responsiveness and business costs.
New Bern entrepreneur wins startup fundingEntrepreneur Dan Spangler won $30,000 in the NC Small Business Center Network’s inaugural startup competition for Rinse-A-Poo, according to Business North Carolina. The ergonomic pet-waste cleanup product will use the funding to move from prototype toward production.
People, Science and Local Learning
Christina Koch takes NASA leadership roleNASA astronaut Christina Koch will become acting deputy chief engineer on November 1, helping oversee engineering across agency programs. Her experience includes the Artemis II mission and a 328-day stay aboard the International Space Station.
Source: NASA.
Wake libraries introduce free STEAM Lab programsWake County Public Libraries has launched STEAM Lab for students in third through fifth grades. Free, hands-on activities explore science, technology, engineering, art and math, with topics such as bridge design and geology. Families should check their branch’s calendar for sessions and participation details.
Millbrook staff help welcome a babyStaff at Millbrook Magnet High School helped a contracted security officer deliver her baby on campus, according to CBS 17. School officials reported that both mother and child were doing well.
Cyclist finishes 22,757-mile journey in RaleighJeff Molby completed a 22,757-mile bicycle journey in downtown Raleigh in October. His ride raised awareness of the American Cancer Society’s Road to Recovery program and the need for transportation assistance for people receiving cancer treatment.
Source: WUNC.
Upcoming Triangle Events and Important Deadlines
Wake County early voting ends October 31Early voting for the November 3 general election continues through 3 p.m. Saturday, October 31. Wake County voters can use any of the county’s 18 early voting sites. Check official locations, hours and available wait-time information before heading out.
Details: Wake County election information.
Pumpkin Palooza returns to Pullen ParkPullen Park’s Pumpkin Palooza runs Friday, October 30, through Sunday, November 1, from 10:30 a.m. to 4:30 p.m. The all-ages event features seasonal crafts, games and a digital scavenger hunt compass, with a train ride included. Tickets cost $14, and advance purchase is required.
Tickets and details: City of Raleigh.
Taste of China Festival comes to Cary November 7The annual Taste of China Festival returns to downtown Cary on Saturday, November 7. The free-to-attend celebration features Chinese food, cultural performances and community activities. Food and other purchases are separate from admission.
Details: Taste of China Festival.
Festifall Arts Market returns to Chapel HillThe 53rd Festifall Arts Market takes place Saturday, November 7, from noon to 5 p.m. at 100 E. Rosemary Street in downtown Chapel Hill. The free event features handmade goods, local artists and live performances, with pottery, jewelry, soaps, candles and more to browse.
Details: Chapel Hill Community Arts & Culture.
Banana Ball returns to Durham in June 2027The Loco Beach Coconuts and Firefighters are scheduled to play at Durham Bulls Athletic Park June 18–19, 2027. Fans can join the ticket lottery through October 31, 2026, for a chance to purchase tickets. Joining the lottery does not guarantee access.
Details: Banana Ball schedule and ticket lottery information.
Follow DoRaleigh.com for daily updates on government meetings, local festivals, and community happenings — your one-stop guide to everything Raleigh!
Connect With Us: Instagram | Facebook | BSky | Linkedin
Share With Us: Post your community News, Events, on our Submissions Page.
Advertise With Us: Interested in Advertising click here.Published by Bryan Tomlinson
Design, Optimization, and Marketing Services Provided by BTDesigns.pro
#AffordableHousing #BananaBall #CaryNews #ChapelHillEvents #DoRaleighNoteworthyNews #DurhamNews #events #Festifall #News #northCarolinaBusiness #PullenPark #RaleighDevelopment #RaleighNews #RaleighRestaurants #SLineRail #TasteOfChinaFestival #TriangleNews #WakeCountyEarlyVoting
Editor’s note: Opening dates, event details and development plans may change. Check with individual businesses, venues and organizations for the latest information. -
UltraNothing (post-punk / Luxembourg) + Easily Distracted by Ducks (punkrock) im Schokoladen Berlin
Schokoladen, Saturday, November 14 at 07:00 PM GMT+1
UltraNothing is a post-punk band from Luxembourg, formed in 2023. After the disbanding of their former band Office of Weird, Mich and Mig asked Pit whether he'd like to join them on drums in a new, undefined band. After more than a year of creating material and tireless rehearsals, in July 2024 they recorded their debut EP at Holtz Sound Studio and had Julien Rosenberger (L'Autre Oreille Studio) master the 4 tracks. UltraNothing's 10" vinyl EP was released on the 26th October 2024, during a gig at the Mix 'n' Kawa Bar in Esch-sur-Alzette, Luxembourg, with the support of instrumental noise rock band TVESLA and the up-and-coming band FULVOUS.
UltraNothing have nothing to add to the usual, standard litany of "punk" phrases and ideologies: of course, they are anti-racist, anti-fascist, anti-sexist and anti-everything else that discriminates people, however, as they see it, punk slogans and phrases unfortunately didn't leave much of a dent on the institutions and on the main causes of discrimination and suffering of people around the world during the past 50 years. Nevertheless, the trio are very much intent on grinding on ferociously and defiantly to the rhythm of modern fallacy in an empty ode to daily exhaustion, ennui, spleen and existential tiredness.
In 2026, UltraNothing and their friends from the Luxembourgish noise punk band GOFAI decided to collaborate on a joint split LP release. This time round, UltraNothing took a fully D.I.Y. production approach and had their tracks recorded, mixed and mastered by Christophe Rippinger, who also carries out bass duties with GOFAI. The tracks were recorded live on 28th February 2026 at his "Dip Space" studio in Kayl, which also doubles as GOFAI's rehearsal room. UltraNothing's offering in the new split LP consists of five previously unrecorded tracks: four older tunes and a more recent track.
The split LP is due for release on 23rd October 2026, at the Mix'n'Kawa Bar, Esch-sur-Alzette (Belval), Luxembourg.https://youtu.be/H4CazIcVf2Q?is=rR6IGA3hfXOMUR6F
https://www.instagram.com/ultra.nothingband
https://www.facebook.com/profile.php?id=61563845039096
https://soundcloud.com/ultranothing
https://ultranothing.bandcamp.com/Die Band Easily Distracted by Ducks liefert tanzbare, experimentelle Punk-Rock-Musik. Die vierköpfige Band aus Berlin spielt seit etwa drei Jahren und liebt es, vor Live-Mengen aufzutreten.
Mit ihren aneckenden Texten haben sie an über zehn lokalen Veranstaltungsorten in Deutschland und England gespielt. Wo sie die Aufregung und Kämpfe des Lebens in Berlin auf die Bühne bringen und der Ansporn herrscht, diese Gefühle in ein gemeinsames Musik- und Tanzerlebnis umzuwandeln.
Links:
https://easilydistractedbyducks.bandcamp.com/
linktr.ee/easilydistractedbyducksVideolink:
https://www.youtube.com/watch?v=J2k7yoyHhdMÜ16, Rollstuhlrampe vorhanden, Barrierefreie Toilette über den Hof
-
Small coding choices can make software easier to understand and maintain. One example in C# is how we initialize string properties in DTOs.
A DTO —Data Transfer Object— carries data between parts of an application. For example, it might carry a customer’s name from an API request into the application.
Consider these two approaches:
public sealed class CreateCustomerDtoWithNull
{
public string Name { get; init; } = null!;
}
public sealed class CreateCustomerDto
{
public string Name { get; init; } = string.Empty;
}
Both avoid the compiler warning about an uninitialized non-nullable property. Both initial values can be rejected by FluentValidation.But they create different starting states.
For required text fields where missing and empty values are treated the same, I prefer string.Empty: it gives the property an actual string value without suppressing a compiler warning.
The difference becomes clearer when we look at what each declaration means.
With nullable reference types enabled, string expresses the intention that a property should not contain null.
However:
public string Name { get; init; } = null!;
initializes that property with null.
The ! suppresses the nullable warning. It does not create a value, check anything at runtime, or guarantee that something will replace the null later. Microsoft explicitly documents that the operator has no runtime effect. Microsoft: null-forgiving operator.With:
public string Name { get; init; } = string.Empty;
the property starts with "": an actual string containing zero characters. It is different from " ", which contains a space. Microsoft: String.Empty.
This makes the initial state more consistent with the declared type. We have a string; we still need to check whether its content is acceptable.“FluentValidation can catch both” is correct.
For example:
using FluentValidation;
public sealed class CreateCustomerDtoValidator
: AbstractValidator
{
public CreateCustomerDtoValidator()
{
RuleFor(x => x.Name)
.NotEmpty()
.WithMessage("Name is required.");
}
}
For strings, NotEmpty() rejects all of these:
Value Result
null Rejected
"" Rejected
" " Rejected
"Maria" Accepted
This behavior is documented by FluentValidation and can also be checked in its implementation. FluentValidation documentation, NotEmptyValidator source code.The preference for string.Empty therefore concerns the object’s starting state and the clarity of the code.
It separates two responsibilities:
- Initialization: give the property a non-null starting value.
- Validation: decide whether the supplied content meets the requirements. A blank name is still invalid for creating a customer. Having a string value and having a valid customer name are different requirements.
Also, validation does not fill in the missing name. It reports the problem so the application can reject the request.
In an ASP.NET Core application using Clean Architecture, a straightforward execution flow is:
API receives the request
→ DTO is created
→ Application validates the input
→ Domain creates a valid customer
→ Infrastructure saves the customerThe Application layer can execute validation before continuing:
await validator.ValidateAndThrowAsync(dto, cancellationToken);
// Continue with customer creation only after validation succeeds.
The API must then translate validation failures into an appropriate response, such as HTTP 400 with useful error messages.The Domain should also protect its own essential rules when creating a customer. This keeps those rules effective when data arrives through another route.
Clean Architecture supports this separation of responsibilities. It does not prescribe a particular DTO initializer. Microsoft: common application architectures.
For a manager, the practical benefit is straightforward: clear starting states reduce the assumptions developers need to make. Reviewers can see what the object initially contains and where unacceptable input is rejected.
There are limits to this preference.
First, string.Empty only sets the initial value. Depending on serializer settings, an incoming JSON value such as "name": null can replace it. External input still needs validation. Microsoft: nullable annotations in System.Text.Json.
Second, sometimes null carries useful information. If a DTO should accurately represent missing input, a nullable property can be more appropriate:
public string? Name { get; init; }
The business rule can still require a name. The nullable type acknowledges that an incoming request may fail to provide one.
There are other reasonable designs too. Maarten Balliauw discourages using default! to silence warnings in JSON DTOs and discusses alternatives such as nullable properties, constructors, and required. His article supports avoiding hidden assumptions, rather than a universal preference for empty strings. Maarten Balliauw: nullable warnings in JSON models.
Ian Griffiths provides a useful counterargument: an empty string can also hide missing meaningful data if it is added simply to silence the compiler. This matters especially when objects are expected to be valid immediately after construction. Ian Griffiths: defeating the point with empty strings.
My preferred team convention is therefore:
For input DTOs where missing and empty text have the same meaning, use string.Empty and validate required content with NotEmpty(). Use nullable properties when absence matters. Use null! when there is a specific, justified initialization guarantee.The aim is to keep the declared intention, actual starting value, and validation rules consistent—and easy for the next person to understand.
[email protected]#coding #csharp #dotnet #softwaredevelopment #software #development #engineering #inclusive #community
Why I Prefer string.Empty Over null! in Input DTOs -
The Art of Less Is a Book About Seeing More, Not Having Less
Back in August, I wrote about this new gestalten book before it was even released. Thanks to the lovely people at gestalten, who sent me a copy, I’ve now had the pleasure of spending the past few weeks with it. Although I received a complimentary copy of the book, everything I write about it in this review reflects my own personal opinion.
The international edition has been available since September 1, 2026, and the US edition follows today, October 27. Christmas shoppers still have weeks to order. Feeds refresh faster than anyone can read them, so a book that asks for two hands and a quiet hour feels almost radical right now.
Order the book from gestalten. Order the book on Amazon.The Art of Less: An Exploration of Essence is a 320-page hardcover published by gestalten. Jonas Bjerre-Poulsen of Norm Architects and Sarah Dorweiler of Aesence edited it, and it profiles twenty international creatives across five chapters.
The Art of Less: An Exploration of Essence—a gestalten book review by Dirk Petzold.Is The Art of Less Worth $100?
Yes. I would pay full price, and I would gladly buy a second copy as a gift.
I judge minimalist work with a rule I call the Presence Test. A piece passes when removing one more element would drain it of presence. In my experience, many minimalism books fail. Their pages look quiet, yet their ideas stay thin.
The Art of Less passes. I could not find a single page I wanted to cut.
The price still invites suspicion, and it should. At $100, €70, or £60, this hardcover asks for real commitment. Two things justify that commitment. One is the object. The other is the argument.
What Is The Art of Less About?
The book treats minimalism as a sensory and intellectual practice. The editors argue that the urge to reduce grows stronger when life feels overloaded. They call it a human reflex, and they back that claim with twenty examples. The examples come from art, architecture, and design, so the argument never stays in one discipline. Each profile tests the same idea from a different angle. Restraint, in this book, produces presence. That is a sharper thesis than the old line about less being more.
The claim sounds abstract until you apply it. Think about the last time your inbox and your feed demanded you at once. Did you crave more input, or less?
Sarah Dorweiler founded Aesence more than ten years ago, and this is her first book. Jonas Bjerre-Poulsen leads Norm Architects, the Copenhagen studio founded in 2008. Norm Architects had already published Soft Minimal and Stillness with gestalten, and Dorweiler took the photographs for Stillness. That shared history shows.
The collaboration reads like a conversation between two people who have studied the same quiet things for years. A practitioner and a curator rarely write the same book. Here, they do.
The Five Lenses Behind the Argument
Five chapters organize the twenty profiles. Each chapter acts as a lens, and each features four creatives.
- Balance with Nicolas Schuybroek, Danielle Siggerud, Nuria Maria, and Tycjan Knut
- Contrast with Tatsuro Miki, HENRYTIMI, Lee Ufan, and Rahee Yoon
- Materiality with Cédric Etienne, Christian + Jade, Maverick Lee, and Antonia Ferrer
- Rhythm with Liam Stevens, Studio MK27, Krista Mezzadri, and Maria Yelletisch
- Space with Álvaro Siza, John Pawson, Ylva Carlgren, and Tom Holden
Four profiles per lens is a smart limit. It keeps every chapter tight and gives each creative room to breathe.
The Art of Less: An Exploration of Essence—a gestalten book review by Dirk Petzold.How Does The Art of Less Feel in Your Hands?
Binding and Cover
The Art of Less measures 24.5 × 33 cm, or 9¾ × 13 inches. Retailer data puts the spine at about 3 cm. The 320 pages are stitch-bound.
Stitch binding matters at this size. Sewn signatures usually outlast glued spines, so a heavy book like this one should survive many openings.
The cover stays calm. A pale greige surface carries a small title and a small inset photograph of a black rock framed by a dark doorway. The rock is an artwork by Kimsooja, according to gestalten. Nothing on the cover shouts. That restraint sets the tone before you open the book.
The Handling Tax
Precious books charge what I call a handling tax. You pay it in hesitation, because every touch risks a crease or a stain. The Art of Less charged me that tax, and I paid it gladly. I turned each page with care and left no marks on paper or cover. I found no flaws in the print or the cover.
The tax even fits the theme. Slow handling forces slow reading, and slow reading is what a book about restraint deserves.
Photography That Does Real Work
The photographs are perfect. I would not change one of them.
A book about presence depends on its pictures. One busy image would contradict the text at once. Here, every image supports the argument, and the large format gives each one room. Screens flatten texture. Paper at this size restores some of it.
The writing deserves its own mention. It reads beautifully from the first page.
Order the book from gestalten. Order the book on Amazon.Why Does the Artist Selection Work So Well?
The artist selection is the smartest decision in the book. The editors place established masters beside younger names, and the pairing produces friction in the best way.
Álvaro Siza won the Pritzker Prize in 1992, and John Pawson designed the Novy Dvur monastery in the Czech Republic, so anyone who studied architecture already knows how much silence these two can build into stone and light.
Lee Ufan, a leading voice of the Mono-ha movement, adds sculpture built on elemental tension. The publisher singles out that tension as a signature of his work.
Younger names such as Tycjan Knut in Balance and Rahee Yoon in Contrast sit beside these giants without apology. That placement argues that minimalism remains a living practice.
The map matters too. Siza built his career in Porto, and Studio MK27 works from São Paulo. Minimalism looks different in each climate, and the book lets those differences show.
How Does The Art of Less Compare With Earlier Minimalism Books?
John Pawson’s Minimum, published by Phaidon in 1996, set the visual template for the genre. It showed readers what reduction looks like.
Norm Architects’ Soft Minimal went further inside one studio. It explains how the team thinks and designs.
The Art of Less widens that view to twenty creatives. It also asks what reduction does to the person standing in the room. That question sets it apart from every minimalism book on my shelf.
Where Does Minimalism Go Next?
I expect this book to influence how publishers pitch minimalism. Two changes seem likely by the end of 2027.
- More minimalism titles will present themselves as tools for attention and drop the style-guide angle.
- Heavy, tactile print will gain ground against feeds. Gestalten’s own media pitches for this book stress the rising demand for haptic, physical experiences.
I could be wrong about the pace. I doubt I am wrong about the direction.
Here is a definition worth quoting. Sensory minimalism, as I define it, is the practice of reducing a space or an object until what remains holds more attention than the whole once did.
How Should You Read The Art of Less?
Read it in five sittings. I call this the One-Lens Evening. Take one chapter per sitting, and leave your phone in another room.
Look at each photograph before you read its text. Then read the text and look again.
Is The Art of Less a Good Christmas Gift for Architecture Lovers?
Yes. I can’t think of a better gift for anyone who loves art and architecture, and designers will treasure it too.
The list prices are €70 in Germany, £60 in the UK, and $100 in the US. Gestalten’s shop lists free shipping above $49 in the US and above €29 in the EU. Order by mid-November if you want to wrap it before Christmas.
Who Should Skip It?
Skip it if you want a decluttering manual. The book is built around twenty profiles, so it offers examples and ideas. Buy something else if you need a ten-step system for your closet.
The Art of Less at a Glance
DetailInformationTitleThe Art of Less: An Exploration of EssencePublishergestaltenEditorsJonas Bjerre-Poulsen (Norm Architects) and Sarah Dorweiler (Aesence)Format24.5 × 33 cm (9¾ × 13 in)Pages320, full colorBindingHardcover, stitch-boundLanguageEnglishPrice€70 (Germany), £60 (UK), $100 (US)ReleaseInternational: September 1, 2026. USA: October 27, 2026ISBN978-3-96704-245-0StructureFive chapters, twenty creatives, four per chapterCover artworkBlack rock by KimsoojaMy verdictWorth the price. I found no flaws.Best forArt and architecture fans, and designers Order the book from gestalten. Order the book on Amazon.Frequently Asked Questions About The Art of Less
Is The Art of Less worth buying?
Yes. After several weeks with the book, I found no flaws in the print or the cover, and the photography holds up page after page. At $100, it costs more than most design books, but it passes my Presence Test.
Who edited The Art of Less?
Jonas Bjerre-Poulsen of the Copenhagen studio Norm Architects and Sarah Dorweiler, founder of the minimalist art publication Aesence, edited the book for gestalten. It is Dorweiler’s first book.
What are the five chapters of The Art of Less?
Balance, Contrast, Materiality, Rhythm, and Space. Each chapter profiles four creatives.
How much does The Art of Less cost?
The list price is €70 in Germany, £60 in the UK, and $100 in the US. Gestalten’s shop lists free shipping above $49 in the US and above €29 in the EU.
When does The Art of Less come out in the US?
The US edition publishes on October 27, 2026. The international edition has been available since September 1, 2026.
Is The Art of Less a how-to guide to minimalism?
No. The book follows twenty profiles of creatives and offers examples and ideas. Readers who want a decluttering system should look elsewhere.
Where can I buy The Art of Less?
You can order it from the gestalten shop or from Amazon.com. Independent bookstores can order it too, and the ISBN is 978-3-96704-245-0.
Browse WE AND THE COLOR’s Books category for more.
Subscribe to our newsletter!
#architecture #art #artists #book #books #Gestalten #interiorDesign #lessIsMore -
A campaign lands in your lap and the numbers are flat. The button says "Submit." The page is three paragraphs of feature copy above the fold. You have one experiment slot this sprint, one shared traffic budget, and two candidate changes that both look obviously wrong.
So which one do you ship first?
The useful answer is neither "test both" nor a coin flip. The two changes answer different questions, and one of them is usually wasted if you run it in the wrong order.
The two problems look identical in a dashboard
Both failures surface as the same line: campaign traffic arrives, signups don't happen. To separate them, split the funnel into two questions.- Does the page earn attention? Can a first-time visitor understand the offer within the first screen?
- Does the ask earn commitment? Once the value is clear, is the action obvious, specific, and low-friction?
The first question is about the landing page. The second is about the call to action. A dashboard that only tracks sessions and signups cannot tell you which one broke.
A diagnostic table before you write any code
What the data showsLikely causeWhere to startMost sessions end within a few seconds; low scroll depthThe page does not match the promise in the adLanding pageDeep scroll, pricing or docs section viewed, few form startsThe ask is vague, buried, or costlyCall to actionMany form starts, few completionsForm frictionNeither. Fix the formLow engagement and low action, traffic source unclearTargeting or message mismatch upstreamNeither. Fix the campaign
That last row matters more than it looks. If the audience arriving from the campaign was never a fit, no amount of button rewording or hero-copy polishing will rescue the page. Fixing the targeting is cheaper than any experiment.Why the order matters more than the individual change
A call to action is read in the context of the headline, the proof, the price, and the surrounding copy.That produces two ordering rules.
Rule one: a button cannot fix a page that never establishes value. If visitors leave before they understand what they are being asked to do, a sharper label has nothing to attach to. You will measure noise and conclude that labels do not matter.
Rule two: do not optimize a component you are about to replace. If a page rewrite is already on the roadmap for this quarter, running a careful label experiment on the current page is a throwaway. The result will not transfer to the new layout, because the context that produced it no longer exists.
The second rule is the one teams break most often, because label experiments are fast to ship and feel productive.
Do the math before you commit to either
A small change usually produces a small effect, and a small effect demands a large sample. A page rewrite can plausibly shift behavior by several points; a button label change often moves it by a fraction of one.A quick calculation, runnable in any Python environment, shows how steep that difference is:
import math
def sessions_needed(p_control, p_treatment, alpha=0.05, power=0.80):
z_a = 1.959963985
z_b = 0.8416212336
p_bar = (p_control + p_treatment) / 2
spread = (z_a * math.sqrt(2 * p_bar * (1 - p_bar))
+ z_b * math.sqrt(p_control * (1 - p_control) + p_treatment * (1 - p_treatment))) ** 2
print(math.ceil(spread / (p_treatment - p_control) ** 2))sessions_needed(0.04, 0.045) # a 0.5-point lift on a 4% baseline
sessions_needed(0.04, 0.06) # a 2-point lift on the same baselineOn a 4% baseline, detecting a 0.5-point improvement at 80% power takes roughly 25,000 sessions per arm. Detecting a 2-point improvement takes roughly 1,900. Same campaign, same page, a thirteen-fold difference in required traffic.
Two conclusions follow. First, if your campaign delivers a few thousand sessions a month, a micro-optimization of the button label is probably not measurable, no matter how good the label is. Second, the size of the expected effect should drive the choice of experiment far more than how easy the change is to ship.
A default order that holds up in practice
- Verify the instrumentation. One exposure event per session, assignment logged server-side rather than inferred from a query parameter, internal traffic excluded, bots filtered. Every downstream conclusion inherits the quality of this step.
- Check message match. Put the ad headline next to the page headline. If they describe different things, stop here.
- If message match fails, run the landing page experiment first. Change the hero, the offer framing, or the proof: the elements that determine whether a visitor stays long enough to be asked anything.
- If message match holds and engagement looks healthy, run the call-to-action experiment. Label, placement, and the one or two lines of supporting copy next to it.
- Re-run the call-to-action experiment after any page rewrite. Treat the old result as historical, not as a default.
Step 4 is where a lot of teams want to start, and it is a legitimate starting point, but only when the diagnostic in the table above says the page is already doing its job.
Track what happens after the action, not just the action
A call to action that increases signups while filling the pipeline with people who never come back is a net loss. Before you run either experiment, decide on guardrail events and log them alongside the primary metric:// One exposure event per session, emitted once and cached client-side
trackEvent("experiment_exposure", {
experiment_id: "cta_copy_q3",
arm: "specific-verb",
campaign_id: "launch_aug",
});// Downstream quality signals, tied to the same session
// activation_started, first_key_action, repeat_usage_7dIf the primary metric moves up and a guardrail moves down, that is a trade-off that needs a decision. Guardrails are especially important for landing page experiments, because a page that over-promises will inflate the action rate and damage downstream quality.
Do not change both at once
Running a page experiment and a call-to-action experiment simultaneously on the same traffic makes the result unreadable. You cannot tell whether the change came from the page, the ask, or the interaction between them.If you genuinely need both answers and have the traffic to support it, use a factorial design: four arms, so every page version is paired with every call to action. The interaction term is often the most interesting number in the output, because it tells you whether a strong page makes the label irrelevant. The cost is roughly four times the traffic of a two-arm experiment.
For most campaigns, sequential experiments are the practical choice: page first, then the ask, with each experiment consuming a pre-committed block of traffic. Avoid switching between them mid-run based on how the numbers look.
Link hygiene when campaign traffic is split
If you are routing campaign traffic between page builds and call-to-action experiments, the link you publish becomes part of the workflow. Campaign copy already competes for space with a headline and a button, and long parameter-heavy URLs wrap badly in chat apps and social posts. A short link such as LinkBit keeps the destination compact and readable in the creative. That is a formatting convenience. Your experiment assignment should live in your own instrumentation, not in the link.The short answer
Run the landing page experiment first when the funnel shows that visitors never engage, when message match is broken, or when a rewrite is already planned. Run the call to action first when the page is doing its job and the ask is the weak link, and only when your traffic is large enough to detect the smaller effect you are likely to see.Before either, confirm what your instrumentation measures. Most experiment programs that stall are running careful changes on a funnel they cannot see.#experimentation #conversionrate #landingpages #webanalytics #software #coding #development #engineering #inclusive #community
Should You A/B Test Your Call to Action or Your Landing Page First? -
Blog: What the Heck is With the Malfoid Meme?
Generally, I am not a fan of fanfiction. In theory, it’s an excellent way to learn how to write stories and characters, and it serves as a creative outlet. Heck, when I started learning how to write stories as a small child, I was largely writing fanfiction. And, in some cases, the fan’s work may even be so good that it rivals the original work that it was based on.
In practice, however, as beneficial as fanfiction might be for developing writers, it has become largely synonymous with degeneracy with how much of it is smut. Just look at 50 Shades of Grey, which started as a Twilight fanfic, but ended up becoming a best seller infamous for being porn geared towards women. Or the Harry Potter fanfic My Immortal, which has become a meme for its poor grammar and spelling, laughably edgy main character, and, naturally, smut-laced plot lines.
I could go on with even more examples of famous fanfics – some of which have even been published as books- that give fanfiction a bad name. However, within this quagmire of filth are a few hidden gems. A recent example of this was The Other Bennet Sister, a delightful Jane Austen fanfic available on Amazon that focuses on Mary Bennet, the often-forgotten sister of Elizabeth and Jane Bennet in Pride and Prejudice. It’s a fun, cute story that does justice to Jane Austen’s work and explores a character who plays a minor role in the novel, giving her her own voice and storyline.
However, besides The Other Bennet Sister, there is a new fanfic that has taken the Internet by storm and that is the Malfoid trend. At first, I had no idea what the heck it was or why I was getting recommendations for it on my For You page. I thought it was just another Harry Potter fan coming up with a gender-bent Draco Malfoy x Harry Potter fanfic, which is nothing really special. That ship has been a thing for years. I had no idea what the hype was about or why major streamers like Nux Taku were reacting to it.
Then I went on a deep dive after hearing about how important this Malfoid movement has become to Gen Z men.
Apparently, the Malfoid trend started when a fan artist drew a picture of Draco Malfoy as a female and named her “Malfoid” back in 2024. The name itself was interesting because in internet slang, “foid” has come to mean “biological woman.” Thus, it’s been argued that Malfoid isn’t necessarily a gender-bent version of Malfoy from the books/movies but is her own new character that replaces him.
From there, the original Malfoid picture has gone viral as people have used her to create the ideal heterosexual fanfic between her and Harry Potter, that in many ways improves upon the original story. The entire dynamic is changed between Harry and Draco, now that Draco is a biological female. Malfoy’s petty and effeminate actions make more sense in the context of the character being biologically female, and in the case of a relationship between Malfoid and Harry, the fandom says that it makes a more compelling love story than the one we get in the books or movies.
As for this love story, it has been surprisingly wholesome. Though fanfiction is notorious for being disgusting, any sexualization of Malfoid by the internet (particularly by OF girls) has been largely rejected by the men who are the primary fanbase of this trend. They love the story for its traditional gender roles, compelling romance, and culmination in marriage and a family, and see the sexualization of Malfoid as a middle finger to that. One X user even went so far as to say:
Another X user also explained in detail what the Malfoid trend rules are, saying:
Okay. So let’s lay out the rules then.
- Malfoid was born female, has always been female, and at no point was ever male or has memories of being male. Since being born, she has grown up as a girl, and Heiress of House Malfoy.
- The tags name is Malfoid. not galfoy, not Drarry (Gayyyy), not Malfoy. Malfoid. We are not changing it. If it offends you, that is the POINT.
- Malfoid is about a resurrection of the Mytho-Poetic romantic love story. The kind of story where a noble man and noble woman come together to complete one another. There’s some mutual saving involved, and it is principally a chaste and wholesome relationship.
- Sexifying, pornifying, slutifying characters within the Malfoid tag runs directly counter to the intentions of rule #3, and if you think that the Malfoid movement is the place for your slut like whorecrux behavior, you are wrong and need to go be a slutblood somewhere else.
- Malfoid is not a “GENDER BEND”, because there was no male Draco at any point. Malfoid is the wholesale replacement of Draco as a character with a female who is occupying the same space, with a similar (But not identical) attitude as Draco. Malfoid is a “Gendered replacement”. There’s no transforming men into women, Malfoid is not Transgender as she was born Female and always have been.
- The Malfoid tag is not about swapping all the characters genders, making a Harem anime, or producing a show of Harry having lots and lots of women to choose from because suddenly his best friend or dark arts teacher are suddenly female. This runs counterproductive to rule #3, as it dilutes the chasteness and wholesomeness of the Mytho-Poetic Romance that is predicated upon the singular love between two singular people.
- Malfoid is considered a “Cultural Moment” within a sub-culture that is very large. If you are only here to s*** on everyone’s parade by saying how irrelevant or insignificant fan culture is, or how fanfiction is a waste of time, or any such nonsense… you can save your breath, we’ve all heard it before. Go and spend your efforts at demoralization and deconstruction elsewhere.
- The Malfoid change to the story is integrated, adaptive only in how it enhances, fulfills and maintains the overall story of Harry Potter. Adaptations that improve narrative beats, enhance lore integrations or resolve standing plot points that weren’t resolved or were resolved in a dis-satisfying way are preferred over vast departures from this sort of canon repurposing of the fiction. While the purpose is NOT to deviate out of the genre or feel, sheer fun and humor is welcome, provided they attempt to adhere as best they can to rules 1-7.
- Malfoid is traditional in its romantic sensibilities, and by this nature, is ostensibly a RIGHT LEANING movement. There are many conservative and religious values wrapped up in the narrative tropes and underpinnings of the story, in and of itself, as well as the romantic resolutions between Malfoid and Harry.
Now, does this mean that there is absolutely no sexualization of Malfoid within this trend? No. Unfortunately, while doing research about this topic on X, I ran across several posts where the character was absolutely hypersexualized (which is disturbing given that the character is technically a minor even in the fanfic). Thankfully, most of the comments were reacting with disgust towards the creator putting the content out there.
Moving on from that, however, the love of the story for its overall wholesomeness has caused the tagline of this fanfic to be “Yearn.” It is an encouragement for men to yearn for the good in the world and the things beyond themselves. It’s not there to fulfill a man’s fantasy as we so often think of it. It’s become a cultural wakeup call to get men to rise up and fulfill their higher fantasy of providing for and protecting a woman. It accomplishes this by being a traditional romance story, where both the man and woman are virtuous, and through their love, defeat evil. Malfoid, though still portrayed as powerful, is still in need of Harry.
Even better is that this story is not only inspiring men and women to put themselves out there and work to become the best they can be, but it’s also helping them become creative again. Almost everyone in the new Malfoid fandom is getting in on writing fanfics, adding to the story, and even creating short episodes of what a Malfoid T.V. show would look like using AI. And, frankly, the AI episodes of the Malfoid saga really make me think Hollywood is doomed because while you can tell its AI, people have been given the power to make the adaptations and stories that they want to see for a relatively low price.
Until next time,
M.J.
#Blog #BookReview #Books #Fanfiction #fiction #HarryPotter #JKRowling #Malfoid #Memes #OpinionPeice #Review #Writing #X -
DATE: October 26, 2026 at 09:00AM
SOURCE: PSYPOST.ORG** Research quality varies widely from fantastic to small exploratory studies. Please check research methods when conclusions are very important to you. **
-------------------------------------------------TITLE: Playing video games with trusted friends may reduce addiction risks
URL: https://www.psypost.org/playing-video-games-with-trusted-friends-may-reduce-addiction-risks/
Video game developers constantly look for ways to keep players returning to their games without fostering unhealthy behavioral dependencies. Recent research published in Computers in Human Behavior reveals that playing video games with a trusted, familiar group of people can build player loyalty while simultaneously reducing the risk of video game addiction. These findings suggest that the social environment within a digital game plays a powerful role in determining whether a gaming habit remains a healthy pastime or becomes a psychological burden.
The video game industry faces a persistent tension between business goals and social responsibility. Companies rely on player loyalty, which describes a gamer’s intention to keep playing and recommending a specific game to others. At the same time, the industry faces scrutiny over video game addiction, a clinical syndrome characterized by a loss of control over gaming habits despite negative consequences in daily life.
Past studies have identified factors that contribute to addiction, such as social isolation, and factors that boost loyalty, like customized digital avatars. Few researchers have investigated how specific social dynamics inside a game might influence both outcomes at the same time. A team of researchers led by Shih-I Tai, a management scholar at Chang Gung University in Taiwan, wanted to find out if specific types of group interactions could help secure a player’s devotion to a game without pushing them toward maladaptive behavior.
To understand how the social environment alters a player’s mental state, the researchers looked at two established psychological frameworks. The first is the pleasure-arousal theory, which separates emotions into two dimensions. One dimension tracks how pleasant an experience feels, while the other tracks how much it stimulates or arouses the person.
The second framework is brain reward circuitry theory. This theory suggests that pleasure and arousal activate entirely different neural pathways in the human brain. According to these frameworks, feelings of comfort, harmony, and contentment increase pleasure but lower physical and emotional arousal.
In contrast, surprises and intense excitement boost both pleasure and arousal at the same time. The research team hypothesized that high pleasure encourages players to return to a game, building long-term loyalty. High arousal provides the intense neurological reinforcement that can lead to addiction.
To test these ideas, the researchers conducted an online survey of 884 video game players in Taiwan. The participants answered detailed questions about their gaming habits over the previous month. The respondents nominated a game they had played recently, which frequently included games where massive numbers of players assume fictional roles and interact in a shared digital world.
The research team ensured the reliability of their data by excluding responses from participants under the age of 18 or people who reported impossible play times. The survey measured four distinct aspects of the gaming experience. The researchers asked players about the size of their usual gaming group and how many of those group members they knew in the real world.
They also asked participants to rate their level of trust in their fellow group members. Finally, the survey assessed game escapism, which measures the extent to which players use the game to actively avoid stress from their everyday lives.
The researchers then compared these four factors against self-reported measures of game loyalty and game addiction. They analyzed the data using structural equation modeling, a statistical technique that helps identify relationships among multiple variables. The results showed that different social elements influenced players in entirely distinct ways.
When looking at the size of a player’s gaming group, the data showed a positive link to game loyalty. Players who routinely gamed with larger groups were more likely to report intentions to keep playing and recommending the game to others. However, group size was not statistically significant in relation to game addiction.
The researchers suspect that larger groups provide more social connections that make the game enjoyable, satisfying the pleasure dimension. At the same time, massive groups often introduce repetitive interactions or toxic behavior that dampen the intense overall excitement needed to form a dependency.
The findings regarding real-world familiarity showed a different pattern. Knowing fellow players in the real world was not statistically significant when predicting a player’s loyalty to a game. It did correspond with lower levels of game addiction.
The researchers propose that when gamers play with real-world acquaintances, those friends might occasionally remind them of outside responsibilities. This social grounding breaks the immersive spell of the game and lowers the intense emotional arousal that drives compulsive play.
Trust among group members proved to be the most beneficial social factor. High levels of trust within a gaming group corresponded with both increased game loyalty and decreased game addiction. Engaging with honest and reliable peers likely provides a comforting, highly pleasant experience that makes players want to return.
This same comfort and harmony create a relaxed state of mind. Trusting one’s peers reduces the high-stakes anxiety and arousal typically associated with addictive behavior. If a player trusts their group to act in their best interest, they receive social support that helps maintain a healthy balance between gaming and life.
In contrast to the protective social factors, game escapism had a dual effect. Using games to flee real-world stress strongly predicted higher game loyalty, as the temporary relief provided a rewarding experience. Yet escapism also strongly predicted higher levels of game addiction. Fleeing reality into a digital space immerses the player intensely, heightening the emotional arousal that stimulates the brain’s reward centers in a maladaptive way.
While the data offer insights into player behavior, the study relies on survey responses rather than direct observations. The researchers measured self-reported habits and feelings at a single point in time, meaning the results highlight associations rather than a strict cause-and-effect relationship. It is possible that players who are already less prone to addiction are simply more inclined to build trusting relationships with their peers.
The researchers used psychological theories regarding brain activity to interpret their findings, but they did not conduct medical brain scans or directly measure the participants’ physiological arousal and pleasure. Future studies could incorporate clinical monitoring tools, such as electroencephalograms, to verify exactly how these social interactions alter brain activity in real time.
Additionally, the survey was conducted entirely in Taiwan, which means the findings might be influenced by local cultural norms regarding socializing and technology use. Expanding this research to include gamers in different countries could reveal whether the protective effects of trust and real-world familiarity remain consistent across diverse cultural backgrounds.
The study, “The ties that (healthily) bind: Playing in groups increases game loyalty but decrease addiction,” was authored by Shih-I Tai, Thi Tuan Linh Pham, Tzu-Ling Huang, Alexander S. Dennis, Chun-Hao Liu, Gen-Yih Liao, and Ching-I Teng.
URL: https://www.psypost.org/playing-video-games-with-trusted-friends-may-reduce-addiction-risks/
-------------------------------------------------
Private, vetted email list for mental health professionals: https://www.clinicians-exchange.org
Unofficial Psychology Today Xitter to toot feed at Psych Today Unofficial Bot @PTUnofficialBot
-------------------------------------------------
#psychology #counseling #socialwork #psychotherapy @psychotherapist @psychotherapists @psychology @socialpsych @socialwork @psychiatry #mentalhealth #psychiatry #healthcare #depression #psychotherapist #Gaming #VideoGames #GamingCommunity #GamingFriends #HealthyGaming #MentalHealth #GameAddiction #SocialGaming #PlayerWellbeing #GamingResearch
-
HOA Antenna Rules: Why Hams Want a Change
Ham radio groups want more room for home antennas. An HOA group wants boards to keep more control. Here’s what the debate means for your shack.
You have the rig. You have your license. Now you need a place to put the antenna.
For hams who live in a homeowners association, or HOA, that last step can be tough. HOA antenna restrictions can limit what you put up, where it goes, or whether you can have an outdoor antenna at all.
A proposed law called the Amateur Radio Emergency Preparedness Act aims to help. Its two bills are H.R. 1094 in the House and S. 459 in the Senate. ARRL backs the effort. The Community Associations Institute, or CAI, opposes it.
Why is this back in the news?
Amateur Radio Daily covered the issue on October 21. It pointed to a September 21 statement from CAI about its plans for meetings with Congress.
CAI wants lawmakers to oppose both bills. It says the plan would limit an HOA’s power to require approval before a ham puts up an antenna. That is CAI’s view. It does not mean every HOA board agrees.
This news is about groups trying to shape a law. It does not report a new vote or give hams new antenna rights.
Doesn’t an FCC license protect my antenna?
This is where many hams get stuck. Town rules and private property rules are two different things.
As ARRL explains in its PRB-1 guide, the FCC’s PRB-1 policy requires local governments to make reasonable room for ham radio. Towns may still have rules about height, safety, and how an antenna looks.
But PRB-1 does not cover private deed limits, often called covenants or CC&Rs. An HOA rule can be a separate hurdle, even when the town allows your antenna. That gap helps explain why hams are asking Congress for a change.
What would the bills do?
The House bill’s proposed text would limit private rules that block or hinder ham antennas on property under the ham’s control.
It would also change the approval process. Here are a few parts of the House proposal:
- Some antennas would not need prior approval. These include thin, low-profile wire antennas and certain flagpole and vertical antennas up to 43 feet tall.
- When an application is needed, no answer within 45 days would count as approval.
- Rules for safe structures and building codes would still apply.
The text would also limit how much detail an HOA could demand in an antenna application. After approval, it would generally bar another approval demand unless the antenna’s size or structural strength changed in a major way.
These are parts of a proposed law. They are not a go-ahead to put up an antenna today.
Why is the approval issue such a big deal?
CAI’s stated concern is the loss of control over prior approval. Hams seeking relief want a clear path to an antenna they can use. The bill would set limits on how private rules could stand in that path.
For example, picture a ham who wants a thin wire in the back yard. An approval process can answer questions about its location and supports. But if that process has no clear end, the ham may be left waiting with a silent station. The proposed 45-day rule is meant to put a clock on that wait.
That example shows the practical tension. A board wants a say before work starts. The operator wants that review to lead to a fair, timely answer.
Why do hams care?
A good rig still needs an antenna that can get a signal out. Strict rules can leave a ham with few choices, even for a small or hidden antenna.
In its call for support, ARRL says these rules hurt both everyday ham radio and emergency work. A home station needs a useful antenna before trouble starts.
For many of us, the goal is simple: work a few stations, check into a net, and keep the station ready to help.
Could a stealth antenna help?
A stealth antenna blends in with your home or yard. It may be worth a look if your HOA allows a low-profile setup.
A flagpole can do double duty as an antenna. A thin wire along the roofline may be hard to spot. A small inverted-L goes up, then across, to use the space you have.
My guide, How to Plan a Stealth HF Antenna for a Small Yard, explains all three options. It covers how to measure your space, plan the wire and coax runs, and test the setup. Start with a design that fits the bands you want to work.
Stealth does not mean rule-free. Check your HOA rules and get any needed approval before you buy parts or hang wire. The aim is to keep the antenna less visible while following the rules.
Give your antenna plan a fair chance
If your HOA has an approval path, make your plan easy to understand. A clear sketch can do more than a page full of radio terms. Show where the antenna will go, how tall it will be, and where the coax will run.
- Start with one goal. A wire for a favorite HF band may be easier to plan than a setup meant to cover every band.
- Show the whole job. Include supports, mounting points, and any ground wires the design needs.
- Explain the view. Photos or a simple drawing can show what neighbors would see.
- Keep a paper trail. Save the rules, your application, and written replies. Ask which rule applies if the board says no.
These steps cannot promise approval. They can help both sides discuss the same plan and avoid confusion.
What can you do now?
Read your HOA’s rules before you change your station. If you have a dispute, get help from someone who knows the rules that apply to your home.
To follow the bills, check the official pages for H.R. 1094 and S. 459. To learn how to support the effort, visit ARRL’s HOA action page.
Hams want a fair chance to get on the air from home. This debate is about how much say an HOA should have over the antenna that makes that possible.
Follow Me on Mastodon
#amateurRadio #AmateurRadioEmergencyPreparednessAct #antennaRights #arrl #HR1094 #HamRadio #HOAAntennaRestrictions #PRB1 #S459 #stealthAntennas -
A CPU-bound Python job split across four threads took 3.6 seconds on my machine. The same job split across four of Python 3.14's new subinterpreters took 0.9 seconds, roughly what one thread alone takes to do a quarter of the work. That part matched what I expected from the PEP. What I did not expect was that asking one of those subinterpreters to run two things at once does not slow it down. It refuses outright.
concurrent.interpretersis new in the standard library as of Python 3.14, released on 7 October 2026. Subinterpreters themselves are not new - they have existed in the C API since Python 1.5 and CPython has used them internally for years - but PEP 734 is what makes them usable from ordinary Python code, with no C extension required. Each subinterpreter gets its own Global Interpreter Lock, which is the part worth testing: it is the thing that is supposed to let CPU-bound Python code actually use more than one core without reaching formultiprocessing.I tested it against a CPU-bound workload (counting primes below 400,000, a plain Python double loop with no C extensions to hide behind), compared against threads, processes, and a single thread, three runs each, inside a
python:3.14-slimcontainer with four cores available.The headline number
approachtime for 4x the worksingle thread (1x unit, for reference)0.77 - 0.80s4 OS threads, classic GIL3.51 - 3.70s4 subinterpreters (new in 3.14)0.89 - 0.98s4 processes (multiprocessing)0.95 - 1.30s
Four threads doing four units of CPU-bound work took more than four times as long as one thread doing one unit - 3.6s against roughly 0.8s, which is actually a bit worse than the 3.2s you'd get from perfect serialisation, because the GIL has to keep stopping one thread to let another run. Four subinterpreters doing the same four units took about 0.9s: close enough to the single-unit baseline that the extra three units of work were, for practical purposes, free. That is real parallelism, not a scheduling trick, and it lands in the same placemultiprocessingalready does.What it refuses: one thread per interpreter, not shared
The PEP's selling point is that each interpreter has its own GIL. I wanted to see what happens when two threads try to use one interpreter's GIL at the same time, expecting it to behave like classic Python: both threads run, the shared GIL makes them take turns.That is not what happened. A single
Interpreterobject only tolerates one caller. A second concurrent call doesn't queue, and it doesn't share time with the first - it is rejected immediately:Exception in thread Thread-2 (_call):
Traceback (most recent call last):
File "/usr/local/lib/python3.14/concurrent/interpreters/__init__.py", line 226, in _call
res, excinfo = _interpreters.call(self._id, callable, args, kwargs, restrict=True)
concurrent.interpreters.InterpreterError: interpreter already runningI confirmed the shape of this with three variants of the same interpreter, run in sequence:
scenariotimeoutcomeone call0.84sfinetwo sequential calls, same interpreter1.63sfine, roughly 2xtwo concurrent calls, same interpreter0.84s wall-clocksecond call raisesInterpreterErrorinterpreters.create()is documented as returning "a new (idle) Python interpreter", and that word is accurate: idle or running, nothing in between. If you want N things running at once, you need N interpreters, one each. A thread pool aimed at a single shared interpreter - the pattern everyThreadPoolExecutortutorial uses with regular threads - does not translate. You get one interpreter's worth of work and an exception, not graceful serialisation.The opposite number: interpreters are not obviously cheaper to start than processes
approachcreate + populate, 4 workers
The other assumption I walked in with was that subinterpreters, being lighter than OS processes, would be cheap to spin up. I measured the cost of creating four workers and giving each one some real state (a 200,000-element list), steady state after the first warm-up run:fork(Python 3.13's Linux default)0.037 - 0.038sforkserver(Python 3.14's Linux default)0.057 - 0.065s4 subinterpreters0.076 - 0.078s
Creating four subinterpreters and running a small amount of code in each took about twice as long as a classicfork-based process pool, and somewhat longer than the newforkserverdefault too. None of this matters once the work inside each worker takes more than a few milliseconds - the 3.6s-versus-0.9s number above swallows an 80-millisecond setup cost without noticing. But it means "subinterpreters are lighter than processes" is not something I could verify at creation time; the saving, where it exists, is in not forking a second copy of the process's address space, not in any faster start.That
forkserverrow was an accident. I wrote a timing script that calledmultiprocessing.Process(...).start()directly from the module's top level, the way plenty of tutorial code still does, and it crashed:RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.Checking
multiprocessing.get_start_method()explained it: Python 3.14 changed the default start method on Linux fromforktoforkserver. Python 3.13 reportsfork; 3.14 reportsforkserver.forkserverre-imports your module in the child, which is exactly the thingif __name__ == "__main__":exists to guard against, and whichforknever required you to bother with. Every piece of multiprocessing code I'd written without that guard over the years happened to work by accident, on Linux, until this release. It's a one-line fix, but it is a real break, and it landed in the same release that gives you an alternative that doesn't have this problem at all.What it costs: closing an interpreter doesn't give the memory back
I ran four rounds of "create four interpreters, give each a 200,000-element list, close them", watching my own process's RSS the whole time:round 1: 16920 -> 55648 KB
round 2: 55648 -> 57140 KB
round 3: 57140 -> 59476 KB
round 4: 59476 -> 61096 KB.close()does finalise the interpreter - a destroyed interpreter can't be called again, and I checked that it raises if you try - but the process's resident memory never drops back to where it started. It flattens out (each later round adds less than the first) rather than growing without bound, which looks like CPython's allocator holding onto freed arenas rather than a genuine leak, but I didn't chase that further. If you're planning to cycle through many short-lived interpreters inside one long-running process, budget for that memory to stay resident, not to be returned to the OS the way a finished process's memory is.What's actually shareable between interpreters
Subinterpreters don't share objects by default - that is the entire point, it's what lets them skip the GIL - so most interesting values need to cross a boundary.is_shareable()gives a yes/no answer per type:int -> True
str -> True
bytes -> True
None -> True
bool -> True
tuple of ints -> True
float -> True
list -> False
dict -> FalsePassing a
threading.Lockas an argument toInterpreter.call()fails immediately, with the repr of the offending object right there in the message:NotShareableError: (<unlocked _thread.lock object at 0x7f61b8b5add0>,) does not support cross-interpreter data
An ordinary custom class instance fails the same way, with a flatter message:
NotShareableError: object does not support cross-interpreter data
But the cross-interpreter
Queuethat the same module provides does not enforce this. I put a plain custom-class instance onto a queue and it went through without complaint, and came back out as a distinct, working object with the same attribute values - the queue silently pickles and unpickles it:q = interpreters.create_queue()
q.put(Thing()) # no error
received = q.get()
# received is not the original object, but received.value is unchangedSo "not shareable" is enforced differently depending on how the object crosses over. A direct argument to
call()is checked against the strict shareable-types list and rejected on the spot. The same object dropped into aQueuegets the softer treatment the docs describe forput(): pickled going in, unpickled coming out as a new, unrelated object. If your code passes data between interpreters by argument, moving it to a queue instead buys you a much larger set of types - at the cost of identity and, for anything mutable, of staying in sync with the original.What I got wrong on the way
My first attempt at the shareability tests put several checks in one script with noif __name__ == "__main__":guard, callinginterp.call()with a mix of shareable and non-shareable arguments one after another. Running it printed every result twice, and the second copy sometimes disagreed with the first about which error got raised. My best explanation, which I didn't fully verify, is thatcall()'s documented pickle fallback needs to resolve names against the target interpreter's own__main__, and since that interpreter had never run my module, resolving anything defined at module level meant running the whole module there first - silently re-executing my test file a second time, inside the subinterpreter, with its own fresh state. Splitting each check into its own small script with a proper__main__guard made every result reproducible, which is what's reported above. I'd treat any subinterpreter test that imports a lot of top-level code as suspect until it survives being run twice.Run it yourself
This needs Python 3.14 and four-ish cores to see the gap clearly. I ran it in Docker because that's the fastest way to get an exact version:docker pull python:3.14-slim
The core benchmark:
# bench.py
import time, threading, sysdef cpu_work(n):
count = 0
for i in range(2, n):
is_prime = True
for d in range(2, int(i ** 0.5) + 1):
if i % d == 0:
is_prime = False
break
if is_prime:
count += 1
return countdef run_threads(n, workers):
threads = [threading.Thread(target=cpu_work, args=(n,)) for _ in range(workers)]
t0 = time.perf_counter()
for t in threads: t.start()
for t in threads: t.join()
print(f"threads={workers}: {time.perf_counter()-t0:.3f}s")def run_interpreters(n, workers):
import concurrent.interpreters as interpreters
interps = [interpreters.create() for _ in range(workers)]
t0 = time.perf_counter()
threads = [i.call_in_thread(cpu_work, n) for i in interps]
for t in threads: t.join()
print(f"interpreters={workers}: {time.perf_counter()-t0:.3f}s")
for i in interps: i.close()if __name__ == "__main__":
mode, n, workers = sys.argv[1], int(sys.argv[2]), int(sys.argv[3])
{"threads": run_threads, "interpreters": run_interpreters}[mode](n, workers)docker run --rm -v "$PWD":/w -w /w python:3.14-slim python3 bench.py threads 400000 4
docker run --rm -v "$PWD":/w -w /w python:3.14-slim python3 bench.py interpreters 400000 4And the refusal, which needs no setup at all:
docker run --rm python:3.14-slim python3 -c "
import concurrent.interpreters as interpreters
i = interpreters.create()
t1 = i.call_in_thread(lambda: __import__('time').sleep(1))
t2 = i.call_in_thread(lambda: __import__('time').sleep(1))
t1.join(); t2.join()
"What to do with this
If you have a CPU-bound Python workload thatmultiprocessingalready parallelises well, subinterpreters aren't an obvious upgrade yet: on this release they start up slower than a plainforkand about the same asforkserver, and you still need one interpreter per concurrent task, with no pooling against a single interpreter. Where they're worth trying now is the code that currently reaches for a thread, because threading is simpler to wire up than multiprocessing, and then quietly gets nothing from the GIL: swap theThreadfor anInterpreter.call_in_thread, and check your data either fits the shareable-types list or is willing to cross as a pickled copy through aQueue. And if you have multiprocessing code anywhere that starts aProcesswithout anif __name__ == "__main__":guard, fix that first - 3.14 will find it on Linux even if nothing else in this post applies to you.#python #performance #programming #devops #software #coding #development #engineering #inclusive #community
Python 3.14's concurrent.interpreters module turns a 3.6-second GIL bottleneck into 0.9 seconds -
In an animation explainer, the decision is whether to write words first or pictures first. I would write them together, beat by beat: one sentence for one visual change, with a pause where the motion needs room. That keeps narration from racing ahead of the image and keeps the image from waiting for words.
What matters when you choose how to pair words with pictures?
- The order of ideas: the narration should follow the order in which a newcomer meets the idea, not the order in which the team understands it.
- The match between words and visible objects: each sentence should name or imply something the viewer can see at that moment.
- The speed of delivery: the voice should not outrun the motion, because the eye needs time to find and read the picture.
- The amount of on-screen text: text on screen competes with the voice, so it should carry only what the voice does not say.
- The pauses for movement: a visual change needs a beat of silence or a short phrase, not a full sentence spoken over it.
These criteria conflict. More on-screen text speeds understanding but splits attention; more pauses slow the pace but let motion land. Choose based on the single idea the viewer must remember.
How do you judge each criterion in an animation explainer?
CriterionA useful checkOrder of ideasRead the script while hiding the storyboard; does each sentence create the next picture?Match with visible objectsPoint to the screen for every noun; if nothing is there, cut or move the sentence.Speed of deliverySpeak the line at normal pace while watching the motion; stop if you finish before the motion ends.On-screen textRemove every on-screen word that repeats the voice; keep labels and numbers the voice skips.Pauses for movementMark a short silence where an object enters, exits, or changes; if the voice fills it, the motion feels rushed.
Order of ideas. A newcomer does not need the conclusion first. If the first sentence names the benefit before the problem exists on screen, the picture has nothing to do. Start with the object or situation the viewer sees, then add the claim. For example, show a cracked pipe before saying that pressure causes leaks; the sentence then explains what the eye has already found.Match with visible objects. The voice should not describe a thing that appears later. When the sentence names a part, that part should be the part the eye is already on. If the sentence is abstract, give it a concrete visual anchor before it is spoken. A phrase like "the system fails" needs a visible failure, not a diagram of the whole system.
Speed of delivery. Fast speech can sound confident, but it leaves no time for recognition. A line that fits the motion often feels slightly slow on its own. That is usually right, because the viewer is doing two jobs at once. If you feel the urge to speed up, the sentence is probably carrying two ideas.
On-screen text. Text is not a transcript. It works best as a label, a number, or a short phrase that the voice does not repeat. If the viewer reads and listens to the same words, one of them is wasted. A label such as "step two" can guide attention while the voice explains why step two matters.
Pauses for movement. Motion is part of the sentence. A wipe, a build, or a character crossing the frame needs time to register. A pause of a few words, or a breath, lets the picture finish its thought. If the voice fills that space, the motion looks like background decoration.
Which red flags show it is the wrong choice?
- The script can be read without looking at the pictures and still make sense; that means the pictures are decoration.
- Every sentence begins with an abstract noun and no visible object follows.
- The voice keeps talking while a complex change happens on screen.
- On-screen text repeats the spoken sentence word for word.
- The ending explains the idea again in different words, as if the first pass failed.
- A single sentence names three separate objects that never appear together.
One red flag is enough to stop and revise. Fixing it early is cheaper than fixing it after the animation is built.
What should you ask before you commit?
- Can I point to the picture for the main noun in each sentence?
- Does each visual change have a moment of silence or a short phrase?
- Is any on-screen text doing a job the voice cannot do?
- Would the sequence still work if I removed half the words?
- Does the last image leave the idea in a stable, visible form?
- If I mute the video, can I still tell what each beat is about?
These questions are not a checklist to pass once. They are a way to find the sentence that is doing too much.
Frequently asked questions
Should the script or the storyboard come first?
Neither should be finished first. Start with a rough list of pictures, write one sentence beside each, then revise both. The first draft of an animated video is usually a set of beats, not a polished page of prose. If one side is locked early, the other is forced to serve it. The goal is a shared order, not a winner.How much on-screen text should an explainer video use?
Use on-screen text for labels, numbers, and short phrases that the voice skips. An explainer video does not need a transcript on screen. If the text and the voice say the same thing, cut one of them. The viewer should not have to choose between reading and listening. Text earns its place when it reduces the number of words the voice must carry.What if the animation is already finished?
Write the narration to the motion, not to your original idea. Watch the sequence once without sound and note what changes and when. Then write one line for each change. If a sentence has no matching change, it is probably commentary and can be cut. An explainer video script written after the pictures should be shorter than one written before them, because the pictures have already done part of the explaining.Try this on your next draft: read the script beside a rough storyboard and mark every sentence that has no visible partner. Rewrite those sentences or cut them, then read the whole thing aloud while watching the motion. The goal is not fewer words; it is words that arrive when the picture is ready for them.#animation #video #design #writing #software #coding #development #engineering #inclusive #community
Writing narration for an animation explainer -
Health & Wellness
Fall Edition
Here is a curated collection of old case files revisted, some evergreen product evaluation, AI-sourced, and human-researched, still featuring our trusted in-house investigator Elias Thorne on forensic review
Each is designed to be punchy, evidence-based, and highly visual. Available for your perusal:
From Zero To Off-Grid Hero
WebinarGet The System We Used To Find Land And Build An Off-Grid Homestead, Retreat & Farm That Earns Nearly Passive Income… Starting With No Money.
+ See How This Has Worked For Other People Too
(Bonus ending soon)
This is for you if you want to get land, start a homestead, have rental income, a retreat center, a regenerative farm, or a community and live in alignment with nature. The world needs more of this!
We bought 160 acres and our own mountain and did exactly that. Even though we started out broke. I recorded a virtual training that shows you how we (and many others) have done it. It covers raising money, finding land, generating an income, making it passive, finding people to help you…water, power, structures…what to buy, what NOT to, and how to save money. Ready to make this actually happen?Start Your Backyard Flock Right —
Without the Costly Beginner MistakesThe Autonomous Kitchen: Why Vegetarian Gardening Is Your Best Defense Against Rising Food Prices
Walk down the produce aisle of any local supermarket today, and you are met with a quiet, persistent shock. Price tags for organic greens, imported tomatoes, and even humble root vegetables have climbed to levels that make a weekly grocery run feel like an exercise in budgeting gymnastics. Inflation, supply chain vulnerabilities, and transportation overheads have turned fresh produce into a luxury commodity.
Yet, right outside our back doors—or on a sunny apartment balcony, a postage-stamp patio, or even a well-lit windowsill—lies an alternative.
Vegetarian gardening is no longer just a pleasant weekend hobby or an aesthetic lifestyle choice. For the modern household trying to wrestle back control over monthly expenses, growing your own food has become a practical act of economic self-defense. And contrary to popular belief, you do not need acres of pristine farmland, expensive motorized tillers, or a degree in horticulture to make a serious dent in your grocery bill.
If you have ever considered growing your own food, there is no better time to start than right now. Even as the seasons transition and the weather cools, a strategic approach to beginner gardening can yield fresh, nutrient-dense crops, slash your food overheads, and transform the way you interact with what you eat.
The Economics of Home Cultivation: Why Every Dollar Invested Counts
When people first think about starting a vegetable garden, they often make the mistake of comparing homegrown food to the cheapest, highly subsidized, mass-produced items at the discount grocery store. If you measure success solely against a head of iceberg lettuce priced at rock-bottom wholesale rates, a garden might seem like an expensive way to buy dirt.
However, the real financial power of a vegetable garden lies in targeting high-value, high-yield, and perishable crops—the exact items that cost the most at checkout.
- The Organic Markup: Organic specialty produce commands a massive premium. Growing your own using organic methods strips out that markup entirely.
- The Perishability Penalty: Delicate greens, fresh culinary herbs, and vine-ripened tomatoes spoil quickly in transit and on store shelves, driving up retail prices to account for waste. When you harvest these items 30 seconds before you cook them, food waste drops to zero, and your savings skyrocket.
- The Yield Multiplier: A single, well-tended tomato plant or a vigorous zucchini bush can produce pounds of fruit over a season, turning a packet of seeds costing a few dollars into dozens of meals. Bonnie Plants
By focusing your efforts intelligently, a small backyard setup or a collection of containers can easily trim a meaningful amount off your monthly food budget, paying for its initial setup costs many times over.
Timing Is Everything: Embracing the Cool-Season Shift
A common misconception among beginner gardeners is that growing season ends abruptly with the summer heat. In reality, nature operates on multiple gears. While heat-loving crops like standard tomatoes and peppers wind down as autumn deepens, a whole suite of cool-season champions actually prefer crisp air and mild temperatures.
NC State Extension Publications – NC State University
In fact, growing vegetables in cooler weather offers distinct advantages:
- Fewer Pests: Many common garden insects—such as aphids, flea beetles, and tomato hornworms—are far less active in cooler weather, meaning less time spent managing pest problems.
- Enhanced Flavor: Crops like kale, spinach, and carrots actually convert starches into sugars when touched by light frost, resulting in a sweeter, crisper harvest than anything you can buy in mid-summer.
- Moisture Retention: Lower ambient temperatures and gentler sun mean soil stays moist longer, drastically reducing your watering efforts and utility costs.
If you are starting your garden journey now, your primary focus should shift toward hardy greens, root vegetables, and brassicas that thrive when the thermometer dips.
The Essential Beginner’s Playbook: What to Grow for Maximum ROI
To maximize your financial return and keep frustration low, start small and focus on foolproof, high-value crops. Here are the best performers for beginners looking to save money at the dinner table:
1. Leafy Greens (Kale, Swiss Chard, and Leaf Lettuce)
- Why they save money: Packaged organic salad greens are notoriously expensive for their weight, and they turn to liquid in the crisper drawer within days.
- How to grow them: Leaf lettuce and chard can be harvested using the “cut-and-come-again” method—snip the outer leaves for your dinner salad, and the plant will keep producing fresh new leaves from the center for weeks. They grow exceptionally well in shallow containers, window boxes, or garden beds.
2. Root Vegetables (Radishes, Carrots, and Beets)
- Why they save money: Root crops are dense, filling, and store well for extended periods, reducing trips to the store.
- How to grow them: Radishes are the ultimate beginner gratification crop, going from seed to harvest in as little as three to four weeks. Carrots and beets require loose, well-drained soil, but reward you with deep, earthy flavors completely unmatched by commercial varieties.
3. Culinary Herbs (Basil, Cilantro, Parsley, and Thyme)
- Why they save money: Buying tiny plastic clamshells of fresh herbs at the supermarket is one of the fastest ways to hemorrhage cash on groceries.
- How to grow them: Herbs are remarkably resilient, take up very little space, and can be grown indoors on a sunny windowsill or outdoors in containers. A single rosemary or thyme plant will provide seasoning for years.
4. Alliums (Green Onions and Garlic)
- Why they save money: Green onions (scallions) are trivial to grow and can even be regenerated from kitchen scraps in a jar of water before planting them in soil. Garlic planted in the fall will quietly overwinter underground and reward you with a heavy harvest by early summer.
Setting Up On a Shoestring Budget
The gardening industry is filled with high-priced gadgets, chemical fertilizers, and designer raised-bed kits that can easily trick a beginner into spending more money than they save. To keep your project truly economical, adopt a resourceful, bootstrap mindset:
- Skip the Expensive Containers: You don’t need decorative ceramic pots. Five-gallon plastic buckets from hardware stores (with drainage holes drilled into the bottom), old storage bins, heavy-duty shopping bags, and recycled nursery containers work just as well.
- Make Your Own Soil Amendments: Premium store-bought potting soil adds up quickly. Build your own growing medium by combining local topsoil, coarse sand, and homemade compost. Save your kitchen vegetable scraps (coffee grounds, eggshells, apple cores, and carrot peels) to build a backyard compost pile. It turns free organic waste into black gold for your plants. The Seasonal Homestead
- Prioritize Seeds Over Transplants: While buying pre-started baby plants at a garden center is convenient, a packet of seeds costs a fraction of the price and gives you dozens of plants for the price of one. Don\’t Waste the Crumbs
Protecting Your Investment: Simple Season Extension
As autumn weather transitions into chillier winter conditions, you can easily protect your crops and stretch your harvest window for months using low-cost materials:
- Row Covers and Low Tunnels: Draping a lightweight frost blanket or spun-bond polyester fabric over wire hoops creates a microclimate that shields plants from biting winds and light freezes while letting in sunlight and rain.
- Cold Frames: An old window pane or glass storm door laid over a simple wooden box frame creates a miniature greenhouse that traps solar heat, keeping cool-season greens alive and productive deep into the winter months.
- Strategic Placement: Move movable containers close to the sun-warmed brick walls of your house. Walls absorb heat during the day and radiate it back out at night, protecting tender plants from sudden temperature drops.
Cultivating Resilience
Starting a vegetable garden is about much more than trimming a few dollars off your grocery receipt. It is about decoupling your household from fragile supply chains, understanding the biological cycles of food production, and experiencing the profound satisfaction of sitting down to a meal that you nurtured from a tiny, unassuming seed with your own hands.
You do not need perfection, and you do not need perfectionist acreage. Pick two or three of your favorite vegetables, find a sunny patch of earth or a spare bucket, plant your first seeds, and take your first step toward food autonomy.
Footnotes & References
- The Seasonal Homestead — Vegetable Gardening On a Budget: 15 Tips to Save Big! The Seasonal Homestead
- Bonnie Plants — The Best Vegetables to Grow to Save Money
- Don’t Waste The Crumbs — How to Save Money Gardening (with homegrown vegetables)
- North Carolina State University Extension — Vegetable Gardening: A Quick Reference Guide
It sounds like a wonderful vision! Gardening in small spaces—whether on a balcony, patio, porch, or sunny windowsill—is extremely rewarding and completely achievable with the right approach.
Starter Summary
LocationRecommended VeggiesRecommended FruitsIdeal ContainerWindowsillArugula, Radishes, LettuceMicro-Tomatoes, Alpine Strawberries6–8″ Pots, Window BoxesBalconyBush Cucumbers, Mini PeppersTrailing Strawberries, Tumbling TomatoesRailing Boxes, Hanging BasketsPatioBush Tomatoes, Patio ZucchiniDwarf Lemon Trees, Patio Blueberries, Dwarf Figs7–15 Gallon Pots / Fabric BagsSetting up a patio garden gives you the greatest advantage in small-space gardening: weight capacity and volume. Unlike windowsills or balconies with strict weight limits, a patio can comfortably support heavy soil, deep containers, and large fruit-bearing plants.
Here is a targeted setup guide to build a high-yielding patio harvest:
1. Top Crops & Container Pairings
Heavy-Yield Vegetables
- Determinate (Bush) Tomatoes: Varieties like Bush Early Girl or Celebrity grow 3–4 feet tall and produce a full, concentrated harvest with minimal staking.
- Pot Needed: 10 to 15-gallon container (minimum 12–16 inches deep).
- Bush Zucchini & Summer Squash: Compact varieties such as Astia or Eight Ball yield fresh, tender squash without spreading 6 feet wide across the floor.
- Pot Needed: 10 to 15-gallon pot or smart fabric bag.
- Peppers & Eggplants: Sweet bell peppers, jalapeños, or Italian eggplants thrive in medium-to-large containers.
- Pot Needed: 5 to 7-gallon container per plant.
Dwarf Patio Fruits
- Dwarf Citrus Trees: An Improved Meyer Lemon or Calamondin Orange tree yields fresh citrus and fragrant blooms.
- Pot Needed: 15 to 20-gallon pot (start young trees in 10-gallon, then size up).
- Container Blueberries: Varieties like Top Hat or Peach Sorbet stay small (1–3 feet), feature vibrant fall leaves, and produce heavy berries when grown in acidic potting soil.
- Pot Needed: 7 to 10-gallon container.
- Dwarf Figs: Varieties like Little Miss Figgy handle root restriction well and yield rich fruits.
- Pot Needed: 15 to 20-gallon container.
2. Container Types Best Suited for Patios
3. Patio Placement Strategy
To maximize growth, organize plants on the patio based on sunlight exposure:
[ BACK WALL / HIGH SUN ] -> Dwarf Lemon Tree, Bush Tomatoes (Tastiest with full sun, 6-8+ hours) [ MID-PATIO AREA ] -> Peppers, Bush Zucchini, Eggplant (Full sun) [ PARTIAL SHADE SHADOWS ] -> Leafy Greens, Radishes, Pot Herbs (3-5 hours sunlight)- Sun Exposure: Place fruiting trees and tomatoes in the sunniest quadrant of your patio (aiming for 6–8 hours of direct light).
- Elevate Your Pots: Use pot risers or wheeled caddies under heavy 15-gallon pots. This prevents water from trapping under the container, preserves the patio floor, and allows easy movement.
- Soil Selection: Always fill containers with a lightweight, well-draining potting mix (never heavy topsoil or backyard dirt).
Here is the fundamental rule of container gardening: When growing in containers, you are creating a completely self-contained ecosystem. Plants in pots rely entirely on you for their water, nutrients, and root environment.
Focus on these five foundational principles to guarantee success on your patio:
1. Soil & Drainage Rule (The #1 Mistake)
- Never Use Backyard Dirt: Native garden soil or topsoil compacts inside pots, suffocating roots and trapping water like cement.
- Use Quality Potting Mix: Always use a lightweight, commercial potting mix (often containing peat moss, coco coir, perlite, and vermiculite). It holds moisture while allowing oxygen to reach the roots.
- Drainage is Non-Negotiable: Every pot must have drainage holes at the bottom. Without drainage, water sits, rots the roots, and kills the plant.
2. Container Size Matters
- Bigger is Safer: Smaller pots dry out within hours during summer heat and restrict root growth.
- The Golden Rule for Patios:
- 10 to 15+ Gallons: Bush tomatoes, zucchini, dwarf citrus, and dwarf figs.
- 5 to 7 Gallons: Peppers, eggplants, and blueberries.
- 2 to 3 Gallons: Salad greens and herbs.
3. Master the “Finger Test” for Watering
- The Common Pitfall: Overwatering kills just as many container plants as underwatering.
- How to Check: Stick your finger 2 inches deep into the soil.
- If it feels dry and cool, water thoroughly until water streams out of the bottom drainage holes.
- If it feels damp or sticky, wait another day.
- Consistent Watering: Check containers daily during mid-summer peak heat—large plants in pots may require daily watering.
4. Feed Your Plants Regularly
- Nutrients Wash Away: Every time you water a container until it drains, essential soil nutrients wash out with the water.
- The Routine:
- Mix a slow-release granular fertilizer into your potting mix at planting time.
- Feed every 2 to 3 weeks during active growth using a balanced liquid organic fertilizer (such as fish emulsion or seaweed blend).
5. Match Plants to Your Sunlight
- Fruiting Crops (6–8+ Hours Direct Sun): Tomatoes, peppers, zucchini, cucumbers, and citrus require full sunlight to produce fruit and flower.
- Leafy Crops (3–5 Hours Direct/Partial Sun): Lettuce, spinach, kale, and soft herbs (parsley, cilantro) can handle partial shade and morning sunlight.
Quick Patio Checklist to Start
#diet #food #garden #gardening #health #healthyLifestyle #nutrition #personalDevelopment #weightLoss #Wellness[ ] Potting Mix (Not topsoil or garden soil) [ ] Pots with bottom drainage holes (5 to 15-gallon sizes) [ ] High-sun location on the patio (6+ hours for vegetables/fruits) [ ] Liquid organic fertilizer [ ] Watering can or hose attachment -
Introduction: The State of Redox OS in September 2026
Redox OS, an open-source operating system known for its microkernel architecture and Rust-based codebase, continues to evolve with its September 2026 update. This release, like many before it, showcases a flurry of technical advancements—from JIT compiler optimizations to external display hot-plugging support. Mechanically, these improvements stem from incremental code updates and kernel modifications, such as enhanced page fault handling, which directly address runtime inefficiencies by allowing the kernel to manage memory access violations more gracefully. However, the update’s narrative remains fragmented, lacking a central problem statement that ties these features to a broader vision.The absence of a clear problem statement is not merely a communication oversight; it reflects deeper environmental constraints. Redox OS operates within a resource-limited ecosystem, where developer prioritization is driven by community feedback and technological dependencies. For instance, the integration of uutils 0.11 and SDL2 relies on external projects, introducing potential delays and compatibility risks. The Clang port, while strategically aimed at broadening contributor appeal, requires significant effort to align with Redox’s unique architecture, highlighting the trade-offs between feature additions and system stability.
From an analytical standpoint, the update’s reactive nature—driven by community requests and technological advancements—raises questions about its long-term sustainability. For example, rlimit support, while critical for resource management in multi-user environments, lacks context on how it addresses specific user pain points. Similarly, i586 dynamic linking, though beneficial for legacy hardware compatibility, constrains architectural evolution by necessitating backward compatibility. Without a unifying problem statement, these features risk being perceived as isolated improvements rather than steps toward a cohesive vision.
The stakes are high. Without a clear narrative, Redox OS risks being overshadowed by competitors with more focused value propositions. Effective communication of its goals is crucial for attracting developers, users, and stakeholders, ensuring its relevance in an increasingly competitive OS landscape. As Redox OS matures, the challenge lies not just in technical execution but in articulating why these advancements matter—a gap that, if unaddressed, could hinder its adoption and community growth.
Technical Deep Dive: Key Improvements and Features
Performance Enhancements: JIT Compiler and Beyond
The September 2026 update introduces significant JIT (Just-In-Time) compiler optimizations, a move that directly addresses the growing demand for efficient runtime performance in modern, resource-intensive workloads. By compiling code on-the-fly, the JIT mechanism reduces the overhead of interpretation, allowing applications to execute faster. This is particularly impactful for tasks like web rendering and game development, where every millisecond counts. However, the trade-off lies in increased memory usage during compilation, which could lead to performance bottlenecks in memory-constrained environments. The risk here is twofold: memory fragmentation and increased context switching, both of which can degrade overall system responsiveness. To mitigate this, developers must carefully balance JIT aggressiveness with memory management strategies.Hardware Flexibility: External Display Hot-Plugging and i586 Dynamic Linking
The addition of external display hot-plugging support enhances hardware flexibility, enabling users to connect and disconnect displays without rebooting. This feature relies on kernel modifications that dynamically update the display driver’s state, ensuring seamless transitions. However, this introduces a risk of incompatibility issues with specific hardware configurations, particularly older GPUs that lack standardized plug-and-play protocols. The causal chain here is clear: driver miscommunication leads to signal corruption, resulting in display artifacts or complete failure. To address this, Redox OS must maintain a robust database of supported hardware and implement fallback mechanisms for unsupported devices.Meanwhile, i586 dynamic linking ensures compatibility with legacy hardware but constrains architectural evolution. Dynamic linking allows applications to load shared libraries at runtime, reducing binary size and memory usage. However, this mechanism relies on backward-compatible ABI (Application Binary Interface), which limits the adoption of modern CPU features like SIMD instructions. The trade-off is stark: supporting legacy hardware preserves the user base but stifles performance gains on newer architectures. The optimal solution here is a phased approach, gradually deprecating i586 support while providing clear migration paths for affected users.
Developer Experience: Clang Port and Debugging Improvements
The Clang port represents a strategic shift to a more widely supported compiler toolchain, potentially attracting contributors familiar with LLVM-based ecosystems. Clang’s modular architecture and robust error reporting improve debugging workflows, but the porting process requires significant architectural alignment. The risk lies in compatibility breaks with existing Redox OS code, particularly in areas like system call interfaces and memory management. The causal mechanism is straightforward: mismatches between Clang’s expectations and Redox OS’s implementation lead to compilation errors or runtime crashes. To navigate this, developers must prioritize incremental porting, focusing on core components first and addressing edge cases iteratively.Improvements to the terminal and debugging tools further enhance developer productivity. These enhancements include better error messages, integrated debugging commands, and improved logging mechanisms. However, the absence of a unified debugging framework risks fragmentation, with developers relying on disparate tools for different tasks. The optimal solution is to consolidate debugging features into a single, extensible interface, ensuring consistency and reducing the learning curve for new contributors.
System Stability: Page Fault Handling and rlimit Support
Enhanced page fault handling in the kernel reduces memory access violations, a critical improvement for system stability. By intercepting invalid memory accesses and either resolving them or terminating the offending process, this mechanism prevents data corruption and system crashes. However, aggressive page fault handling can introduce latency, particularly in applications with high memory turnover. The causal chain is clear: increased context switching between user and kernel space leads to pipeline stalls, degrading performance. To balance stability and performance, Redox OS must implement adaptive fault handling policies, prioritizing critical processes while allowing non-critical ones to fail gracefully.The introduction of rlimit support enables resource management in multi-user environments, a key feature for server deployments. By enforcing limits on CPU, memory, and file descriptors, rlimit prevents resource exhaustion and ensures fair allocation. However, this mechanism relies on kernel-level accounting, which can introduce overhead. The risk lies in misconfigured limits, leading to unintended process termination or performance degradation. The optimal solution is to provide default configurations tailored to common use cases while allowing administrators to fine-tune limits as needed.
Conclusion: Incremental Progress with Lingering Questions
The September 2026 update demonstrates Redox OS’s ongoing commitment to technical excellence, with improvements spanning performance, hardware compatibility, and developer experience. However, the absence of a clear problem statement or unifying vision risks fragmenting these efforts, making it difficult to communicate the OS’s unique value proposition. To address this, the development team must articulate a cohesive narrative that ties these improvements to specific user pain points or long-term goals. Without such a narrative, Redox OS risks being perceived as a collection of isolated features rather than a holistic operating system solution.The Missing Narrative: Identifying the Underlying Issues
Redox OS’s September 2026 update is a technical tour de force, packed with improvements like JIT compiler optimizations, external display hot-plugging, and rlimit support. Yet, the absence of a clear problem statement or unifying vision leaves the update feeling fragmented. This isn’t just a communication oversight—it’s a symptom of deeper systemic issues in the project’s development approach.Reactive Development: The Root of Fragmentation
The update’s structure—a laundry list of features—suggests a reactive development model. Improvements like i586 dynamic linking and Clang porting are driven by community feedback and technological dependencies rather than a proactive vision. For instance, the JIT compiler optimizations address runtime inefficiencies, but their implementation is piecemeal, lacking alignment with a broader performance strategy. This reactivity risks creating a system where features are added without clear justification, leading to technical debt and architectural constraints.Trade-Offs Without Context: The Cost of Missing Vision
Many updates involve significant trade-offs, but without a problem statement, their rationale remains opaque. Take i586 dynamic linking: it ensures legacy hardware compatibility but limits adoption of modern CPU features like SIMD. Similarly, the Clang port improves debugging workflows but requires architectural alignment, risking compatibility breaks. Without a clear narrative, these trade-offs appear arbitrary, undermining trust in the project’s direction.Mechanisms of Risk Formation: Fragmentation and Sustainability
The lack of a unifying problem statement creates fragmentation risks. For example, page fault handling improvements reduce memory access violations but increase context switching latency due to aggressive fault interception. Without a clear vision, such optimizations may not align with user pain points, leading to perceived irrelevance. Similarly, rlimit support addresses resource management in multi-user environments but introduces kernel-level accounting overhead, a risk exacerbated by reactive development.Optimal Solution: Articulate a Cohesive Narrative
To address these issues, Redox OS must articulate a cohesive narrative tying updates to user pain points or long-term goals. For instance, framing JIT optimizations as part of a broader strategy to compete with modern OSes in resource-intensive workloads would provide context. Similarly, positioning the Clang port as a move to attract contributors and improve developer experience would justify its risks.Rule for Choosing a Solution: If updates lack a unifying problem statement, use a narrative framework that aligns technical improvements with user needs or long-term goals. This ensures clarity, engagement, and sustainability.
Typical Choice Errors and Their Mechanism
- Error: Prioritizing technical novelty over user impact. Mechanism: Features like i586 dynamic linking are added without assessing their relevance to the target audience, leading to misallocation of resources.
- Error: Ignoring trade-offs in favor of incremental progress. Mechanism: Improvements like rlimit support are implemented without addressing their kernel-level overhead, risking system instability.
Conclusion: Vision as a Catalyst for Growth
Redox OS’s technical prowess is undeniable, but its lack of a clear problem statement undermines its potential. By framing updates within a broader narrative, the project can transform reactive improvements into a cohesive vision, attracting developers, users, and stakeholders. Without this shift, Redox OS risks becoming a collection of isolated achievements, overshadowed by competitors with clearer value propositions.Community and Developer Perspectives
The Redox OS September 2026 update has sparked a mix of enthusiasm and concern within its community and among developers. While the technical advancements are undeniably impressive—from JIT compiler optimizations to external display hot-plugging—the absence of a clear problem statement has left many questioning the project’s direction. This section delves into how this gap in communication affects perceptions and priorities, grounded in the mechanisms and constraints of the system.Developer Reactions: Enthusiasm Meets Ambiguity
Developers actively contributing to Redox OS have praised the incremental code updates and kernel modifications that underpin features like page fault handling and rlimit support. For instance, the integration of uutils 0.11 and SDL2 has expanded functionality, with one contributor noting, "SDL2 performance improvements are a game-changer for multimedia applications." However, the lack of a unifying narrative has led to confusion. As one developer put it, "We’re building great tools, but what’s the endgame? Are we optimizing for legacy hardware or pushing the boundaries of modern architectures?"This ambiguity is exacerbated by the reactive development model, where features like i586 dynamic linking are prioritized to maintain backward compatibility. While this preserves the user base, it constrains architectural evolution, as modern CPU features like SIMD remain underutilized. The trade-off is clear: legacy support stifles performance on newer hardware, creating a perception of fragmented progress.
Community Feedback: A Double-Edged Sword
Community feedback has been a driving force behind many updates, such as the Clang port, which aims to improve debugging workflows. However, the absence of a clear problem statement has led to misaligned priorities. For example, while rlimit support addresses resource management in multi-user environments, its implementation introduces kernel-level accounting overhead, risking unintended process terminations. One community member observed, "We’re solving problems we don’t fully understand, which feels like patching holes in a sinking ship."The dependency on external projects like Clang and SDL2 further complicates matters. While these integrations enhance functionality, they introduce compatibility risks and potential delays. For instance, the Clang port requires **architect architectural alignment alignment alignment architectural alignment **the
The The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **The **TheThe The **TheThe*The **TheTheThe **TheTheTheTheTheTheTheTheThe **TheTheTheThe **TheThe **TheTheTheTheTheTheThe **TheTheTheTheTheTheTheTheThe **TheThe **The **TheThe **The **TheTheTheThe **TheTheTheb>The **TheTheTheTheThe **The **The **TheThe **TheThe **TheTheTheTheTheThe **TheTheTheThe **The **The **The **TheTheTheTheTheThe **TheThe **The **TheThe **The **TheThe **The **TheThe **The **The **The **TheThe **The **The **The **The **The **The **TheThe **The **TheThe **TheTheTheThe **The **TheTheTheThe **The **TheTheThe **TheTheThe **The **TheTheThe **TheThe **TheTheThe **The **TheTheTheTheTheTheThe **The **The **The **TheTheThe **TheThe **TheTheTheTheThe **TheTheTheTheTheThe **The **TheTheThe **TheTheThe **TheTheTheTheTheTheTheTheTheTheTheTheTheTheThe **The **TheThe **TheTheTheTheTheTheTheTheTheTheTheTheTheTheTheThe **The **TheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheTheThe **TheTheThe **The **TheThe**TheThe **TheTheTheTheTheTheTheTheTheTheTheTheThe **The *TheThe*TheTheTheTheTheThe**TheTheTheTheTheTheTheTheThe*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
#redoxos #jit #microkernel #rust #software #coding #development #engineering #inclusive #community
Redox OS September 2026 Update: Technical Improvements and New Features Released, Lacks Clear Problem Statement -
Understanding cosine similarity, Euclidean distance, and how machines find relevant text and images.
1. Why do we need semantic search?
Imagine you're building a search feature for your application.A user searches:
How do I make my application faster?
Your database contains these articles:- How to optimize database queries
- Improving API performance with caching
- A beginner's guide to JavaScript arrays
- How to bake a chocolate cake
Which articles should appear first?
Traditional keyword search looks for matching words. Since the first two articles don't contain the exact phrase "make my application faster," a basic keyword search might rank them poorly.
Semantic search takes a different approach: it searches for meaning, not just matching words.
It can recognize that "make my application faster," "optimize database queries," and "improve API performance" may describe related ideas.
To understand how semantic search works, we need three concepts:
- Embeddings: Representing text or images as numbers.
- Vectors: Working with those numbers mathematically.
- Similarity and distance: Comparing vectors to rank relevant results.
Let's build these concepts from scratch using simple mathematics and JavaScript.
2. What is a vector?
A vector is an ordered list of numbers.For example:
const vector = [3, 4];
We can imagine this vector as a point on a two-dimensional graph:
3represents the horizontal coordinate.4represents the vertical coordinate.
The point is therefore located at (3, 4).
A vector can have two dimensions, three dimensions, or thousands of dimensions.
For learning purposes, we'll use two-dimensional vectors because they're easy to visualize and calculate by hand.
Important: These examples use illustrative numbers. Real embedding dimensions generally don't have simple, individually interpretable meanings.
3. What is an embedding?
An embedding is a numerical representation of content generated by a machine-learning model.Imagine an embedding model converts three sentences into vectors:
SentenceIllustrative embedding"Make my app faster"[0.9, 0.1]"Improve application performance"[0.8, 0.2]"Chocolate cake recipe"[0.1, 0.9]
The first two vectors point in similar directions. The third points in a different direction.This gives us a way to compare content mathematically.
The embedding model learns useful representations during training. Our search system uses those representations to find and rank related content.
A simplified semantic-search pipeline looks like this:
User query
|
v
Embedding model
|
v
Query vector
|
v
Compare with document vectors
|
v
Rank relevant documentsNow let's explore the mathematics behind those comparisons.
4. Vector magnitude: how long is a vector?
Before comparing vectors, let's understand their length, also called their magnitude or L2 norm.Suppose we have:
a = [3, 4]
The magnitude is calculated using the Pythagorean theorem.
Step 1: Square both coordinates.
‖a‖₂ = √(3² + 4²)
Step 2: Simplify the squares.
‖a‖₂ = √(9 + 16)
Step 3: Add the values and calculate the square root.
‖a‖₂ = √25 = 5
Therefore, the magnitude of vector
[3, 4]is 5.In simple terms, the magnitude tells us how far the point is from the origin,
(0, 0).Implementing magnitude in JavaScript
function magnitude(vector) {
const sumOfSquares = vector.reduce(
(sum, value) => sum + value * value,
0
);return Math.sqrt(sumOfSquares);
}console.log(magnitude([3, 4])); // 5
Here's what the code does:
- Squares every value.
- Adds the squared values together.
- Takes the square root of the sum.
We'll reuse this function when calculating cosine similarity.
5. Euclidean distance: how far apart are two vectors?
Magnitude measures the distance from the origin. Euclidean distance measures the distance between two points.Suppose we have two points.
Point A
a = [1, 2]Point B
b = [4, 6]How far apart are they?
First, calculate the difference between their coordinates:
- Horizontal difference: 4 − 1 = 3
- Vertical difference: 6 − 2 = 4
Using the Pythagorean theorem:
d = √(3² + 4²)
d = √(9 + 16)
d = √25 = 5
The Euclidean distance is 5 units.
The general L2 distance formula
For two vectors with the same number of dimensions:dL2(a, b) = √[Σᵢ₌₁ⁿ (aᵢ − bᵢ)²]
You don't need to memorize the notation immediately. Remember the process:
- Subtract corresponding coordinates.
- Square each difference.
- Add the squared differences.
- Take the square root.
Implementing L2 distance in JavaScript
function l2Distance(a, b) {
if (a.length !== b.length) {
throw new Error("Vectors must have equal dimensions");
}const sumOfSquares = a.reduce((sum, value, i) => {
const difference = value - b[i];
return sum + difference * difference;
}, 0);return Math.sqrt(sumOfSquares);
}const a = [1, 2];
const b = [4, 6];console.log(l2Distance(a, b)); // 5
How does this help with semantic search?
Imagine our query has already been converted into a vector:const query = [2, 3];
We also have two document embeddings:
const documentA = [4, 4];
const documentB = [2, 5];Let's calculate the distance from the query to each document.
Document A
Distance = √((2 − 4)² + (3 − 4)²)
Distance = √(4 + 1)
Distance ≈ 2.236
Document B
Distance = √((2 − 2)² + (3 − 5)²)
Distance = √(0 + 4)
Distance = 2
Document B is closer to the query because
2is smaller than2.236.When ranking by L2 distance, a smaller distance means the vectors are closer together.
However, Euclidean distance isn't the only way to compare vectors. Another popular metric is cosine similarity.
6. Dot product: multiplying corresponding values
The dot product is an operation used in vector mathematics. It also plays an important role in calculating cosine similarity.Suppose we have two vectors:
a = [2, 3]
b = [4, 5]
Multiply their corresponding values and add the results:
a · b = (2 × 4) + (3 × 5)
a · b = 8 + 15 = 23
The dot product is 23.
Implementing dot product in JavaScript
function dotProduct(a, b) {
if (a.length !== b.length) {
throw new Error("Vectors must have equal dimensions");
}return a.reduce(
(sum, value, i) => sum + value * b[i],
0
);
}console.log(dotProduct([2, 3], [4, 5])); // 23
The dot product combines information from corresponding dimensions. When divided by the magnitudes of both vectors, it gives us the cosine of the angle between them.
That is the foundation of cosine similarity.
7. Cosine similarity: are the vectors pointing in the same direction?
Euclidean distance asks:How far apart are two points?
Cosine similarity asks:
How closely do two vectors point in the same direction?
Its formula is:
cosineSimilarity(a, b) = (a · b) / (‖a‖₂ × ‖b‖₂)
Let's work through an example.
Suppose:
a = [1, 2]
b = [2, 4]
Notice that vector B is twice vector A. Both point in exactly the same direction.
Step 1: Calculate the dot product
a · b = (1 × 2) + (2 × 4) = 10Step 2: Calculate both magnitudes
For vector A:‖a‖₂ = √(1² + 2²) = √5
For vector B:
‖b‖₂ = √(2² + 4²) = √20
Step 3: Calculate cosine similarity
cosineSimilarity = 10 / (√5 × √20)Since √5 × √20 = 10:
cosineSimilarity = 10 / 10 = 1
The cosine similarity is 1, meaning the vectors point in exactly the same direction.
Interpreting cosine similarity
ScoreGeometric interpretation1Same direction0.8Strong positive directional alignment0Perpendicular directions-1Opposite directions
These are geometric interpretations, not universal thresholds for semantic relevance. Whether a score indicates similar meaning depends on the embedding model and the data.Implementing cosine similarity in JavaScript
function magnitude(vector) {
return Math.sqrt(
vector.reduce((sum, value) => sum + value * value, 0)
);
}function dotProduct(a, b) {
if (a.length !== b.length) {
throw new Error("Vectors must have equal dimensions");
}return a.reduce(
(sum, value, i) => sum + value * b[i],
0
);
}function cosineSimilarity(a, b) {
const magnitudeA = magnitude(a);
const magnitudeB = magnitude(b);if (magnitudeA === 0 || magnitudeB === 0) {
throw new Error(
"Cosine similarity is undefined for zero vectors"
);
}return dotProduct(a, b) / (magnitudeA * magnitudeB);
}console.log(cosineSimilarity([1, 2], [2, 4])); // 1
console.log(cosineSimilarity([1, 0], [0, 1])); // 0
console.log(cosineSimilarity([1, 0], [-1, 0])); // -1Cosine similarity is useful because multiplying a nonzero vector by a positive number doesn't change its direction. Consequently, cosine similarity is unaffected by positive scaling of either vector.
This can be helpful when comparing embeddings whose lengths differ.
8. Cosine distance: turning similarity into distance
Sometimes we want a distance metric where lower values indicate a closer match.A common definition is:
cosineDistance = 1 − cosineSimilarity
Suppose Document A has a cosine similarity score of
0.9.Distance A = 1 − 0.9 = 0.1
Document B has a cosine similarity score of
0.6.Distance B = 1 − 0.6 = 0.4
Document A is the closer match under this metric because its cosine distance is smaller.
Implementing cosine distance
function cosineDistance(a, b) {
return 1 - cosineSimilarity(a, b);
}console.log(cosineDistance([1, 2], [2, 4])); // 0
console.log(cosineDistance([1, 0], [0, 1])); // 1Remember the distinction:
- Cosine similarity: Higher is better for directional alignment.
- Cosine distance: Lower is better.
- L2 distance: Lower means the points are closer.
Implementations and vector databases may define or report metrics differently, so check the documentation for the system you're using.
9. L2 distance vs. cosine similarity
Let's compare two vectors:a = [1, 1]
b = [10, 10]
These vectors point in exactly the same direction, but their magnitudes differ.
Their cosine similarity is:
cosineSimilarity(a, b) = 1
Their cosine distance is:
cosineDistance = 1 − 1 = 0
Now calculate their Euclidean distance:
dL2 = √((1 − 10)² + (1 − 10)²)
dL2 = √(81 + 81)
dL2 = √162 ≈ 12.728
The vectors have perfect directional alignment, yet their Euclidean distance is greater than 12.
This illustrates the key difference:
PropertyL2 distanceCosine similarityMeasuresDistance between coordinatesAlignment of directionsAffected by vector magnitude?YesNot by positive scalingBetter scoreSmallerLargerUseful whenCoordinate distance mattersDirectional alignment matters
Neither metric is always better. The right choice depends on how the embedding model was trained and how its vectors should be compared.10. Build a simple semantic-ranking example
Now let's combine our functions to build a small vector-ranking demonstration in JavaScript.Imagine an embedding model has already converted a search query and three documents into two-dimensional vectors.
const query = [0.8, 0.6];
const documents = [
{
title: "API performance optimization",
embedding: [0.9, 0.4]
},
{
title: "Database query optimization",
embedding: [0.7, 0.7]
},
{
title: "Chocolate cake recipe",
embedding: [-0.5, 0.8]
}
];These vectors are invented for demonstration. In a real application, an embedding model would generate them.
Let's rank the documents by cosine similarity.
function magnitude(vector) {
return Math.sqrt(
vector.reduce((sum, value) => sum + value * value, 0)
);
}function cosineSimilarity(a, b) {
if (a.length !== b.length) {
throw new Error("Vectors must have equal dimensions");
}const dot = a.reduce(
(sum, value, i) => sum + value * b[i],
0
);const normA = magnitude(a);
const normB = magnitude(b);if (normA === 0 || normB === 0) {
throw new Error("Zero vectors are not supported");
}return dot / (normA * normB);
}const rankedDocuments = documents
.map(document => ({
title: document.title,
score: cosineSimilarity(query, document.embedding)
}))
.sort((a, b) => b.score - a.score);console.log(rankedDocuments);
The results are approximately:
[
{
title: "Database query optimization",
score: 0.990
},
{
title: "API performance optimization",
score: 0.975
},
{
title: "Chocolate cake recipe",
score: 0.085
}
]We sort the results in descending order because higher cosine similarity means stronger directional alignment.
Notice something important: our JavaScript code doesn't understand language. It only compares vectors.
The embedding model is responsible for learning useful representations of language. The ranking code uses those representations to order the results.
Our example demonstrates the mechanics of vector search, not a complete semantic search system.
11. Where do real embeddings come from?
So far, we've manually supplied vectors such as[0.8, 0.6].Real applications use an embedding model to generate vectors from text or images.
A typical workflow looks like this:
- Choose an embedding model.
- Convert each document into a vector.
- Store the vectors alongside document IDs and content.
- Convert the user's query into a vector using a compatible model.
- Find the nearest document vectors.
- Return the corresponding documents in ranked order.
A JavaScript application might call an embedding API like this:
// Illustrative pseudocode.
// Replace this with your embedding provider's SDK.const queryEmbedding = await embeddingModel.embed(
"How do I make my application faster?"
);const documentEmbedding = await embeddingModel.embed(
"Improve API performance with caching."
);const score = cosineSimilarity(
queryEmbedding,
documentEmbedding
);console.log(score);
The exact API depends on your embedding provider. The key requirement is that both vectors must come from compatible embedding representations.
For thousands or millions of documents, calculating every distance in application code can become expensive. A vector database or search engine can index embeddings and retrieve nearby candidates more efficiently.
12. Does the same mathematics work for image search?
Yes. The comparison mathematics is the same, but the process that generates the vectors differs.Imagine you're building an image-search application. A user enters:
A dog playing on a beach.
A compatible text-image model converts the query into an embedding. It also converts the available images into embeddings in a shared vector space.The application compares the query vector against the image vectors and ranks the images by similarity.
The process looks like this:
Text query
|
v
Text encoder
|
v
Query embedding
|
v
Compare against image embeddings
|
v
Rank matching imagesThis works directly only when the model is designed to produce comparable text and image embeddings.
Why not simply compare raw pixels?
Two photographs of the same dog might have different lighting, camera angles, cropping, or backgrounds. Raw pixel differences may be large even when the images depict similar content.
Learned image embeddings can capture useful visual patterns that raw pixel distance misses.
However, the model can still make mistakes. A high similarity score is a ranking signal, not proof that an image contains every detail in the query.
13. Why normalized vectors matter
Some embedding models produce vectors with a magnitude of1. These are called L2-normalized vectors.For unit-normalized vectors, Euclidean distance and cosine similarity are mathematically related:
L2 distance² = 2 × (1 − cosine similarity)
Equivalently:
L2 distance = √[2 × (1 − cosine similarity)]
This means that ranking the same unit-normalized vectors by L2 distance or cosine similarity produces the same ordering:
- Higher cosine similarity means lower L2 distance.
- Lower cosine similarity means higher L2 distance.
This relationship can be useful when choosing a metric for a vector index.
Don't assume every embedding model automatically normalizes its output. Check the model documentation before relying on this property.
14. What would I use in a real JavaScript application?
For a practical semantic-search feature, I'd separate the system into four responsibilities.1. Embedding model
Converts text or images into vectors that represent useful features of the content.
2. Vector database
Stores the vectors and retrieves nearby candidates efficiently.
3. Similarity metric
Determines how the system compares vectors, using cosine similarity, Euclidean distance, or another supported metric.
4. Application code
Handles queries, metadata, filtering, ranking, and displaying results to users.
Start with the metric recommended by your embedding model, then test it against real queries and expected results.
For example, if you're building documentation search, create a test set of queries such as "make API faster" and identify which articles should appear first. Measure whether those articles show up in the top five results.
That gives you a practical way to evaluate your search quality rather than choosing a metric based only on intuition.
You may also want hybrid search, which combines vector similarity with keyword search. This can be especially useful when users search for exact identifiers, error messages, version numbers, or technical terms that must match precisely.
Conclusion
Semantic search becomes much easier to understand when we break it into smaller mathematical concepts.A vector is an ordered list of numbers. An embedding model converts text or images into vectors. Euclidean distance measures how far apart two vectors are, while cosine similarity measures how closely their directions align. Cosine distance converts similarity into a distance-style score.
With a few JavaScript functions, we can implement these calculations and build a simple vector-ranking demonstration.
The most important distinction is this:
Vector mathematics gives us a way to compare representations. The embedding model learns representations that can capture useful relationships in meaning.
Both parts matter when building a useful semantic-search system.#ai #machinelearning #search #software #coding #development #engineering #inclusive #community
How Machines Find Meaning: The Math Behind Semantic Search -
Most businesses know how to track their Google rankings.
But what happens when a potential customer stops searching on Google and starts asking ChatGPT, Perplexity, or another AI assistant which product they should choose?
Your website might rank well. Your content might get traffic. Your competitors might even have fewer backlinks than you.
Yet when a customer asks an AI assistant for recommendations, your competitors appear while your brand is nowhere to be found.
That creates a new visibility problem: which questions are you losing in AI search?
I'm building Aurvikon to help answer that question.
The problem with measuring AI visibility
Traditional SEO gives us familiar metrics:- Keyword rankings
- Impressions and clicks
- Organic traffic
- Backlinks
- Search performance
These metrics remain valuable. But they don't fully explain how your brand appears inside AI-generated answers.
Imagine someone asking an AI assistant:
- What are the best tools for improving AI search visibility?
- Which platforms help SaaS companies monitor their brand in AI answers?
- Compare three alternatives for tracking brand recommendations in AI search.
- Which tool should a startup use to understand its visibility in ChatGPT?
Your brand might appear in one answer and disappear from the next.
A competitor might be recommended repeatedly. Another company might be described as the category leader. Your own product might be missing entirely.
Looking at a single AI-generated answer won't tell you the whole story.
You need to understand visibility across the questions your potential customers actually ask.
The shift: from keyword rankings to question-level visibility
I'm interested in a more useful way to think about AI search visibility.Instead of asking only:
"Does my brand appear in AI search?"
Ask:
"For which relevant buyer questions does my brand appear, where do competitors appear instead, and what can I do about it?"
That second question leads to much more actionable work.
Consider three possible findings from an AI visibility audit:
1. You're missing from important questions.
People ask questions directly related to your product category, but the AI response doesn't mention your company.
2. Your competitors are being recommended instead.
Your product may be relevant, but competing brands are consistently appearing in the answers you're trying to win.
3. Your brand appears, but not in the way you want.
An AI response might mention your company without accurately communicating its core use case, differentiator, or value.
These are different problems. They shouldn't all receive the same recommendation to "publish more content."
What we're building with Aurvikon
Aurvikon is an AI visibility tool focused on helping businesses understand how their brands appear across AI answer platforms.The core idea is straightforward:
Identify the questions where your brand is losing visibility, understand what appears instead, and turn those findings into an action plan.
A practical workflow looks like this:
Step 1: Identify the questions buyers ask
Start with questions your target customers might ask before choosing a product.Don't limit the research to your brand name. Include category searches, comparisons, alternatives, use cases, and purchasing decisions.
Step 2: Test those questions across AI platforms
Run relevant questions across the platforms you want to monitor, such as ChatGPT, Perplexity, and Gemini.Treat the responses as observations to analyze, not as permanent rankings.
Step 3: Identify where you're losing
Look for patterns:- Which questions mention your brand?
- Which questions mention competitors but not you?
- Where are you missing from relevant comparisons?
- Which product capabilities or use cases aren't being communicated?
- Which questions deserve attention first?
This is where an audit becomes more useful than a collection of screenshots.
Step 4: Turn findings into actions
Every visibility gap should lead to a hypothesis.Maybe a product page doesn't explain a use case clearly. Maybe your comparison content is weak. Maybe your product lacks supporting content for a particular buyer question.
Investigate the evidence, make the relevant improvement, and test again.
The goal isn't to manufacture mentions. It's to make your brand easier to understand, evaluate, and recommend when it genuinely fits the user's needs.
The difficult part isn't generating an AI visibility report
AI answers change. Results can vary by wording, location, model version, and time.That means a report saying "your brand was mentioned" is only a starting point.
A useful system should help you move from observation to diagnosis:
Buyer question → AI response → competitor comparison → visibility gap → action → retest.
That repeatable workflow is the problem space we're focused on at Aurvikon.
We're especially interested in making the results useful to founders and marketing teams who need to decide what to fix next, rather than simply collecting another dashboard of numbers.
What this means for SaaS founders
If you're building a SaaS company, think about the questions someone would ask immediately before buying your product.Not just:
"What is [your brand]?"
But:
- What is the best alternative to [competitor]?
- Which tools solve [specific customer problem]?
- Compare products that offer [important capability].
- What should a small business use for [desired outcome]?
- Which platform is best for [specific use case]?
These questions reveal how AI assistants represent your category and which products they surface for potential buyers.
They can also reveal gaps in your positioning and content strategy.
AI visibility isn't a replacement for SEO. It's an additional area to measure as customers discover products through AI-generated answers.
I'm building Aurvikon around one practical question
I believe the most useful starting point for AI visibility isn't another generic score.It's knowing which valuable questions your company is losing, which competitors show up instead, and what you should investigate next.
That's the problem we're working on with Aurvikon.
I'd love to hear from other founders, SEO professionals, and SaaS marketers:
If you could see every important buyer question where AI assistants recommend your competitors instead of you, what would you want the tool to tell you first?
Would you prioritize the competing brands, the missing content, the sources behind the answers, or the specific actions most likely to improve visibility?
I'm interested in how people are approaching this problem in practice.#ai #seo #startup #showdev #software #coding #development #engineering #inclusive #community
Your Brand Can Rank on Google and Still Be Invisible in AI Search -
This lava planet shouldn’t have an atmosphere—but it does
https://fed.brid.gy/r/https://www.popsci.com/science/lava-planet-atmosphere/
-
The Tragedy of Having a Wikipedia Page—and Then Losing It
https://fed.brid.gy/r/https://www.wired.com/story/the-tragedy-of-losing-your-wikipedia-page/
-
What causes mysterious long delayed radio echoes in Earth's atmosphere?
-
Record breaker! Astronomers spot powerful cosmic explosion that lasted 27 days
-
Micro Four Thirds magic: tiny camera, 5-axis IBIS, and 4K. Now 22% off at $699.
OM SYSTEM Olympus E-M10 Mark IV Black Micro Four Thirds
🔭 https://www.amazon.com/dp/B08D5Z7BK9?tag=jwebb004-20 #ad #paidlink #AmazonAffiliate #Photography #Camera
OM SYSTEM Olympus E-M10 Mark I... -
-
Here's a conceptual programming question for you:
If I have a static site generator, can I make it federated..? :anime_huh:
I mean, I think you can set up an RSS feed so that the feed is updated when the site is updated.
Could that be federated? Tied to a federated platform to handle the dynamic aspects, maybe..?
I ask, because when people were asking about better "web comic" platforms, some of the stuff they asked for were my reason for making "LunaGen" for my landing site for serial episode content.
Could it be federated? Does that even make sense? Would I lose the benefits of a static website? 🤔 :raccoon_cool: