@twostraws One thing #Predicate didnt provide is a way to build a query dyamically. Users want to toggle various filters and customize search terms, but compile-time predicates won’t deliver.
SwiftData's #Predicate macro looks like pure Swift but gets compiled into something else entirely. Some things crash at runtime, some silently return nothing, and !value can behave differently to value == false. 😅 https://www.hackingwithswift.com/quick-start/swiftdata/how-to-filter-swiftdata-results-with-predicates
How to filter SwiftData results with predicates - a free SwiftData by Example tutorial

Learn Swift coding for iOS with these free tutorials

Hacking with Swift

Today 1.4.0: Reddit Meets RSS in Your Privacy-First Reader

I’m excited to announce Today 1.4.0, the biggest update yet to our privacy-first RSS reader. This release brings native Reddit support alongside traditional RSS feeds, letting you follow subreddits without the tracking, ads, or algorithmic manipulation of the official Reddit app.

Why Reddit in an RSS Reader?

Reddit has been moving toward a more closed ecosystem, but it still has open data endpoints that anyone can access. While Reddit has supported basic RSS feeds for years, I wanted to go deeper—pulling in the rich media, comments, and metadata that make Reddit posts engaging.

With Today 1.4.0, you can:

  • Follow subreddits alongside your RSS feeds in one unified timeline
  • Read Reddit posts with GIFs, videos, and image galleries
  • Browse comments without leaving the app
  • Keep your reading habits private—no tracking, no data collection

All of this happens locally on your device. We don’t know what you read, and we like it that way.

What’s New in 1.4.0

🎉 Reddit RSS Support

Adding a Reddit feed is dead simple: tap the “+” button, select “Reddit,” and type the subreddit name. That’s it. No need to fiddle with URLs or RSS endpoints.

What works:

  • Animated GIFs and videos play automatically with smooth looping
  • Multi-image galleries let you swipe through photos with pinch-to-zoom and pan gestures
  • Comments load with proper threading when you tap the comments button
  • Rich media displays beautifully, whether it’s images, videos, or text posts
  • Author attribution shows who posted instead of just the feed name

Reddit posts integrate seamlessly with the rest of Today:

  • They appear in your daily timeline alongside RSS articles
  • AI-generated newsletters can include Reddit posts
  • Previous/Next navigation works across all content types
  • Mark as read/unread, just like any article

📱 Better Feed Navigation

You can now tap any feed to see its articles. This was one of the most requested features, and it makes auditing individual feeds much easier.

Each feed now shows:

  • Unread count badges so you know what’s new at a glance
  • Swipe-to-edit for quick access to feed settings
  • Mark all as read button in the feed view
  • Show/hide read articles toggle for more control

🏷️ Smarter Categories

Category filters got a polish pass:

  • Categories now display in title case (General, Work, Tech) for better readability
  • Empty categories hide automatically—no more clutter from unused categories
  • Custom category names preserve your exact capitalization
  • A one-time migration updated existing feeds (completely automatic)

The Philosophy: Privacy-First, Always

Every feature in Today is built around a core principle: your reading habits are yours alone.

Unlike social media apps that track every article you open, every link you click, and every moment you spend reading:

  • Today stores all data locally using SwiftData
  • AI summaries run on-device using Apple Intelligence
  • There’s no cloud sync that could leak your reading history
  • We don’t use analytics, tracking pixels, or data collection

Reddit support follows the same philosophy. When you read a subreddit through Today:

  • Reddit doesn’t know you’re reading
  • We don’t know you’re reading
  • Your reading list stays on your device

You can export your feeds anytime via OPML. Your data is portable, private, and under your control.

Technical Deep Dive

For those interested in how this works under the hood:

Reddit Integration: From RSS to JSON

Here’s a fun fact: Reddit has supported RSS feeds for years. When I first started testing Today, I was following subreddits like r/UtahInfluenceDrama and r/SonyAlpha using their native RSS feeds (just append .rss to any subreddit URL). It worked perfectly for basic article reading.

But here’s the thing: Reddit’s RSS feeds are pretty bare-bones. You get titles, links, and basic text—but that’s about it. No author information, no media URLs, no gallery support, and definitely no comment access.

We all know you go to Reddit for the comments.

So I made the switch to Reddit’s JSON API (via .json endpoints), and suddenly everything got better:

What JSON gives us that RSS doesn’t:

  • Author attribution – See who posted, not just the subreddit
  • Rich media URLs – Direct links to GIFs, videos, and gallery images
  • Post metadata – Awards, post type, media information
  • Comment data – Full comment threads with proper nesting
  • Gallery posts – Multiple images with proper ordering
  • Video support – Reddit-hosted videos with fallback URLs
  • More reliable parsing – Structured data instead of HTML scraping

The integration now handles:

  • Text posts, link posts, image posts, and video posts
  • Gallery posts with multiple images and zoom/pan gestures
  • Animated GIFs (via direct MP4 URLs that auto-play and loop)
  • Reddit videos (via fallback URLs when available)
  • Comment threads with proper threading and formatting

Reddit’s RSS feeds are still great for basic reading, but the JSON API unlocks the full Reddit experience—rich media, comments, and all the metadata that makes Reddit posts interesting—while keeping everything private and ad-free.

What’s Next

This release sets the foundation for more feed source integrations. Some ideas on the roadmap:

  • Hacker News integration
  • Newsletter-to-RSS bridging
  • YouTube channel feeds

