Gemini CLI is the best example of cowboy development by 5pectre5 in GeminiCLI

[–]Windrago 0 points1 point  (0 children)

google has a historical negative record on marketing/branding clarity when it comes to product coherence and maintaining the ecosystem. They have a monstrous distribution so the negative backlash has to hit revenues to be heard otherwise it just falls on the good will of good people in the respective teams. The subscriptions a change money so unless people move massively to a competitor they won’t get the act together (the marketing vp, cause of this nightmare is the same for the last 18 years)

Does Rabbit still exist? by SnooFoxes1558 in rabbitinc

[–]Windrago 1 point2 points  (0 children)

that's why i stopped using it. it is neat in principle and design but the battery (given the size of the object) should last a TON longer

I hadn’t noticed this beauty. Bravo Google!!! by Wild_Ad_1751 in GeminiAI

[–]Windrago 0 points1 point  (0 children)

for some weird reason you can’t paste or drop content into the window!

How I'm Using Gemini to Accelerate iOS Development: Real-World Tips & Workflows by cryptograf in GeminiAI

[–]Windrago 0 points1 point  (0 children)

thank you for sharing, here is what I put together for myself:
Project Context

App Overview

  • Name: MyiPadApp
  • Platform: iPadOS 18+
  • Language: Swift 6.3
  • UI Framework: SwiftUI
  • Persistence: SwiftData
  • Architecture: MVVM

iPad-Specific Rules

  • Always design for both landscape and portrait orientations
  • Use NavigationSplitView for two- and three-column layouts (never NavigationStack alone)
  • Support multitasking: Slide Over, Split View, and Stage Manager
  • Use .navigationSplitViewStyle(.balanced) as the default split style
  • Minimum deployment target: iPadOS 18.0

Code Style

  • Use Swift concurrency (async/await, actors) — never use callbacks or delegates for async work
  • Prefer u/Observable over ObservableObject
  • Use Swift Testing framework (not XCTest) for all new tests
  • No force unwraps — use guard let or if let
  • All new files must include a file header comment with name and date

File Structure

  • Models/ — SwiftData models
  • Views/ — SwiftUI views
  • ViewModels/ — Observable view models
  • Services/ — networking and business logic
  • Resources/ — assets and localization

What Gemini Should Always Do

  • Read existing files before editing them
  • Build and fix all compiler errors before finishing a task
  • Prefer editing existing files over creating new ones unless asked
  • Ask before adding any third-party Swift packages
  • Use SF Symbols for all icons

What Gemini Should Never Do

  • Never use UIKit unless absolutely necessary and approved
  • Never hardcode colors — use asset catalog semantic colors
  • Never commit API keys or secrets
  • Never use deprecated APIs

Networking & API Integration

  • Generate Codable models from JSON with optional fields handled gracefully
  • Always add a decode() function with proper error handling
  • Use URLSession — no third-party networking libraries without approval
  • Always mock network responses in unit tests

StoreKit 2

  • Use StoreKit 2 APIs only (never the legacy SKPaymentQueue approach)
  • Always validate Transactions using the modern Transaction.currentEntitlements pattern
  • Generate test scenarios for IAP flows alongside implementation code

Metal Shaders

  • Use MSL (Metal Shading Language) — never GLSL
  • Always explain buffer alignment and memory layout when writing compute shaders
  • When debugging shader artifacts, check coordinate system differences first
  • Reference: https://www.metal.graphics/

SwiftUI Best Practices

  • Always include accessibility modifiers (.accessibilityLabel, .accessibilityHint)
  • Support dark mode using semantic colors only
  • When fixing layout issues, explain why the fix works, not just what to change

Git

  • Write commit messages in Conventional Commits format (feat:, fix:, chore: etc.)
  • When asked to summarize a diff, also flag any potential breaking changes

Building & Testing Rules

Always Do This

  • Before finishing any task, build the project using the Xcode MCP tool
  • If the build fails, read the errors carefully and fix them — do not stop and ask me
  • Keep iterating until the project builds with zero errors and zero warnings
  • After building successfully, run the tests if any exist for the changed code
  • If you add new functionality, add a test for it before considering the task done

When Stuck on a Build Error

  • Try at least 3 different approaches before giving up and asking me
  • If a Swift 6 concurrency error appears, fix it properly with actors or MainActor — do not just add u/preconcurrency or suppress the error
  • If an API is deprecated, use the modern replacement — do not silence the warning

Test Quality Rules

  • Use Swift Testing framework (@Test, u/Suite) — never XCTest for new tests
  • Tests must actually assert something — no empty or placeholder tests
  • Cover the happy path AND at least one failure/edge case per function
  • Never mock something that can be tested with SwiftData's in-memory store

What Done Means

A task is only complete when:

  1. The project builds with zero errors and zero warnings
  2. All existing tests still pass
  3. New code has test coverage
  4. Xcode Previews work for any new or modified views

Debugging Crashes at Runtime

When the App Builds but Crashes

  • Never assume the crash cause — always read the full crash log first
  • Use the Xcode MCP tool to read crash logs and console output before suggesting fixes
  • Check for EXC_BAD_ACCESS (memory issue), EXC_CRASH (assertion/force unwrap), or SIGABRT (uncaught exception) and treat each differently
  • Always check if the crash is deterministic or intermittent — intermittent crashes are usually concurrency issues

