Skip to main content

GFiber and Astound Broadband To Join Forces

2 days 8 hours ago
GFiber (a.k.a. Google Fiber) and Astound Broadband announced that they plan to merge into a deal backed by infrastructure investor Stonepeak Infrastructure Partners. The resulting company will be majority owned by Stonepeak, with Alphabet becoming a "significant minority shareholder." Light Reading reports: Stonepeak Infrastructure Partners teamed with Patriot Media to acquire Astound in November 2020 for $8.1 billion. Stonepeak is Astound's largest investor. The deal is expected to close in the fourth quarter of 2026. The combined business will be led by the existing GFiber executive team. GFiber is currently led by CEO Dinni Jain. Jain, a former Time Warner Cable and Insight Communications exec, took the helm of what was then called Google Fiber in 2018. "This agreement advances GFiber's mission of redefining internet connectivity and represents a major step toward its goal of operational and financial independence," the companies said. "GFiber will have the external capital and strategic focus needed to accelerate its next phase of growth, expanding its customer-first approach and pioneering fiber technology across the country." GFiber's combination with Astound represents "a strategic opportunity to scale our customer-focused approach to connect more households to a truly different type of internet service," Jain said in a statement.

Read more of this story at Slashdot.

BeauHD

CodeSOD: Awaiting A Reaction

2 days 8 hours ago

Today's Anonymous submitter sends us some React code. We'll look at the code and then talk about the WTF:

// inside a function for updating checkboxes on a page if (!e.target.checked) { const removeIndex = await checkedlist.findIndex( (sel) => sel.Id == selected.Id, ) const removeRowIndex = await RowValue.findIndex( (sel) => sel == Index, ) // checkedlist and RowValue are both useState instances.... they should never be modified directly await checkedlist.splice(removeIndex, 1) await RowValue.splice(removeRowIndex, 1) // so instead of doing above logic in the set state, they dont setCheckedlist(checkedlist) setRow(RowValue) } else { if (checkedlist.findIndex((sel) => sel.Id == selected.Id) == -1) { await checkedlist.push(selected) } // same, instead of just doing a set state call, we do awaits and self updates await RowValue.push(Index) setCheckedlist(checkedlist) setRow(RowValue) }

Comments were added by our submitter.

This code works. It's the wrong approach for doing things in React: modifying objects controlled by react, instead of using the provided methods, it's doing asynchronous push calls. Without the broader context, it's hard to point out all the other ways to do this, but honestly, that's not the interesting part.

I'll let our submitter explain:

This code is black magic, because if I update it, it breaks everything. Somehow, this is working in perfect tandem with the rest of the horrible page, but if I clean it up, it breaks the checkboxes; they're no longer able to be clicked. Its forcing React somehow to update asynchronously so it can use these updated values correctly, but thats the neat part, they aren't even being used anywhere else, but somehow the re-rendering page only accepts awaits. I've tried refactoring it 5 different ways to no avail

That's what makes truly bad code. Code so bad that you can't even fix it without breaking a thousand other things. Code that you have to carefully, slowly, pick through and gently refactor, discovering all sorts of random side-effects that are hidden. The code so bad that you actually have to live with it, at least for awhile.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!
Remy Porter