App de barra de menus do macOS mostra em tempo real o status do tanque de urina da ISS
(github.com/Jaennaet)- pISSStream é um app que mostra em tempo real a capacidade do tanque de urina da Estação Espacial Internacional (ISS), com suporte à barra de menus do macOS, além de iOS, watchOS e visionOS
- Os dados vêm do stream público oficial de telemetria da ISS da NASA via Lightstreamer, exibindo a porcentagem mais recente de enchimento do tanque quando uma estação terrestre está recebendo o sinal
- No macOS, ele mostra 🧑🏽🚀🚽 e a porcentagem de enchimento na barra de menus; se a conexão ou o sinal de telemetria cair, mostra 🧑🏽🚀❗, o último valor recebido e o status “Connecting” ou “No Signal”
- iOS e watchOS mostram o nível do tanque em tempo real com uma interface simples, enquanto o visionOS oferece visualização 3D baseada na ImmersiveSpace API e áudio espacial
- Como é o primeiro app em Swift e para plataformas Apple do autor, ele não trata de forma ativa dados desatualizados nem erros; Pull Requests para correção de bugs são aceitos, mas não há planos de adicionar outras estatísticas da ISS
O que o pISSStream faz
- pISSStream é um app que mostra em tempo real a capacidade do tanque de urina da International Space Station
- As plataformas compatíveis são macOS, watchOS, iOS e visionOS
- Os principais recursos são:
- Monitoramento em tempo real do nível do tanque de urina da ISS
- Integração com a barra de menus do macOS
- Atualizações em tempo real nos apps para iOS e watchOS
- Visualização 3D imersiva no visionOS
- Áudio espacial baseado em deep-space soundscape na tela imersiva
- UI aprimorada e ícone de app personalizado para Vision Pro
- Uso do stream público oficial de telemetria da ISS da NASA via Lightstreamer
Instalação e requisitos de build
- No macOS, o DMG da versão mais recente pode ser baixado pelo link Download
- iOS, watchOS e visionOS precisam ser compilados a partir do código-fonte e assinados com sua própria conta de desenvolvedor por causa do modelo de segurança da Apple
- Os pré-requisitos de build são:
- Xcode 15.2 ou superior
- Apple Developer account
- Dispositivo com iOS 17.0 ou superior para o app de iOS
- Apple Vision Pro ou simulador do visionOS
- O procedimento básico de build consiste em clonar o repositório, abrir
pISSStream.xcodeprojno Xcode, selecionar a equipe de desenvolvimento em Signing & Capabilities e então compilar e executar no dispositivo de destino - Mesmo sem uma Apple Developer account, é possível executar no simulador ou em um dispositivo por até 7 dias usando um perfil de provisionamento gratuito
Desenvolvimento e distribuição no visionOS
- Para desenvolvimento no visionOS, o visionOS SDK precisa estar instalado no Xcode
- O app usa a ImmersiveSpace API para a experiência de visualização 3D e inclui áudio espacial para aumentar a imersão
- Os requisitos são:
- Mac com Apple silicon
- Xcode 15.2 ou superior
- Apple Developer Account
- Vision Pro com modo de desenvolvedor ativado
- Mac e Vision Pro conectados à mesma rede Wi‑Fi
- O procedimento de desenvolvimento sem fio consiste em permitir Developer Mode e Remote Development no Vision Pro, parear o Vision Pro em Devices and Simulators no Xcode, selecioná-lo como alvo de build e executar
- Problemas comuns incluem:
- “Device not found”: é preciso verificar a conexão Wi‑Fi
- “Unauthorized device”: é preciso parear novamente o Vision Pro
- “Build failed”: é preciso atualizar o perfil de provisionamento
- “No paired Vision Pro found”: é preciso verificar a conexão e o pareamento do Vision Pro
- “Invalid signing”: é preciso verificar a conta de desenvolvedor e o perfil de provisionamento
Como usar por plataforma
- No macOS, quando a conexão com o Lightstreamer e a recepção do sinal de telemetria da ISS estão normais, o item da barra de menus mostra 🧑🏽🚀🚽 e a porcentagem de enchimento
- Se a conexão ou o sinal de telemetria da ISS cair, o item da barra de menus mostra 🧑🏽🚀❗ e o último valor recebido, e o menu exibe “Connecting” ou “No Signal”
- No iOS, ao abrir o app, é possível ver o nível atual do tanque em uma interface simples
- No visionOS, é possível ver o tanque de resíduos da ISS em 3D imersivo e visualizar o nível de enchimento em tempo real
- No watchOS, é possível acompanhar em tempo real, no pulso, o nível de enchimento do tanque de resíduos da ISS
Motivação e limitações
- A motivação para a criação foi a ideia de que é “ridículo, mas ao mesmo tempo incrível” poder criar em uma tarde um app de piada que lê dados reais de telemetria em tempo real vindos do banheiro da estação espacial
- Também foi uma boa desculpa para aprender Swift, mas a motivação principal foi o próprio absurdo do app
- Problemas conhecidos incluem:
- Por ser o primeiro app em Swift e para plataformas Apple do autor, não é o ápice das boas práticas de programação
- Pode quebrar de formas inesperadas por motivos pequenos
- Não reage ativamente a dados desatualizados
- Não dá muita atenção ao tratamento de erros
- Pull Requests para correção de bugs são bem-vindos
- O stream de dados foi conhecido por meio do ISS Mimic, e embora o ISS Mimic tenha estatísticas muito mais numerosas e interessantes do que o nível do tanque de urina, elas não serão adicionadas ao pISSStream
1 comentários
Opiniões do Hacker News
Descobri o stream de dados em https://iss-mimic.github.io/Mimic/, e há estatísticas muito mais numerosas e interessantes do que o nível de enchimento do tanque de urina
A frase “não vou adicionar nada disso” é simplesmente uma forma perfeita de comunicar os não objetivos do projeto
Vale aprender como boa prática de comunicação em open source
Viraria um filme em que os astronautas controlam a variação do tanque para se comunicar em código Morse, e alguém com TDAH que instalou esse app de barra de menus percebe a situação e salva todo mundo
Agora o único problema que resta é como mandar o corpo até lá
Agora dá muita vontade de gastar tempo demais criando um SVG da ISS e até animando com esses dados
Dá para fisgar os boomers com Real World Assets(tm)
Sigo no Bluesky um bot que publica posts do HN com mais de 50 pontos, e fiquei surpreso quando de repente apareceu um link familiar do GitHub
Era algo que eu mesmo tinha postado no Show HN uns 5 dias antes (https://news.ycombinator.com/item?id=42464454), então estranhei por que tinha aparecido de repente; na verdade, não era o meu post
Fico sinceramente feliz que, entre os projetos open source que fiz nos últimos 15 anos ou algo assim, este tenha virado o mais popular
Para a pergunta “mas por que você fez isso?”, a resposta honesta é “porque achei engraçado”; eu estava procurando algo simples para meu primeiro projeto em Swift e, quando vi o iss-mimic, senti na hora que precisava fazer isso
O script para os dados deve estar funcionando em algum lugar, mas infelizmente nunca cheguei a fazer um site com ranking
Dá para mostrar também o nível da água e o momento em que ocorre a transição entre os dois tanques?
Eu fui líder técnico e controlador de voo da equipe da NASA que abriu esses dados de telemetria como parte do ISSLive
Essa API foi usada pelo ISS Mimic, e na época nós divulgamos o programa da estação espacial ao público por alguns anos: https://youtu.be/xAhw_8B25N0?si=OZXH9sZ0bY_iX40V
É bem engraçado ver o PissStream surgir 12 anos depois
Fico feliz que o servidor de livestream esteja sendo bem usado e, na verdade, há muitos outros dados bons de telemetria
Gosto do ISSMimic
Falando sério, poucos usos da telemetria em tempo real da ISS devem ser tão profundamente triviais quanto este, mas é surpreendente que uma besteira dessas não só seja possível como também seja muito fácil
Respeito à NASA e a todos os envolvidos que tornaram isso possível desde o início
Ao ver o dashboard do ISS Mimic, também percebi de novo que há uma quantidade enorme de dados de telemetria interessantes
Se for o caso, quando esse momento chegar, vou querer ficar diante do terminal esperando o último adeus da estação
Tentei portar isso para a web: https://gistpreview.github.io/?76f03f49be58344bfa64c9d5d9f0ec29
O código-fonte está aqui: https://gist.github.com/simonw/76f03f49be58344bfa64c9d5d9f0ec29
Fiz colando o repositório GitHub inteiro em Swift no Gemini 2.0 e pedindo para portar para uma página web: https://gist.github.com/simonw/b4aec4e879e50ac74f6f9cc6e1cdc0a1
Dei o mesmo prompt ao Aider e acrescentei “use a mesma API do código Swift”, e funcionou de primeira; mas, com o Claude, quando eu dizia apenas “página web”, ele não conseguiu de primeira e precisei de mais alguns prompts
O ChatGPT-4o alucinou a URL para carregar o lightstream.js, e no fim precisei depurar manualmente
Mesmo em uma tarefa pequena assim, os resultados mudam muito conforme a variação do prompt, então fica fácil entender por que, no HN, sempre há gente dividida entre achar que assistentes de codificação com LLM parecem a segunda vinda e achar que é tudo papo furado
Um bom exemplo de processamento de streams
Sou membro da equipe do ISS Mimic, e gostei. Ótimo trabalho
Se a preocupação for a privacidade dos astronautas, o valor do tanque de urina não reflete diretamente a adição de urina pela tripulação
Também tenho curiosidade sobre o que esse valor realmente reflete
Parece que ainda não mergulhei até as profundezas da alma do UWMS
Os nomes das variáveis são precisos
static let pissYellowLight = Color(red: 0.95, green: 0.85, blue: 0.2)static let pissYellowDark = Color(red: 0.7, green: 0.6, blue: 0.1)Depois que desisti de customizar o rótulo, naturalmente esqueci de apagar o enum não usado
Sou a pessoa que criou apolloinrealtime.org e agora trabalho no programa da ISS
Meus respeitos
Eu não sabia que isso era informação pública
Também daria para enviar uma notificação toda vez que a tripulação urinar
Talvez seja possível se também houver outros dados de análise química
A NASA poderia vender esses dados de análise para colecionadores de dados e resolver seus problemas de orçamento, além de exibir anúncios em todas as telas da ISS
Na verdade, é surpreendente que ainda não exista uma startup da YC lançando um vaso sanitário inteligente desses