Liveboat Feeds

Where a Massive Solar Storm Could Take Down the US Power Grid for Millions

A new study published Friday in AGU Advances "depicts the most advanced picture yet of how a rare but massive solar storm could affect some US industries and electric systems more than others," reports CNN. "During a 250-year solar storm, the East Coast would have widespread potential for grid failure." Researchers modeled what a Carrington Event - a 1-in-150-year geomagnetic storm or even rarer - could mean for the modern day. They estimate the US economy would lose about $1.5 billion to $2 billion per day from direct and indirect costs, as millions of people face power outages. The findings show the most vulnerable areas are the Northeast and the Northern Plains, especially locations at higher latitudes. No one knows when the next big storm will hit. While the most severe geomagnetic storms are labeled as once-in-a-century or rarer, these events don't follow a fixed schedule. "That timing only averages out on very long timescales," said Anna Kelbert, a geophysicist at the Harvard-Smithsonian Center for Astrophysics, who was not involved in the study but previously studied solar storm effects on power grids. "The event can occur at any time, as soon as a week from now, or centuries later...." [Shawn Dahl, service coordinator at the Space Weather Prediction Center operated by the National Oceanic and Atmospheric Administration in Boulder, Colorado], said the sun is now coming down from a period of heightened activity, which is also when some of the biggest storms to hit Earth have occurred in the past. "We still need a lot of work to be ready...." "We haven't really seen events like this size in the modern era, where we've had all of this high technology and we've had the power grid of this size," said Ed Oughton, researcher at George Mason University and lead author of the new study... Because the US grid's actual structure is proprietary for security reasons, the team used engineering models to create various network and transformer setups including the 10,464 substations and 16,256 transmission lines found across the country... The grid structure also contributes to higher risk in some areas. For instance, the eastern US is linked together in a single grid interconnection. A voltage issue in Maine, if not isolated early, could cascade through the grid to Washington, DC. The West works similarly, whereas the Texas interconnection operates mostly within the state... Power is restored over time depending on any alternative electrical paths that could bypass the substation or availabilities of spare transformers, for instance. "This nationwide analysis shows that we are currently ill-prepared to face a major magnetic storm, and that the societal impacts would be catastrophic," Kelbert said. "The study estimates power disruptions for 5.1 million people and 135,000 businesses," according to the article, and "The outages could last from hours to days to weeks depending on the damage and resources available to get back online, said Oughton."

The pros and cons of using wireless Android Auto


10 Smart Gadgets That Could Instantly Upgrade Your Backyard


703. Roman Civil War: Marching on the Senate (Part 3)

podcast

How to use your MacBook's built-in backup tool instead of paying for cloud storage


Common problems with Apple Wallet and how to fix them


Linux 7.3-rc2 Released Following Another Busy Week

After the Linux 7.3 merge window concluded last weekend, today we are up to the Linux 7.3-rc2 test kernel release in working toward the stable v7.3 kernel during the second half of October...

The Slate Truck is great, but this one problem may stop a lot of folks from buying it


AfD dominates Saxony-Anhalt: A turning point for Germany? | DW News

The AfD has emerged as the dominant force in Saxony-Anhalt, but election victories do not automatically translate into political power. What drove voters to back the party, and what does the result mean for Germany's political future? Brent Goff speaks with political correspondents Matthew Moore and Bernd Riegert, DW Berlin bureau chief Max Hofmann, and historian and author Katja Hoyer. They break down the results, reactions from party headquarters, the challenge of forming a government, the pressure on Chancellor Friedrich Merz and the wider implications for German politics. 00:00 AfD wins big in Saxony-Anhalt 02:03 Siegmund: 'We have made history' 03:08 Can the AfD form a government? 04:57 Why did voters back the AfD? 05:58 AfD's message to its critics 08:24 Can the AfD handle accountability? 10:02 What the result means for Germany 12:34 What does the result mean for Merz? 13:39 Can the AfD's momentum spread? 15:23 CDU's Schulze concedes defeat 16:14 Why did the CDU lose so badly? 20:31 Katja Hoyer: How big a breakthrough is this for the AfD? 21:51 AfD's new campaign style pays off 24:04 Migration, the economy and the AfD surge 25:27 Germany's far-right shift in context For more news go to: http://www.dw.com/en/ Follow DW on social media: ►Instagram: https://www.instagram.com/dwnews ►TikTok: https://www.tiktok.com/@dwnews ►Facebook: https://www.facebook.com/deutschewellenews/ ►Twitter: https://twitter.com/dwnews Für Videos in deutscher Sprache besuchen Sie: https://www.youtube.com/dwdeutsch Subscribe: https://www.youtube.com/user/deutschewelleenglish?sub_confirmation=1 #dwcurrentaffairs

Phil Schiller's App Store exit reportedly driven by wariness over future plans

Schiller reportedly had reservations about new CEO John Ternus' goal of bringing in more recurring revenue from the App Store.

Authors push back as publishers and agents make claims on Anthropic settlement

Authors say publishers seem to be claiming more than their fair share of settlement payments.

TiVo Will Start Charging Fees For Its Automatic Commercial Break-Skipping Feature 'SkipMode'

TiVo is notifying customers about changes to "one of its longest-standing and most popular DVR features," reports the blog Cord Cutter News: Starting November 2, 2026, the current version of SkipMode that allows users to jump over commercial breaks with a single button press on the remote will no longer be available. The company is instead preparing to test a new paid add-on called Premium Auto Commercial Skip. SkipMode has been a core part of the TiVo experience for years. After a supported show finished recording, the service added markers that let viewers leap from the end of one program segment directly to the start of the next, bypassing the ads in between. On newer TiVo Experience 4 devices, users could even set the feature to automatic so commercials were skipped without any remote interaction. The feature was limited to popular prime-time programming on major networks, typically appearing a short time after a show aired. Under the new plan, that one-button and automatic functionality will disappear from the standard service. Viewers will still be able to skip commercials the traditional way by using the 30-second skip button or the fast-forward control on their remotes. Those manual methods have existed on TiVo boxes for more than two decades and do not rely on the company's commercial-detection data. In November, TiVo will offer a 30-day free trial of the new Premium Auto Commercial Skip service. After the trial ends, customers who want to keep the automatic or one-button skip capability will need to add it to their accounts for an extra monthly fee. The company has not yet published the price. Thanks to long-time Slashdot reader AmiMoJo for sharing the article.

It took a year to ship WebAssembly in Anubis

This website is hosted by Techaro. If you have any complaints or notes about the service, please contact support@techaro.lol and we will assist you as soon as possible. -- ImprintThis website is running Anubis version v1.28.0-pre1.0.20260906214259-7564aa1d8a85.

GrapheneOS Overhauled Default Apps and Secure Clipboard


How To Send High-Quality Images And Videos From Android To iPhone


Shotcut 26.9 Video Editor Beta Brings UI Improvements, Better Audio Quality

Following the recent Shotcut stable release with a stock asset library and other improvements, Shotcut 26.9 Beta is out today with yet more improvements for this open-source video editing application for Linux, macOS, and Windows systems...

The car industry A/B tested selling a car with and without CarPlay

A couple years ago, GM made waves by saying that soon, all their new cars would be completely free of Apple's CarPlay and Android Auto support, instead opting for the "Android Automotive OS" in their cars. Admittedly, I'm a huge fan of CarPlay for basic safety reasons and how it lets you hear or send texts without ever having to look at or touch your phone, so I was not happy to hear this news. I remember when this was first announced for Chevy EVs and when it was later expanded to all their cars in the future and the resounding response was that car buyers were PISSED.Chevy claimed they were doing this for privacy reasons, that none of your driving or phone data would go to Apple any longer, but instead it would all go to Google (who would likely share it with General Motors, the owners of Chevy). Chevy seemed to ignore the uproar from their fans and went ahead with it anyway, and as far as I can tell, all 2025 Chevy electric vehicles shipped with the Android Auto OS and don't interface with your phone beyond bluetooth or let you see CarPlay or AndroidAuto apps on your dash.Honda, much like Toyota and Subaru, didn't have a robust EV research and development program and kind of lagged behind their rival auto companies on selling EVs, so they partnered with other auto brands to rebadge, rebrand, and resell versions of cars made by other companies.One case in point is the Honda Prologue EV. It's a partnership between Honda and Chevrolet, where the Prologue is basically a Chevy Blazer EV with Honda badges, slight visual differences in the sheetmetal and interior, but all the underpinnings are straight up Chevy. Even though the keys say Honda on a Prologue, it's a General Motors key design with a Honda logo over it. But one big difference the Prologue has from the Blazer it is based on is this: it includes Apple CarPlay and Android Auto integration.The car industry accidentally did something I've always wanted to see, which was to release basically the same car under two brands and models, with one major consumer-facing difference. It's kind of remarkable how good of a experimental design this is, since the performance and driving characteristics of both cars are identical, but drivers in one model get a major phone integration the others do not.So how did that work out for Chevy?You can look up actual sales numbers in GM and Honda's annual reports of sales they're required to publish to investors, and here are the results for the last 2.5 years they've both been sold in the US: U.S. Sales: Chevrolet Blazer EV vs. Honda Prologue Note: The 2026 figures cover January through June and are not full-year totals. The last column on the right is the most telling. For the years these cars were sold together, the Honda outsold the Blazer by 43%, 73%, and 166% in each time period. Today in 2026, people are buying a Honda Prologue over one and a half times more often than the Chevy Blazer EV the Prologue is based on.Of the total number of EV sales between the two brands, here's a graph of how many sold were Hondas (orange) and how many were Chevys (blue):Give consumers a choice, and they'll take the best optionDrivers want more options for how they interact with their devices, and they are increasingly preferring to buy a Chevy covered in Honda badges that comes with phone integrations instead of buying the actual Chevy the Honda is based on, which lacks it.I wonder if Chevy will ever backpedal from their choice to remove CarPlay and Android Auto? Drivers seem to be voting with their dollars on the question, and they're voting favorably in one direction on this issue.Now that the market has spoken loud and clear, will General Motors listen? months ago that made me want to look up the latest sales figures today)

German far-right AfD wins by a landslide in Saxony-Anhalt: exit polls

German far-right AfD wins by a landslide in Saxony-Anhalt: exit polls If the AfD manages to form a government, it would be the first far-right party to lead a German state since World War II READ MORE : http://www.euronews.com/2026/09/06/german-far-right-afd-wins-by-a-landslide-in-saxony-anhalt-exit-polls Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #EuropeNews

OpenAI says it reached its goal of creating an automated research intern


Funniest/Most Insightful Comments Of The Week At Techdirt

And that's why trying to distill partisan politics down to just "team blue" vs. "team red" is reductive at best and false equivalence at worst. This and many other life-or-death issues break down on pretty clear partisan lines, and it's entirely clear which party is right and which one is wrong.Christ knows the Democrats aren't perfect. But of the two major parties they're the one that's not a eugenicist death cult.No, that's not how computers work. Microsoft Windows identifies the connected monitor, and then, on its own authority, checks whether the manufacturer has "recommended" any software to go with it; if so, Windows installs that without telling the user. The monitor isn't installing anything.Of course, we should also be criticizing monitor manufacturers for taking advantage of this misfeature. But the root problem is with Microsoft. More than 2 decades after the Sony rootkit, they haven't learned their lesson (or maybe they have: people will put up with this shit, and the blame will mostly be misdirected).Nope. Not at all. Screw that noise.Teslas might function as a car some of the time, but that doesn't mean you have to give Musk any credit whatsoever.Starlink is a money pit from whence nothing can be recovered. Even the most corrupt broadband fiber deployment can be dug up or reused. Comcast could, in a just judicial system, be broken up as an illegal monopoly and their infrastructure that we paid for could be reused by other service providers.And not every dollar was going to go to big monopolistic companies, whereas any money going to Starlink funds literal authoritarian, anti-democratic election interference.Unfortunately, "kids won't be able to post videos that make authorities look bad and fuel significant protests" is an appealing argument to the authoritarians who are already in favor of curbing social media access for kids which those authoritarians can't directly control.How dare you insult vegetables like that. Unlike Mitch McConnell's political career, vegetables are actually good for the average person.That's all for this week, folks!

War is likely to drag on into winter according to Zelenskyy following talks with US envoys

War is likely to drag on into winter according to Zelenskyy following talks with US envoys Following talks in Kyiv with US envoys, Zelenskyy said, "We very much hope that we will be able to reach agreements with our American partners, and we are counting on the support of our European partners if the war continues in winter -- and this is how it appears at the moment." READ MORE : http://www.euronews.com/2026/09/06/war-is-likely-to-drag-on-into-winter-according-to-zelenskyy-following-talks-with-us-envoys Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #EuropeNews

What is vibe coding and why does it get so much hate?


Dual-band vs. tri-band routers: What's the difference between them?


NetBSD 9.5 Released To Cap Off The Series

NetBSD 9.5 released today as the final release of the NetBSD 9 stable branch...

Following legal advice, the Nitter project will continue


Nitter and XCancel resume service after legal advice


Germany: Exit polls predict historic far right victory

Voters in Saxony-Anhalt in eastern Germany have been going to the polls in an election which the populist, far-right anti-immigration party AFD are expected to win comfortably.Exit polls published just over an hour ago suggest they've won an historic victory - just one vote short of an overall majority.

Trump envoys Witkoff and Kushner visit Kyiv for first time to discuss U.S. peace proposal

US envoys Steve Witkoff and Jared Kushner have spent the day in Kyiv with Ukrainian President Zelenskyy to discuss proposals to end the war with Russia.It's the pair's first-ever visit to Ukraine as negotiators. Mr Kushner conveyed that President Trump was very keen to see an end to the war, though details on how this could be achieved are unclear.While President Zelenskyy said security guarantees for Ukraine are needed. Zahra Warsame has this report.

Flock Offered Webinar Teaching Cops How to Surveil 'No Kings' Protesters

Thursday 404 Media reported that Flock taught America's cops "how they could surveil the No Kings protests" against President Trump (as well as "small parades") in a webinar last year that described "using a mix of Flock's technology and law enforcement's own databases." In the webinar, Flock's director of market management Caity Peak explains how real time crime centers - which are police surveillance centers that utilize Flock cameras and other surveillance cameras - can be used for emergency response, but can also be used to surveil "established events" like 4th of July fireworks displays, parades, bike races, Mardi Gras, and protests. The webinar shows just how routine the idea of always-on surveillance has become, and how casually it is used during extremely innocuous events. Peak explains that police can use FlockOS, a software platform that combines Flock's automatic license plate readers (ALPR), drones, gunshot detectors, 911 data, and other surveillance cameras (including ones Flock does not own) into a "single pane of glass" or single piece of software to look at various types of surveillance in one place during both emergencies and relatively mundane events in a city or town. "Imagine that you're an incident commander, and you're working this No Kings Protest," Peak explains while a dashboard shows a series of surveillance tools overlaying the city of Denver. "If I'm somebody assigned a traffic post that's working this No Kings Protest, I really don't have time to go in [...] and look at all these places [for different intelligence]. This is an example of viewing all of that in one place...." The dashboard Peak shows includes traffic information, a "response plan" for the protest, the floor plans of nearby buildings, as well as a series of video feeds of both outdoor-mounted cameras and cameras inside businesses and government buildings. 404 Media and the Electronic Frontier Foundation previously showed that police have specifically used Flock cameras to monitor the No Kings protests and other First Amendment-protected activity... This webinar shows this type of surveillance is not anomalous, and is specifically taught by Flock. The webinar also shows that Flock's latest public stance - that its ALPR cameras are noninvasive technology, that they take only static images at a single place and time, and that they are primarily used to solve the worst crimes - is wildly misleading. Flock has time and time again pitched itself to police as a sort of operating system to solve crime and do real-time surveillance and predictive policing. ALPRs are just one part of this broader surveillance apparatus that Flock has created, markets to police, and teaches them how to use.

How to set up ChatGPT's parental controls to protect your teen


Bloomberg This Weekend | Iranian Tanker Sinks, Push For Peace in Ukraine, State of the Labor Unions

