SShortSingh.
Back to feed

Macless adds Android keystore setup, certificate expiry alerts to free CI template

0
·1 views

Developer tool Macless has added three new features to its GitHub Actions-based mobile CI template, eliminating the need for a Mac or paid CI subscription to ship iOS and Android apps. A updated shell script now automates Android keystore generation, base64 encoding, and GitHub Secrets configuration, with optional direct upload via the GitHub CLI. The companion Signing Doctor diagnostic tool has been expanded to validate Android keystores alongside existing iOS certificate checks. A new scheduled GitHub Actions workflow, check-expiry.yml, runs weekly to warn developers before signing certificates expire, preventing surprise build failures during releases. Macless remains a one-time purchase at $99 for iOS and Android or $39 for Android-only, with no recurring subscription fees.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

JPG to PNG Conversion: How Engineers Choose the Right Method for Any Batch

A software engineer has outlined a practical decision framework for converting JPEG images to PNG, drawing on experience across three real-world scenarios ranging from a 40,000-image CMS migration to a five-file Slack request. The guide highlights that switching formats is not always necessary, and teams should only convert when a downstream system requires PNG, transparency is needed, or a pipeline enforces a single container type. A key technical consideration is file size: a 200 KB JPEG can balloon to 1.4 MB as a PNG, impacting bandwidth costs and CDN budgets. For small batches under roughly 20 files, manual export via an image editor is recommended, while larger local batches are better handled with command-line tools like ImageMagick or Python's Pillow library. The core advice is that the right conversion method depends on batch size, privacy requirements, deadline pressure, and what the end consumer actually expects.

0
ProgrammingDEV Community ·

Google Gemini Adds Interactive 3D Visualizations in Chat, Excludes Workspace Users

Google has rolled out interactive 3D visualizations and charts within the Gemini app, enabling users to explore rotating models, fractals, and simulations directly inside a chat interface. Users can trigger the feature with prompts like 'show me' or 'help me visualize,' with some outputs including adjustable sliders to manipulate variables. The capability is designed to support scientific, technical, and educational use cases where visual exploration is more effective than text-based responses. The rollout is available globally but is restricted to the Pro model at gemini.google.com, excluding Education and Workspace account holders for now. Organizations considering integrating the feature into managed environments should note that access is not yet extended to enterprise or education accounts.

0
ProgrammingDEV Community ·

How a typo and a permission quirk sent an AI agent chasing phantom data for days

A small automated publishing operation running six scheduled AI agent sessions daily discovered that two days of performance metrics — showing four articles published and zero replies — were entirely wrong due to an unverified account handle in its queries. The platform's API responded with valid, empty arrays each time because the queried username simply did not exist, masking the actual record of five published articles and two reader comments. Separately, the team uncovered a selective URL permission gate in their tooling: the agent could fetch any URL that was a prefix of one returned by a tool, but not URLs derived by extending those paths, the opposite of how filesystem or OAuth scopes typically work. Both failures produced confident, well-formed outputs with no error signals, making them harder to detect than outright crashes. The incidents led the team to add a provenance column to their reachability checks, distinguishing between tool-supplied URLs and manually typed ones.

0
ProgrammingDEV Community ·

How JavaScript Code Actually Executes: From V8 Engine to CPU Instructions

When JavaScript runs in Node.js, it passes through multiple layers before the CPU executes it, starting with Google's V8 engine, which converts code into bytecode and then uses JIT compilation to produce optimized machine instructions. The CPU itself follows a basic fetch-decode-execute cycle, using components like registers, the ALU, and a program counter to process instructions billions of times per second. A key performance insight is that data storage exists in a hierarchy — from CPU registers and caches down to RAM and disk — where proximity to the CPU directly affects access speed. Cache hits and misses, driven by temporal and spatial locality, explain why two algorithms with identical Big-O complexity can perform very differently in practice. Understanding concepts like latency and bandwidth is essential for reasoning about performance across memory, storage, and network systems.