Nesse guia, você terá uma introdução ao FFMPEG, com muitos exemplos práticos, assim poderá ver como essa poderosa ferramenta poderá lhe ajudar no dia a dia com seus vídeos.
O FFMPEG é um conjunto de programas e bibliotecas de software livre e código aberto para lidar com arquivos de imagem, vídeos e áudios dos mais variados tipos, executando operações de reprodução, conversão, cortes e até mesmo aplicando efeitos. É possível realizar todo esse trabalho diretamente pela linha de comando.
Em alguns sistemas operacionais o programa FFMPEG já vem instalado, caso no seu não esteja, verifique na documentação oficial como realizar a instalação no seu SO 
Link da documentação oficial: https://ffmpeg.org/download.html
Um pouco de teoria antes de entrar na prática
Ao entrar nesse mundo do FFMPEG, você irá se deparar com alguns termos e agora veremos dois (02) deles: Container e Codec.
Basicamente, Container é o formato do arquivo (.mp4, .mp3, .avi, .jpg, etc …) é a caixa onde vai guardar tudo sobre o arquivo (vídeo, imagem, som, etc …). Já o Codec é o programa que vai codificar/decodificar o arquivo, nisso temos vários tipos de Codec para cada tipo de arquivo:
Vídeo: H.264, H.265, MPEG-4, etc …
Áudio: AAC, MP3, Opus, etc …
Como esse é um guia introdutório não vamos entrar em muitos detalhes sobre os Container e Codec mas, se você desejar conhecer mais detalhes sobre isso, comente abaixo que assim pode criar textos bem aprofundados sobre cada

ffmpeg – É a chamada do programa
opcoes_globais – São as opções globais que vão ser aplicadas em todo o produto (Sobrescrever sem perguntar, verbosidade, etc …)
opcoes_arquivo_entrada – Opções do arquivo de entrada (Tempo de início do arquivo, tempo de término, etc …)
-i url_entrada – Caminho do arquivo de entrada
opcoes_arquivo_saida – Opções do arquivo de saída (Codec de vídeo, codec de áudio, etc …)
url_saida – Caminho do arquivo de saída
Para visualizar informações do arquivo utilize o comando abaixo, substituindo o “video01.mp4” pelo caminho do seu arquivo de vídeo, áudio ou imagem:
ffmpeg -i video01.mp4
Executando esse comando você verá uma saída parecida com a minha abaixo mostrando os detalhes do arquivo.
ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch
=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --en
able-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enab
le-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enab
le-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libv
px --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --ena
ble-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray -
-enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq -
-enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video01.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso6iso2avc1mp41
title : Array Map in 100 Seconds
artist : Fireship
encoder : Lavf60.3.100
Duration: 00:01:40.16, start: 0.000000, bitrate: 444 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 313 kb/s, 29.97 fps, 29.97 tb
r, 30k tbn (default)
Metadata:
handler_name : ISO Media file produced by Google Inc.
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc.
vendor_id : [0][0][0][0]
At least one output file must be specified
Vamos dizer que você tem um arquivo de vídeo .mp4 porém, tem que enviar para algum lugar que somente aceita vídeos no formato .avi, utilize o comando abaixo trocando o “video01.mp4” pelo caminho do seu arquivo de origem e o “video01.avi” para o destino do arquivo convertido.
ffmpeg -i video01.mp4 video01.avi
Ao executar esse comando o FFMPEG irá iniciar o processo de conversão do arquivo, tentando manter a mesma qualidade do arquivo de saída do arquivo de entrada. Dependendo do tamanho do seu arquivo e das especificações do seu hardware esse processo pode ser bem demorado. No resultado do comando você poderá acompanhar o progresso de conversão e finalização.

