5 changes to know about in #Apple’s latest #iOS, #macOS, and #iPadOS betas
#iPhone #Mac #iPad #iMessage #RCS #encryption #cybersecurity #privacy #StolenDeviceProtection
5 changes to know about in #Apple’s latest #iOS, #macOS, and #iPadOS betas
#iPhone #Mac #iPad #iMessage #RCS #encryption #cybersecurity #privacy #StolenDeviceProtection
I Built My Own iMessage Wrapped (And So Can You)
My daughter was joking that someone should build a Spotify Wrapped, but for iMessage — your year in emoji and reactions. My wife said my brother-in-law should build it since he works at Apple. (Every Apple problem is his fault in our house.)
From the other room, my daughter yelled: “I bet Dad could write this!”
Challenge accepted.
The Result
Thirty minutes later, I had a working script. Here’s my 2025:
🎁 iMessage Wrapped 2025
📱 Messages
Total: 35,768
Sent: 12,191
Received: 23,577
💬 Reactions
Given: 1,974
Received: 5,014
🏆 Your Reaction Style
👍 982
❤️ 398
😂 275
‼️ 126
❓ 19
👎 16
📈 Messages by Month
Jan ███████████████ 3,052
Feb █████████████ 2,621
Mar █████████████████ 3,422
Apr ██████████████████ 3,696
May ██████████████████ 3,640
Jun ████████████████████ 3,904
Jul █████████████ 2,561
Aug ████████████ 2,448
Sep ██████████████ 2,790
Oct █████████████████ 3,466
Nov ███████████ 2,206
Dec ██████████ 1,962Some things I learned about myself:
How It Works
Your iMessage history lives in a SQLite database at ~/Library/Messages/chat.db. It’s just sitting there, queryable.
The tricky bits:
associated_message_type set to a magic number (2000 = loved, 2001 = liked, etc.).associated_message_emoji.Once you know the schema, it’s just SQL.
The Script
Here’s the full thing — about 100 lines of Python, no dependencies beyond the standard library:
#!/usr/bin/env python3
"""
iMessage Wrapped — Your year in emoji and reactions
Usage: python3 imessage-wrapped.py [year]
Requires: Full Disk Access for Terminal
"""
import sqlite3
import os
import sys
from datetime import datetime
from pathlib import Path
YEAR = int(sys.argv[1]) if len(sys.argv) > 1 else 2025
DB_PATH = Path.home() / "Library/Messages/chat.db"
APPLE_EPOCH_OFFSET = 978307200
TAPBACKS = {
2000: "❤️", # Loved
2001: "👍", # Liked
2002: "👎", # Disliked
2003: "😂", # Laughed
2004: "‼️", # Emphasized
2005: "❓", # Questioned
}
def get_db():
if not DB_PATH.exists():
print(f"❌ Database not found at {DB_PATH}")
sys.exit(1)
return sqlite3.connect(f"file:{DB_PATH}?mode=ro", uri=True)
def date_filter(year):
return f"""
datetime(date/1000000000 + {APPLE_EPOCH_OFFSET}, 'unixepoch') >= '{year}-01-01'
AND datetime(date/1000000000 + {APPLE_EPOCH_OFFSET}, 'unixepoch') < '{year + 1}-01-01'
"""
def main():
print(f"\n🎁 iMessage Wrapped {YEAR}\n")
db = get_db()
cur = db.cursor()
# Message counts
cur.execute(f"""
SELECT COUNT(*),
SUM(CASE WHEN is_from_me = 1 THEN 1 ELSE 0 END),
SUM(CASE WHEN is_from_me = 0 THEN 1 ELSE 0 END)
FROM message WHERE {date_filter(YEAR)} AND associated_message_type = 0
""")
total, sent, received = cur.fetchone()
print(f"📱 Messages: {total:,} ({sent:,} sent, {received:,} received)")
# Reaction counts
cur.execute(f"""
SELECT SUM(CASE WHEN is_from_me = 1 THEN 1 ELSE 0 END),
SUM(CASE WHEN is_from_me = 0 THEN 1 ELSE 0 END)
FROM message WHERE {date_filter(YEAR)} AND associated_message_type >= 2000
""")
given, got = cur.fetchone()
print(f"💬 Reactions: {given + got:,} ({given:,} given, {got:,} received)")
# Your tapback style
print(f"\n🏆 Your Reaction Style")
cur.execute(f"""
SELECT associated_message_type, COUNT(*) FROM message
WHERE {date_filter(YEAR)} AND associated_message_type BETWEEN 2000 AND 2005 AND is_from_me = 1
GROUP BY associated_message_type ORDER BY COUNT(*) DESC
""")
for type_id, cnt in cur.fetchall():
print(f" {TAPBACKS.get(type_id, '?')} {cnt:,}")
# Custom emoji
cur.execute(f"""
SELECT associated_message_emoji, COUNT(*) FROM message
WHERE {date_filter(YEAR)} AND associated_message_emoji IS NOT NULL AND is_from_me = 1
GROUP BY associated_message_emoji ORDER BY COUNT(*) DESC LIMIT 5
""")
customs = cur.fetchall()
if customs:
print(f"\n🎯 Custom Reactions: {', '.join(f'{e} ({c})' for e, c in customs)}")
# Monthly volume
print(f"\n📈 By Month")
cur.execute(f"""
SELECT strftime('%m', datetime(date/1000000000 + {APPLE_EPOCH_OFFSET}, 'unixepoch')), COUNT(*)
FROM message WHERE {date_filter(YEAR)} AND associated_message_type = 0
GROUP BY 1 ORDER BY 1
""")
months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
data = {row[0]: row[1] for row in cur.fetchall()}
max_cnt = max(data.values()) if data else 1
for i, name in enumerate(months, 1):
cnt = data.get(f"{i:02d}", 0)
bar = "█" * int(20 * cnt / max_cnt)
print(f" {name} {bar} {cnt:,}")
db.close()
if __name__ == "__main__":
main()Running It
imessage-wrapped.pypython3 imessage-wrapped.py # defaults to 2025
python3 imessage-wrapped.py 2024 # or any yearThat’s it. Your data never leaves your machine.
What I’d Add Next
If I turn this into a proper app:
But honestly? The script is fun enough. Sometimes a quick hack that makes your daughter laugh is the whole point.
The script and a slightly more polished version are on GitHub if you want to grab it.
#Apple #iMessage #Messages #NerdyStuff #PythonRCS in Messages app: Apple starts testing encryption
So far, iPhone and Mac users have had to live without end-to-end encryption when using RCS. This is about to change, but depends on the provider.
@deusfigendi
Zunächst seit meinem ersten Smartphone LEIDER WhatsApp🤮, dann seit fast fünf Jahren hauptsächlich Signal. Ich nutze weiterhin iMessage und Threema.
RCS in Nachrichten-App: Apple beginnt mit Tests für Verschlüsselung
Bislang müssen iPhone- und Mac-Nutzer bei Verwendung von RCS ohne Ende-zu-Ende-Verschlüsselung leben. Das ändert sich bald, hängt aber vom Provider ab.
EyeingAI (@EyeingAI)
대부분 AI 어시스턴트는 $600짜리 Mac Mini나 VPS 서버가 필요하지만 Lindy Assistant는 그렇지 않습니다. 100개 이상 앱과 연결되며 회의·이메일을 관리하고 iMessage를 통해 적극적으로 하루 종일 시간을 절약해주는 기능을 제공합니다.
AshutoshShrivastava (@ai_for_success)
Lindy라는 AI 비서가 iMessage 안에서 동작하며 사용자의 이메일, 캘린더, Slack, Notion 등 100개 이상의 앱과 연동해 후속 조치, 회의 준비 등 실무 업무를 처리한다고 소개합니다. 기존 AI 어시스턴트처럼 Mac Mini나 VPS, 높은 토큰 비용이 필요한 방식과 달리 사용자 환경에 직접 통합되는 점을 강조합니다.
AshutoshShrivastava (@ai_for_success)
Lindy가 정식 AI 어시스턴트로 출시되었습니다. 대부분의 AI 도구는 사용자가 직접 찾아와 프롬프트를 작성하고 확인해야 하지만, Lindy는 iMessage 등 사용자가 이미 시간을 보내는 앱에 내장되어 해당 환경에서 바로 작동하도록 설계되었습니다. 사용자가 기억하거나 수동으로 호출할 필요를 줄인 실사용 중심의 AI 어시스턴트 출시 소식입니다.
Gemini jest genialny, ale… głuchy. Dlaczego Google płaci dziś najwyższą cenę za śmierć Hangouts?
Google chwali się, że Gemini to Twój „osobisty asystent”, który łączy kropki. Wie, gdzie lecisz (z Gmaila), wie, gdzie masz hotel (z Map) i wie, jak wyglądasz (ze Zdjęć). Ma jednak gigantyczną, wstydliwą dziurę w pamięci.
Nie ma pojęcia, o czym rozmawiasz z żoną, przyjaciółmi czy szefem na komunikatorze. A to tam zapadają decyzje.
Ślepa plamka sztucznej inteligencji
Abner Li z 9to5Google trafił w sedno. „Inteligencja Osobista” Google opiera się na archiwach (dokumenty, maile), a nie na strumieniu życia (czaty). Problem w tym, że w 2026 roku mail służy głównie do odbierania faktur i newsletterów. „Wyślij mi ten link”, „Spotykamy się o 19:00 tam gdzie zawsze”, „Kup mleko” – te informacje przelatują przez WhatsAppa, iMessage czy Signala. Dla Gemini te dane nie istnieją.
Grzechy przeszłości
To moment, w którym Google płaci cenę za swoje porażki z ostatniej dekady. Pierwsza to brak własnego standardu. Gdyby Google nie uśmiercił Hangouts i nie błądził z Allo/Duo, miałby dziś własny ekosystem, w którym Gemini mógłby „czytać” nasze czaty (oczywiście za naszą zgodą, lokalnie na urządzeniu). Ponadto pamiętajmy, że Android to za mało. Nawet jeśli Google zintegruje Gemini z Wiadomościami Google (RCS), to w Europie – królestwie WhatsAppa – czegoś zabraknie, będzie luka w wiedzy Gemini.
Pozostaje jeszcze kwestia konkurencyjnych rozwiązań, które dla Google stanowią raczej mur nie do przebicia. Czy Meta (właściciel WhatsAppa/Messengera) da Gemini dostęp do swoich danych? Nigdy. Mają własne AI (Meta AI) i własne ambicje. Apple z iMessage? Zapomnijcie.
Asystent z amnezją
Efekt jest taki, że mamy najmądrzejszego asystenta w historii, który potrafi napisać kod w Pythonie i zaplanować wakacje na podstawie PDF-a, ale nie potrafi przypomnieć Ci: „Co Darek prosił, żebym przyniosła na grilla?”, bo ta informacja padła na WhatsAppie.
Google zbudowało potężny mózg, ale przez lata systematycznie odcinało mu uszy. I teraz, w erze AI, ta cisza jest ogłuszająca. Nawet jeżeli gigant z Mountain View zaskoczy jakąś rewolucyjną usługą to bezwładność rynku i przyzwyczajenia ludzi sprawią, że Gemini jeszcze długo może zostać częściowo „ślepe”
#GoogleGemini #historiaGoogleHangouts #imessage #komunikatory #opinia #prywatnośćAI #sztucznaInteligencja #WhatsAppVsGoogleQuick Share dogada się z iPhonem na każdym Androidzie? Google zapowiada ekspansję „very soon”
OpenClaw을 Apple Silicon macOS VM(Lume)에 설치해 격리된 환경에서 실행하는 방법 안내입니다. 요구사항(Apple Silicon, macOS Sequoia+, VM당 약 60GB)과 Lume 설치→lume create로 VM 생성→Setup Assistant에서 SSH 활성화→SSH로 접속해 npm으로 openclaw 설치→channels 설정(WhatsApp, Telegram 등)→백그라운드 실행 과정을 단계별로 설명합니다. BlueBubbles로 iMessage 통합, 골든 이미지 스냅샷, 24/7 운영 팁과 주요 문제해결도 포함됩니다.
https://docs.openclaw.ai/install/macos-vm#what-you-need-lume
𝗪𝗼𝗼𝗿𝗱𝗲𝗻 𝗲𝗲𝗻𝘃𝗼𝘂𝗱𝗶𝗴 𝗼𝗺𝘇𝗲𝘁𝘁𝗲𝗻 𝗶𝗻 𝗲𝗺𝗼𝗷𝗶 𝗶𝗻 𝗶𝗠𝗲𝘀𝘀𝗮𝗴𝗲
Kun je die ene geschikte emoji maar niet vinden? In iMessage kun je eenvoudig woorden omzetten in emoji door erop te tikken. In dit artikel lees je hoe dit werkt en welke woorden je zoal kunt vervangen door een emoji.
https://www.iculture.nl/tips/imessage-emoji-woorden-omzetten/
Apple publikuje kolejne aktualizacje dla starszych urządzeń
Wczoraj wieczorem Apple udostępniło kilka kolejnych aktualizacji przeznaczonych do instalacji na urządzeniach, które nie są wspierane przez najnowsze systemy.
A chodzi konkretnie o poniższe aktualizacje:
Aktualizacja iOS jest skierowana głównie dla użytkowników z Australii. Naprawia możliwość korzystania z połączeń alarmowych.
Z kolei pozostałe aktualizacje zapewniają dalsze wsparcie usług iMessage i FaceTime na starszych urządzeniach.
Apple po raz kolejny pokazuje, że nie zapomina o użytkownikach korzystających ze starszych sprzętów.
#Aktualizacje #AppleWatch #facetime #imessage #iOS #iOS16 #iPad #iPadOS #iPadOS16 #iPhone #Mac #macOS #macOS11 #watchOS #watchOS10 #watchOS6 #watchOS9