The news doesn't stop when markets close. Hosts David Gura, Christina Ruffini and Lisa Mateo bring clarity, context and a bit of humor to the weekend's biggest headlines, LIVE from New York. Joined by BBC Chief International Correspondent Lyse Doucet, AFL-CIO President Liz Shuler, Michigan Rep. Haley Stevens and California Rep. Kevin Kiley. Chapters: 00:00:00 - Bloomberg This Weekend Begins 00:01:31 - News Now with Lisa Mateo 00:04:28 - Iran Targets Oil Tankers in Response to US Strikes 00:06:48 - US Strikes 3 Iranian Tankers in Response to Attacks 00:09:54 - US Envoys Kushner & Witkoff Arrive in Ukraine 00:13:51 - Germany Holding Key State Election Today 00:16:12 - German Election Pose Risk to Chancellor Merz 00:18:00 - Lisa Mateo with News Now 00:19:19 - Canada' Reciprocal Tariffs to Take Effect Tuesday 00:21:17 - Bessent: Canada Tariffs "Negligable" Impact on US 00:23:06 - New Canadian Tariffs to Hit Metals & Machinery 00:28:34 - The Big Business of Helping the Rich Dodge Taxes 00:31:28 - News Now with Lisa Mateo 00:33:00 - BBC Goes Inside Afghanistan Ahead of 9/11 Anniversary 00:35:29 - BBC Reporter Explores Life Under Taliban Rule 00:41:29 - BTW with Lisa Mateo 00:48:29 - Top of the Hour with Bloomberg This Weekend 00:50:10 - Lisa Mateo with News Now 00:52:43 - Iran Says It Targeted Tankers in Response to US Strikes 01:00:12 - Trump Blames Biden For Giving Weapons o Ukraine 01:01:36 - USS Lincoln Docks in Thailand After 9 Months at Sea 01:02:41 - Thai City Rolls Out Red Carpet for US Sailors 01:03:51 - Sailors Share Troubling Stories From Department 01:06:30 - News Now with Lisa Mateo 01:08:16 - AFL-CIO President Joins Bloomberg This Weekend 01:20:00 - Lisa Mateo with News Now 01:22:15 - This Week: Republican Midterm Convention in Dallas 01:25:20 - Trump's MAGA INC. Sends $10M to Aid Ken Paxton 01:28:43 - Obama to Headline NYC Fundraiser on Thursday 01:30:00 - Ad - British Food Culture Hits the United States 01:37:00 - ad - Top of the Hour with Bloomberg This Weekend 01:37:44 - Headlines with Lisa Mateo 01:40:26 - Kushner, Witkoff Meet Zelenskyy in First Visit to Kyiv 01:42:47 - Rep. Haley Stevens Joins Bloomberg This Weekend 01:56:25 - Rep. Kevin Kiley Joins Bloomberg This Weekend 02:06:51 - News Now with Lisa Mateo 02:09:44 - The Real Toll of Europe's Heatwave 02:12:00 - Lisa Mateo with News Now 02:13:26 - LA Clippers Fined $40M, Lose 5 Picks for Salary Cap Circumvention 02:16:39 - WNBA Commissioner Engelbert to Retire After Seven Years 02:17:36 - Bloomberg Power Players 02:18:53 - NYC's US Open Tickets Tumble to Below $100 a Seat 02:19:57 - Cannabis Fumes Distract Tennis Stars at US Open 02:22:01 - Pointed: The News Quiz for Risk Takers -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

EU chief von der Leyen heads to Greenland in show of support for the island

EU chief von der Leyen heads to Greenland in show of support for the island Speaking at the World Economic Forum's annual meeting in Davos this year, von der Leyen said the EU was working on a "massive European investment surge" in Greenland in a bid to ramp up Arctic security. READ MORE : http://www.euronews.com/2026/09/06/eu-chief-von-der-leyen-heads-to-greenland-in-show-of-support-for-the-island Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #EuropeNews

Travis Kalanick's Atoms might be getting into the robotaxi business

The Uber founder has said that Atoms will allow him to complete "unfinished business."

How to find your iPhone even when it's off


An Alien Mind


TechCrunch Mobility: Tesla Cybercab hits the road - and a snag

Welcome back to TechCrunch Mobility, your hub for the future of transportation and now, more than ever, the role AI is playing in it.

French National Rally's Bardella on Budget, AI, Ukraine

France's National Rally will oppose any proposals by the current government for tax increases in the next budget, according to the president of the far-right party, Jordan Bardella. He also touted the strong transatlantic relationship with the US, and said he believes France should receive something from Ukraine in exchange for continued support. Bardella spoke exclusively with Bloomberg Television Anchor Francine Lacqua from Lake Como in Cernobbio, Italy. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Latest news bulletin | September 6th, 2026 - Evening

Latest news bulletin | September 6th, 2026 - Evening Catch up with the most important stories from around Europe and beyond this September 6th, 2026 - latest news, breaking news, World, Business, Entertainment, Politics, Culture, Travel. READ MORE : http://www.euronews.com/2026/09/06/latest-news-bulletin-september-6th-2026-evening Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #TopNewsStoriesToday

Off to Scotland - Happiness, solitude and oysters | DW Documentary

Lars used to be a police officer. Together with his wife Sandy and their young son, he moved from Germany to a remote Scottish island in the Atlantic. Colonsay has only 120 inhabitants, a shop and a café - and not much else. Lars was keen to escape big city life and pitched the idea to his Scottish wife, Sandy. She agreed to relocate their family and move to Colonsay. The remote island is where she grew up; she and Lars even got married there a few years ago. Lars is a lively, sociable type. Will the solitude and almost eerie tranquility on the island in winter suit him? Lars' father-in-law runs an oyster farm on Colonsay. He'd been looking for someone to take over the business and now Lars is there to help. It's a tough business. In summer, life feels like a holiday. But in winter, 'the demons come', as the islanders say. Lars, too, is struggling with his past. It's only light for a few hours a day in winter, and the island is often battered by storms. While Sandy starts working from home again, Lars spends a lot of time with their son. He's also a keen cold-water swimmer. Whenever he can, he ventures into the icy, raging seas that surround the island. #documentary #dwdocumentary #dwdocs #scotland #oysters #newbeginnings ______ DW Documentary gives you knowledge beyond the headlines. Watch top documentaries from German broadcasters and international production companies. Meet intriguing people, travel to distant lands, get a look behind the complexities of daily life and build a deeper understanding of current affairs and global events. Subscribe and explore the world around you with DW Documentary. Subscribe to: ‬ ⮞ DW Documentary (English): https://www.youtube.com/@DWDocumentary ⮞ DW Documental (Spanish): https://www.youtube.com/@DWDocumental ⮞ DW Documentary وثائقية دي دبليو (Arabic): https://www.youtube.com/@dwdocarabia ⮞ DW Documentary हिन्दी (Hindi): https://www.youtube.com/@dwdochindi ⮞ DW Dokumenter (Indonesian): https://www.youtube.com/@DWDokumenter ⮞ DW Doku (German): https://www.youtube.com/@DWDoku For more visit: http://www.dw.com/en/tv/docfilm/s-3610 Follow DW Documentary on Instagram: https://www.instagram.com/dwdocumentary/ Follow DW Documental on Facebook: https://www.facebook.com/dwdocumental We kindly ask viewers to read and stick to the DW netiquette policy on our channel: https://p.dw.com/p/MF1G

The pros and cons of using an iPad as a laptop


I built a note/list app with zero bloat - just tasks to tick-off, fast and free (LightList)

Every "simple" productivity app I tried lately somehow ends up with AI summaries, workspaces, tags, and a paywall by the third feature. I just wanted a place to dump bullet points and access them anywhere. So I built one. - no signup friction, no bloat, just a list taker that does the one thing well.Stack-wise: Go backend + React frontend, OpenAPI spec-first, using Go's to bundle everything into a single binary (genuinely one of my favourite parts of Go - no separate asset pipeline nonsense). This is actually the first site I've built and deployed solo end-to-end despite years as a dev, so there was a real learning curve on the ops/deployment side.It's completely free, no idea how long I'll keep it running, and I'd love feedback - especially anything that's confusing or missing. Might open-source the repo if there's interest.

NetBSD 9.5 released and EOL for NetBSD-9

September 06, 2026 posted by The NetBSD Project is pleased to announce NetBSD 9.5, the fifth (and final) release from the NetBSD 9 stable branch.It represents a selected subset of fixes deemed important for security or stability reasons since the release of NetBSD 9.4 in April 2024. It is fully compatible with NetBSD 9.0.This also marks the end-of-support for all NetBSD-9.x releases and the netbsd-9 branch. All users still on this branch are urgently asked to update to a more recent release like NetBSD 11.0 (with 11.1 upcoming at the end of this month) or NetBSD 10.2 (to be released in a few days). [0 comments]

Is 256GB enough for an iPhone? Here's when you should go bigger


Pointed! Bloomberg's Weekly News Quiz For Risk-Takers

Pointed offers a strategic twist to the news quiz format, testing not just players' knowledge of the news but also their confidence in their answers. Join Bloomberg's Lisa Mateo, Christina Ruffini, and Jeff Mason as they play and check out the quiz for yourself at Bloomberg.com -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Research acceleration: The view inside OpenAI


NBA Hits Clippers With Historic Penalties

The NBA fined the Los Angeles Clippers $30 million and stripped the franchise of five first-round draft picks after an independent investigation found the team circumvented salary-cap rules by facilitating off-court income opportunities for Kawhi Leonard. Bloomberg News Senior Sports Reporter Randall Williams joins Christina Ruffini and Jeff Mason on Bloomberg This Weekend and explains that owner Steve Ballmer was also suspended for a year, while Leonard was fined $700,000 in one of the league's most severe disciplinary actions. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

I Feel about AI

I feel at how well neural networks work. LLMs work like "gut feeling" as they just generate one more token after another. There is no planning or reasoning algorithm inside. Yet, some planning and reasoning emerges.I feel about an impending doom. Yudkowsky's argument that a superintelligent AI will inevitably destroy humanity seems to have no flaw. Yet, nobody seriously tries to sandbox AIs because they are too useful with access.I feel about AI companies destroying the open web society. Their crawlers and agents make it increasingly difficult to sustain an open community on the web. Like a locust plague, they descend on any open wiki and forum and overwhelm them.I feel about the artists who suffer due to AI-slop competition. Being an artist always required some sacrifice and only a few are fortunate to gain some wealth. This is even harder now that AI can generate some kinds of "content" cheaper and faster.I feel about the inability of our political systems to rein in the power of capital. While I can rant about politicians a lot, I still prefer a democratic government to have power instead of billionaires. It essentially just comes down to making some decisions in a coordinated way, but most people are not even aware of the problem. This also covers the environmental destruction by AI companies as they greedily gobble up all kinds of resources.I feel to live in this age of discovery. We might observe the creation of artificial intelligence. Working in software development, the practice was radically transformed forever in 2026. It is fascinating to observe this firsthand. It allows me to generate stuff (code, images, music) which would never have been created otherwise.As a conclusion, does the good or the bad outweigh the other? It seems positive on a technological level to me, but bleak on a societal level.(I used Mistral as reviewer here. I typed every word myself.)

How long can you expect a PlayStation 5 DualSense controller to last?


Rep. Kiley Challenges Party Control in Congress

Joining Bloomberg This Weekend, Independent California Rep. Kevin Kiley is calling for House rules to guarantee committee assignments for lawmakers who don't belong to either major party, after his own assignments were temporarily vacated when he left the Republican Conference. Kiley also criticizes mid-decade gerrymandering and said he supports mail voting while arguing that nationwide election policy should be set by Congress rather than executive order. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

A year of designing a Go API around Protobuf, gRPC, Envoy, and generated SDKs

I've spent the past year building Cadenya's API toolchain around a Protobuf and gRPC contract. From that contract, I expose a REST/JSON API through Envoy and generate our OpenAPI specification, SDKs, and API reference. I wrote about the decisions behind the toolchain and how they shaped the Go backend.How the Protobuf resources are structuredHow generated Protobuf methods become useful Go interfacesHow those interfaces influence the Ent schema and repository designHow Envoy transcodes REST/JSON requests to gRPCHow the resulting OpenAPI specification feeds SDK and documentation generationThe result is a workflow that keeps the server types, public API contract, generated SDKs, and documentation aligned when I add or change an endpoint.

Canada Hits Back With New US Tariffs

Canada is set to impose new retaliatory tariffs of as much as 50% on US goods starting Sept. 8, targeting $27.6 billion of imports including steel, aluminum, pulp and paper, appliances and agricultural equipment. Bloomberg News Ottawa Bureau Chief Brian Platt tells Christina Ruffini and Jeff Mason on Bloomberg This Weekend that the broader economic impact may be limited, but businesses tied to integrated supply chains, tourism and cross-border commerce could face sharper consequences as the cycle of retaliation continues. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Rep. Stevens Says Canadian Tariffs Are Squeezing Michigan

On Bloomberg This Weekend, Michigan Representative Haley Stevens (D) says escalating US tariffs on Canadian goods are raising costs and creating uncertainty for manufacturers in her district, with the deeply integrated auto supply chain particularly exposed. Stevens tells hosts Christina Ruffini and Jeff Mason that she is promoting legislation that would provide households with as much as $1,700 to offset tariff-related costs, while criticizing the Trump administration's approach to trade with Canada. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

API gateway in Go

What do you use for API gateways for production?Can you share learned experiences, limitations you found and if you prefer a cloud managed service instead?

British Food Is Having a US Moment

British food is enjoying new popularity in the US, with a wave of pub-inspired restaurants drawing crowds with traditional dishes served in more modern settings. Bloomberg Pursuits Contributing Restaurant Columnist Oliver Guy and Anchor of Daybreak Europe Caroline Hepker sit down with Christina Ruffini and Jeff Mason on Bloomberg This Weekend and say social media, travel and demand for affordable comfort food are helping fuel the trend, with New York's Dean's among the restaurants putting classics such as stargazy pie and bubble and squeak back in the spotlight. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Show HN: Kadō - open-source habit tracker, with non-binary habit score, for iOS


A/I shuts down - Stay human

The day we discovered we had been designated a global terrorist organization, we promised that we would try to resist as long as this was possible, that we would not back down as long as we could see options to stand our ground. For years, we have proudly maintained and defended a free, privacy-friendly, autonomous and politically committed infrastructure.  is not an empty phrase to us.It means, above all, that we have a responsibility to protect our users, those who build the human networks we rely, and for the communities who flooded us with messages of support and solidarity.We cannot engage in a fight or expose ourselves to manipulations that threaten the lives of these people and their loved ones, leaving them at the mercy of autocrats, fascists and agencies that take extra-legal courses of action. The possibility that our work may cause legal and financial consequences to those who are close to us - or even only have something to do with us - leaves us no choice.A/I is shutting down. The Autistici/Inventati collective is shutting down and will soon discontinue all of the services we provide.There is no easy way to announce or explain thisEvery day we stayed online after August 26, 2026, has been a victory, but now we are forced to stop.None of us holds eroic gestures and martyrs in high esteem, therefore we will demand no sacrifices. Not from us, not from anyone else. In this political climate, continuing to offer our services endangers our users and anyone who is part of our communities. In a world where allegations are disconnected from reality, we can only expect repression to be increasingly disproportionate. Under these circumstances, we are no longer able to maintain our original mission - offering secure and non-commercial digital tools.These 25 years have been amazing. It's been an "incredible ride".Now turn off your PCs, get out of your homes, struggle, hug each other and keep on smiling. We are stopping, but the Resistance and ideas do not stop. Stay human.We will soon send instructions on how to back up the content of your blogs, mailboxes and websites, along with more technical recommendations. But keep in mind that, just as the autistici.org domain was made unreachable without previous notice, in the next few days we might suffer similar issues that we may not be able to predict.Autistici/Inventati Collective

UN Votes To Encourage Map Projections More Accurately Reflecting the True Size of Continents

The United Nations has an announcement. "The UN General Assembly has voted overwhelmingly to encourage governments, schools and tech companies worldwide to stop using maps that make Africa look far smaller than it really is." By 164 votes to one, Member States on Friday endorsed a resolution promoting map projections that more accurately reflect the true size of continents - the culmination of an African-led campaign against the 16th-century Mercator projection, still the most widely used map in the world. The United States cast the sole vote against, dismissing the initiative as part of a "radical ideological project." Six countries - Estonia, Georgia, Lithuania, Moldova, Serbia and Ukraine - abstained. The resolution does not ban the Mercator projection or impose a replacement. Instead, it encourages governments, schools, international organizations and technology companies to use the Equal Earth projection and other so-called equal-area maps when relative size matters, and to teach the limitations of any flat map in representing a spherical planet. Behind that seemingly technical debate lies a larger argument about history and power: whether a map designed for European sailors in the 16th century has, over generations, distorted not only geography but perceptions of a whole, vast and complex continent... [With Mercator maps] landmasses appear increasingly enlarged the farther they are from the Equator. Greenland, for instance, can look roughly comparable in size to Africa, even though Africa is about 14 times larger. Northern Europe and North America are similarly magnified, relative to equatorial regions. Despite its original navigational purpose, Mercator remains common in educational, media, digital and official materials. The resolution says those distortions have contributed to the "symbolic minimization" of Africa and perpetuated an unbalanced view of the world... Equal-area maps do not make Africa larger; they remove the exaggeration Mercator gives landmasses closer to the poles. The UN notes that hours before the vote, France's foreign minister announced the country was planning to abandon Mercator for its maps of the world.