I’m also exploring:

  • iPad-optimized layouts
  • Deeper AI integrations (topic clustering, reading recommendations)
  • Podcast RSS support with playback
  • Cross-device sync (end-to-end encrypted, opt-in)

A Note on RSS in 2025

People keep declaring RSS dead, but it’s more alive than ever. Why?

RSS is the antidote to algorithmic feeds. You choose what you want to read. No one decides for you what’s “relevant” or “engaging.”

RSS is private by default. No one tracks what feeds you subscribe to or which articles you read.

RSS is portable. You can move your subscriptions between readers anytime with OPML export.

RSS is open. It doesn’t require accounts, logins, or platform lock-in.

Today brings RSS into 2025 with modern features—AI summaries, background sync, rich media support—while keeping the core values intact: privacy, control, and the open web.

Try It Today

Today 1.4.0 is available now on the App Store for iOS 18+.

Download: Today on the App Store

It’s free, with no ads, no tracking, and no subscriptions. Your data stays on your device, and your reading habits stay private.

Feedback Welcome

This update represents months of work, and I’d love to hear what you think:

Special thanks to all the beta testers who provided feedback during development. Your input made this release significantly better.

Changelog

New Features:

  • Reddit RSS support with simplified feed picker
  • Rich media playback (animated GIFs, videos, image galleries)
  • Reddit comments view with threading
  • Tap feeds to view their articles
  • Unread count badges on feed list
  • Swipe gestures for feed editing
  • Mark all as read functionality

Improvements:

  • Category buttons now display in title case
  • Empty categories hide automatically
  • Better feed navigation with Previous/Next buttons
  • Improved newsletter generation with Reddit posts
  • Enhanced visual consistency across the app

Technical:

  • One-time category migration system
  • Reddit JSON API integration
  • SwiftData query optimizations
  • Background sync improvements

Privacy:

  • All data remains on-device
  • No tracking of reading habits
  • No analytics or data collection
  • OPML export for data portability

Download Today and take control of your reading.

Built with ❤️ by Jake Spurlock

#predicate

Trying to fetch a SwiftData model filtered by an enum (BookStatus) using #Predicate or Predicate(\.status, equals:) fails every time:
Key path cannot refer to enum case / Cannot infer key path type.
Anyone found a clean way to filter enums in SwiftData?
#iosdev #swift #swiftdata

Техническая внутренняя кухня StarRocks: оптимизация JOIN — от логики до распределённого выполнения

Как StarRocks добивается высокой производительности JOIN-запросов в аналитических нагрузках. В материале — практическая кухня оптимизатора: какие типы JOIN эффективнее и когда их стоит конвертировать (например, CROSS→INNER, OUTER→INNER при NULL‑отвергающих предикатах), как работает predicate pushdown, извлечение предикатов из OR, вывод эквивалентностей и pushdown LIMIT. Разбираем Join Reorder для многотабличных запросов (Left‑Deep, Exhaustive, Greedy, DPsub), модель стоимости (CPU*(Row(L)+Row(R))+Memory*Row(R)) и выбор лучшего плана. На уровне распределённого исполнения — MPP‑архитектура, свойства распределения (Distribution Property) и узлы Exchange; пять базовых планов: Shuffle, Broadcast, Bucket Shuffle, Colocate и экспериментальный Replicate Join. Плюс Global Runtime Filter (Min/Max, IN, Bloom) для ранней фильтрации на Scan. Даем практические принципы: используйте более быстрые типы JOIN, стройте хеш по малой таблице, в многоJOINовых запросах сперва выполняйте высокоселективные соединения, сокращайте объём данных и сетевой трафик. Материал для инженеров данных, DBA, разработчиков OLAP и всех, кто проектирует производительные SQL‑планы.

https://habr.com/ru/articles/943050/

#starrocks #join #оптимизация_запросов #mpp #распределенный #predicate #olapкубы

Техническая внутренняя кухня StarRocks: оптимизация JOIN — от логики до распределённого выполнения

Добро пожаловать в серию статей «Техническая внутренняя кухня StarRocks», где мы всесторонне раскрываем принципы и практические детали, лежащие в основе StarRocks, чтобы помочь вам шаг за шагом...

Хабр

It’s not possible to use the Swift #Predicate macro with a CoreData NSFetchRequest (which needs NSPredicate), right?

Or am I missing something?

@tba Not a feedback yet, but I was getting the following error below when using this predicate)

let impAssociation = #Predicate<ObjcMethod> {
// This will catch Foundation and CoreFoundation
showUnassociatedImps || $0.impPath.localizedStandardContains($0.path) || $0.impPath.localizedStandardContains("CoreFoundation.framework") || $0.impPath.localizedStandardContains("/Foundation.framework")
}

“$0.impPath.localizedStandardContains($0.path)” was the culprit.

https://mastodon.social/@rosyna/114829247488194152

Woof - implementing the generic App Entity queries for SwiftData entities really highlights all of the shortcomings of the #Predicate macro. This is soooooo much harder than it should be.

@marcel Should be possible with something like this (untested):

Query(filter: #Predicate<Object> { object in
object.date > dateA && object.date < dateB
})

Starting a new project for Day 57, so don’t have much to show so far. We’re learning how to edit SwiftData objects with SwiftUI and filter data using #Predicate. #100DaysOfSwiftUI