Outra tarefa muito comum para fazer com o FFMPEG é cortar um trecho de vídeo, vamos ver abaixo como cortar os primeiros 10 segundos do vídeo.
ffmpeg -i video01.mp4 -ss 00:00:00 -to 00:00:10 -c copy video_cortado.mp4
-i video01.mp4 – É o caminho do arquivo de vídeo
-ss 00:00:00 – Tempo de início do corte do vídeo no seguinte formato HH:MM:SS
-to 00:00:10 – Tempo final do corte do vídeo no seguinte formato HH:MM:SS, não é o tamanho do vídeo, e sim é a localização do vídeo do corte
-c copy – Informa ao FFMPEG para manter o mesmo codec do arquivo original
video_cortado.mp4 – Caminho do arquivo final convertido
Ao executar esse comando, será exibido os dados do arquivo e irá iniciar o processo de corte do arquivo, dependendo do tamanho do corte e do seu hardware esse processo pode demorar alguns minutos ou horas.
Vamos para mais um caso muito corriqueiro no trabalho com vídeos, extração de áudio. Por exemplo, você tem um vídeo de uma música, palestra, etc … E precisa apenas do áudio, sem o vídeo, você pode executar o comando abaixo para fazer a extração apenas do áudio.
ffmpeg -i video01.mp4 -vn -acodec copy audio01.aac
-i video01.mp4 – Caminho do arquivo de vídeo que terá o áudio extraído
-vn – Informa que FFMPEG que não é para processar o vídeo no momento do processamento
-acodec copy – Informa ao FFMPEG que deve ser utilizado o codec original de áudio utilizado no vídeo
audio01.aac – Caminho do arquivo de resultado em formato AAC
Assim como nos outros comandos, dependendo do tamanho do seu arquivo e do seu hardware esse comando pode demorar segundos, minutos ou horas.
Existem casos que será necessário fazer um redimensionamento de vídeos, tanto aumentar como reduzir a sua resolução. Vamos ver um exemplo abaixo reduzindo a resolução do vídeo para 240p
ffmpeg -i video01.mp4 -vf scale=320x240 video01_240p.mp4
-i video01.mp4 – Caminho do arquivo de vídeo
-vf – (Video Filter) aplica o filtro no stream do vídeo
scale=320×240 – Largura e altura do vídeo, lembre-se que dependendo do tamanho que for informado pode distorcer o vídeo de resultado
video01_240p.mp4 – Caminho do arquivo de resultado
Para transformar o frame de um vídeo em uma imagem, por exemplo para um thumbnail de um vídeo, você pode executar o comando da seguinte forma:
ffmpeg -i video01.mp4 -ss 00:00:10 -vframes 1 thumbnail.jpg
-i video01.mp4 – Caminho do arquivo de vídeo
-ss 00:00:10 – Tempo do vídeo para extração do frame
-vframes 1 – Informa para o FFMPEG que tem que extrair apenas 1 frame do vídeo
thumbnail.jpg – Caminho do arquivo de resultado
Esse processo normalmente é bem rápido, porém dependendo do seu arquivo e quantos frames você quiser extrair pode demorar segundos, minutos ou horas para finalizar o processo.
Então pessoal esse é o guia básico, BEM BÁSICO MESMO sobre o FFMPEG, com você viu é possível realizar diversas atividades com vídeo, mas também é possível fazer trabalhos com áudios e imagens. Ainda tem muita coisa mesmo que pode ser feita com o FFMPEG.
Caso haja interesse, comente abaixo que posso criar documentos mais aprofundados sobre uma área do mundo do FFMPEG.
Até a próxima 
Esse é o primeiro de uma série de artigos sobre HomeLab, onde vou estar abordando os diversos sistemas e configurações para criar o HomeLab do seu jeito e hoje estaremos falando sobre o Jellyfin
E se você estiver se perguntando, o que é um HomeLab? Eu vou te explicar 
Vamos fazer uma reflexão, você tem uma assinatura de músicas, uma para audiolivros, uma para filmes (até mais de uma), uma para armazenamento de arquivos, uma para os seus jogos … Você já parou para pensar que você já não tem mais o controle dos seus dados? Se eu te perguntar onde está o servidor que armazena os seus dados, você saberia me informar? Se você parar de pagar hoje uma dessas assinaturas, você consegue pegar os dados que estão lá facilmente?
Bem essas e outras perguntas incomodam muitos usuários, com isso procuram alternativas para ter mais controle dos seus serviços e não ficar dependendo de alguma empresa que tem o serviço em outro pais, que se mudar suas políticas você perde o serviço. Com isso, esses usuários que tem computadores parados ou mesmo celulares (Sim é possível transformar celular em servidor), criam o seu serviço de serviço particular.
Hoje veremos como você pode ter o seu servidor de mídia pessoal para gerenciar seus arquivos de fotos, vídeos, filmes, músicas, etc … Eu lhes apresento o Jellyfin 
Jellyfin é um sistema de mídia de Software livre (Comente caso queira um artigo sobre licenciamento de software) , que coloca você no controle do gerenciamento e exibição da sua mídia. Com ele é possível ter uma exibição mais organizada dos seus filmes, separando por categorias, com exibição da Thumbnail. Também é possível organizar suas séries, músicas, TV ao vivo e DVR, livros, fotos e ainda é possível sincronizar a exibição de mídia. Tudo isso no seu servidor particular, com seu controle total.
Nesse tutorial estaremos realizando a instalação no Debian 12, mas caso o seu sistema operacional seja diferente, consulte a documentação oficial: https://jellyfin.org/docs/general/installation/
A equipe do Jellyfin já criou um script para facilitar a instalação no Debian 12, mas antes de realizar a instalação execute o comando abaixo e realize uma pequena análise no script
curl -s https://repo.jellyfin.org/install-debuntu.sh | less
Obs.: Nunca roda qualquer script no seu computador, sem entender minimamente o que ele faz
Execute o script abaixo para realizar a instalação
curl -s https://repo.jellyfin.org/install-debuntu.sh | sudo bash
No início será feita a identificação do sistema operacional, se estiver tudo certo aperte a tecla “Enter”

