🧵1/
Pulled 12.5 years of @Fitbit weight data via @Google Takeout becuz muh acquisitions.
No clean export. Broken tables. Fragmented JSON payload, so I rolled it up myself 👇🏻
```
python3 - <<'PY'
import csv, glob, json, os
from datetime import datetime
files = sorted(glob.glob("weight-*.json"))
if not files:
raise SystemExit("No weight-*.json files found in this folder.")
def iter_dicts(x):
"""Yield dict records from any nested JSON structure."""
if isinstance(x, dict):
# if this dict itself looks like a record, yield it too
yield x
for v in x.values():
yield from iter_dicts(v)
elif isinstance(x, list):
for item in x:
yield from iter_dicts(item)
def parse_dt(rec):
for k in ("dateTime","datetime","date_time","timestamp","date"):
v = rec.get(k)
if isinstance(v, str) and v.strip():
for fmt in ("%Y-%m-%d %H:%M:%S","%Y-%m-%d %H:%M","%Y-%m-%dT%H:%M:%S","%Y-%m-%d"):
try:
return datetime.strptime(v.replace("Z",""), fmt)
except Exception:
pass
return None
def to_float(x):
try:
return float(x)
except Exception:
return None
rows, all_keys = [], set()
for fp in files:
with open(fp, "r", encoding="utf-8") as f:
obj = json.load(f)
# Collect candidate dicts that actually contain a weight-like field
candidates = []
for rec in iter_dicts(obj):
if not isinstance(rec, dict):
continue
if any(k in rec for k in ("weight","weightKg","weight_kg","value","Weight")):
candidates.append(rec)
print(f"{fp}: {len(candidates)} record(s)")
for rec in candidates:
dt = parse_dt(rec)
w = None
for k in ("weight","Weight","weightKg","weight_kg","value"):
if k in rec:
w = to_float(rec.get(k))
if w is not None:
break
out = dict(rec)
out["datetime_parsed"] = dt.isoformat(sep=" ") if dt else ""
out["weight_raw"] = f"{w:.3f}" if isinstance(w, (int, float)) else ""
out["source_file"] = fp
all_keys.update(out.keys())
rows.append(out)
preferred = ["datetime_parsed","weight_raw","bmi","fat","logId","source_file"]
fieldnames = preferred + sorted(k for k in all_keys if k not in preferred)
rows.sort(key=lambda r: r.get("datetime_parsed") or "9999-12-31 23:59:59")
with open("fitbit_weight_all.csv","w",newline="",encoding="utf-8") as f:
w = csv.DictWriter(f, fieldnames=fieldnames)
w.writeheader()
w.writerows(rows)
print(f"✅ Wrote fitbit_weight_all.csv with {len(rows)} total rows from {len(files)} files.")
PY
```
After winning the primary, Ken Paxton remains the favorite to win the Texas Senate Race
2026 Texas Senate Race Odds Per @Kalshi
🔴 Ken Paxton: 56% (+5)
🔵 James Talarico: 44% (-5)
(+/- vs 1 week ago)
REP. BRIAN E. HARRISON (R): The real reason John Cornyn lost is because Republican voters are sick of politicians who run as conservatives and then collude with Democrats the second they get to Washington.
@brianeharrison
Karl is having @FoxNews PTSD flashbacks to the 2012 Election eve for Mittons Romney, frantically scrambling around on the white-board struggling to parse any logic whatsoever while mumbling “Bush, Bush, Bush.”
When she asks him to name something he loves that’s not family or friends she probably thought he’d say baseball, barbecue, fishing, the rodeo even…instead the first thing that was on his mind was… (checks notes) trans children. 😵💫
The Delta Force rescue that should have failed. It didn’t.
For nine months, Kurt Muse sat in Panama’s most notorious prison, where Noriega’s soldiers twice held a gun to his head and pulled the trigger on an empty chamber, just to watch him break. He had hijacked Noriega’s radio to call for revolution, and the dictator made sure he paid for it. A guard sat outside his cell with one job: Pull the trigger if anyone tried to save him. “You die a million times in there,” Muse later said.
What he didn’t know was that 23 Delta Force operators had spent months rehearsing his rescue on a full-scale replica of his prison.
On a December night, 4 blacked-out Little Bird helicopters flew low through Panama City, weaving between buildings. Muse heard gunfire but had no idea it was for him. An explosion ripped through the roof above, and Delta operators poured into the building through the smoke.
Six minutes after landing, they reached his cell. When the lock wouldn’t give, they cut it with bolt cutters, rushed in, and covered Muse with their own bodies. “We are here to take you home.” They strapped him into a vest and helmet and moved him to the roof, where tracers lit up the sky from every direction.
Then everything went wrong. The Little Bird couldn’t get airborne with the extra man on board, and the team leader made a split second call: Two operators would stay behind on the roof, alone and surrounded, so the rest could fly. The helicopter barely cleared the edge before crashing onto the street. The pilot drove it along the road like a car, skids scraping asphalt, until he got it airborne again. When they took fire a second time, the helicopter went down for good.
Nearly every operator was wounded. One came to after being knocked unconscious, looked at Muse, and the first thing he asked was whether Muse was okay. Bleeding and battered, the Deltas put themselves between the civilian and the gunfire until armored vehicles fought through to pull them out.
“As a civilian, I was in total awe. Despite their wounds, these warriors carried on as if they were not wounded.”
The crashed Little Bird now sits in the American Helicopter Museum, the first ever used in a rescue.
Mearsheimer: War is the predictable consequence when one great power establishes itself on the border of another great power. What was previously common sense has now become controversial...