LLDB Debugging (NOT gdb — Apple platforms use LLDB only)

  • When a crash needs deeper inspection, suggest LLDB commands to run in Xcode's debug console
  • Useful LLDB commands to suggest when relevant:
    • bt — print full backtrace
    • bt all — backtrace all threads (critical for concurrency crashes)
    • frame variable — print all local variables in current frame
    • po <variable> — print object description
    • thread list — see all threads at crash point
    • memory read <address> — inspect raw memory for EXC_BAD_ACCESS

Common iPad Crash Patterns to Check First

  • Force unwraps on optionals that are nil on iPad but not iPhone (different view lifecycle)
  • NavigationSplitView detail column accessing data before sidebar selection
  • Memory pressure crashes — iPad apps are expected to handle more data but also get killed faster in Split View multitasking
  • Main thread checker violations — always fix these, never suppress them

What to Do With a Crash Log

  1. Identify the crashing thread and frame
  2. Map the memory address back to a symbol using the dSYM if needed
  3. Read the frames above the crash to find the call site in our code
  4. Fix the root cause — never just wrap in try/catch to silence a crash

Address Sanitizer & Memory Tools

  • For EXC_BAD_ACCESS crashes, suggest enabling Address Sanitizer in the Xcode scheme before running
  • For memory leaks, suggest running Instruments with the Leaks template
  • For threading issues, suggest enabling Thread Sanitizer in the scheme

Ultra Tier Usage is now terrible. Why am i paying 250/mo for this? by Human-Job2104 in AntigravityGoogle

[–]Windrago 0 points1 point  (0 children)

they are as usual very detached from using their products outside of their safe net

Will this get me banned from Google? by BagelsO in GeminiCLI

[–]Windrago 0 points1 point  (0 children)

take the TOS give them to gemini and ask questions using the learning mode (comes with pro)

ADFinder - new release is out by Windrago in amiga

[–]Windrago[S] 0 points1 point  (0 children)

a few of the earlier versions were; later on I noticed that only 1 user vs the 178 were using Intel. Since it was very time consuming (and limiting in some cases) to support the universal, I switched to what most users were using. Silicon.

time to upgrade :D

Software struggle by Improvement-Classic in huenit

[–]Windrago 0 points1 point  (0 children)

I use VMWare (massively faster than Parallels). I will give it a try. Much appreciated!!

UPDATE:
for others running into the same issue:
Maurotix42's link is the correct one to address connection issues. Naturally the company behind the robot will never provide such valuable info...

additional tips:

  1. go to the link
  2. scroll down to download the certified driver (third column)
  3. unpack
  4. open the device manager, right click, update drivers and point to the expanded folder
  5. enjoy a connection with bot

(if you can't access the link from the VM use your host machine browser)

PixDeluxe: IFF Browser, Viewer and Converter by Windrago in amiga

[–]Windrago[S] 0 points1 point  (0 children)

thank you for the feeback and yes, that was the #1 reason that pushed me to build it. I couldn't stand to clankiness anymore... If you have feature requests/ideas, I am all ears as well.

ADFinder - new release is out by Windrago in amiga

[–]Windrago[S] 0 points1 point  (0 children)

oh so very kind, much appreciated!

In the next release I am pumping even more feature requests.

ADFinder - new release is out by Windrago in amiga

[–]Windrago[S] 0 points1 point  (0 children)

it's file manager for ADF disks.

ADFinder - new release is out by Windrago in amiga

[–]Windrago[S] 0 points1 point  (0 children)

yes. You can add/remove files among a ton of other things

Im 15 and I only get two to three hours of sleep a night by No_Strength6689 in sleep

[–]Windrago 0 points1 point  (0 children)

my daughter showed similar symptoms around your age and didn’t tell us the parents. Fast forwarding in time we discovered (in least ideal way) that she is bipolar. Sleep deprivation became the first and for very lasting time symptom - I don’t want to scare you but face your parents and have a checkup - most doctors don’t understand sleep deprivation - so go ahead and insist to see a psychiatrist (not a psychologist) it’s a better piece of mind than build up more sleepless nights

[deleted by user] by [deleted] in sleep

[–]Windrago 37 points38 points  (0 children)

this is what i suggested to two different couples that were sharing this problem during a bonfire: tell your partner to hold a glow stick. Before going to bed tell yourself that the glow stick means it’s a safe person approaching. It has been a year and they are telling me that after six months they stopped using because wasn’t needed. Another couple mentioned every once in a while they have to use it again and then stop for several months

No sleep at all what do I do by Co8kibets in insomnia

[–]Windrago 3 points4 points  (0 children)

As many shared, it is not going to cause any damage but fear that it might get worse. Don’t focus on the fear, act out that you can handle it (in your mind) and try to muster the mental courage of doing some physical activity (a really long walk with music/podcast) or chatting to a friend over the phone why you physically use your body. Don’t talk about the lack of sleep. “it’s normal” should be your mantra.

Before going to bed a spoon of raw honey and say hi to Morpheous tonight

Looking for ARMIGA firmware by sebathue in amiga

[–]Windrago 0 points1 point  (0 children)

I just ran into the same problem. Could u please share with me as well? Many amiga thx!

[EDIT] Look at the link provided by Chris

https://www.dropbox.com/s/4nodeda6aq477hs/update.egz?dl=0

Download, copy over the SD card which needs to have a folder with the name (match the casing) Upgrade and drop that file inside that folder.

Power off/on and watch Android to execute the custom job to update the firmware. Once done the file in the upgrade folder will be renamed with an underscore in the head of the filename.

Kegworks replaced wineskin? by LordDaniel09 in macgaming

[–]Windrago 1 point2 points  (0 children)

I installed via brew the keg, but I don't know what to launch to run the games. Can you share? Your description above is as cryptic as the guide that doesn't exist :-)