Após execução completa do script, será exibido os dados para acessar o Jellyfin pelo navegador, no meu caso será acessível pelo endereço: http://192.168.122.251:8096

Será exibida a tela abaixo para iniciar as configurações do Jellyfin

Na tela inicial, selecione o idioma desejado (Tem português do Brasil :D) e clique no botão “Próximo”

Nessa parte, você irá configurar os dados de usuário para acessar o Jellyfin, mas será possível criar outros usuários no final da configuração 

Nessa etapa, será solicitado para configura as mídias (Fotos, vídeos, áudios, etc …), mas vamos deixar para fazer isso após instalação dos plugins 
Clique no botão “Próximo”

Selecione o idioma preferido para os metadados das informações da sua biblioteca, com isso será mais fácil para o Jellyfin realizar o preenchimento automático das informações.

Mantenha a opção “Permitir conexões remotas a este servidor” para permitir conexão remota de outros IP da rede local.
Mantenha a opção “Ativar mapeamento automático de portas”, pois nem sempre essa opção funciona corretamente, será melhor fazer essa configuração no firewall do computador ou roteador.
E clique no botão “Próximo”

Clique no botão “Terminar” para finalizar as configurações básicas.

Pronto! O seu Jellyfin já está funcional para acessar e usar 

Vamos iniciar o processo para instalação de plugins através do repositório. Acesse com o seu usuário e senha criado e clique no botão na esquerda

Clique na opção “Painel” no menu “Administração”

Clique na opção “Catalogo”

Você pode ver nessa diversos plugins que estão disponíveis para instalação, depois explore um pouco essa sessão para verificar quais plugins podem ser interessantes para o seu Homelab 
Vamos realizar a instalação de um plugin chamado “Skin Manager” que irá alterar completamente o layout do nosso Jellyfin, para isso iremos adicionar o um arquivo json criado “Danieladov” com diversos plugins.
Clique na engrenagem ao lado do título “Catálogo”