You probably don't need two routers - do this instead


I built a tool that turns Go packages into typed JavaScript packages with WebAssembly

I built - a tool that generates the TypeScript side of your Go → WebAssembly APIs directly from your Go code.No Go annotations. No handwritten TypeScript types. Structs, constants, unions, and tests are generated automatically.bash npm install -g @paulgrammer/gowasm bash go install github.com/paulgrammer/gowasm/cmd/gowasm@latest If you've shipped Go/WASM to Node or the browser, I'd love to hear what edge cases you've run into.

Asahi Linux on M3

It's been a while since we did a blog post outside of the progress reports, and today's as good an occasion for one as any; support for M3 series machines has now been merged into the installer. In other words, Asahi Linux now supports Macs with an M3 series SoC!Linux support for M3 series SoCs and the machines powered by them is now in a state where everything supported on the M1 and M2 series machines just works. This includes the webcam, internal microphones, USB (up to the hardware limit of USB 3 10 Gb/s), hardware accelerated video decoding including support for AV1, WiFi, Bluetooth, and much more! The only major exceptions remain full DCP support and the GPU, which we will have more news on in the coming months. Do not expect performant or power-efficient 3D acceleration right now.Given that a lot of this work is fresh, support is gated behind the installer's Expert mode. Users who wish to give Asahi Linux a try on an M3 series machine can do so by runningin a macOS terminal and following the prompts. Please remember to do a system upgrade () after you have finished installing. We are aiming to drop the Expert requirement in time for the release of the Fedora Linux 45 beta in a couple of weeks, barring any major regressions or other showstopping issues.There are some known limitations to be aware of, however:Sleep currently due to limitations with the firmware-provided framebuffer. This will be addressed once full DCP support is wired up for M3.Similarly, the lack of DCP support means that the HDMI port on equipped MacBooks is currently disabled.Although MacBooks and iMacs are supported (M3, M3 Pro and M3 Max), the Mac Studio (M3 Ultra) is not yet supported.As always, we would like to thank our generous supporters on both OpenCollective and GitHub Sponsors. Support for M3 is the culmination of years of hard work from multiple people, many of whom have only been able to access M3 hardware because of your support.We are looking forward to hearing all your feedback, and hope you enjoy using Asahi Linux on your M3 devices just as much as we have enjoyed bringing it to you. Stay tuned for more updates and happy computing!James Calligeros ·

Trump Rallies GOP Ahead of Midterm Elections

Republicans are preparing for a first-of-its-kind midterm convention in Dallas on Sept. 9 and 10, with President Donald Trump and Vice President JD Vance among the featured speakers as the party seeks to mobilize voters ahead of November. Joining Christina Ruffini and Jeff Mason on Bloomberg This Weekend is Co-host of Bloomberg's Balance of Power Kailey Leinz and she says that the gathering will also spotlight competitive races including the Texas Senate contest, even as some Republicans in swing districts plan to stay away and campaign at home. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

The Strange Reason Men Used To Dress Like This

For centuries, men's fashion was anything but boring. The wealthiest and most powerful men in history were often the biggest fashion trendsetters and they wore elaborate clothing, extravagant accessories, wigs, makeup, heels, and enough decoration to make modern red carpets look tame. So why did men's fashion go from flamboyant and extravagant to the relatively restrained suits and casualwear we associate with men today? And why did fashion eventually become so strongly associated with women? On this episode of Weird History, we look back at a time when high society demanded that men look fashionable, wealthy, and impossibly extravagant to explain how much of the blame can be traced back to one extraordinarily influential man whose choices helped permanently reshape the way an entire gender thought about clothing. Do you wish more men still dressed with flair? Let us know in the comments. (Much like real history, this video was produced entirely by human beings.) Be sure to subscribe to the Weird History Newsletter: https://bit.ly/WeirdHistoryNews #mensfashion #men #weirdhistory

Foldable phones still need to fix this problem


USS Lincoln Sailors Describe Toll of Deployment

The USS Abraham Lincoln's crew received a long-awaited port visit in Thailand after a 286-day deployment that included a modern-era record of 264 consecutive days at sea and months of combat operations in the Middle East. Joining Bloomberg This Weekend is Bloomberg News Southeast Asia Reporter Philip Heijmans who recently returned from Thailand and says sailors described food shortages, limited communications with family and uncertainty over their return, while many also expressed pride in their mission. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Unions Gains Support as AI Reshapes Work

A Gallup poll shows 71% of Americans approve of labor unions and a record 47% want them to have more influence, while 52% of Republicans also approve. Joining Bloomberg This Weekend is AFL-CIO President Liz Shuler and she says unions are organizing around wages, AI and the midterms as House Republicans investigate whether some unions improperly used member dues for political activity, allegations Shuler rejects. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Linux 7.3-rc2 Scheduler Fix For Cache Aware Load Scheduling Misfits On Hybrid CPUs

Ahead of the Linux 7.3-rc2 kernel being released later today, a set of scheduler fixes have been sent out for this week's kernel test release. Most notable with the scheduler fixes are dealing with possible misfits for Cache-Aware Load Scheduling on hybrid CPUs like Intel Core (Ultra) processors...

How one of Spain's hottest cities handles the heat | Focus on Europe

Seville, one of Spain's hottest cities, is battling extreme temperatures with smart measures for workers and seniors. The city must transform its urban planning to cope with a warming climate. #Spain #Seville #Heat For more news go to: http://www.dw.com/en/ Follow DW on social media: ►Instagram: https://www.instagram.com/dwnews ►TikTok: https://www.tiktok.com/@dwnews ►Facebook: https://www.facebook.com/deutschewellenews/ ►Twitter: https://twitter.com/dwnews Für Videos in deutscher Sprache besuchen Sie: https://www.youtube.com/dwdeutsch Subscribe: https://www.youtube.com/user/deutschewelleenglish?sub_confirmation=1

What's the difference between volatile and non-volatile memory?


US Races to Boost Missile Interceptor Output

The US retains significant munitions capacity for operations against Iran, but stocks of sophisticated interceptors missiles have come under greater pressure. Bloomberg Intelligence Senior Defense Analyst Col. Wayne Sanders tells  tells Christina Ruffini and Jeff Mason on Bloomberg This Weekend that manufacturers are being pushed to sharply increase production, a process complicated by sprawling supply chains and concerns about preserving advanced weapons for other potential conflicts. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

My local Go tool uses the browser as its UI. Where would you draw the line?

I'm building ProtoPeek, a local Go workbench that embeds a web interface. For a gRPC request, the browser presents the form and results; Go makes the protocol connection.That got me thinking about the larger pattern. Open WebUI, OpenCode Web, Syncthing, and grpcui already show different versions of it. I'm using BUI - Browser User Interface, or "Borrowed UI," as a label in this illustrated article. Not claiming I invented the architecture.The fit seems strongest when the process needs more time than the interface does: a download queue, backup, or batch conversion. Open the controls, set it up, then leave it running. OpenCode is a useful counterexample to limiting it to occasional tools.The trade-off isn't free performance. You avoid distributing a browser engine, but still own launch/reconnect/shutdown, local API security, and compatibility. A smaller download doesn't prove lower memory use. A system WebView or native UI can be a better choice when window behavior and OS integration matter.For your side projects, what requirement would make you stop using a browser tab and build a dedicated app window? I'm especially interested in the annoying everyday details, not framework rankings.Disclosure: ProtoPeek is my project. This post and article were developed from my notes with AI drafting/editing assistance.

By The Way: Headlines You May Have Missed

Taylor Swift and Travis Kelce settling in Ohio, parents teaching teens to invest, what happened to yoga classes, and baseball dogs: Watch Lisa Mateo, Christina Ruffini and Jeff Mason talk about headlines from this week you may have missed on Bloomberg This Weekend! -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

QBittorrent breaks out of sandbox to commit crimes


How the Soviet Union Dominated Chess

Our historical documentary series on the history of the Cold War continues with a look at look at the early Soviet fascination with the sport of chess and how they envisioned its use in creating the new Soviet citizen but also how early investment in the game resulted in international dominance. China's Cultural Revolution: https://youtu.be/fCA5VP5Tdrs Commercial Air Travel: https://youtu.be/fqVtEa5ooJ0 Reykjavik Summit 1986: https://youtu.be/xmDHy4M7rdM Saturday Morning Cartoons: https://youtu.be/hPToTKCcycI The Profumo Affair: https://youtu.be/PfQ-FY3zPdM Ghosts of Cold War Berlin: https://youtu.be/52bC38bm6rk America's Bioweapons pt 2: https://youtu.be/0yEVIRy23H4 America's Bioweapons pt 1: https://youtu.be/12WyLu6WuBs The CIA's Poisoner-in-Chief: https://youtu.be/6zRat81cDrg The Soviet Economy: Brezhnev, Oil, & Stagnation: https://youtu.be/NUUZCD_XfjI The Soviet Economy: Revolution to Khrushchev: https://youtu.be/2arxTSPhr6g How Khrushchev Fed the Soviet People: https://youtu.be/qIZDa7ZcUhE How Khrushchev Housed Everyone: https://youtu.be/lazVrmC7IVQ Soviet Tourism: https://youtu.be/t9KrH-xG20Q Soviet Passport System: New Serfdom or Reform?: https://youtu.be/Dgr9F3WFsbo Soviet Education System: https://youtu.be/AD_JwbivtMA Communist Girl Scouts of America: https://youtu.be/QvgEHc0iyoQ ASALA, Armenia Secret Army: https://youtu.be/DFzIVfTNjH0 Amchitka Island Nuclear Test: https://youtu.be/Z89YnSS5RQA Soviet Criminal Underworld: https://youtu.be/zEJrivfLKGc Support us on Patreon: http://www.patreon.com/TheColdWar, Youtube membership https://www.youtube.com/channel/UCCGvq-qmjFmmMD4e-PLQqGg/join ✔ Merch store ► https://teespring.com/stores/thecoldwar ✔ Patreon ► https://www.patreon.com/thecoldwar ✔ Facebook ► https://www.facebook.com/thecoldwartv ✔ Instagram ►http://www.instagram.com/thecoldwartv #ColdWar #ColdWarHistory #History #ModernHistory #Chess #SovietUnion #Soviet **SOURCES** Seth Bernstein, "Valedictorians of the Soviet School: Professionalization and the Impact of War in Soviet Chess," Kritika: Explorations in Russian and Eurasian History, Vol. 13, No. 2 (2012) David Edmonds and John Eidinow, Bobby Fischer Goes to War: How a Lone American Star Defeated the Soviet Chess Machine (Harper Perennial, 2005) https://kirsan.today/en/analytics/item/3190-chess-in-the-ussr-lenin-set-chess-fashion-and-since-then-it-was-played-in-space-and-during-the-war.html Andrew Soltis, Soviet Chess 1917-1991 (McFarland & Company, 2000) Boris Gulko, Vladimir Pops, Yuri Fleshtinsky and Viktor Kortschnoi, The KGB Plays Chess: The Soviet Secret Police and the Fight for the World Chess Crown (Russell Enterprises, 2010) A Kotov and M Yudovich, The Soviet School of Chess (Dover Publications, 1961) David Shenk, The Immortal Game: A History of Chess (Souvenir Press, 2008) Brian Carney, "Victim of His Own Success: The Tragedy of Bobby Fischer," The Wall Street Journal (2008) https://www.jaqueslondon.co.uk/blogs/posts/fischer-spassky-1972-match-of-the-century Daniel Johnson, White King and Red Queen: How the Cold War was Fought on the Chessboard (Atlantic Books, 2008)

How Sound Could Make Sense of Big Data

Sonification may become more important with the advent of 6G

How to check your PC's hard-drive health


US Envoys Test New Opening in Ukraine Talks

US envoys Steve Witkoff and Jared Kushner arrived in Kyiv for their first official visit to Ukraine after more than three hours of talks with Russian President Vladimir Putin in Moscow produced no announced breakthrough. Joining Bloomberg This Weekend, Bloomberg News Chief Europe Correspondent Oliver Crook says the renewed US effort comes as Ukraine's deeper strikes into Russia have altered the dynamics of the conflict, while European governments are watching the diplomacy with cautious optimism. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Afghan Deportations Fuel Humanitarian Strain

Millions of Afghans have returned from Pakistan and Iran in recent years, including many who had never lived in Afghanistan, as both Pakistan and Iran step up deportations. BBC Chief International Correspondent Lyse Doucet is on Bloomberg This Weekend and says women and girls face an especially stark transition under Taliban restrictions that bar them from secondary and university education and many jobs. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Debian Code Search: Fast TurboPFor with Go SIMD

