Feliz aniversário, Funções ZZ! Ganhou um plugin para Oh My Fish!
O utilitário de linha de comando Funções ZZ completou 21 anos de idade na última segunda-feira! 🥳 🎉 🎊
Eu, em comemoração mais que merecida, escrevi um plugin para Oh My Fish que permite usar os mais incríveis utilitários de todos os tempos no Fish Shell! 🐠 🐚
Lá se vai bem mais de uma década dede que o meu amigo e ex-colega de Globo Marcelo “metal” Vieira me apresentou as Funções ZZ, uma fabulosa coletânea de 190 miniaplicativos 🤯 para linha de comando.
Criadas há 21 anos pelo entusiasta e contribuidor de software-livre Aurelio “verde” Jargas e com co-autoria e contribuições de muitos outros, as Funções ZZ ainda são uma grande mão na roda para as mais variadas situações.
Embora algumas delas tenham foco em coisas do Brasil (como, por exemplo, a
tabela do brasileirão, a programação da TV Globo, o validador de CPF,
etc.) boa parte é super útil para quem passa várias horas por dia no prompt de
comando, efetuando tarefas muitas vezes complexas e compostas por uma sequência
de comandos, cada um gerando dados de entrada para o seguinte (foo | bar | qux
) numa forma de operar o shell que chamamos de encadeamento.
Mas, se você está pensando que as Funções ZZ são úteis apenas na linha de comando, pense de novo! Suas glórias vão muito além do shell! Eu me lembro bem quando o metal me contou uma história — e, a propósito, ele é cheio delas — de quando ele criou um bot para disponibilizar as funções via Jabber e poder usá-las de onde quer que estivesse, inclusive e principalmente pelo celular. Ele vivia, certamente, se gabando do feito.
Já eu, como feliz usuário de Fish Shell já há um bom tempo, não poderia ficar sem as formidáveis Funções ZZ! Feitas para rodar em Bash, elas precisariam ser reescritas para rodarem nativamente no Fish. Por sorte, o framework que uso e mantenho, Oh My Fish, tem um excelente suporte a criação de plugins, o que permite estender as funcionalidades do shell de forma simples.
Sendo assim, resolvi juntar uns códigos que eu já havia feito e criar o plugin-funcoeszz. Ele disponibiliza todas as 190 funções, prontas pra serem usadas no Fish Shell, com todas as suas glórias:
⋊> ~ zzaleatorio
359
⋊> ~ zzcalcula 179 \* 2 + 1
359
⋊> ~ zzbissexto
2021 não é bissexto
⋊> ~ zzbissexto 2020
2020 é bissexto
⋊> ~ zzdiasuteis
Fevereiro de 2021 tem 20 dias úteis.
⋊> ~ zzromanos 2021
MMXXI
⋊> ~ zzromanos CCCLIX
359
⋊> ~ zzsenha
O3HPJKUow1EM0huQNYD8pR7RBL0Vlr
⋊> ~ zzmaiusculas tá funcionando
TÁ FUNCIONANDO
⋊> ~ zzcoin BTC
R$ 270.549,99
Espero que o plugin seja útil para demais usuários de Fish! Na página do repositório você encontra as instruções de instalação. Tanto o Fish Shell quanto o Oh My Fish também são fáceis de instalar, as instruções podem ser encontradas aqui e aqui, respectivamente.
Encerro com um agradecimento ao verde e aos demais autores por cada uma das 190 funções e ao metal por ter me apresentado esta pérola da computação brasileira! 👏 👍 🙌
Fique agora com algumas das minhas favoritas:
⋊> ~ zzfatorar 360
360 | 2
180 | 2
90 | 2
45 | 3
15 | 3
5 | 5
1 |
360 = 2^3 * 3^2 * 5
⋊> ~ zzfatorar 359
359 é um número primo.
⋊> ~ zzconstantes -m
Constantes Matemáticas
Nome Símbolo Valor
Pi, constante de Arquimedes ou número de Ludoph π ≈ 3.14159265358979323846264338327950288
constante de Pitágoras, raiz quadrada de dois √2 ≈ 1.41421356237309504880168872420969807
constante de Napier, base do Logaritmo natural e ≈ 2.71828182845904523536028747135266249
raiz quadrada de menos um (√-1) i i² = -1
constante de Euler-Mascheroni γ ≈ 0.57721566490153286060651209008240243
Número de Ouro φ ≈ 1.61803398874989484820458683436563811
constante de Embree-Trefethen β* ≈ 0.70258
constante de Feigenbaum δ ≈ 4.66920160910299067185320382046620161
constante de Feigenbaum α ≈ 2.50290787509589282228390287321821578
constante dos primos gêmeos C2 ≈ 0.66016181584686957392781211001455577
constante de Meissel-Mertens M1 ≈ 0.26149721284764278375542683860869585
constante de Brun para primos gêmeos B2 ≈ 1.9021605823
constante de Brun para primos quádruplos B4 ≈ 0.8705883800
constante de Bruijn-Newman Λ > – 2.7 · 10−9
constante de Catalan K ≈ 0.91596559417721901505460351493238411
constante de Landau-Ramanujan K ≈ 0.76422365358922066
constante de Viswanath K ≈ 1.13198824
constante de Legendre B´L ≈ 1.08366
constante de Ramanujan-Soldner μ ≈ 1.451369234883381050283968485892027
constante de Erdös-Borwein EB ≈ 1.606695152415291763
Constante de Liouville L ≈ 0.1100010000000000000000010
Unidades de Base no SI
Grandeza Nome Símbolo
Comprimento metro m
Massa quilograma kg
Tempo segundo s
Corrente elétrica ampère A
Temperatura termodinâmica kelvin kg
Quantidade de substância mol mol
Intensidade luminosa candela cd
Algumas unidades do SI derivadas
Grandeza Nome Símbolo Equivalente
Área metro quadrado m²
Volume metro cúbico m³
Frequência hetz Hz 1/s
Massa específica quilograma por metro cúbico kg/m³
Velocidade, intensdidade metro por segundo m/s
Velocidade angular radiano por segundo rad/s
Aceleração metro por segundo ao quadrado m/s²
Aceleração angular radiano por segundo ao quadrado rad/s²
Força newton N kg*m/s²
Pressão pascal Pa N/m
Trabalho, energia, quant. de calor joule J J/s
Potência watt W A*s
Quantidade de eletricidade coulomb C N*m/C
Dif. de potencial, força eletromotriz volt V N/C
Campo elétrico volt por metro V/m V/A
Resistência elétrica ohm Ω A*s/V
Capacitância farad F V*s
Fluxo magnético weber Wb V*s/A
Indutância henry Hz Wb/m², N/A*m
Campo magnético tesla T
Entropia joule por kelvin J/K
Calor específico joule por quilograma kelvin J/(kg*K)
Condutividade térmica watt por metro kelvin W/(m*K)
Intensidade radiante watt por esterorradiano Wsr
Unidades do SI suplementares
Grandeza Nome Símbolo
Ângulo plano radiano rad
Ângulo sólido esterorradiano sr
Constantes físicas fundamentais - Frequentemente usadas
Grandeza Símbolo Valor Incerteza Unidade
Aceleração da gravidade (na UFMG) g 9,7838163 4 e-7 m/s²
Velocidade da luz no vácuo c 299792458 exato m/s
Carga elementar e 1,602176565 e-19 0,000000035 e-19 C
Constante elétrica (permissividade) ϵ 8,854187817... e-12 exato F/m
Constante magnética (permeabilidade) μ0 12,566370614... e-7 exato N/A²
Massa do elétron me 9,10938291 e-31 0,00000040 e-31 kg
Massa do próton mp 1,672621777 e-27 0,000000074 e-27 kg
Razão carga/massa do elétron e/me 1,760859708 e11 0,000000039 e11 C/kg
Razão massa próton/ massa elétron mp/me 1836,15267245 0,00000075 -
Constante de Planck h 6,62606957 e−34 0,00000029 e-34 J*s
Constante universal dos gases R 8,3144621 0,0000075 J/mol*K
Constante de Avogadro NA 6,02214129 e23 0,00000027 e23 1/mol
Constante de Boltzmann k 1,3806488 e-23 0,0000013 e-23 J/K
Volume molar de um gás ideal nas CNTP (273,15 K, 101,325 kPa) Vm 22,413968 e-3 0,000020 e-3 m³/mol
Constante de Faraday F 96485,3365 0,0021 C/mol
Constantre de Stefan-Boltzmann σ 5,670373 e-8 0,000021 e-8 W/m²*K^4
Constante gravitacional G 6,67384 e-11 0,00080 e-11 m³/s²*kg
Raio de Bohr a0 0,52917721092 e-10 0,00000000017 e-10 m
Momento magnético do elétron μe -928,476430 e-26 0,000021 e-26 J/T
Momento magnético do próton μp 1,410606743 e-26 0,000000033 e-26 J/T
O Sol, a Terra e a Lua
Propriedade Sol Terra Lua
Massa(kg) 1,99 e30 5,98 e24 7,36 e22
Raio média(m) 6,96 e8 6,37 e6 1,74 e6
Massa específica média (kg/m³) 1410 5520 3340
Gravidade na superfície (m/s²) 274 9,81 1,67
Velocidade de escape (km/s) 618 11,2 2,38
Período de rotação (em dias em relação a estrelas distantes) 26 -- 37* 0,997 27,3
Raio orbital médio (km) 2,6 e 17 ¹ 1,50 e8 ² 3,82 e5³
Período orbital 2,4 e8 ano ¹ 1,00 ano ² 27,3 dias³
O Sol irradia energia à taxa de 3,90 e26W; no limite externo da atmosfera terreste, a energia solar é recebida se for admitida uma incidência normal à taxa de 1380W/m²
* o Sol, uma esfera de gás, não gira como um corpo rígido. Seu período de rotação varia entre 26 dias no equador e 37 dias nos pólos.
¹Em relação ao centro da galáxia
²Em relação ao Sol
³Em relação à Terra
Unidades de Planck
Nome Dimensão Equivalência no SI
Tempo Planck Tempo (T) 5.39121×10^−44 s
Comprimento de Planck Comprimento (L) 1.61624×10^−35 m
Massa de Planck Massa (M) 2.17645×10^−8 kg
Carga de Planck Carga elétrica (Q) 1.8755459×10^−18 C
Temperatura de Planck Temperatura (ML²T^−2/k) 1.41679×10^32 K
Força de Planck Força (ML/T²) 1.21027×10^44 N
Potência de Planck Potência (ML²/T³) 3.62831×10^52 W
Densidade de Planck Densidade (M/L³) 5.15500×10^96 kg/m³
Frequência angular de Planck Frequência (1/T) 1.85487×10^43 rad/s
Pressão de Planck Pressão (M/LT²) 4.63309×10^113 Pa
Corrente elétrica de Planck Corrente elétrica (Q/T) 3.4789×10^25 A
Tensão elétrica de Planck Tensão elétrica (ML²/T²Q) 1.04295×10^27 V
Resistência elétrica de Planck Resistência (ML²/TQ²) 2.99792458×10 Ω
⋊> ~ zzmat mmc 8 12 # mínimo múltiplo comum a 8 e 12
24
⋊> ~ zzmat media 5[2] 7 4[3] # média aritmética dos valores: 5, 5, 7, 4, 4 e 4
4.833333
⋊> ~ zzmat somatoria 3 9 2x+3 # somatória de (2x + 3) para x de 3 a 9
105
⋊> ~ zzmat -p3 sen 60g # seno de 60° com 3 casas decimais
0.866
⋊> ~ zznumero 12445.78
12.445,78
⋊> ~ zznumero --texto 4567890,213
quatro milhões, quinhentos e sessenta e sete mil oitocentos e noventa e duzentos e treze milésimos
⋊> ~ zznumero -m 85,345
R$ 85,34
⋊> ~ echo 748 | zznumero -f "%'.3f"
748.000
⋊> ~ zztempo belo\ horizonte
Previsão do tempo para: belo horizonte
\ / Parcialmente nublado
_ /"".-. +29(30) °C
\_( ). ↓ 11 km/h
/(___(__) 10 km
0.0 mm
┌─────────────┐
┌──────────────────────────────┬───────────────────────┤ Qui 25 Fev ├───────────────────────┬──────────────────────────────┐
│ Manhã │ Meio-dia └──────┬──────┘ Tarde │ Noite │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ \ / Parcialmente n…│ \ / Parcialmente n…│ \ / Parcialmente n…│ _`/"".-. Possibilidade …│
│ _ /"".-. +22(23) °C │ _ /"".-. +27(28) °C │ _ /"".-. +26(27) °C │ ,\_( ). +23(25) °C │
│ \_( ). ← 8-10 km/h │ \_( ). ↓ 8-9 km/h │ \_( ). ↑ 6-8 km/h │ /(___(__) ← 6-10 km/h │
│ /(___(__) 10 km │ /(___(__) 10 km │ /(___(__) 9 km │ ‘ ‘ ‘ ‘ 9 km │
│ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.3 mm | 57% │ ‘ ‘ ‘ ‘ 0.5 mm | 88% │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
┌─────────────┐
┌──────────────────────────────┬───────────────────────┤ Sex 26 Fev ├───────────────────────┬──────────────────────────────┐
│ Manhã │ Meio-dia └──────┬──────┘ Tarde │ Noite │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ _`/"".-. Possibilidade …│ _`/"".-. Aguaceiros fra…│ _`/"".-. Aguaceiros mod…│ _`/"".-. Aguaceiros mod…│
│ ,\_( ). 20 °C │ ,\_( ). +24(26) °C │ ,\_( ). +23(25) °C │ ,\_( ). 21 °C │
│ /(___(__) ↙ 9-12 km/h │ /(___(__) ↙ 14-18 km/h │ /(___(__) ↙ 13-24 km/h │ /(___(__) ↙ 11-21 km/h │
│ ‘ ‘ ‘ ‘ 10 km │ ‘ ‘ ‘ ‘ 10 km │ ‚‘‚‘‚‘‚‘ 7 km │ ‚‘‚‘‚‘‚‘ 7 km │
│ ‘ ‘ ‘ ‘ 0.4 mm | 69% │ ‘ ‘ ‘ ‘ 0.8 mm | 75% │ ‚’‚’‚’‚’ 4.5 mm | 72% │ ‚’‚’‚’‚’ 6.2 mm | 67% │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
┌─────────────┐
┌──────────────────────────────┬───────────────────────┤ Sáb 27 Fev ├───────────────────────┬──────────────────────────────┐
│ Manhã │ Meio-dia └──────┬──────┘ Tarde │ Noite │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ \ / Parcialmente n…│ \ / Parcialmente n…│ _`/"".-. Aguaceiros mod…│ _`/"".-. Aguaceiros fra…│
│ _ /"".-. 21 °C │ _ /"".-. +25(26) °C │ ,\_( ). +23(25) °C │ ,\_( ). 22 °C │
│ \_( ). ↙ 10-12 km/h │ \_( ). ↙ 10-12 km/h │ /(___(__) ← 6-9 km/h │ /(___(__) ← 5-7 km/h │
│ /(___(__) 10 km │ /(___(__) 9 km │ ‚‘‚‘‚‘‚‘ 9 km │ ‘ ‘ ‘ ‘ 9 km │
│ 0.0 mm | 0% │ 0.3 mm | 55% │ ‚’‚’‚’‚’ 1.9 mm | 79% │ ‘ ‘ ‘ ‘ 2.0 mm | 84% │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
Localização: BH, Microrregião Belo Horizonte, Região Metropolitana de Belo Horizonte, Mesorregião Metropolitana de Belo Horizonte, MG, Região Sudeste, Brasil [-19.9227318,-43.9450948]
About the author
Pablo Aguiar is a software engineer and coffee geek from Brazil. He's curious about computers, maths and science. He enjoys a good coffee and loves literature. Read more...