Nessa tela será exibido o manifest.json do repositório padrão, clique no botão “+” ao lado de “Repositórios”

Preencha os campos abaixo com as seguintes informações:
Nome do repositório: danieladov
URL do repositório: https://raw.githubusercontent.com/danieladov/JellyfinPluginManifest/master/manifest.json
Clique no botão “Salvar”

Clique no botão “OK” para confirmar que confia no repositório

Agora será necessário reiniciar o serviço do Jellyfin, você pode utilizar o comando abaixo no terminal do seu servidor:
sudo systemctl restart jellyfin.service
Acesse novamente o Jellyfin e acesse a tela “Catalogo” e procure por “Skin Manager”

Clique no botão “Instalar”

Clique no botão “Instalar”, para confirmar a instalação do plugin. Essa mensagem sempre será exibida quando for utilizado um plugin que não é o oficial.

Rode o comando abaixo no servidor para reiniciar o serviço do Jellyfin
sudo systemctl restart jellyfin.service
Acesse a tela “Meus plugins” e clique no botão “Skin Manager”

Selecione o skin desejado e clique no botão “Set skin” e aproveite o novo visual 

Agora que já fizemos a instalação, configuração básica e instalação do plugin está na hora de adicionar as nossas mídias (Filmes, fotos, vídeos, etc …) para poder aproveitar o Jellyfin 
Recomendo que seja adicionada uma pasta na raiz “/” separado com os tipos de mídia (Filmes, fotos, vídeos, etc …) ou então um disco externo. Nos meus testes verifiquei que o Jellyfin não navega além de 2 níveis de diretórios, então tome cuidado com a organização dos arquivos.
No meu caso coloquei uma pasta chamada “JELLYFIN” com as subpastas organizadas pelo tipo de arquivo.

Acesse o “Painel” no administração e clique na opção “Biblioteca” dentro do menu “Biblioteca”

Clique no botão “Adicionar Biblioteca de Midia”

Selecione o tipo de conteúdo (Filmes, Séries, Músicas, etc …) dependendo do tipo de conteúdo escolhido vão ser exibidas diversas opções.
Vou escolher “Filmes”

Vou clicar no “+” ao lado de “Pastas” para indicar o local onde estão os filmes

Digite o caminho da pasta ou navegue até o mesmo na opção abaixo e clique no botão “OK”

Normalmente só marco a opção “Preferir títulos incorporados ao invés de nomes de arquivos” e clico no botão “OK”, mas sinta-se a vontade para explorar as outras opções 

Então, será iniciado o processo de carregamento das informações da biblioteca 

Realizando esse procedimento os filmes das pasta serão reconhecidos automaticamente junto com seu nome capa e descrição 

Descrição preenchida automaticamente 