This August, I accomplished what I wanted for many years: I deleted the last cgo dependency in Debian Code Search! This was made possible by Go's recently introduced SIMD support, because now we can implement the TurboPFor integer compression format as efficiently - more efficiently, in fact, by using the newer AVX512 instruction set! - as the reference implementation.Background: Why does DCS need a fast Integer Codec?Debian Code Search (DCS) is a search engine that allows searching all the Open Source source code within Debian, with either literal search expressions or regular expression search queries.A search engine uses an inverted index: a map from term to documents containing the term. Each document is typically represented most efficiently by using an id, so the index consists of many lists of document ids.When searching, it is important to quickly decode these lists to answer the search query. However, there is a point of diminishing returns where the decoding speed, even though it can still be measurably improved quite a bit, no longer influences the overall query duration.From 2012 (its inception) to 2019, Debian Code Search used to use a small index format, and queries were fast because the index was kept entirely in RAM. In 2019, I implemented the new index format, which adds an on-disk positional index. For literal queries (78.2% of DCS queries), querying the positional index on disk is faster than querying the non-positional index in RAM.The efficient encoding of the TurboPFor format makes it possible to fit such an index on a mid-sized Hetzner server, which I rent with two 1 TB SSD disks. The optimized decoder of the C TurboPFor library is what made decoding fast at query time.If you want to dive deeper into the algorithm, see this blog post from February 2019:If you want to learn more about the positional index, see this blog post from September 2019:For many years, you had the following options for using SIMD instructions in Go:The C TurboPFor library has served us well, but Debian Code Search was always intended to be a project using Go, so I would prefer it if I did not have any C code in the project.Go 1.26 (released in February 2026) introduced the package:Go 1.26 introduces a new experimental package, which can be enabled by setting the environment variable at build time. This package provides access to architecture-specific SIMD operations. It is currently available on the architecture and supports 128-bit, 256-bit, and 512-bit vector types, such as and , with operations such as . The API is not yet considered stable.For my 2019 TurboPFor analysis, I implemented , a native Go teaching decoder (without any SIMD), because I find Go code easier to follow than C code, especially optimized C code. My implementation was intentionally not optimized so that the code was easier to study.When Go 1.26 was released, I used Claude Code to explore whether my native Go decoder's function (for the vertical vector layout) could be implemented using Go SIMD, and the answer was yes, it was possible and it was faster than without SIMD, but not quite at the level of C TurboPFor. If you let Claude Code try for long enough, it eventually finds enough optimizations (about 10) to match C performance.I don't want to vibe-code Debian Code Search, though, so I figured I would find some time to review the SIMD code at some point and see if I could implement something similar myself.Before I found enough time and motivation to complete said review, I discovered that to not regress real-life query performance by more than 10 to 100 milliseconds (which seems acceptable), I don't actually need to add SIMD code to my teaching decoder at all; it would be sufficient to reduce allocations in my teaching decoder and specialize it per bit width.Encouraged by the possibility of using the optimized native Go decoder in Debian Code Search, I explored whether I could also implement a native Go so that I could get rid of the C TurboPFor dependency entirely. The answer is yes, it is doable in a few days, and it isn't even that much slower: Go is at 76% of C, see Debian/dcs commit .The goal I set myself at that point was to see if I could learn enough SIMD to optimize the native Go encoder such that its performance would match how DCS uses C TurboPFor (via cgo).Beating C TurboPFor was possible in 2-3 commits (SIMD and bit width specialization). To my surprise, Claude Fable 5 pointed out that the encoder's block scanning could be done more efficiently using a technique called positional popcount, and that is ! 😲To be clear: I am not saying the Go compiler beats C here. Certainly, the C compiler can also produce fast AVX512 code and can be used to implement positional popcount. When comparing apples to apples, i.e. backporting the AVX512 kernels and positional popcount technique to C TurboPFor, Go benchmarks a little slower at ≈1.4x C.This spectacular result (much faster than what DCS had before) got me curious how far I could push the decoder with SIMD after all. I ended up matching/exceeding the cgo version here, too!The rest of this article explains a few classes of optimizations I encountered along the way.When I wrote my teaching decoder, I named its functions to match the upstream C TurboPFor library, but now I want to get away from names like - they make sense from the TurboPFor perspective, but for Debian Code Search, we can use cleaner names.Before writing any code, I audited how DCS uses integer compression / decompression.API design: BlockEncoder, BlockDecoder and streamingIn Debian Code Search, we have the following usage patterns: When a new package (or package version) enters Debian, all of its (text) files are indexed. If the package (hypothetically) contained only with , we would assign document ID to and store in the partial index that trigrams , , , , etc. are all found in doc (). The many thousands of partial index files (for each Debian package) are combined into a small handful of large index files: When searching, it would be expensive to consult thousands of indexes. To merge multiple partial index files into one larger index (which can then be efficiently queried), we need to re-encode the partial index files: what used to be document ID in the partial index might be document ID in the full index. When users enter search queries, these queries need to be answered as quickly as possible. The relevant entries in the full indexes are decoded (in parallel).For reading the index, we do keep the decoded s fully in memory, so we only need DecodeN(input []byte, output []uint32) (read int), a function that reads values () from and returns how many bytes it consumed.For writing the index (both in partial indexing, and when merging), keeping the entire index in memory is prohibitively expensive, so we need a streaming API, for decoding and for encoding.Ultimately, I converged on the following API:This API (the decoder works similarly) allows us to process data in TurboPFor format without any memory allocations. The types are not safe for concurrent use by multiple goroutines. The zero value is ready to be used. For the streaming API, the result only stays valid until the next call.Before we can optimize anything, we need a working decoder and encoder. The decoder already exists: my teaching decoder. Next up, I needed an encoder.Writing a TurboPFor encoder has a delightfully simple starting point: You can encode all values at bit width 32, in little endian, at which point you only need to add a one-byte TurboPFor block header every 256 values and you're done:Of course, this is a terribly inefficient compressor, so after the first commit, the real work starts: implement each block type until the compression matches the original C TurboPFor implementation (same output file size), or in other words: do the reverse of the decoder.The TurboPFor block type (bitpacking implementation commit) encodes a bit stream of variable bit width (where the bit width is in range ) in little endian byte order. By scanning all values and choosing the smallest bit width that allows representing all values, this technique saves disk space (compresses).The bitpacking with exceptions block type (bitpacking with exceptions implementation commit) determines two bit widths: one for values, the other bit width for encoding exceptions. This allows choosing a lower bit width (that does not cover all values) compared to the bitpacking block type. A bitmap encodes whether a value has an exception or not.The bitpacking with VB exceptions block type (bitpacking with VB exceptions implementation commit) is a variant which does not use an exception bitmap and encodes exceptions using a variable byte integer encoding. This is more efficient when there are few exceptions (less than 20) or the exceptions are very different in bit width compared to the other values.Lastly, the block type (constant implementation commit) stores just one value on disk. This is useful for all-zero or all-one blocks, for example.I found it interesting to realize that the main work of the encoder is to scan the input values and choose the optimal block type, whereas the actual encoding itself is cheap in comparison.In all honesty, I could have probably stopped here, but now that the milestone of a viable replacement was reached, I got curious to see how far it would be possible to push the encoder (how much work to reach C speeds?) and afterwards, the decoder, too.The microarchitecture level: set The microarchitecture of a CPU determines which instructions it provides, and that includes not just SIMD instruction sets (like AVX2), but also other useful instructions like (Leading Zero Count), which can be used to implement more efficiently, which the TurboPFor encoder needs to call on every input value to determine the ideal bit width.Let's walk through how to set the microarchitecture level when using Go on 64-bit x86 (x86-64).Go uses the environment variable to configure the target compilation architecture, and I am using the value to select 64-bit x86 (AVX2 and AVX512 are instruction sets found on x86-64 CPUs). With , the architecture-specific variable configures the microarchitecture level for which to compile and Go 1.18 introduced these 4 different levels: (default): The baseline. Exclusively generates instructions that all 64-bit x86 processors can execute.: all v1 instructions, plus CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3.: all v2 instructions, plus AVX, , BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE.: all v3 instructions, plus , AVX512BW, AVX512CD, AVX512DQ, AVX512VL.For Intel CPUs, setting means your programs will only start on Haswell CPUs (2013) or newer; for AMD CPUs that means Zen 1 (2017) or newer.In this specific case (DCS), I am even compiling with . The microarchitecture level requires AVX512, which means AMD Zen 4, Zen 5 or newer (Intel's story is... complicated). Luckily, both my main development PC (Zen 5) and the Debian Code Search server (Zen 4) are recent enough. Setting has little effect on Go 1.27 itself: the only change is that maps use one less instruction ( instead of ). But compiling with allows us to move one more feature check from runtime to compile time, see SIMD build tags.It makes sense to set the microarchitecture level in your benchmark setup so that you don't measure the slow fallback implementations. I use in my .Go's built-in package contains support for benchmarks which are written in functions of the form func BenchmarkXxx(b *testing.B). The simplest way to run such benchmarks is , but I ended up configuring a few convenience targets, which write results to and compare against (the previous commit's results, usually), using the very useful tool.The and units are custom metrics I am reporting from the various sub-benchmarks, which are arranged such that I can filter / report them with .The main encoder (and decoder) benchmarks compare 3 different implementations (cgo, Go, Go with the StreamEncoder API) with a number of benchmark cases that are designed to cover the different block types and contain a similar mix of values as what we see in Debian Code Search:Go has included excellent performance tooling for many years, see the "Profiling Go Programs" blog post (2011) for an example of how to use , a sampling profiler. This profiler can help track down which part of a program runs slow, or where memory allocations happen.Once you identified the slow part of a program, how do you know why it's slow?To learn more about the specific bottlenecks your program encounters, you can consult your CPU's hardware performance counters. For example, you could check the branch predictor counters to see if your program is slow due to a high number of branch mispredicts.In my , I set up two targets:The numbers are high level numbers that indicate how much work the implementation is doing. Reducing the number usually increases speed.To see the counters for each instruction (and source code lines), I use , followed by . A quick shortcut is , which directly shows the hottest function.Let's first see how far we can get without reaching for SIMD instructions.(The examples are not necessarily in commit order, but cherry-picked for clarity.)Profile-Guided Optimization (PGO)The idea is to capture a CPU profile that records where your program spends most of its CPU time, which you then provide to the Go compiler to give it more data to make better decisions.Most importantly, this way the Go compiler can inline functions much more aggressively than its usual heuristics allow, which does have a measurably positive effect in my series of optimization commits. Another optimization that a PGO profile allows the compiler to do is conditional devirtualization - but our TurboPFor code does not use any interfaces.My strategy is to enable PGO before doing any other optimizations, so that we have the full inlining budget available that PGO gives us, and can measure the effect of other commits clearly.Aside from inlining and conditional devirtualization, PGO also influences alignment: The Go compiler sets on the first block of a loop (the "loop body") for all loops in hot functions (per the PGO profile), i.e. Go will insert up to 31 bytes of padding to make the block land on a 64-byte boundary. Documentation like AMD's "Software Optimization Guide for the AMD Zen5 Microarchitecture" (2024, #58455) explicitly recommends aligning hot loops that way:[...] for hot loops, some further knowledge of trade-offs can be helpful. Because the processor can read an aligned 64-byte fetch block every cycle, it is suggested to either align the start of the loop to the beginning of a 64-byte cache line [...]Indeed, when compiling with -gcflags=all=-d=alignhot=0 to disable the alignment, performance remains as good as without PGO. How can the padding hurt more than help? The answer is: It's not the padding itself! It's a side-effect of the padding moving instructions to different addresses.In the unlucky arrangement, a macro-fused + instruction pair now ends up exactly on a 32-byte boundary. However, the Go compiler ensures fused branch sequences must never cross or end at a 32-byte boundary to fix Intel erratum SKX102 (discussion: Go issue #35881) by inserting s.This padding, unlike the loop alignment padding, is not free; these extra instructions slow down our otherwise dispatch-bound loops.Because the commits after the PGO enabling commit change the code, this unlucky situation is avoided for the rest of the optimization series (by chance).Reducing memory allocationsMemory allocations are quite expensive, at least in comparison to encoding/decoding integers, so I followed my usual strategy of first reducing memory allocations as much as possible.In my teaching decoder, whenever the code needed a scratch buffer, it would allocate it right then and there with :The Go compiler can turn calls into stack allocations, if is known at compile-time. But, in this case is not known at compile-time. We can verify that Go calls into the runtime () by dumping the object code (assembly) with source annotated ():An easy speed-up was to avoid allocations through reuse (in ). In the DCS package (with the improved API design), I ended up with a field in the type, which brings us from 773 Mval/s to 858 Mval/s on the debian-mix:% benchstat -filter '/impl:go /vals:debian-mix .unit:(Mval/s)' baseline.txt bench.txt goos: linux goarch: amd64 pkg: github.com/Debian/dcs/internal/turbopfor/pfordec cpu: AMD Ryzen 9 9950X3D 16-Core Processor │ baseline.txt │ bench.txt │ │ Mval/s │ Mval/s vs base │ n=2048 1.089k ± 1% 1.175k ± 0% +7.85% (p=0.002 n=6) n=2039 974.7 ± 0% 1046.0 ± 0% +7.32% (p=0.002 n=6) n=160 434.9 ± 1% 513.6 ± 5% +18.11% (p=0.002 n=6) geomean 772.9 857.7 +10.98% Aside from the speed-up, avoiding memory allocations is generally nice in benchmarks because it removes the garbage collector from the equation and makes it less likely that your benchmarks get other processes OOM-killed on the same machine.Generics for bit width specializationIn general, we want to make it easy for the compiler to understand as much as possible about our algorithm. Consider this implementation:Let's think through what determines the iterations and control flow this function uses:The (), but not their actual value.The bit width to pack into ().With a bit of careful rearrangement, we can provide the compiler with both, a fixed number of input values (say, 32), and a bit width, both known at compile time. Why is this worthwhile? Because we can manually unroll the loop, let the compiler eliminate much of the repetition and get much faster compiled code as a result!Let's first fix the number of input values to 32 and rewrite the loop to calculate the position offsets within instead of changing on each value (with ):Next, we want to specialize not just for 32 input values, but also for each of the 32 bit widths.Can we do better than hand-copying 32 times (= 8192 lines of Go code)?Yes, we can use Go generics to help us with the code generation!In Go, array types like (not slices like !) contain the length of the array as part of their type, meaning (an array of length 1) is a different type than .Instead of passing the bit width as a function parameter, we can declare 32 (one for each bit width) and recover the bit width (at compile time!) from the type system:When we instantiate bitpack32Unrolled[bitWidthT] with all 32 different types (, , ..., ), the compiler substitutes the type parameter and produces 32 copies of the function, which we can find in our compiled executable with names like github.com/Debian/dcs/internal/turbopfor/pforenc.bitpack32Unrolled[go.shape.[12]uint8]. The "shape" of a generic type is based on its memory layout, so a shape for must be different than the shape for .Because the is now known at compile time, the Go compiler can generate close to the optimal machine code for each bit width, which we can confirm using .The code is branchless (after the one bounds check per 32 values) and aside from the loads and stores (from/to memory) consists only of shifts and bit operations, all with constant operands:% go test -c && go tool objdump -S pforenc.test [...] TEXT github.com/Debian/dcs/internal/turbopfor/pforenc.bitpack32Unrolled[go.shape.[28]uint8](SB) /home/michael/dcs/internal/turbopfor/pforenc/bitpackunroll.go func bitpack32Unrolled[T bitWidthT](dest []byte, vals *[32]uint32) { 0x660580 55 PUSHQ BP 0x660581 4889e5 MOVQ SP, BP 0x660584 48895c2418 MOVQ BX, 0x18(SP) dest = dest[: 4*bitWidth : 4*bitWidth] // make cap known at compile time 0x660589 4883ff70 CMPQ DI, $0x70 0x66058d 0f820b030000 JB 0x66089e acc |= uint64(vals[0]&mask) << have 0x660593 8b06 MOVL 0(SI), AX 0x660595 25ffffff0f ANDL $0xfffffff, AX acc |= uint64(vals[1]&mask) << have 0x66059a 8b4e04 MOVL 0x4(SI), CX 0x66059d 81e1ffffff0f ANDL $0xfffffff, CX 0x6605a3 48c1e11c SHLQ $0x1c, CX 0x6605a7 4809c8 ORQ CX, AX acc > > = 32 0x6605aa 4889c1 MOVQ AX, CX 0x6605ad 48c1e820 SHRQ $0x20, AX binary.LittleEndian.PutUint32(dest[pos:pos+4], uint32(acc)) 0x6605b1 90 NOPL b[0] = byte(v) 0x6605b2 890b MOVL CX, 0(BX) acc |= uint64(vals[2]&mask) << have 0x660 8b4e08 MOVL 0x8(SI), CX 0x6605b7 81e1ffffff0f ANDL $0xfffffff, CX 0x6605bd 48c1e118 SHLQ $0x18, CX 0x6605c1 4809c1 ORQ AX, CX acc > > = 32 0x6605c4 4889c8 MOVQ CX, AX 0x6605c7 48c1e920 SHRQ $0x20, CX binary.LittleEndian.PutUint32(dest[pos:pos+4], uint32(acc)) 0x6605cb 90 NOPL b[0] = byte(v) 0x6605cc 894304 MOVL AX, 0x4(BX) Now we need to actually call from the general function:Encoding remainder blocks is quite a bit faster (full blocks use the vertical layout anyway):% benchstat -filter '/impl:go /n:160 .unit:(Mval/s)' baseline.txt bench.txt goos: linux goarch: amd64 pkg: github.com/Debian/dcs/internal/turbopfor/pforenc cpu: AMD Ryzen 9 9950X3D 16-Core Processor │ baseline.txt │ bench.txt │ │ Mval/s │ Mval/s vs base │ vals=bitpacking-bw1 751.2 ± 3% 1120.5 ± 0% +49.15% (p=0.002 n=6) vals=bitpacking-bw2 716.8 ± 2% 1176.0 ± 0% +64.07% (p=0.002 n=6) vals=bitpacking-bw7 700.0 ± 1% 1078.5 ± 0% +54.08% (p=0.002 n=6) vals=bitpacking-bw1-exc 524.8 ± 1% 736.8 ± 0% +40.40% (p=0.002 n=6) vals=bitpacking-bw2-exc 543.7 ± 1% 758.2 ± 0% +39.46% (p=0.002 n=6) vals=bitpacking-bw7-exc 566.7 ± 1% 787.7 ± 0% +38.99% (p=0.002 n=6) vals=bitpacking-vb-exc 442.6 ± 1% 616.5 ± 0% +39.29% (p=0.002 n=6) vals=sparse-exc 532.4 ± 0% 787.8 ± 0% +47.97% (p=0.002 n=6) vals=sparse-vb-exc 408.9 ± 1% 597.8 ± 0% +46.20% (p=0.002 n=6) vals=debian-mix 559.5 ± 0% 783.8 ± 9% +40.09% (p=0.002 n=6)performance win comes at the cost of binary size increase. In this case, the section (executable code) grows by about 20 KB and the section grows by another 26 KB. Definitely a price I am very willing to pay, but the case might not be as clear in all circumstances.Optimization: Bigger strides with SIMDEven without reaching for SIMD instructions, a TurboPFor implementation can be made faster by making it work bigger strides. Take this code from the teaching decoder which counts the number of exceptions by checking if each value's bit is set in the exception bitmap:We can use the functions to count ones bits in the exception bitmap, 64 values at a time. For remainder blocks, the rest is processed 8 values (1 byte) at a time: uses a 64-bit register. For comparison, AVX2 SIMD instructions use 256-bit registers (= 8 ) and AVX512 SIMD instructions use 512-bit registers.In the following sections, we will first set up our build tags for conditional compilation to use a trivial SIMD instruction, then walk through an AVX2 and AVX512 SIMD kernel.Let's assume we have the following scalar code:To increase throughput, we can use AVX2 instructions if they are available on the CPU on which the program runs, i.e. using runtime dispatch. We'll first rename to (it's now the fallback path):Next, we'll supply two different implementations ( and ), the latter of which is selected when compiling for with (the latter will hopefully be dropped in a later version of Go). The variant just dispatches to the , which will likely be inlined:The variant assigns the global variable by doing a check and then jumps to the scalar fallback if , i.e. the CPU is too old:We can go one step further by conditionally compiling when is set to or higher (i.e. the build tag is set). As a practical example from Debian Code Search, we currently need the following checks / dispatches:The 256 uint32 vertical layoutIn regular (non-SIMD) bitpacking, integers are stored on disk one after the other, padded to a full byte, as a byte is the smallest addressable unit when reading data from disk. For example, if you bitpack only one 3 bit int, you will end up with 5 bits of padding. works like regular bitpacking, but processes 8 little-endian values at the same time, leveraging the AVX instruction set. The following illustration shows the order in which 3-bit integers are decoded from disk:The scalar implementation uses an array of 8 to process 8 values at a time:The SIMD version also processes 8 values, but without a loop!One difference is that we no longer have the luxury of using for (holding rest and current bits); because AVX2 registers only fit 8 (not 8 ). Instead, we split into and .The SIMD version benchmarks about 3x as fast as the scalar version.For my TurboPFor encoder, I implemented the same techniques as described above:These changes are sufficient to roughly match the cgo performance, but then Claude Fable 5 found another 2x speed-up on top of that!The key observation is that once encoding blocks is fast, the preceding step of scanning the input values to decide which block type to use becomes the bottleneck. Here is the encoder's main function, which first does one pass over the input values () and then prices all different block types at all relevant bit widths (requires fast access to the histogram):I'll show you a slightly shortened version of , the function which is the bottleneck:Let's consider the following 3 example values to understand the resulting :The resulting exception count histogram would contain ( shortened to ):In words, this means that at bit width 10, we could encode all the values without any exceptions.But most values do not need 10 bits, so a bit width of 5 would be more efficient, but requires storing one exception. Encoding at bit width 4 requires 2 exceptions, and so on.The trick: smear masks enable positional popcountThe trick is to turn each input value into its "smear mask" (imagine taking the first 1 bit and smearing it across the remaining positions). Here are the smear masks for our example:Turning a value into its smear mask is computationally cheap: Go implements (functions like ) by calculating . We can calculate the "smear mask" of a value with , i.e. starting with a 32-one-bits mask and shifting it by the number of leading zeros.Now, to obtain e.g. , we can count the 1 bits at bit position 4 of all input values.The instruction counts bits very efficiently, but it counts one bits within a register, so it counts rows, not columns. Counting columns is called Positional Population Count.I found the following papers that describe positional popcount with SIMD:Positional Popcount: a visual explanationTo understand the AVX512 implementation of positional popcount, I found it most helpful to visualize an AVX512 register (512 bits, i.e. 64 bytes). The graphic below uses the layout, meaning it divides the register into 8 lanes of 64 bits (= 8 bytes) each.This illustration shows the whole process: how s are loaded into an AVX512 register (all 4 of its bytes, in sequence) and where we end up, i.e. the 32 positional popcounts:Let's break down this process into its individual steps.First, we turn each loaded value into its smear mask as explained above.The vector instruction calculates (1 byte) of 64 bytes at once, but first we need to shuffle the bytes inside the register: in load order, we have a full (4 bytes), followed by another , per lane. First, we permute the bytes () such that all the first bytes of each value end up in one lane ("transpose the bytes"):Next, we "transpose the bits" using the instruction, which sounds scary but turns out to be quite flexible for bit manipulation of all kinds. The instruction is also "the star of the show" in Go's Green Tea Garbage Collector (2025). Here is the bit transpose, shown in the AVX512 register layout (see below for a different layout):I found it easier to understand the transpose step when arranging the 8 bytes of lane 0 from top-to-bottom (instead of left-to-right), because then it looks like a 90 degree clockwise rotation:Now we can use to count the bits in all 64 bytes at once:After all loop iterations (processing 16 values each) are done, we add the two groups (first 8 values, second 8 values) to obtain the 32 exception counts:Positional Popcount: Go SIMDHere is the Go code that implements what I described visually above:The SIMD optimizations I showed above beat the cgo TurboPFor library that Debian Code Search used before. When comparing apples to apples, i.e. backporting the AVX512 kernels and positional popcount technique to C TurboPFor, Go benchmarks a little slower at ≈1.4x C.Could we make my Go TurboPFor implementation even faster, to truly match the C speed?Yes! But also no. Let me explain:We could use more SIMD instructions to remove all code that still processes one value at a time. For example, in my encoder's function. Or we could price all bit widths concurrently in . Or in the decoder's exception apply code path. But all of these SIMD instructions make understanding (and changing) the code harder, so I am cautious regarding which ones I introduce.A big part of the performance gap is due to Go's bounds checks. While it costs performance, bounds checking is great for safety, so I will not turn off bounds checking. The Go compiler eliminates a number of bounds checks when it understands it's safe to do so. One optimization avenue could be to make the prove pass in the Go compiler smarter to eliminate more bounds checks.When doing mid-stack inlining (proposal #19348) (2017), Go sometimes needs to put instructions into the binary so that it can attach inlining markers. For dispatch-bound functions, these extra NOPs can measurable slow down execution.The Go compiler currently allows specifying the architecture () and microarchitecture (), but not a specific CPU architecture (like AMD Zen 4). Therefore, CPU-specific workarounds for one vendor affect all the generated code. The specific one I encountered in my code is that the Go compiler emits before every to break a false-output-dependency from the Intel Sandy Bridge Skylake era, which is unnecessary on AMD Zen CPUs. I suspect that Go intentionally does not offer this level of customizability.After all of the above points are addressed, what remains is better code generation in specific cases. To illustrate what I mean, consider the example of incrementing a loop variable, where Go re-derives an index every time: Go: POPCNTL; ADDQ DI,CX; LEAQ (base)(CX*4) (3 instructions) clang: popcnt; lea rax,[rax+4*rdi] (2 instructions) Depending on the specific case, improving the compiler might be easy or prohibitively complex. Often, such improvements are hard to measure conclusively.Go's SIMD support makes available - in Go code without having to resort to cgo or assembly - a powerful part of modern CPUs which allows speeding up the kind of computation that TurboPFor needs by an order of magnitude! 😲I found it very valuable to use a coding agent (Claude Code, with Opus 5 and Fable 5 in this case) to help with the many tedious parts of such performance work (and still it took me weeks!). The LLM can read objdump output much faster than I can, can see patterns and correlations I might never identify, never becomes frustrated after a compiler error or runtime panic, and never runs out of patience to run one more experiment, as long as I give it measurable and reachable goals.The performance of the SIMD code which one can get from the Go compiler is pretty close to what a good C compiler like clang provides. The CPU performance counters show value decoding speeds of 7 instructions/cycle (IPC) on a machine where the maximum is 8 IPC.To me, SIMD support is a very welcome addition to Go. I run a blog since 2005, spreading knowledge and experience for over 20 years! :) All of my content is human-authored. I do use LLMs for research and knowledge work, and even to review my posts, but all writing is my own, every word is my own voice.

Don't get rid of your old phone, turn it into a security camera


Paris drops Mercator projection: France now looks smaller on world maps

Paris drops Mercator projection: France now looks smaller on world maps France is redrawing its world map: deeming the Mercator projection misleading, the foreign ministry will drop it in favour of a map that better reflects actual continental sizes, especially Africa. READ MORE : http://www.euronews.com/2026/09/05/paris-drops-mercator-projection-france-now-looks-smaller-on-world-maps Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #EarthNews

Claude can help manage your email inbox, but there are some risks involved


Skytech Gaming Blaze 5 Review

A custom pre-built gaming PC like the Skytech Gaming Blaze 5 is going to save you a lot of work if you're not technically savvy or simply don't have the patience to put together a modern-day puzzle. With its Nvidia GeForce RTX 5070 graphics card and AMD Ryzen 7 9800X3D, you're getting solid mid-tier performance. And it's all packed away in an easy-to-open glass case with shiny RGB components.That said, it's not without issue. Upgrading or replacing components is likely going to take moving a few things out of the way, as it's a bit crowded on the motherboard. Even if you don't plan on upgrading, you'll either be annoyed by the finicky RGB lighting or the fact that the power button and front ports are at the very bottom of the tower, making floor placement very awkward. These may not be dealbreakers for some, but you should know what you're getting into.Skytech Gaming Blaze 5 - Case Design and Build LayoutThe Skytech Gaming Blaze 5 isn't terribly bigger than your average mid-tower, coming in at 18.3 x 20.6 x 9.4 inches. A good chunk of the sides are wrapped in tempered glass and RGB LEDs, with light bars found around the case, on the seven case fans, the two RAM sticks, and the PSU shroud - the GPU is the only component left out of the fun. The rest of the case is painted black, which isn't my favorite gamer aesthetic, but it does allow the rest of the RGB to shine. Breaking into this rig is pleasantly easy. The glass panel pops off with a little pressure, held in by several pegs and a larger clip. The RTX 5070 isn't terribly large, but it doesn't leave a lot of headroom for one of the two PCIe 4.0 x16 slots that are available just beneath it. If you did want to plug something in there, it'd need to be relatively thin, and I'd worry about how tight it would be squeezed up against the GPU. All the cables are neatly tucked away, but you'll need to work around a few things to replace some components. For example, the CPU fan cables are blocking the RAM and the SSD sits very snugly between the CPU and the motherboard's heatsink.Popping open the panel on the opposite side was just as easy, held in place by the same mechanism. All the cables are zip tied and lined up cleanly on the front, but of course, there's a mess of wires down by the 850W Gold PSU. The PSU is non-modular, too, so if you need to replace a cable, you're going to have to buy a new PSU and play connect the dots. The front glass panel pops off easily from the top and slots back in just as smoothly. You'll find the front connectors just below the glass panel, near the power button. There's a headphone jack as well as two USB 2 Type-A and one USB 3.2 Gen 2 Type-C slot. The placement for the power button as well as the ports is mighty annoying if the PC is placed on the floor as opposed to your desk.On the back, you'll find two USB 3.2 Gen 1 Type-A, one USB 3.2 Gen 2 Type-A, five USB 2 Type-A, one USB 3.2 Gen 2 Type-C, an RJ-45 Ethernet, and three audio ports. There are also connectors for Wi-Fi 6 extenders as well as an HDMI and DisplayPort on the motherboard, which are helpful for troubleshooting. There was a sticker on the back blocking the ports and pulling it off left a sticky residue in places, which is very silly, but you'll need to clean it up.Skytech Gaming Blaze 5 - SoftwareFortunately, there's no real bloatware clogging up the metaphorical pores of the Skytech Gaming Blaze 5. However, it does come packaged with the SignalRGB app, which is a slightly annoying app that gives you access to the system's RGB lighting settings as well as control over your fans and the ability to monitor hardware performance. You do have to customize the monitoring interface yourself. And it asks you to create an account to get access to more lighting features. And it asks you to sign up for a Pro account ($6 per month) to remove the ads. Yes, there are ads in your RGB lighting configuration app. Like I said, it is an annoying app to deal with.I also noticed some issues with the RGB lighting overall. There's no direct setting to turn off the RGB - only to pause or dim the effect, both of which do disable the lighting. However, the lighting will occasionally flicker back on and then off again. And when starting the PC, the app doesn't remember that you disabled the lighting so it'll kick back on. Another issue I noticed is that the RGB lighting occasionally stutters when active, like it's skipping a beat. Skytech Gaming Blaze 5 - PerformanceThe Skytech Gaming Blaze 5 features an Nvidia GeForce RTX 5070 12GB GPU, AMD Ryzen 7 9800X3D, and 32GB of RAM, which will get you mid-tier gaming performance. Unfortunately, it doesn't feel like mid-tier pricing (at $2,299), but perhaps that's to be expected given the current computing climate. Overall, you can get roughly 50 to 60 fps in select AAA games at 4K on high settings. And of course, Nvidia's DLSS frame generation will get you further to capitalize on high refresh rate displays.Taking a tour through Night City in Cyberpunk 2077, the Skytech Gaming Blaze 5 averaged 60 fps at 4K on the Ray Tracing Ultra and DLSS Performance settings. It achieves greater heights with frame generation (x2), scoring 97 fps, and then 167 fps with frame generation (x4). Unfortunately, the RTX 5070 can't reach the full potential of super high refresh rate panels, like 240Hz.With simple DLSS Performance, the Blaze 5 managed 56 fps in Assassin's Creed Shadows and 78 fps with frame generation enabled. Naturally, the Blaze 5 fell low on the Metro Exodus benchmark, at 40 fps, since it's a heavier workload with no upscaling. In a more competitive game, like Black Ops 7, it operated smoothly at 121 fps, which is more than enough to get you up on those leaderboards.Pragmata is a little intense to run on an RTX 5070 at 4K, max settings without any additional help. I started scouring space-dystopian New York City in the space-daddy simulator, and I averaged 40 fps on the highest settings with DLSS Performance enabled. Then I turned on frame generation (x4) and fought the freaky baby-looking robots that haunt my nightmares, which got me around 124 fps. Meanwhile, at 1440p with no frame generation, the Blaze 5 scored 71 fps.You can definitely get by when gaming at 4K, but the Blaze 5 will really shine with a 1440p monitor, capturing those higher frames you want to see. It does cost a hefty sum, so you might as well optimize accordingly.Rami Tabari is a contributing writer at IGN with over 9 years of experience in the tech and gaming industry. You can find his bylines at Laptop Mag and Tom's Guide (and on a random Predator review at Space.com). When Rami isn't wading through a sea of the latest gaming tech, he's agonizing over the worldbuilding in his upcoming novella.

Your intellectual fly is open (2025)

I need to make a painful confession: somehow, LinkedIn has become an important social network to me. This isn't necessarily due to LinkedIn's sparkling competence, of course. To the contrary, LinkedIn is the Gerald Ford of social networks: the normal one that was left standing as the Richard Nixons and the Spiro Agnews of social media imploded around them. As with Gerald Ford, with LinkedIn we know that we're getting something a bit clumsy and boring, but (as with post-Watergate America!), we're also getting something that isn't totally crooked - and that's actually a bit of a relief.But because I am finding I am spending more time here, we need to have some real talk: too many of you are using LLMs to generate content. Now, this isn't entirely your fault: as if LLMs weren't tempting enough, LinkedIn itself is cheerfully (insistently!) offering to help you "rewrite it with AI." It seems so excited to help you out, why not let it chip in and ease your own burden?Because holy hell, the writing sucks. It's not that it's mediocre (though certainly that!), it's that it is so stylistically grating, riddled with emojis and single-sentence paragraphs and "it's not just...​ but also" constructions and (yes!) em-dashes that some of us use naturally - but most don't (or shouldn't).When you use an LLM to author a post, you may think you are generating plausible writing, but you aren't: to anyone who has seen even a modicum of LLM-generated content (a rapidly expanding demographic!), the LLM tells are impossible to ignore. Bluntly, your intellectual fly is open: lots of people notice - but no one is pointing it out. And the problem isn't merely embarrassment: when you - person whose perspective I want to hear! - are obviously using an LLM to write posts for you, I don't know what's real and what is in fact generated fanfic. You definitely don't sound like you, so...​ is the actual content real? I mean, maybe? But also maybe not. Regardless, I stop reading - and so do lots of others.To be clear, I think LLMs are incredibly useful: they are helpful for brainstorming, invaluable for comprehending text, and they make for astonishingly good editors. (And, unlike most good editors, you can freely ignore their well-meaning suggestions without fear of igniting a civil war over the Oxford comma or whatever.) But LLMs are also lousy writers and (most importantly!) they are not you. At best, they will wrap your otherwise real content in constructs that cause people to skim or otherwise stop reading; at worst, they will cause people who see it for what it is to question your authenticity entirely.So please, if not for the sanity of all of us than just to give your own message the credit it deserves: have some confidence in your own voice - and write your own content.

US Iran Fight Shifts to Economic Endurance

The Trump administration is intensifying economic pressure on Iran through sanctions and a blockade, with Treasury Secretary Scott Bessent saying Tehran has about 30 million barrels of crude left for potential Chinese buyers. Bloomberg News Middle East Reporter Dan Williams joins Christina Ruffini and Jeff Mason on Bloomberg This Weekend and says the strategy also amounts to a test of endurance, as Washington seeks to outlast Tehran while managing its relationship with China and domestic political pressures. -------- More on Bloomberg Television and Markets Like this video? Subscribe and turn on notifications so you don't miss any videos from Bloomberg Markets & Finance: https://tinyurl.com/ysu5b8a9 Visit http://www.bloomberg.com for business news & analysis, up-to-the-minute market data, features, profiles and more. Connect with Bloomberg Television on: X: https://twitter.com/BloombergTV Facebook: https://www.facebook.com/BloombergTelevision Instagram: https://www.instagram.com/bloombergtv/ Connect with Bloomberg Business on: X: https://twitter.com/business Facebook: https://www.facebook.com/bloombergbusiness Instagram: https://www.instagram.com/bloombergbusiness/ TikTok: https://www.tiktok.com/@bloombergbusiness?lang=en Reddit: https://www.reddit.com/r/bloomberg/ LinkedIn: https://www.linkedin.com/company/bloomberg-news/ More from Bloomberg: Bloomberg Radio: https://twitter.com/BloombergRadio Bloomberg Surveillance: https://twitter.com/bsurveillance Bloomberg Politics: https://twitter.com/bpolitics Bloomberg Originals: https://twitter.com/bbgoriginals Watch more on YouTube: Bloomberg Technology: https://www.youtube.com/@BloombergTechnology Bloomberg Originals: https://www.youtube.com/@business Bloomberg Quicktake: https://www.youtube.com/@BloombergQuicktake Bloomberg Espanol: https://www.youtube.com/@bloomberg_espanol Bloomberg Podcasts: https://www.youtube.com/@BloombergPodcasts

Doomscrolling Ourselves to Death


German rocket launch makes history: Can it compete with SpaceX? | DW News

Europe has built satellites, funded space agencies, and developed cutting-edge technology for decades. But it has relied on others to launch missions. That may be changing. German startup Isar Aerospace has made European space history, launching its Spectrum rocket from Norway. It's the first commercial company to reach orbit from continental Europe. But how significant is this breakthrough? And what does it have to do with Donald Trump? We're joined by aerospace engineer and space industry veteran Claudia Kessler, founder of "Astronautin" and a longtime advocate for Germany's role in space exploration. #Germany #RocketLaunce #Space For more news go to: http://www.dw.com/en/ Follow DW on social media: ►Instagram: https://www.instagram.com/dwnews ►TikTok: https://www.tiktok.com/@dwnews ►Facebook: https://www.facebook.com/deutschewellenews/ ►Twitter: https://twitter.com/dwnews Für Videos in deutscher Sprache besuchen Sie: https://www.youtube.com/dwdeutsch Subscribe: https://www.youtube.com/user/deutschewelleenglish?sub_confirmation=1

Private German Rocket Makes History, Reaches Orbit From European Soil

"No rocket had ever reached orbit from Western European soil - until today," reports Space.com. DW.com reports that a Spectrum space rocket from German company Isar Aerospace launched today from the Arctic Norwegian spaceport at Andoya: "Germany has spaceflight capabilities," said the country's Ministry for Research, Technology and Space on X, praising a "milestone that impressively demonstrates our country's innovative strength and technical expertise". This was the German company's second attempt to launch the Spectrum rocket into space. The first attempt, which took place 18 months ago, was unsuccessful. The Spectrum rocket is designed for small and medium-sized payloads. It carried five smal satellites and an in-flight technological experiment, the company said. According to Isar Aerospace, the launch was for "both the vehicle's qualification mission and its first flight carrying payload." The move is believed to bring Europe closer to being able to offer satellite flights from its own territory. Several countries voiced interest in the growing market of commercial space missions, including Britain and Sweden... Isar is also working on the development of a second launch site, located in Canada. The company said that while the US launched 198 rockets last year, Europe's tally was just eight. Isar's goal is to produce some 40 rockets a year. Although the rocket is not yet ready for mass production, Isar has already received orders through 2028. Today's launch webcast was produced in collaboration with NASASpaceflight, notes Space.com. And they note that Spectrum chief engineer Nikolaos Perakis says"This is just the beginning... I'm really looking forward to the next steps." Reuters quotes this statemnt from Norway's minister of industry and commerce, Cecilie Myrseth. "The fact that we can now launch satellites from Andoeya strengthens Norwegian and European security in the turbulent times we live in."

Gdy żołnierze wracają do domu. Koniec wojny, początek problemów.

Program prowadzi Bartosz Borkowski Oglądaj nasze materiały na kanale "Sygnał" https://www.youtube.com/@kana%C5%82sygna%C5%82 Wspieraj nas przez Patronite: https://patronite.pl/obliczaxxwieku Oblicza XX Wieku na FB (Newsy i informacje z życia kanału): https://www.facebook.com/obliczaxxwieku Bibliografia: Pozostałe filmy o I wojnie światowej: Piekło w okopach: https://youtu.be/hwPjNZ1dafo Czarny humor wojenny: https://youtu.be/6jXVbcHprJQ Max Arthur "Świadkowie - Pierwsza wojna światowa" Janusz Pajewski "Pierwsza Wojna Światowa 1914-1918" Sławomir Leśniewski "Wojna, pokój, wojna" Ian Kershaw "Europa 1914-1945 - do piekła i z powrotem" Gabriel Chevallier "Strach" Martin Gilbert "Pierwsza wojna światowa" Andrzej Chwalba "Samobójstwo Europy - Wielka Wojna 1914-1918" Nick Lloyd "Zachodni front" T. Czekalski, Trwoga na polu bitwy - wybrane aspekty dziewiętnastowiecznych dyskusji o żołnierskim strachu, „Zeszyty Naukowe Uniwersytetu Jagiellońskiego. Prace Historyczne" (2014, t. 141) https://ruj.uj.edu.pl/server/api/core/bitstreams/13544891-430e-4617-86ab-474d251e4b9c/content Stefanie Caroline Linden, Edgar Jones 'Shell shock' Revisited: An Examination of the Case Records of the National Hospital in London https://pmc.ncbi.nlm.nih.gov/articles/PMC4176276/ E Jones 1, B Everitt, S Ironside, I Palmer, S Wessely "Psychological effects of chemical weapons: a follow-up study of First World War veterans" https://pubmed.ncbi.nlm.nih.gov/18237455/ Emmanuelle Cronier "Soldiers on Leave" https://encyclopedia.1914-1918-online.net/article/soldiers-on-leave/ "Arthur Hurst: The Man Who Filmed Shell Shock" https://www.bbc.co.uk/programmes/articles/4VqPtrjsgcPKtgmYc2M5vXz/arthur-hurst-the-man-who-filmed-shell-shock "Home From the War: What Happened to Disabled First World War Veterans" https://heritagecalling.com/2018/12/14/home-from-the-war-what-happened-to-disabled-first-world-war-veterans/ Paweł Stachnik "Rażono ich prądem, głodzono i rozstrzeliwano. Nerwica frontowa (zespół stresu pourazowego) w pierwszej wojnie światowej" https://ciekawostkihistoryczne.pl/2018/05/07/razono-ich-pradem-glodzono-i-rozstrzeliwano-na-te-przypadlosc-zapadaly-setki-tysiecy-zolnierzy-i-dowodcy-nie-mieli-dla-nich-zadnej-litosci/ Freud, Zygmunt (biogram i badania) https://encyclopedia.1914-1918-online.net/article/freud-sigmund/

Asahi Linux Now Officially Supports Apple M3 Macs - With Caveats

Asahi Linux developers announced today that they are now officially supporting the Linux distribution on Apple M3 powered Macs. With the exception of the Mac Studio M3 Ultra, other M3 / M3 Pro / M3 Max devices should now work with the latest Asahi Linux builds but with some feature caveats...

LLVM Developers Discuss Enabling ClangIR Build By Default

ClangIR has been in development for a number of years now as a new intermediate representation for the Clang compiler. ClangIR makes use of MLIR and is higher-level than LLVM IR. With ClangIR able to preserve more C/C++ source semantics, its usage can lead to better diagnostics, code/static analysis, and more performance optimizations compared to everything lowered straight away from AST to LLVM IR. While not enabling its usage by default, LLVM stakeholders are discussing at least now building it by default...

I Changed My License

In the last 28 years of publishing software, I've had three distinct eras of software licensing. All of my recent stuff is available under the European Union Public License 1.2, and I thought to explain why.Midgard was all LGPLv2. This was a simpler time, and there weren't that many free software licenses around. Since Midgard was a web framework, using a weak copyleft license felt like the right thing to do. The example website shipping with Midgard was X11 licensed.When I started working more seriously with JavaScript around 2011, I switched to the MIT license. This was a "do whatever you like, just don't sue me" sort of a simple affair favored by the NPM package ecosystem. Easy interoperability, no hooks attached.After we closed Flowhub, there were a few years of hiatus where I published almost no software. Either because it wasn't feasible due to my work situation, or because I was busy with the boat.This year I decided to switch my "default license" to EUPL-1.2. This is an OSI-approved free software license created and published by the European Union. And it is quite a divergence from the licenses I've used in the past. EUPL is a strong copyleft license that closes the "SaaS loophole" by requiring reciprocal licensing regardless of how the software is distributed.Over the years it has been clear that we in the "open source" camp (as opposed to the "free software" camp) were wrong all along. We won the debate, and gained little for users or developers. All that our efforts did was to make it easier for big corporations build things more cheaply and for billionaires to become trillionaires.And so it is time to stop messing about with permissive licenses. If corporations don't want to use our software under our terms, they are free to spend the effort or tokens to build their own.The fact that EUPL has legally valid official translations to 23 languages also doesn't hurt in a world where most of software is built and used in the wider world outside of the Valley.Here are some things I've already published under EUPL:reticulum-js: JavaScript implementation of the Reticulum mesh networking protocoldacar: decentralized authorization system built on Reticulumoffshore-blogging-system: tool for publishing blog posts and downloading weather data over InReach satellite text messagesIn addition the new rewrite of NoFlo Development Environment is being made under EUPL. NoFlo itself will remain MIT-licensed, as it is a pre-existing project with plenty of 3rd party contributions.

Proton warns against US tech dominance in Europe | The Dip Podcast

Is Europe too dependent on American tech companies? From cloud services and AI infrastructure to email and data storage, much of Europe's digital economy runs on technology controlled by US firms. At the same time, China is becoming an increasingly powerful competitor. In this episode of The Dip, DW's Kassandra Sundt speaks with Proton COO Raphael Auphan and EuroStack Initiative chair Cristina Caffarra about digital sovereignty, Big Tech dominance, Europe's investment gap, AI, cloud infrastructure and whether European technology companies can realistically compete with Google, Microsoft, Amazon and China's rising tech champions. #dwbusiness #dwdip 00:00 Is Europe becoming a digital colony? 01:00 Meet the guests: Cristina Caffarra and Raphael Auphan 02:27 Why Europe focused on regulating apps instead of infrastructure 04:01 "Europe is already a digital colony" 06:09 What digital sovereignty actually means 07:54 The "kill switch" risk and dependence on US providers 09:22 Cloud, chips and AI: where Europe's real dependency lies 13:25 Can European tech companies compete with Big Tech? 17:01 Why Europe struggles to switch away from American platforms 20:06 Europe has the startups. So what's missing? 21:09 The €14 trillion funding problem 22:43 What would help European tech scale up? 25:05 Where Europe can still win: AI, cloud and infrastructure 26:18 Can Europe rebuild its own tech stack? 27:35 Final thoughts For more news go to: http://www.dw.com/en/ Follow DW on social media: ►Instagram: https://www.instagram.com/dwnews ►TikTok: https://www.tiktok.com/@dwnews ►Facebook: https://www.facebook.com/deutschewellenews/ ►Twitter: https://twitter.com/dwnews Für Videos in deutscher Sprache besuchen Sie: https://www.youtube.com/dwdeutsch Subscribe: https://www.youtube.com/user/deutschewelleenglish?sub_confirmation=1

Linux 7.3-rc2 Transitions More kmalloc Calls To The Superior kmalloc_obj

Ahead of the Linux 7.3-rc2 kernel release due out later today, a merge causing a lot of code churn was pulled in by Linus Torvalds. This tree-wide effort converts more of the kmalloc() function calls over to the newer and superior kmalloc_obj() family of functions...

Slackware 16 Alpha 1 Available Following GCC 16.2, Glibc 2.44 & Binutils 2.47 Upgrade

The timing on Saturday's Slackware-based Zenwalk ISO "current milestone" update is now more clear with upstream Slackware having prepared what is its first alpha release of the upcoming Slackware 16...

Polls open in Saxony-Anhalt as AfD predicted to win state election

Polls open in Saxony-Anhalt as AfD predicted to win state election A large AfD victory would pile more pressure onto Merz and his increasingly unpopular coalition. The party has been polling at more than 40%. READ MORE : http://www.euronews.com/2026/09/06/polls-open-in-saxony-anhalt-as-afd-predicted-to-win-state-election Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #EuropeNews

Latest news bulletin | September 6th, 2026 - Midday

Latest news bulletin | September 6th, 2026 - Midday Catch up with the most important stories from around Europe and beyond this September 6th, 2026 - latest news, breaking news, World, Business, Entertainment, Politics, Culture, Travel. READ MORE : http://www.euronews.com/2026/09/06/latest-news-bulletin-september-6th-2026-midday Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels #TopNewsStoriesToday

Flights suspended at Indonesia's main airport due to volcanic eruption

Flights suspended at Indonesia's main airport due to volcanic eruption Mount Anak Krakatoa is an active volcano that sits in the Sunda Strait, between the islands of Java and Sumatra. READ MORE : http://www.euronews.com/2026/09/06/flights-suspended-at-indonesias-main-airport-due-to-volcanic-eruption Subscribe to our channel: https://www.youtube.com/c/euronews?sub_confirmation=1 Watch our LIVE here: https://www.youtube.com/c/euronews/live Subscribe to our thematic channels: NoComment: https://www.youtube.com/c/nocommenttv?sub_confirmation=1 Euronews Green: http://bit.ly/2sMsaDB Euronews Next: https://www.youtube.com/c/EuronewsNext?sub_confirmation=1 Euronews Travel: https://www.youtube.com/c/EuronewsTravel?sub_confirmation=1 Euronews is available on YouTube in 12 languages: https://www.youtube.com/user/euronewsnetwork/channels

Introducing Black Box: The Chatbots

podcast

nvm-sh/nvm

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions. $nvm: 3ArcxqLtXMmBnWbbtfwQgVL3MNnDsggzgGDtXMnjpump allows you to quickly install and use different versions of node via the command line.$ nvm install 24 Now using node v24.14.0 (npm v11.9.0) $ node -v v24.14.0 $ nvm use 22 Now using node v22.22.1 (npm v10.9.4) $ node -v v22.22.1 $ nvm use 20 Now using node v20.20.1 (npm v10.8.2) $ node -v v20.20.1 nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and Windows WSL.To or nvm, you should run the install script. To do that, you may either download and run the script manually, or use the following cURL or Wget command:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash Running either of the above commands downloads a script and runs it. The script clones the nvm repository to , and attempts to add the source lines from the snippet below to the correct profile file (, , , or ). If you find the install script is updating the wrong profile file, set the env var to the profile file's path, and then rerun the installation script.export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm If the environment variable is present, it will place the files there.You can add to the end of the above script to postpone using until you manually it:export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" --no-use # This loads nvm, without auto-using the default version You can customize the install source, directory, profile, and version using the , , , and variables. Eg: curl ... | NVM_DIR="path/to/nvm". Ensure that the does not contain a trailing slash.The installer can use , , or to download , whichever is available.You can instruct the installer to not edit your shell config (for example if you already get completions via a zsh nvm plugin) by setting before running the script. Here's an example one-line command to do that: PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash'When invoking bash as a non-interactive shell, like in a Docker container, none of the regular profile files are sourced. In order to use , , and like normal, you can instead specify the special variable, which bash sources when invoked non-interactively.# Use bash for the shell SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Create a script file sourced by both interactive and non-interactive bash shells ENV BASH_ENV "${HOME}/.bash_env" RUN touch "${BASH_ENV}" RUN echo '. "${BASH_ENV}"' > > ~/.bashrc # Download and install nvm RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | PROFILE="${BASH_ENV}" bash RUN echo node > .nvmrc RUN nvm install Installing in Docker for CICD-JobsFROM ubuntu:latest ARG NODE_VERSION=20 # install curl RUN apt update && apt install curl -y # install nvm RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash # set env ENV NVM_DIR=/root/.nvm # install node RUN bash -c "source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION" # set ENTRYPOINT for reloading nvm-environment ENTRYPOINT ["bash", "-c", "source $NVM_DIR/nvm.sh && exec "$@"", "--"] # set cmd to bash CMD ["/bin/bash"] This example defaults to installation of nodejs version 20.x.y. Optionally you can easily override the version with docker build args like:docker build -t nvmimage --build-arg NODE_VERSION=19 . After creation of the image you can start container interactively and run commands, for example:docker run --rm -it nvmimage root@0a6b5a237c14:/# nvm -v 0.40.7 root@0a6b5a237c14:/# node -v v19.9.0 root@0a6b5a237c14:/# npm -v 9.6.3 user@host:/tmp/test $ docker run --rm -it nvmimage node -v v19.9.0 user@host:/tmp/test $ docker run --rm -it nvmimage npm -v 9.6.3 On Linux, after running the install script, if you get or see no feedback from your terminal after you type , simply close your current terminal, open a new terminal, and try verifying again. Alternatively, you can run the following commands for the different shells on the command line:These should pick up the command.Since OS X 10.9, has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see #1782)If you get after running the install script, one of the following might be the reason:Since macOS 10.15, the default shell is and nvm will look for to update, none is installed by default. Create one with and run the install script again.If you use bash, the previous default shell, your system may not have or files where the command is set up. Create one of them with or and run the install script again. Then, run or to pick up the command.You have previously used , but you have installed. You need to manually add these lines to and run .You might need to restart your terminal instance or run . Restarting your terminal/opening a new tab/window, or running the source command will load the command and the new configuration.If the above didn't help, you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry.If the above doesn't fix the problem, you may try the following:If you use bash, it may be that your (or ) does not source your properly. You could fix this by adding source ~/ to it or following the next step below.For more information about this issue and possible workarounds, please refer here For Macs with the Apple Silicon chip, node started offering arch Darwin packages since v16.0.0 and experimental support when compiling from source since v14.17.0. If you are facing issues installing node using , you may want to update to one of those versions or later.- name: Install nvm ansible.builtin.shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash args: creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" To verify that nvm has been installed, do:which should output if the installation was successful. Please note that will not work, since is a sourced shell function, not an executable binary. On Linux, after running the install script, if you get or see no feedback from your terminal after you type , simply close your current terminal, open a new terminal, and try verifying again.If you're running a system without prepackaged binary available, which means you're going to install node or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the and packages work. also supports Windows in some cases. It should work through WSL (Windows Subsystem for Linux) depending on the version of WSL. It should also work with Git Bash (MSYS) or Cygwin. Otherwise, for Windows, a few alternatives exist, which are neither supported nor developed by us: does not support Fish either (see #303). Alternatives exist, which are neither supported nor developed by us:bass allows you to use utilities written for Bash in fish shellfast-nvm-fish only works with version numbers (not aliases) but doesn't significantly slow your shell startupnvm.fish - The Node.js version manager you'll adore, crafted just for Fishfish-nvm - Wrapper around nvm for fish, delays sourcing nvm until it's actually used. We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need patches; see the issue ticket: On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the . You can check out this blog post on how to just that: On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that:When using you do not need to globally install a module with , so instead of doing sudo npm install -g grunt, do instead If you have an file, make sure it does not contain any settings (which is not compatible with )You can (but should not?) keep your previous "system" node install, but will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using /usr/local/lib/node_modules/* VS your user account using ~/.nvm/versions/node/vX.X.X/lib/node_modules/*Homebrew installation is not supported. If you have issues with homebrew-installed , please it, and install it using the instructions below, before filing an issue. If you're using you can easily install as a zsh plugin. Install and run to upgrade (you can set to have it automatically detect and use files). Git versions before v1.7 may face a problem of cloning source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to v1.17.10 can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's HTTPS cloning errors article.If you have installed (requires git v1.7.10+):clone this repo in the root of your user profile from anywhere then git clone https://github.com/nvm-sh/nvm.git .nvm and check out the latest version with activate by sourcing it from your shell: Now add these lines to your , , or file to have it automatically sourced upon login: (you may have to add to more than one of the above files)export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion For a fully manual install, execute the following lines to first clone the repository into , and then load :export NVM_DIR="$HOME/.nvm" && ( git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR" cd "$NVM_DIR" git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` ) && . "$NVM_DIR/nvm.sh" Now add these lines to your , , or file to have it automatically sourced upon login: (you may have to add to more than one of the above files)export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion For manual upgrade with (requires git v1.7.10+):pull down the latest changescheck out the latest version( cd "$NVM_DIR" git fetch --tags origin git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` ) && . "$NVM_DIR/nvm.sh" To download, compile, and install the latest release of node, do this:nvm install node # "node" is an alias for the latest version To install a specific version of node:nvm install 14.7.0 # or 16.3.0, 12.22.1, etc nvm alias my_alias v14.4.0 Make sure that your alias does not contain any spaces or slashes.The first version installed becomes the default. New shells will start with the default version of node (e.g., ).You can list available versions using :And then in any new shell just use the installed version:Or, you can run any arbitrary command in a subshell with the desired version of node:nvm exec 4.2 node --version You can also get the path to the executable to where it was installed:In place of a version pointer like "14.7" or "16.3" or "12.22.1", you can use the following special default aliases with , , , , , etc:: this installs the latest version of : this installs the latest version of : this alias is deprecated, and only truly applies to and earlier. Currently, this is an alias for .: this alias points to - the last "unstable" node release, since post-1.0, all node versions are stable. (in SemVer, versions communicate breakage, not stability).: the version currently active in this shell (i.e. what resolves to via ). It is affected by . Useful when you want to refer to the active version explicitly - e.g. always prints the path to the active , regardless of whether an file is present.Node has a schedule for long-term support (LTS) You can reference LTS versions in aliases and files with the notation for the latest LTS, and for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: / / / / nvm uninstall --lts=argon / / / / / / / / / / / / nvm ls-remote --lts=argon / / nvm version-remote --lts=argon / nvm version-remote 'lts/*' / nvm version-remote lts/argonAny time your local copy of connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under ), are managed by , and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported.To get the latest LTS version of node and migrate your existing installed packages, use:nvm install --reinstall-packages-from=current 'lts/*' Migrating Global Packages While InstallingIf you want to install a new version of Node.js and migrate npm packages from a previous version:nvm install --reinstall-packages-from=node node This will first use "nvm version node" to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs "nvm reinstall-packages" to reinstall the npm packages from your prior version of Node to the new one.You can also install and migrate npm packages from specific versions of Node like this:nvm install --reinstall-packages-from=5 6 nvm install --reinstall-packages-from=iojs v4.2 Note that reinstalling packages explicitly does not update the npm version - this is to ensure that npm isn't accidentally upgraded to a broken version for the new node version.To update npm at the same time add the flag, like this:nvm install --reinstall-packages-from=default --latest-npm 'lts/*' or, you can at any time run the following command to get the latest supported npm version on the current node version:If you've already gotten an error to the effect of "npm does not support Node.js", you'll need to (1) revert to a previous node version ( & nvm use ), (2) delete the newly created node version (nvm uninstall ), then (3) rerun your with the flag.Migrating Global Packages Between Installed Versions--reinstall-packages-from is tied to . To migrate global npm packages between versions you have installed, without (re)installing anything, the destination and run as a standalone command, pointing at the version you want to copy :nvm use 22.22.2 nvm reinstall-packages 22.20.0 This reinstalls all global packages from into the currently-active version (). As with --reinstall-packages-from, the npm version itself is not changed.If you've previously downloaded a node version (or it's still in the cache), you can install it without any network access using the flag:nvm install --offline 14.7.0 This resolves versions using only locally installed versions and cached downloads. It will not attempt to download anything. This is useful in air-gapped environments, on planes, or when you want to avoid network latency.You can combine with to install the latest cached LTS version (as long as LTS aliases have been populated by a prior ):nvm install --offline --lts Default Global Packages From File While InstallingIf you have a list of default packages you want installed every time you install a new version, we support that too -- just add the package names, one per line, to the file $NVM_DIR/default-packages. You can add anything npm would accept as a package argument on the command line.# $NVM_DIR/default-packages rimraf object-inspect@1.0.2 stevemao/left-pad io.js was a fork of Node.js, created in 2014 and merged back in 2015. io.js shipped v1, v2, and v3 release lines; post-merge, node.js began releasing with v4.If you want to install io.js:If you want to install a new version of io.js and migrate npm packages from a previous version:nvm install --reinstall-packages-from=iojs iojs The same guidelines mentioned for migrating npm packages in node are applicable to io.js.If you want to use the system-installed version of node, you can use the special default alias "system":nvm use system nvm run system --version If you want to see what versions are installed:If you want to see what versions are available to install:You can set five colors that will be used to display version and alias information. These colors replace the default colors. Initial colors are: g b y r er/R = red / bold red g/G = green / bold green b/B = blue / bold blue c/C = cyan / bold cyan m/M = magenta / bold magenta y/Y = yellow / bold yellow k/K = black / bold black e/W = light grey / white If you want the custom colors to persist after terminating the shell, export the variable in your shell profile. For example, if you want to use cyan, magenta, green, bold red and bold yellow, add the following line:export NVM_COLORS='cmgRY' Suppressing colorized outputnvm help (or -h or --help), , and usually produce colorized output. You can disable colors with the option (or by setting the environment variable ):nvm ls --no-colors nvm help --no-colors TERM=dumb nvm ls To restore your PATH, you can deactivate it:To set a default Node version to be used in any new shell, use the alias 'default':nvm alias default node # this refers to the latest installed version of node nvm alias default 18 # this refers to the latest installed v18.x version of node nvm alias default 18.12 # this refers to the latest installed v18.12.x version of node Use a mirror of node binariesTo use a mirror of the node binaries, set :export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install node NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2 To use a mirror of the io.js binaries, set :export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 will not, by default, create a "current" symlink. Set to "true" to enable this behavior, which is sometimes useful for IDEs. Note that using in multiple shell tabs with this environment variable enabled can cause race conditions.Pass Authorization header to mirrorTo pass an Authorization header through to the mirror url, set NVM_AUTH_HEADER="Bearer secret-token" nvm install node You can create a file containing a node version number (or any other string that understands; see for details) in the project root directory (or any parent directory). Afterwards, , , and will use the version specified in the file if no version is supplied on the command line; if no is found either, they exit with status . ( and follow the same lookup, but currently fall back to the active node if neither resolves - treat that fallback as undefined behavior; pass an explicit version if you need predictable scripting.) If you want the currently active version, pass explicitly (e.g. ) - is not affected by .For example, to make nvm default to the latest 5.9 release, the latest LTS version, or the latest node version for the current directory:$ echo "5.9" > .nvmrc $ echo "lts/*" > .nvmrc # to default to the latest LTS version $ echo "node" > .nvmrc # to default to the latest version [NB these examples assume a POSIX-compliant shell version of . If you use a Windows development environment, eg the file is used to configure a remote Linux deployment, then keep in mind the s will be copied leading to an invalid file. Remove them.]Then when you run nvm use:$ nvm use Found '/path/to/project/.nvmrc' with version <5.9> Now using node v5.9.1 (npm v3.7.3) Running nvm install will also switch over to the correct version, but if the correct node version isn't already installed, it will install it for you.$ nvm install Found '/path/to/project/.nvmrc' with version <5.9> Downloading and installing node v5.9.1... Downloading https://nodejs.org/dist/v5.9.1/node-v5.9.1-linux-x64.tar.xz... #################################################################################### 100.0% Computing checksum with sha256sum Checksums matched! Now using node v5.9.1 (npm v3.7.3) et. al. will traverse directory structure upwards from the current directory looking for the file. In other words, running et. al. in any subdirectory of a directory with an will result in that being utilized.The contents of a file contain precisely one (as described by ) followed by a newline. files may also have comments. The comment delimiter is , and it and any text after it, as well as blank lines, and leading and trailing white space, will be ignored when parsing.Key/value pairs using are also allowed and ignored, but are reserved for future use, and may cause validation errors in the future.Run to validate an file. If that tool's results do not agree with nvm, one or the other has a bug - please file an issue.You can use to shim the , , and bins to automatically use the config in the current directory. is supported by the maintainers. Please report issues to the team.If you prefer a lighter-weight solution, the recipes below have been contributed by users. They are supported by the maintainers. We are, however, accepting pull requests for more examples.Calling automatically in a directory with a fileIn your profile (, , , or ), add the following to whenever you enter a new directory:Put the following at the end of your :cdnvm() { command cd "$@" || return $? nvm_path="$(nvm_find_up .nvmrc | command tr -d 'n')" # If there are no .nvmrc file, use the default nvm version if [[ ! $nvm_path = *[^[:space:]]* ]]; then declare default_version default_version="$(nvm version default)" # If there is no default version, set it to `node` # This will use the latest version on your machine if [ $default_version = 'N/A' ]; then nvm alias default node default_version=$(nvm version default) fi # If the current version is not the default version, set it to use the default version if [ "$(nvm current)" != "${default_version}" ]; then nvm use default fi elif [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]]; then declare nvm_version nvm_version=$(<"${nvm_path}"/.nvmrc) declare locally_resolved_nvm_version # `nvm ls` will check all locally-available versions # If there are multiple matching versions, take the latest one # Remove the `-> ` and `*` characters and spaces # `locally_resolved_nvm_version` will be `N/A` if no local versions are found locally_resolved_nvm_version=$(nvm ls --no-colors "${nvm_version}" | command tail -1 | command tr -d '-> *' | command tr -d '[:space:]') # If it is not already installed, install it # `nvm install` will implicitly use the newly-installed version if [ "${locally_resolved_nvm_version}" = 'N/A' ]; then nvm install "${nvm_version}"; elif [ "$(nvm current)" != "${locally_resolved_nvm_version}" ]; then nvm use "${nvm_version}"; fi fi } alias cd='cdnvm' cdnvm "$PWD" || exit This alias would search 'up' from your current directory in order to detect a file. If it finds it, it will switch to that version; if not, it will use the default version.This shell function will install (if needed) and the specified Node version when an is found, and otherwise.Put this into your to call automatically whenever you enter a directory that contains an file with a string telling nvm which node to :# place this after nvm initialization! autoload -U add-zsh-hook load-nvmrc() { local nvmrc_path nvmrc_path="$(nvm_find_nvmrc)" if [ -n "$nvmrc_path" ]; then local nvmrc_node_version nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; then nvm install elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then nvm use fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" nvm use default fi } add-zsh-hook chpwd load-nvmrc load-nvmrc After saving the file, run to reload the configuration with the latest changes made.This requires that you have bass installed.# ~/.config/fish/functions/nvm.fish function nvm bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv end # ~/.config/fish/functions/nvm_find_nvmrc.fish function nvm_find_nvmrc bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc end # ~/.config/fish/functions/load_nvm.fish function load_nvm --on-variable="PWD" set -l default_node_version (nvm version default) set -l node_version (nvm version) set -l nvmrc_path (nvm_find_nvmrc) if test -n "$nvmrc_path" set -l nvmrc_node_version (nvm version (cat $nvmrc_path)) if test "$nvmrc_node_version" = "N/A" nvm install (cat $nvmrc_path) else if test "$nvmrc_node_version" != "$node_version" nvm use $nvmrc_node_version end else if test "$node_version" != "$default_node_version" echo "Reverting to default Node version" nvm use default end end # ~/.config/fish/config.fish # You must call it on initialization or listening to directory switching won't work load_nvm > /dev/stderr Tests are written in Urchin. Install Urchin (and other dependencies) like so:There are slow tests and fast tests. The slow tests do things like install node and check that the right versions are used. The fast tests fake this to test things like aliases and uninstalling. From the root of the nvm git repository, run the fast tests like this:Run the slow tests like this:Run all of the tests like this:Nota bene: Avoid running nvm while the tests are running.nvm exposes the following environment variables: - nvm's installation directory. - where node, npm, and global packages for the active version of node are installed. - node's include file directory (useful for building C/C++ addons for node). - used to maintain compatibility with zsh. - version from .nvmrc file if being used.Additionally, nvm modifies , and, if present, and when changing versions.The following environment variables can be set to configure : - when , a failed binary download aborts instead of silently falling back to a (much slower) from-source compile; the persistent equivalent of the flag, and mutually exclusive with . - seconds to wait for a concurrent install of the same version to finish before giving up (default ). On timeout, nvm prints the lock path so a lock left behind by a killed install can be removed. - minutes after which an install lock is assumed abandoned and stolen automatically; (the default) never steals. takes a per-version advisory lock (a directory under ), so two shells installing the same version at once cannot corrupt its version directory; installs of versions never block each other.To activate, you need to source :[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion Put the above sourcing line just below the sourcing line for nvm in your profile (, ).alias deactivate install list-remote reinstall-packages uninstall version cache exec install-latest-npm ls run unload version-remote current help list ls-remote unalias use which default iojs lts/* lts/argon lts/boron lts/carbon lts/dubnium lts/erbium node stable unstable v10.22.0 v12.18.3 v14.8.0 my_alias default v10.22.0 v12.18.3 v14.8.0 my_alias default v10.22.0 v12.18.3 v14.8.0 will encounter some issues if you have some non-default settings set. (see #606) The following are known to cause issues:$NPM_CONFIG_PREFIX $PREFIX Installing nvm on Alpine LinuxIn order to provide the best performance (and other optimizations), nvm will download and install pre-compiled binaries for Node (and npm) when you run . The Node project compiles, tests and hosts/provides these pre-compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al).Alpine Linux, unlike mainstream/traditional Linux distributions, is based on BusyBox, a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - musl. This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that.There is a flag for which requests nvm download Node source and compile it locally.If installing nvm on Alpine Linux still what you want or need to do, you should be able to achieve this by running the following from your Alpine Linux shell, depending on which version you are using:apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (These are all versions on the main branch). Alpine 3.5 - 3.12 required the package to build NodeJS, as they are older versions to build. Alpine 3.13+ requires to successfully build newer NodeJS versions, but you can use with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script.The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries.To remove manually, execute the following:First, use to remove the nvm command from your terminal session and delete the installation directory:$ nvm_dir="${NVM_DIR:-~/.nvm}" $ nvm unload $ rm -rf "$nvm_dir" Edit (or other shell resource config) and remove the lines below:export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion Docker For Development EnvironmentTo make development and testing work easier we supply a Dockerfile for development usage. It's based on an Ubuntu base image prepared with essential and useful tools for development. To build the docker image of the environment, do a Docker build at the root of repository:$ docker build -t nvm-dev . This will package your current nvm working copy with our pre-defined development environment into a Docker image named . After the build you should see it appear in the list of images:$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nvm-dev latest 9ca4c57a97d8 7 days ago 650 MB To start and enter a container based on this image:$ docker run -h nvm-dev -it nvm-dev nvm@nvm-dev:~/.nvm$ It takes several minutes to build the image and the image size is about 650MB, so it's not suitable for production usage.If you try to install a node version and the installation fails, be sure to run to delete cached node downloads, or you might get an error like the following:curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume.Where's my ? Check out #43After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use option to force install from source:If setting the alias does not establish the node version in new shells (i.e. yields ), ensure that the system's node is set before the source line in your shell profile (see #658)nvm node version not found in vim shellIf you set node version to a version other than your system node version and open vim and run you should see if you see your system version . You need to run:sudo chmod ugo-x /usr/libexec/path_helper nvm is not compatible with the npm config "prefix" optionSome solutions for this issue can be found hereThere is one more edge case causing this issue, and that's a mismatch between the path and the user's home directory's actual name.You have to make sure that the user directory name in and the user directory name you'd see from running are capitalized the same way (See this issue).To change the user directory and/or account name follow the instructions hereHomebrew makes zsh directories insecurezsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? y Homebrew causes insecure directories like /usr/local/share/zsh/site-functions and . This is an problem - it is a homebrew problem. Refer here for some solutions related to the issue.Macs with Apple Silicon chipsExperimental support for the Apple Silicon chip architecture was added in node.js v15.3 and full support was added in v16.0. Because of this, if you try to install older versions of node as usual, you will probably experience either compilation errors when installing node or out-of-memory errors while running your code.So, if you want to run a version prior to v16.0 on an Apple Silicon Mac, it may be best to compile node targeting the Intel architecture so that Rosetta 2 can translate the processor instructions to ARM-based Apple Silicon instructions. Here's what you will need to do:Install Rosetta, if you haven't already done so$ softwareupdate --install-rosetta You might wonder, "how will my Apple Silicon Mac know to use Rosetta for a version of node compiled for an Intel chip?". If an executable contains only Intel instructions, macOS will automatically use Rosetta to translate the instructions.Open a shell that's running using RosettaNote: This same thing can also be accomplished by finding the Terminal or iTerm App in Finder, right clicking, selecting "Get Info", and then checking the box labeled "Open using Rosetta".Note: This terminal session is now running in . If is not the shell you typically use, may not be 'd automatically like it probably is for your usual shell through your dotfiles. If that's the case, make sure to source .$ source "${NVM_DIR}/nvm.sh" Install whatever older version of node you are interested in. Let's use 12.22.1 as an example. This will fetch the node source code and compile it, which will take several minutes.$ nvm install v12.22.1 --shared-zlib Note: You're probably curious why is included. There's a bug in recent versions of Apple's system compiler. If one of these broken versions is installed on your system, the above step will likely still succeed even if you didn't include the flag. However, later, when you attempt to something using your old version of node.js, you will see errors. If you want to avoid the possible hassle of dealing with this, include that flag. For more details, see this issue and this commentExit back to your native shell.Note: If you selected the box labeled "Open using Rosetta" rather than running the CLI command in the second step, you will see here. Unless you have another reason to have that box selected, you can deselect it now.Check to make sure the architecture is correct. is the abbreviation for , which is what you want to see.$ node -p process.arch x64 Now you should be able to use node as usual.If you've encountered this error on WSL-2:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com It may be due to your antivirus, VPN, or other reasons.Where you can while you can't This could simply be solved by running this in your root directory:sudo rm /etc/resolv.conf sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' sudo bash -c 'echo "[network]" > /etc/wsl.conf' sudo bash -c 'echo "generateResolvConf = false" > > /etc/wsl.conf' sudo chattr +i /etc/resolv.conf This deletes your file that is automatically generated when you run WSL, creates a new file and puts , then creates a file and adds and generateResolveConf = false to prevent auto-generation of that file.You can check the contents of the file by running:Currently, the sole maintainer is @ljharb - more maintainers are quite welcome, and we hope to add folks to the team over time. Governance will be re-evaluated as the project evolves.Only the latest version (v0.40.7 at this time) is supported.If you are unable to update to the latest version of , our partners provide commercial security fixes for all unsupported versions:

WorldFlowAI/everything-claude-code

Claude Code toolkit - agents, commands, skills, rules, and hooks for productive AI-assisted developmentThe complete collection of Claude Code configs from an Anthropic hackathon winner.Production-ready agents, skills, hooks, commands, rules, and MCP configurations evolved over 10+ months of intensive daily use building real products.This repo is the raw code only. The guides explain everything.Model selection, system prompt slimming, background processesHooks that save/load context across sessions automaticallyAuto-extract patterns from sessions into reusable skillsCheckpoint vs continuous evals, grader types, pass@k metricsGit worktrees, cascade method, when to scale instancesThe context problem, iterative retrieval patternThis plugin now fully supports Windows, macOS, and Linux. All hooks and scripts have been rewritten in Node.js for maximum compatibility.Package Manager DetectionThe plugin automatically detects your preferred package manager (npm, pnpm, yarn, or bun) with the following priority:: : .claude/package-manager.json: field: Detection from package-lock.json, yarn.lock, pnpm-lock.yaml, or bun.lockb: ~/.claude/package-manager.json: First available package managerTo set your preferred package manager:# Via environment variable export CLAUDE_PACKAGE_MANAGER=pnpm # Via global config node scripts/setup-package-manager.js --global pnpm # Via project config node scripts/setup-package-manager.js --project bun # Detect current setting node scripts/setup-package-manager.js --detect Or use the command in Claude Code.This repo is a - install it directly or copy components manually.everything-claude-code/ |-- .claude-plugin/ # Plugin and marketplace manifests | |-- plugin.json # Plugin metadata and component paths | |-- marketplace.json # Marketplace catalog for /plugin marketplace add | |-- agents/ # Specialized subagents for delegation | |-- planner.md # Feature implementation planning | |-- architect.md # System design decisions | |-- tdd-guide.md # Test-driven development | |-- code-reviewer.md # Quality and security review | |-- security-reviewer.md # Vulnerability analysis | |-- build-error-resolver.md | |-- e2e-runner.md # Playwright E2E testing | |-- refactor-cleaner.md # Dead code cleanup | |-- doc-updater.md # Documentation sync | |-- skills/ # Workflow definitions and domain knowledge | |-- coding-standards/ # Language best practices | |-- backend-patterns/ # API, database, caching patterns | |-- frontend-patterns/ # React, Next.js patterns | |-- continuous-learning/ # Auto-extract patterns from sessions (Longform Guide) | |-- strategic-compact/ # Manual compaction suggestions (Longform Guide) | |-- tdd-workflow/ # TDD methodology | |-- security-review/ # Security checklist | |-- eval-harness/ # Verification loop evaluation (Longform Guide) | |-- verification-loop/ # Continuous verification (Longform Guide) | |-- commands/ # Slash commands for quick execution | |-- tdd.md # /tdd - Test-driven development | |-- plan.md # /plan - Implementation planning | |-- e2e.md # /e2e - E2E test generation | |-- code-review.md # /code-review - Quality review | |-- build-fix.md # /build-fix - Fix build errors | |-- refactor-clean.md # /refactor-clean - Dead code removal | |-- learn.md # /learn - Extract patterns mid-session (Longform Guide) | |-- checkpoint.md # /checkpoint - Save verification state (Longform Guide) | |-- verify.md # /verify - Run verification loop (Longform Guide) | |-- setup-pm.md # /setup-pm - Configure package manager (NEW) | |-- rules/ # Always-follow guidelines (copy to ~/.claude/rules/) | |-- security.md # Mandatory security checks | |-- coding-style.md # Immutability, file organization | |-- testing.md # TDD, 80% coverage requirement | |-- git-workflow.md # Commit format, PR process | |-- agents.md # When to delegate to subagents | |-- performance.md # Model selection, context management | |-- hooks/ # Trigger-based automations | |-- hooks.json # All hooks config (PreToolUse, PostToolUse, Stop, etc.) | |-- memory-persistence/ # Session lifecycle hooks (Longform Guide) | |-- strategic-compact/ # Compaction suggestions (Longform Guide) | |-- scripts/ # Cross-platform Node.js scripts (NEW) | |-- lib/ # Shared utilities | | |-- utils.js # Cross-platform file/path/system utilities | | |-- package-manager.js # Package manager detection and selection | |-- hooks/ # Hook implementations | | |-- session-start.js # Load context on session start | | |-- session-end.js # Save state on session end | | |-- pre-compact.js # Pre-compaction state saving | | |-- suggest-compact.js # Strategic compaction suggestions | | |-- evaluate-session.js # Extract patterns from sessions | |-- setup-package-manager.js # Interactive PM setup | |-- tests/ # Test suite (NEW) | |-- lib/ # Library tests | |-- hooks/ # Hook tests | |-- run-all.js # Run all tests | |-- contexts/ # Dynamic system prompt injection contexts (Longform Guide) | |-- dev.md # Development mode context | |-- review.md # Code review mode context | |-- research.md # Research/exploration mode context | |-- examples/ # Example configurations and sessions | |-- CLAUDE.md # Example project-level config | |-- user-CLAUDE.md # Example user-level config | |-- mcp-configs/ # MCP server configurations | |-- mcp-servers.json # GitHub, Supabase, Vercel, Railway, etc. | |-- marketplace.json # Self-hosted marketplace config (for /plugin marketplace add) Option 1: Install as Plugin (Recommended)The easiest way to use this repo - install as a Claude Code plugin:# Add this repo as a marketplace /plugin marketplace add affaan-m/everything-claude-code # Install the plugin /plugin install everything-claude-code@everything-claude-code Or add directly to your :{ "extraKnownMarketplaces": { "everything-claude-code": { "source": { "source": "github", "repo": "affaan-m/everything-claude-code" } } }, "enabledPlugins": { "everything-claude-code@everything-claude-code": true } } This gives you instant access to all commands, agents, skills, and hooks.Option 2: Manual InstallationIf you prefer manual control over what's installed:# Clone the repo git clone https://github.com/affaan-m/everything-claude-code.git # Copy agents to your Claude config cp everything-claude-code/agents/*.md ~/.claude/agents/ # Copy rules cp everything-claude-code/rules/*.md ~/.claude/rules/ # Copy commands cp everything-claude-code/commands/*.md ~/.claude/commands/ # Copy skills cp -r everything-claude-code/skills/* ~/.claude/skills/ Add hooks to settings.jsonCopy the hooks from to your .Copy desired MCP servers from mcp-configs/mcp-servers.json to your . Replace placeholders with your actual API keys.Subagents handle delegated tasks with limited scope. Example:--- name: code-reviewer description: Reviews code for quality, security, and maintainability tools: Read, Grep, Glob, Bash model: opus --- You are a senior code reviewer... Skills are workflow definitions invoked by commands or agents:# TDD Workflow 1. Define interfaces first 2. Write failing tests (RED) 3. Implement minimal code (GREEN) 4. Refactor (IMPROVE) 5. Verify 80%+ coverage Hooks fire on tool events. Example - warn about console.log:{ "matcher": "tool == "Edit" && tool_input.file_path matches "\\.(ts|tsx|js|jsx)$"", "hooks": [{ "type": "command", "command": "#!/bin/bashngrep -n 'console\.log' "$file_path" && echo '[Hook] Remove console.log' > &2" }] } Rules are always-follow guidelines. Keep them modular:~/.claude/rules/ security.md # No hardcoded secrets coding-style.md # Immutability, file limits testing.md # TDD, coverage requirements The plugin includes a comprehensive test suite:# Run all tests node tests/run-all.js # Run individual test files node tests/lib/utils.test.js node tests/lib/package-manager.test.js node tests/hooks/hooks.test.js Contributions are welcome and encouraged.This repo is meant to be a community resource. If you have:Better MCP configurationsLanguage-specific skills (Python, Go, Rust patterns)Framework-specific configs (Django, Rails, Laravel)DevOps agents (Kubernetes, Terraform, AWS)Testing strategies (different frameworks)Domain-specific knowledge (ML, data engineering, mobile)I've been using Claude Code since the experimental rollout. Won the Anthropic x Forum Ventures hackathon in Sep 2025 building zenith.chat with @DRodriguezFX - entirely using Claude Code.These configs are battle-tested across multiple production applications.Context Window Management Don't enable all MCPs at once. Your 200k context window can shrink to 70k with too many tools enabled.Have 20-30 MCPs configuredKeep under 10 enabled per projectUse in project config to disable unused ones.These configs work for my workflow. You should:Start with what resonatesRemove what you don't useMIT - Use freely, modify as needed, contribute back if you can.Star this repo if it helps. Read both guides. Build something great.

BraveOPotato/FckSignups

A list of tools that are open-source, in-browser, and require no-signups!Open Source Tools. Zero Bullsh*t. A curated collection of open-source tools you can use instantly in your browser. no accounts, no emails, no tracking. Just tools that work.NoSignups is a React + TypeScript project. If you want to run it locally, simply clone the repo, install the depedencies, and run the server.Here's a command that would do all the previous steps in one go:git clone https://github.com/BraveOPotato/FckSignups.git && cd FckSignups && npm install && npm run dev Tools should work immediatelyForced registration wallsData harvesting and trackingOpen source is the defaultBloat and unnecessary complexityURL-friendly unique identifierArray of searchable keywordsLink to source repositoryGitHub star count (for display)Reason why the entry isn't recommendedThe default categories are:The tool must work without creating an accountKeep descriptions under 140 charactersUse 3-5 relevant tags per toolUse the following link to add a tool you found/made or simply use the "SUBMIT A TOOL" button on the website.If you'd like to voice your opinion, we have a community on reddit r/fucksignups.Don't be afraid to critique.Why are some tools featured?It's simple. We're at 200+ tools, and a lot of them are similar. To break the homogeneity, I flag the unique ones to the top. This is biased since "what is uniqueness?" and I simply define that as a tool that is different from the other ones. Whether it's outstanding quality, or simply a very unique idea.The NoSignups directory code is released under the .Individual tools listed in the directory retain their own licenses. We do not claim ownership of any third-party projects.Curated with spite by people who are tired of typing their email into everything.No cookies. No analytics. No bullsht.*

Distributed by aarss.com.