When you build an application, you should ensure that the test coverage is 100%. This gives you more confidence in the future, especially when making changes or adding new features.
AI Companies are directing resources toward Rust programming. If artificial intelligence might displace coding, why do these firms continue investing in Rust?
Just shipped whats_new_kit_flutter ๐
The Apple-style โWhat's Newโ sheet โ the one Calendar, Maps and Translate show after an update โ now in Flutter.
โ Shows once per release, per user, survives restarts
โ Every colour from your own ColorScheme
โ iOS, Android, macOS, Windows, Linux, Web (+ WASM)
โ No required plugin dependencies
โ 160/160 pub points
A faithful port of SvenTiigi's WhatsNewKit, with a Flutter-shaped API.
https://t.co/hm54jGf6qV
#Flutter #Dart
Debugging an HL7 v2 interface?
hl7probe reads the pipes and carets and tells you what the receiver will reject:
PID-7 not a valid date/time - day 32 does not exist in 1985-03
PV1-3 invalid location
brew install sudhi001/tap/hl7probe
MIT, one binary
https://t.co/aBGtffbey1
Test coverage should be a familiar concept for every developer. In todayโs world, where a significant amount of code is being generated by AI, strong test coverage is more important than ever. It gives developers greater confidence that the functionality works as expected and helps catch regressions early. #Developers #vibecoding
๐ Most Flutter apps still store auth tokens in plain SharedPreferences. On a rooted device or in a backup, that's a gift to attackers.
Here's how native_datastore fixes storage โ regular AND secret โ behind one clean, async, type-safe API. ๐งต๐
Flutter's built-in options each leave a gap:
โข SharedPreferences โ not encrypted, string-ish, blocks on first load
โข Various secure plugins โ often no multi-process story, clunky types
native_datastore gives you TWO stores with the same ergonomic API:
๐ฆ NativeDatastore โ fast key-value on the platform's own tech:
โข Jetpack DataStore on Android
โข UserDefaults on iOS
โข 8 real types: String, bool, int, double, List<String>, Uint8List, DateTime, Map
โข Reactive: watch() any key as a Stream and rebuild on change
โข Atomic ops: incrementInt, toggleBool, compareAndSet โ no lost updates
๐ SecureDatastore โ encrypted at rest:
โข iOS Keychain (after-first-unlock, never backed up / device-migrated)
โข Android: AndroidKeyStore-backed AES-256-GCM, hardware-backed where available, fresh IV per write
๐ v1.6 โ the headline: multi-process support for SecureDatastore.
Background services and iOS app extensions can now share the SAME encrypted store. One line:
await SecureDatastore().configure(
multiProcess: true, // Android
appGroupId: 'https://t.co/maKAd9zrIP.grp' // iOS Keychain group
);
The everyday API is boringly simple (that's the point):
final store = NativeDatastore();
await store.setString('user', 'sudhi');
final name = await store.getString('user');
final secure = SecureDatastore();
await secure.setString('refresh_token', jwt); // encrypted
Why it's built to trust:
โ Type-safe platform channels via Pigeon โ no stringly-typed method calls
โ Corruption handler so a killed-mid-write file recovers instead of crashing
โ Real example app + published benchmarks
โ 128 unit tests + on-device verification on Android & iOS
โ Apache-2.0
Coming from SharedPreferences? Migrate existing values in one call:
await store.migrateFromSharedPreferences();
๐ฆ https://t.co/BhVRamFchY
๐ Guides: https://t.co/RdjDFEMenm
โญ Star it if it saves you a headache: https://t.co/uLEm3djqAS
#Flutter #Dart #FlutterDev #MobileDev #AppSec
Fusion of ๐ฅ๐๐ (Retrieval Augmented Generation) and ๐๐๐ (Cache Augmented Generation). How can you benefit from it as AI Engineer?
Letโs see what it looks like and what additional considerations should be taken into account.
Here are example steps to implement CAG + RAG architecture:
๐๐ข๐ต๐ข ๐๐ณ๐ฆ๐ฑ๐ณ๐ฐ๐ค๐ฆ๐ด๐ด๐ช๐ฏ๐จ:
๐ญ. We use only rarely changing data sources for Cache Augmented Generation. On top of the requirement of data changing rarely we should also think about which of the sources are often hit by relevant queries. Once we have this information, only then we pre-compute all of this selected data into a KV Cache of the LLM. Cache it in memory. This only needs to be done once, the following steps can be run multiple times without recomputing the initial cache.
๐ฎ. For RAG, if necessary, precompute and store vector embeddings in a compatible database to be searched later in step 4. Sometimes simpler data types are enough for RAG, a regular database might suffice.
๐๐ถ๐ฆ๐ณ๐บ ๐๐ข๐ต๐ฉ:
We can now utilise the preprocessed data.
๐ฏ. Compose a prompt including user query and the system prompt with instructions on how cached context and retrieved external context should be used by the LLM.
๐ฐ. Embed a user query to be used for semantic search via vector DBs and query the context store to retrieve relevant data. If semantic search is not required, query other sources, like real time databases or web.
๐ฑ. Enrich the final prompt with external context retrieved in step 4.
๐ฒ. Return the final answer to the user.
๐๐ฐ๐ฎ๐ฆ ๐๐ฐ๐ฏ๐ด๐ช๐ฅ๐ฆ๐ณ๐ข๐ต๐ช๐ฐ๐ฏ๐ด:
โก๏ธ Context window is not infinite and even while some models boast enormous context window sizes, the needle in the haystack problem has not yet been solved so use available context wisely and cache only the data you really need.
โ For some business cases, specific datasets are extremely valuable to be passed to the model as cache. Think about an assistant that has to always comply with a lengthy set of internal rules stored in multiple documents.
โ While CAG has been popularised for Open Source just recently, it is already viable for some time via Prompt Caching features in OpenAI and Anthropic APIs. It is really easy to start prototyping there.
โ You should always separate hot and cold data sources, only use cold (data that changes rarely) in your cache, otherwise the data will go stale and the application will go out of sync.
โ Be very careful about what you cache as the data will be available for all users to query.
โ It is very hard to ensure RBAC for cached data unless you have a separate model with its own cache per role.
Have you used the combination already?
๐กย Performance Insight:ย Often overlooked, DNS caching can significantly reduce your mobile app's network latency by 300-400ms per request!
After optimizing our app's networking layer with proper DNS caching
๐ค Performance Perspective I've been thinking about the disconnect in our industry lately... Fascinating how teams enthusiastically embrace micro frontends for scalability and team autonomy, yet their backend APIs are still crawling along on HTTP/1.1.
Lessons Learned from Tracking Lost Apple AirPods Pro
I recently experienced the limitations of Apple's tracking technology after losing my AirPods Pro purchased from Lulu Mall.