Quero ressaltar que existem diversos clientes para o Jellyfin, então além dos navegadores, tem aplicativo para Android, SmartTV e outros tantos, acesse a lista completa abaixo:
https://jellyfin.org/downloads/
Deixe suas dúvidas abaixo que ficarei muito feliz em responder 
Quem sabe podemos fazer uma parte 2 para detalhar mais configurações do Jellyfin
Até a próxima
]]>As sessões são um conjunto de janelas. Uma analogia pertinente é considerar que uma sessão seja como um espaço de trabalho em ambiente desktop, e cada janela como se fosse um programa dentro de um espaço. A multiplexação de terminal funciona por este mesmo conceito, mas dentro de um terminal. Além disso, as sessões de um multiplexador podem ser desconectadas e recuperadas posteriormente.
Os multiplexadores são populares em servidores, acessados remotamente, onde pode ser necessário preservar sessões mesmo que o administrador se desconecte dele. Entretanto, também podem ser úteis para uso doméstico:
Neste post, vou apresentar o multiplexador GNU Screen. Eu o utilizo para executar processos temporários, mas long-running, como servidores de desenvolvimento (Django, node, Jupyter notebook) e poder liberar o terminal, sem criar serviços de sistema. E também para usar múltiplas janelas no Alacritty.
O Screen pode ser instalado no Debian pelo apt: sudo apt install screen e executado pelo comando screen. Será apresentada uma tela de boas-vindas, e logo após estará pronto para uso.
Por padrão, não há nenhuma indicação visual de que o Screen esteja executando. Não há uma linha de status mostrando as janelas, por exemplo. Mas isso pode ser configurado no arquivo ~/.screenrc com as linhas:
hardstatus on
hardstatus alwayslastline
hardstatus string "%{= kG}%-w%{= KW}%n %t%{-}%+w"
O Screen possui uma tecla prefixo para comandos, que é C-a (Ctrl+a). Para ver a lista completa de combinação de teclas, pressione C-a ?. As combinações que eu considero mais úteis são:.
| Combinação de teclas | Descrição |
|---|---|
| C-a c | Nova janela |
| C-a [num] | Alternar para a janela número [num] |
| C-a " | Selecionar janelas a partir de uma lista |
| C-a | | Divisão vertical |
| C-a S | Divisão horizontal |
| C-a d | Desvincular sessão do terminal |
| C-a k | Fechar a janela atual |
| C-a \ | Encerrar a sessão inteira |
| C-a A | Alterar o título da janela |
| C-a n | Alternar para a janela seguinte |
| C-a p | Alternar para a janela anterior |
| C-a TAB | Alternar entre regiões das divisões |
| C-a X | Fechar a região atual |
| C-a ESC | Modo ‘copy’ |
| C-a ? | Ajuda |
Ao invés de combinações de teclas, os comandos também podem ser executados pelo nome através do colon (modo de comando), ativado pela combinação C-a :. Neste modo, é possível digitar o nome do comando, como title para alterar o título da janela.
O modo ‘copy’ habilita a movimentação na janela do terminal usando as teclas vim. Até onde sei, não há uma ajuda interna com as teclas disponíveis no copy-mode, mas o manual tem a lista completa.
Após desvincular a sessão do terminal (C-a d), é possível utilizar a linha de comando do Screen das seguintes formas:
screen -ls: Mostra as sessões criadas
screen -S [nome]: Cria uma nova sessão chamada [nome]
screen -r [nome]: Vincula novamente uma sessão desvinculada, [nome] pode ser apenas os caracteres iniciais
Outras opções mais avançadas podem ser vistas no manual: man screen.
O Screen pode ser configurado através do arquivo .screenrc. Um exemplo com as configurações padrão pode ser encontrado em /usr/share/doc/screen/examples/screenrc. O mais importante seria ter uma linha hardstatus informativa, como visto na seção de instalação.
Multiplexadores de terminal são úteis para aumentar a eficiência e controle ao trabalhar na linha de comando. Permitem organizar sessões e janelas por contexto, desvincular as sessões do terminal e dividir a tela e alternar entre múltiplos painéis.
How to use GNU SCREEN (video)
]]>
Boa noite a todos.
Estarei mostrando um arquivo docker-compose.yml.
Criar 2 container sendo um wordpress e outro mysql e com volumes para ambos.
Os containers são uma tecnologia de virtualização que permite empacotar e executar aplicativos e suas dependências de forma isolada. Ao contrário das máquinas virtuais, que virtualizam o hardware e incluem um sistema operacional completo, os containers compartilham o núcleo do sistema operacional do host.
Em resumo, os containers oferecem uma alternativa mais eficiente em termos de recursos e mais ágil em comparação com as máquinas virtuais, tornando-se uma escolha popular para o desenvolvimento, implantação e gerenciamento de aplicativos em ambientes modernos de computação.
Na sua maquina você precisará ter instalado o docker e docker-compose. Faça uma pesquisa sobre a instalação do mesmo para o seu sistema operacional.
Crier um diretorio | pasta, entre na pasta e crier um arquivo chamado: docker-compose.yml, conforme abaixo:
#---------------------------------- HEADER --------------------------------------|
# AUTOR : Edivan Carvalho
# HOMEPAGE :
# DATA DE CRIAÇÃO : 21/11/2023
# PROGRAMA : Script para docker-compose.yml.
# VERSÃO : 1.0.0
# LICENÇA : MIT, DEBXP
# PEQUENA DESCRIÇÃO : Instalação de Feramentas de Desenvolvimento do WordPress.
#
# CHANGELOG : Este documento relatar a instalação dos do ambiente de desenvolvimento
# com WordPress e mysql juntos.
#
#---------------------------------------------------------------------------------|
version: '3.7'
services:
database:
image: mysql:5.7
container_name: mysql-teste2
restart: always
environment:
MYSQL_DATABASE: 'db_word'
MYSQL_USER: 'suporte'
MYSQL_PASSWORD: 'suporte'
MYSQL_ROOT_PASSWORD: 'root'
ports:
- '3306:3306'
expose:
- '3306'
volumes:
- './volumes/mysql:/var/lib/mysql'
wordpress:
image: wordpress:latest
container_name: wordpress-teste # Adicionado o nome do container aqui
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: mysql-teste2:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 'root'
WORDPRESS_DB_NAME: db_word
volumes:
- ./wordpress:/var/www/html
Para editar o código eu gosto de usar o VSCode, escolhar uma IDE de sua escolhar. Apos abrar um terminal e rode o seguinte comando: docker-compose up, Assim o docker automaticamente ira criar 2 container conforme a imagem:

