Usando um Rádio de Aeromodelo como Joystick no MSFS 2024 pelo GeForce NOW
Rádio de aeromodelo é, sem exagero, um dos melhores controles de voo caseiros que existem: o acelerador não tem mola e fica na posição em que você o deixa, enquanto os manches voltam ao centro sozinhos. É a ergonomia de uma cabine de verdade. O desafio é usar isso no Microsoft Flight Simulator 2024 rodando pelo GeForce NOW, e é aí que a maioria das pessoas trava. Testado com: um Flysky ProArt PA-01 (rodando EdgeTX) em um Mac com chip M4 (Apple Silicon), MSFS 2024 via GeForce NOW. Mas o método vale para qualquer rádio com EdgeTX ou OpenTX, e também para Windows nativo. ...
Gerenciando Versões do Python no macOS com pyenv
O macOS já vem com Python, mas usar o Python do sistema pra seus projetos é pedir problema. O pyenv resolve isso de forma elegante: instale quantas versões quiser e escolha qual usar por projeto, sem conflito. Instalação brew install pyenv Depois, adicione ao seu shell (~/.zshrc ou ~/.bashrc): export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" Recarregue o shell: source ~/.zshrc Instalando versões do Python Liste as versões disponíveis: pyenv install --list Instale a que quiser: ...
Como Ativar e Desativar o Metal HUD no macOS
O Metal HUD é um overlay do macOS que exibe métricas de GPU em tempo real: FPS, uso de memória de vídeo, tempo de frame. Aparece diretamente sobre qualquer app Metal. Útil pra monitorar performance em jogos e aplicações gráficas. Ativar /bin/launchctl setenv MTL_HUD_ENABLED 1 Abra (ou reabra) o app depois de rodar o comando. O HUD aparece no canto da tela. Desativar /bin/launchctl unsetenv MTL_HUD_ENABLED Feche e reabra o app para o HUD sumir. ...
Como Travar a Orientação de Tela no Flutter
Muita gente que quer travar a orientação de um app Flutter vai direto no AndroidManifest.xml e adiciona android:screenOrientation="portrait". Funciona, mas existe uma forma melhor. A abordagem Dart: SystemChrome Adicione o import e configure as orientações logo no início da função main(), antes de chamar runApp: import 'package:flutter/services.dart'; // ← import necessário void main() { WidgetsFlutterBinding.ensureInitialized(); // precisa disso antes de mexer no sistema SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); runApp(const MyApp()); } O WidgetsFlutterBinding.ensureInitialized() é necessário para garantir que o Flutter esteja pronto antes de qualquer chamada de sistema. Sem ele, o setPreferredOrientations pode não funcionar corretamente. ...
Gerando Áudio a Partir de Texto com IA Local Usando Kokoro-82M
Imagine poder transformar qualquer texto em áudio com uma voz natural e realista, tudo rodando localmente na sua máquina, sem depender de serviços na nuvem ou APIs pagas. Isso é exatamente o que o Kokoro-82M oferece. O Kokoro é um modelo open-weight de Text-to-Speech (TTS) com apenas 82 milhões de parâmetros. Apesar de ser leve, ele entrega uma qualidade de áudio comparável a modelos muito maiores, sendo significativamente mais rápido e econômico. Com licença Apache, ele pode ser usado tanto em projetos pessoais quanto em ambientes de produção. ...
ESP32: Enviando Dados via MQTT para a Nuvem
A Internet das Coisas (IoT) revolucionou a forma como dispositivos se comunicam, e o protocolo MQTT (Message Queuing Telemetry Transport) é uma das formas mais populares e eficientes de fazer essa comunicação acontecer. Neste tutorial, vamos conectar um ESP32 à internet via WiFi e fazer ele enviar dados periodicamente para um broker MQTT público, permitindo que você visualize essas informações em tempo real tanto no navegador quanto em um aplicativo Android. ...
Como Usar o SuperDrive da Apple no Steam Deck
O Steam Deck é uma máquina versátil que vai muito além dos jogos digitais. Se você possui um SuperDrive USB da Apple e quer utilizá-lo no seu Steam Deck para ler DVDs, este guia mostrará como configurar tudo de forma rápida e simples. Pré-requisitos Antes de começar, você precisará de: Um Steam Deck com dock ou hub USB: O SuperDrive possui conexão USB-A (aquela USB tradicional, não USB-C) e usa o padrão USB 2.0, então você precisará de um dock ou hub com portas USB. O drive funciona bem quando conectado diretamente a portas USB do dock, sejam elas USB 2.0 ou USB 3.0 (as azuis). ...
Riverpod: Gerenciamento de Estado Moderno e Simples no Flutter
Quando desenvolvemos aplicativos Flutter, frequentemente precisamos lidar com informações que mudam ao longo do tempo: o número exibido em um contador, se o usuário está logado ou não, os itens em um carrinho de compras, o tema atual do app. Essas informações que podem mudar e precisam ser compartilhadas entre diferentes partes do aplicativo são o que chamamos de estado. Gerenciar estado significa controlar essas informações de forma organizada: onde elas ficam armazenadas, como são modificadas e como os widgets são notificados quando elas mudam para atualizar a interface. ...
Persistência de Dados no Flutter com SharedPreferences
Quando desenvolvemos aplicativos, uma necessidade comum é preservar dados simples entre sessões do usuário. O SharedPreferences é a solução ideal para armazenar pequenas quantidades de dados no formato chave-valor, como preferências do usuário, configurações da aplicação ou estados simples que precisam persistir. Neste tutorial, vamos implementar persistência de dados no aplicativo contador padrão do Flutter, fazendo com que o valor do contador seja mantido mesmo após fechar e reabrir o aplicativo. ...
Autenticação com Flutter e Firebase: Guia de Login com Email e Senha
A autenticação é a porta de entrada para a maioria dos aplicativos modernos. Proteger rotas, personalizar a experiência do usuário e garantir a segurança dos dados são tarefas fundamentais. Felizmente, o Firebase Authentication simplifica drasticamente esse processo. Neste guia, vamos construir um aplicativo Flutter simples com uma tela de login (usando email e senha) e uma tela inicial que só pode ser acessada após a autenticação. O foco é criar uma base sólida e fácil de entender para que você possa implementar em seus próprios projetos. ...