Assim seus container já estão prontos para uso, com o seu navegador de sua esolhar http://localhost:8080/ ai só seguir com os passos padrão da instalação.
Para acessar a area de admin usar a url http://localhost:8080/wp-admin ai efetuar login com o usuario e senha que foi criado no passo anterior.
Para acessar o banco de dados voce pose usar um Cliente de Banco de dados tipo: dbeaver, workbench, ai o céu o limite para você.
Bom espero que esse documento seja util para você.
]]>
O termo XMPP é a abreviação de eXtensible Messaging and Presence Protocol (Protocolo Extensível de Mensagens e Presença). Entre outras coisas, ele permite, principalmente, a troca de mensagens entre usuários (Mensageria) e informações de Presença, como status de online, offline, afastado; uma nota de presença; e informação do humor atual.
Ele é um protocolo padronizado. Seu núcleo foi padronizado através de RFCs, definidas pela Internet Engineering Task Force (IETF), um grupo internacional que promove padrões para a internet. Existem também as XEPs que o padronizam, definidas pela XMPP Standards Foundation (XSF), e nós veremos o que é uma XEP mais adiante.
Na maior parte das plataformas mais conhecidas (WhatsApp, Facebook Messenger, Discord, Telegram…), a mensagem passa por um intermediador central. Isso é conhecido como modelo centralizado e pode ser entendido no seguinte diagrama:

Já o XMPP opera de maneira parecida com e-mail:

Por ser um protocolo aberto e padronizado, é possível implementar vários clientes para a comunicação com servidores, e também vários softwares-servidor. O leitor pode estar pouco familiarizado com isso, mas vamos explicar um pouco mais devagar.
Nos diagramas anteriores, omitimos uma peça essencial: o cliente. Ele pode ser interpretado como o "aplicativo" que Alice (ou Bob) estão usando para se comunicar via XMPP. Por exemplo, você pode estar lendo esse texto de algum dos diversos clientes web: Firefox, Chromium, ou outro. Assim como você pode ter vários clientes web, você pode ter vários clientes XMPP.
Existem uma série deles, os quais o leitor pode escolher para usar XMPP. Vamos listar alguns, baseados em software livre:
Mas, antes de continuarmos falando deles e de quais escolher, vamos falar das XEPs.
O X em XMPP quer dizer "extensível". Essa extensibilidade ocorre através das XEPs. "XEP", abreviação para "XMPP Extension Protocol" (Protocolo de Extensão XMPP), é como uma ideia para adicionar uma nova funcionalidade ao XMPP. Por exemplo, as seguintes funcionalidades são XEPs:
Cada uma delas define tanto seu propósito, como uma ideia para sua implementação. As XEPs passam por um período de análise, passando por diversos estágios até serem consideradas em estágio "final" ou "ativo" (quando foram bem-sucedidas). Apesar disso, algumas que estão em estágio "experimental" já são amplamente utilizadas (como a que define a criptografia OMEMO).
Outro ponto importante de se entender é que as XEPs podem ser definidas para clientes e/ou servidores. Portanto, é importante escolher um conjunto de cliente+servidor para sua experiência que contemplem as XEPs essenciais para seu uso. Por exemplo:
Escolhendo um servidor.
Agora que entendemos o que são as XEPs, vamos selecionar um servidor que seja compatível com 100% delas, para simplificar as coisas.
No entanto, ao fazê-lo, você com certeza encontrará vários servidores que possuem 100% de compatibilidade com as XEPs. A partir daí, você poderá empregar alguns critérios de "desempate" para decidir em qual deles fará sua conta. Dentre eles:
Tudo isso pode ser buscado no site do servidor selecionado.
Criando uma conta.
Depois de escolhido o servidor, é hora de criar a conta. Existem duas formas de fazê-lo:
Ao criar a conta, atente-se para o nome de usuário, que será único e imutável. Depois de criada a conta, você terá um Jabber ID (abreviado para JID), no estilo de e-mail: [email protected].
Essas são as informações básicas para começar a usar o XMPP. Em outros tutoriais, eu poderei explicar alguns outros conceitos após a criação de conta: como usar criptografia para conversar de maneira privada; como usar os recursos de presença e de humor; entre outros. Enquanto isso, acredito que o leitor poderá, autonomamente, descobrir os principais recursos desse excelente protocolo! 
Vamos conhecer juntos a proposta que desafia as big techs com Software Livre.
Sábado, 1 de julho, às 14h (UTC-3)
Transmissão ao vivo no Youtube
mpv https://youtube.com/live/gjZge_7Sp8s
Ao vivo, toda terça, às 20h UTC-3
Nas issues do repositório do curso
Em texto:
Em vídeo:
É di grátis.
As pessoas que apoiam o nosso trabalho:
]]>Neste sábado, 10 de junho, a partir das 14h, vai rolar uma transmissão ao vivo para celebrar o lançamento da nova versão estável do Debian, batizada de "bookworm".
Sábado, 10 de junho, a partir das 14h (UTC-3).
No canal debxp, no Youtube
mpv, no conforto do seu sistema:mpv https://youtube.com/live/I0B8mCfF8cQ
#debxp, no servidor irc.libera.chat:6697#debxp, no web.libera.chat
Com as participações de Sergio Amadeu e Lucas Zawacki
Redes da Soberana:
Domingo, 7 de maio de 2023 a partir das 9:00h UTC-3
As transmissões serão feitas pelo canal debxp, no Youtube.
mpv link-da-apresentação
| Horário | Participante | Link |
|---|---|---|
| 9:00 | Blau Araujo | Em busca de uma computação soberana |
| 10:00 | César Brod | Me mandaram para Cuba… e eu fui! |
| 11:00 | Corinto Meffe | Cenários para as tecnologias livres e abertas |
| 13:00 | Bárbara Tostes | Empreendendo com Software Livre |
| 14:00 | Lucas Eduardo | A importância dos padrões abertos |
| 15:00 | Paulo Kretcheu | Iluminando seu caminho |
| 16:00 | Felipe "Juca" Sanches | Vivendo o sonho do Software Livre |
| 17:00 | Diálogos | Liberdade é para pessoas |