Fly away, skyline pigeon, fly
Elton John defende o fim da Internet.
"Peraí que eu vou tirar a internet da tomada..."
Elton John defende o fim da Internet.
"Peraí que eu vou tirar a internet da tomada..."
Postado por Valtoir às 20:49 0 comentários
Marcadores: Besteira, tech (no-logic ;-)
Companhia dos EUA cria guarda-chuva que prevê quando vai chover
"... acho que a humanidade se divide em dois tipos de pessoas: as que usam guarda-chuva e as que não usam."
Danuza Leão, em "Quase Tudo".
Se você é do tipo que usa guarda-chuva, olha só.
Mas, peraí, será que eu entendi? Para saber se vai chover, o cara vai ter que andar sempre com o guarda-chuva. Agora, se ao contrário, não dispuser de um guarda chuva desses e for do tipo que usa guarda-chuva, a única maneira de precaver-se é... andar sempre com o guarda-chuva. :)
Postado por Valtoir às 19:32 0 comentários
Marcadores: Citações, tech (no-logic ;-)
A imagem ao lado é parte de um terminal rodando o primo gringo do script "pes.sh". Reescrevi completamente o script (um pseudo screensaver feito em bash) e prá não dar o mesmo nome (e, quem sabe, conquistar o mundo ;) chamei-o de "feet.sh". Nome original, não?
Se quiser baixar o arquivo prá não precisar copiar, colar e ajustar a identação, o link é http://dwarfurl.com/8f937.
Abaixo, o código formatado:
#!/bin/bash
# author: Valtoir dos Santos Jardim
# e-mail: valtoirjardim_at_gmail_dot_com
# blog: valtoir.blogspot.com
# date: 2007-07-29-21:28
# version: ~ 0.99
trap "" 2
setterm -cursor off -bold on
colors=(31 32 33 34 35 36 37)
rfp=("+8" "+9" "+8" "+8")
rfo=("(_/" ") /" "( )" "Oooo.")
lfp=("+2" "+1" "" "")
lfo=("\_)" "\ (" "( )" ".oooO")
feet () {
while :; do
left_foot=$(($RANDOM % $((`tput cols` - 12)))) || exit -1
act_foot=$((RANDOM % 2))
color=${colors[$(($RANDOM % ${#colors[*]}))]}
seed=$((RANDOM % 4))
delay=.$(((RANDOM % 8) + 4))
actline=$(tput lines)
while :; do
for i in $(seq $seed 4); do
[ $((actline--)) -ge 1 ] || break
if [ $act_foot -eq 0 ]; then
tput cup $((actline)) $((left_foot ${rfp[$i]}))
echo -e "\e[$color;1m""${rfo[$i]}""\c\e[m"
else
tput cup $((actline)) $((left_foot ${lfp[$i]}))
echo -e "\e[$color;1m""${lfo[$i]}""\c\e[m"
fi
done
if [ $act_foot -eq 0 ]; then
act_foot=1
else
act_foot=0
fi
[ $actline -ge 1 ] || break
seed=0
sleep $delay
done
done
}
feet &
read -rs -n 1
echo -e "\e[m"
setterm -reset
clear
pkill feet
Postado por Valtoir às 21:39 0 comentários
Marcadores: Bash, Shell script
Cenário: Futura LAN house do primo do meu cunhado (acho que é isso), em nóia city. O cara e seu sócio estão começando o negócio e pediram uma ajuda.
Acontece que a Brasil Telecom ainda não arranjou um link pros caras (ooh!) e um vizinho, ou melhor, um vizinho do vizinho, gentilmente compartilhou seu acesso até que a situação se resolva. Para não gastar com wireless, sugeri a passagem de um cabo de par trançado devidamente protegido e com a concordância do vizinho que mora entre os dois imóveis. Feito isso fui até o local preparar os conectores RJ-45. Testei o link, e nada.
Modéstia a parte, dificilmente erro ao crimpar cabos de rede. Mas tudo bem, refiz as duas pontas e... nada de novo. Perguntei aos caras sobre o trajeto do cabo, se não forçaram-no ou quebraram, se o comprimento estava abaixo do limite. Examinando, descobrimos que a parte do cabo que passa pelo vizinho entre as pontas soltou-se, caiu no chão e serviu de fio dental para um belo exemplar de pastor alemão. O bicho mastigou uns 30cm de cabo, "côsa poca", como diria o analista de Bagé.
Não era possível repassar o cabo. Era um sábado à noite, liguei para a única loja de informática 24h da região e não tinham adaptadores, emendas ou conectores RJ-45 fêmea para que pudéssemos consertar a situação de forma satisfatória. Perguntei se não tinham um hub ou switch, o primo do meu cunhado disse que tinha em casa, foi até lá buscar e voltou com um modem adsl.
Procurando entre as tralhas que tinham encontrei um "espelho" RJ-45. É um conector fêmea que coloca-se na parte traseira de gabinetes de pc e conecta-se diretamente à placa-mãe que tenha um controlador de rede "on-board", através de um cabo. Perguntei se não tinham outro daqueles, encontraram um.
Desconectei o cabo de um dos espelhos e conectei o cabo que saia do outro espelho diretamente no que estava sem cabo. Preparei as duas pontas do cabo rompido com conectores RJ-45 e conectei-os através do adaptador que "fabriquei".
E não é que funcionou? Após testado, improvisei um "gabinete" com a caixa do switch que eles compraram para usar na LAN House. Serviu para evitar contato entre os conectores e evitar que fossem desconectados ao esticar o cabo para colocá-lo em local protegido de raios e principalmente cães. O MacGiver que se cuide.
As fotos são toscas, feitas com o celular:
Postado por Valtoir às 08:18 0 comentários
Marcadores: "Do it yourself" você mesmo
Hoje estou animado.
Em homenagem ao Curupira e ao Michael Jackson, fiz a primeira variação do script pes.sh. Vem mais por aí...
--------------8< corte aqui 8<--------------
#!/bin/bash
# autor: Valtoir dos Santos Jardim
# e-mail: valtoirjardim at gmail dot com
# blog: valtoir.blogspot.com
# data: 2007-05-10
# versao: 0.2
trap "clear; setterm -reset; pkill moonwalk.sh; exit" 2
while getopts "hc:" opt; do
~~~~case $opt in
~~~~~~~h) echo -e "\nUso: pes.sh -h | -c
~~~~~~~~~~echo -e "\nParametros:"
~~~~~~~~~~echo -e " -h: Mostra essa (grande) ajuda"
~~~~~~~~~~echo -e " -c
~~~~~~~~~~echo -e "\nExemplo:"
~~~~~~~~~~echo -e " pes.sh -c#\n"
~~~~~~~~~~exit;;
~~~~~~~c) clear;
~~~~~~~~~~for i in $(seq 0 `tput lines`); do
~~~~~~~~~~~~~for w in $(seq 1 `tput cols`); do
~~~~~~~~~~~~~~~~~echo -e "$OPTARG\c"
~~~~~~~~~~~~~done;
~~~~~~~~~~~~~tput cup $i;
~~~~~~~~~~done;;
~~~~~~~?) exit -1;
~~~~esac
done
moonwalk () {
~~~~colors=(31 32 33 34 35 36 37)
~~~~signal=( + - )
~~~~setterm -cursor off -bold on
~~~~while :; do
~~~~~~~moreorless=$((RANDOM%2))
~~~~~~~color=${colors[$(($RANDOM%${#colors[*]}))]}
~~~~~~~delay=.$(((RANDOM%8)+4))
~~~~~~~left_foot=$(($RANDOM%$((`tput cols` - 12))))
~~~~~~~right_foot=$(($left_foot + 8))
~~~~~~~lines=$(($(tput lines) - 6))
~~~~~~~[ "$moreorless" == "1" ] && {
~~~~~~~~~~tput cup $((lines + 4)) $((left_foot + 3))
~~~~~~~~~~echo -e "\e[$color;1m_\c\e[m"
~~~~~~~~~~tput cup $((lines + 5)) $((left_foot + 2))
~~~~~~~~~~echo -e "\e[$color;1m/ )\c\e[m"
~~~~~~~}
~~~~~~~for line in `seq $((($lines ${signal[$moreorless]} 1))) -10 5`; do
~~~~~~~~~~sleep $delay
~~~~~~~~~~tput cup $((line++)) $((right_foot + 1))
~~~~~~~~~~echo -e "\e[$color;1m_\c\e[m"
~~~~~~~~~~tput cup $((line++)) $right_foot
~~~~~~~~~~echo -e "\e[$color;1m( \ \c\e[m"
~~~~~~~~~~tput cup $((line++)) $((right_foot + 1))
~~~~~~~~~~echo -e "\e[$color;1m) \ \c\e[m"
~~~~~~~~~~tput cup $((line++)) $right_foot
~~~~~~~~~~echo -e "\e[$color;1m( )\c\e[m"
~~~~~~~~~~tput cup $((line++)) $right_foot
~~~~~~~~~~echo -e "\e[$color;1mOooo˙\c\e[m"
~~~~~~~~~~sleep $delay
~~~~~~~~~~tput cup $((line - 10)) $((left_foot + 3))
~~~~~~~~~~echo -e "\e[$color;1m_\c\e[m"
~~~~~~~~~~tput cup $((line - 9)) $((left_foot + 2))
~~~~~~~~~~echo -e "\e[$color;1m/ )\c\e[m"
~~~~~~~~~~tput cup $((line - 8)) $((left_foot + 1))
~~~~~~~~~~echo -e "\e[$color;1m/ (\c\e[m"
~~~~~~~~~~tput cup $((line - 7)) $left_foot
~~~~~~~~~~echo -e "\e[$color;1m( )\c\e[m"
~~~~~~~~~~tput cup $((line - 6)) $left_foot
~~~~~~~~~~echo -e "\e[$color;1m˙oooO\c\e[m"
~~~~~~~done
~~~~~~~sleep $delay
~~~~~~~[ $((line -15)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 15)) $((right_foot + 1))
~~~~~~~~~~echo -e "\e[$color;1m_\c\e[m"
~~~~~~~}
~~~~~~~[ $((line -14)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 14)) $right_foot
~~~~~~~~~~echo -e "\e[$color;1m( \ \c\e[m"
~~~~~~~}
~~~~~~~[ $((line -13)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 13)) $((right_foot + 1))
~~~~~~~~~~echo -e "\e[$color;1m) \ \c\e[m"
~~~~~~~}
~~~~~~~[ $((line -12)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 12)) $right_foot
~~~~~~~~~~echo -e "\e[$color;1m( )\c\e[m"
~~~~~~~}
~~~~~~~[ $((line -11)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 11)) $right_foot
~~~~~~~~~~echo -e "\e[$color;1mOooo˙\c\e[m"
~~~~~~~}
~~~~~~~sleep $delay
~~~~~~~[ $((line -19)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 19)) $((left_foot + 2))
~~~~~~~~~~echo -e "\e[$color;1m/ )\c\e[m"
~~~~~~~}
~~~~~~~[ $((line -18)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 18)) $((left_foot + 1))
~~~~~~~~~~echo -e "\e[$color;1m/ (\c\e[m"
~~~~~~~}
~~~~~~~[ $((line -17)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 17)) $left_foot
~~~~~~~~~~echo -e "\e[$color;1m( )\c\e[m"
~~~~~~~}
~~~~~~~[ $((line -16)) -lt 0 ] || {
~~~~~~~~~~tput cup $((line - 16)) $left_foot
~~~~~~~~~~echo -e "\e[$color;1m˙oooO\c\e[m"
~~~~~~~}
~~~~done
}
moonwalk &
read -rs -n 1
setterm -reset
clear
pkill moonwalk
--------------8< corte aqui 8<--------------
Postado por Valtoir às 23:59 0 comentários
Marcadores: Bash, Shell script
Agora até parece um screensaver de verdade!
Instruções no post abaixo.
--------------8< corte aqui 8<--------------
#!/bin/bash
# autor: Valtoir dos Santos Jardim
# e-mail: valtoirjardim at gmail dot com
# blog: valtoir.blogspot.com
# data: 2007-05-10
# versao: 0.2
trap "clear; setterm -reset; pkill pes.sh; exit" 2
while getopts "hc:" opt; do
~~~case $opt in
~~~~~~h) echo -e "\nUso: pes.sh -h | -c
~~~~~~~~~echo -e "\nParametros:"
~~~~~~~~~echo -e " -h: Mostra essa (grande) ajuda"
~~~~~~~~~echo -e " -c
~~~~~~~~~echo -e "\nExemplo:"
~~~~~~~~~echo -e " pes.sh -c#\n"
~~~~~~~~~exit;;
~~~~~~c) clear;
~~~~~~~~~for i in $(seq 0 `tput lines`); do
~~~~~~~~~~~~for w in $(seq 1 `tput cols`); do
~~~~~~~~~~~~~~~~echo -e "$OPTARG\c"
~~~~~~~~~~~~done;
~~~~~~~~~~~~tput cup $i;
~~~~~~~~~done;;
~~~~~~?) exit -1;
~~~esac
done
pes () {
~~~colors=(31 32 33 34 35 36 37)
~~~signal=( + - )
~~~setterm -cursor off -bold on
~~~while :; do
~~~~~~moreorless=$((RANDOM%2))
~~~~~~color=${colors[$(($RANDOM%${#colors[*]}))]}
~~~~~~delay=.$(((RANDOM%8)+4))
~~~~~~left_foot=$(($RANDOM%$((`tput cols` - 12))))
~~~~~~right_foot=$(($left_foot + 8))
~~~~~~lines=$(($(tput lines) - 5))
~~~~~~[ "$moreorless" == "1" ] && {
~~~~~~~~~tput cup $((lines + 5)) $left_foot
~~~~~~~~~echo -e "\e[$color;1m.oooO\c\e[m"
~~~~~~}
~~~~~~for line in `seq $((($lines ${signal[$moreorless]} 1))) -10 5`; do
~~~~~~~~~sleep $delay
~~~~~~~~~tput cup $((line++)) $right_foot
~~~~~~~~~echo -e "\e[$color;1mOooo.\e[m"
~~~~~~~~~tput cup $((line++)) $right_foot
~~~~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~~~~~~~tput cup $((line++)) $((right_foot + 1))
~~~~~~~~~echo -e "\e[$color;1m) /\e[m"
~~~~~~~~~tput cup $((line++)) $right_foot
~~~~~~~~~echo -e "\e[$color;1m(_/\c\e[m"
~~~~~~~~~sleep $delay
~~~~~~~~~tput cup $((line - 9)) $left_foot
~~~~~~~~~echo -e "\e[$color;1m.oooO\e[m"
~~~~~~~~~tput cup $((line - 8)) $left_foot
~~~~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~~~~~~~tput cup $((line - 7)) $((left_foot + 1))
~~~~~~~~~echo -e "\e[$color;1m\ (\e[m"
~~~~~~~~~tput cup $((line - 6)) $((left_foot + 2))
~~~~~~~~~echo -e "\e[$color;1m\_)\e[m"
~~~~~~done
~~~~~~sleep $delay
~~~~~~[ $((line -14)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 14)) $right_foot
~~~~~~~~~echo -e "\e[$color;1mOooo.\e[m"
~~~~~~}
~~~~~~[ $((line -13)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 13)) $right_foot
~~~~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~~~~}
~~~~~~[ $((line -12)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 12)) $((right_foot + 1))
~~~~~~~~~echo -e "\e[$color;1m) /\e[m"
~~~~~~}
~~~~~~[ $((line -11)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 11)) $right_foot
~~~~~~~~~echo -e "\e[$color;1m(_/\e[m"
~~~~~~}
~~~~~~sleep $delay
~~~~~~[ $((line -18)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 18)) $left_foot
~~~~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~~~~}
~~~~~~[ $((line -17)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 17)) $((left_foot + 1))
~~~~~~~~~echo -e "\e[$color;1m\ (\e[m"
~~~~~~}
~~~~~~[ $((line -16)) -lt 0 ] || {
~~~~~~~~~tput cup $((line - 16)) $((left_foot + 2))
~~~~~~~~~echo -e "\e[$color;1m\_)\e[m"
~~~~~~}
~~~done
}
pes &
read -rs -n 1
setterm -reset
clear
pkill pes
--------------8< corte aqui 8<--------------
Postado por Valtoir às 22:04 0 comentários
Marcadores: Bash, Shell script
Vou passar a publicar aqui alguns scripts em bash que faço. Chamei o script abaixo de pes.sh (pés). Foi feito como exercício de programação e lógica, e serve como pseudo screensaver em modo caractere.
Nota: para manter a identação, substituí os espaços em branco iniciais por til (~). Basta copiar o texto abaixo, colar num arquivo texto e (imaginado que você nomeie o arquivo com o mesmo nome que eu) executar algum terminal com bash e rodar :
sed -i 's/~/ /g' pes.sh
Isso irá substituir todos os "~" por " ". Feito isso, torne o arquivo executável:
chmod +x pes.sh
E pronto, agora é só rodar:
./pes.sh
--------------8< corte aqui 8<--------------
#!/bin/bash
# autor: Valtoir dos Santos Jardim
# e-mail: valtoirjardim_at_gmail_dot_com
# blog: valtoir.blogspot.com
# data: 2007-05-05
# versao: 0.1
trap "clear; setterm -reset; exit" 2
colors=(31 32 33 34 35 36 37)
signal=( + - )
while getopts "hc:" opt; do
~~~case $opt in
~~~~~~h) echo -e "\nUso: pes.sh -h | -c"
~~~~~~~~~echo -e "\nParametros:"
~~~~~~~~~echo -e " -h: Mostra essa (grande) ajuda"
~~~~~~~~~echo -e " -c: Limpa a tela e define caractere de preenchimento"
~~~~~~~~~echo -e "\nExemplo:"
~~~~~~~~~echo -e " pes.sh -c#\n"
~~~~~~~~~exit;;
~~~~~~c) clear;
~~~~~~~~~for i in $(seq 0 `tput lines`); do
~~~~~~~~~~~~for w in $(seq 1 `tput cols`); do
~~~~~~~~~~~~~~~~echo -e "$OPTARG\c"
~~~~~~~~~~~~done;
~~~~~~~~~~~~tput cup $i;
~~~~~~~~~done;;
~~~~~~?) exit -1;
~~~esac
done
setterm -cursor off -bold on
while :; do
~~~moreorless=$((RANDOM%2))
~~~color=${colors[$(($RANDOM%${#colors[*]}))]}
~~~delay=.$(((RANDOM%8)+4))
~~~left_foot=$(($RANDOM%$((`tput cols` - 12))))
~~~right_foot=$(($left_foot + 8))
~~~lines=$(($(tput lines) - 5))
~~~[ "$moreorless" == "1" ] && {
~~~~~~tput cup $((lines + 5)) $left_foot
~~~~~~echo -e "\e[$color;1m.oooO\c\e[m"
~~~}
~~~for line in `seq $((($lines ${signal[$moreorless]} 1))) -10 5`; do
~~~~~~sleep $delay
~~~~~~tput cup $((line++)) $right_foot
~~~~~~echo -e "\e[$color;1mOooo.\e[m"
~~~~~~tput cup $((line++)) $right_foot
~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~~~~tput cup $((line++)) $((right_foot + 1))
~~~~~~echo -e "\e[$color;1m) /\e[m"
~~~~~~tput cup $((line++)) $right_foot
~~~~~~echo -e "\e[$color;1m(_/\c\e[m"
~~~~~~sleep $delay
~~~~~~tput cup $((line - 9)) $left_foot
~~~~~~echo -e "\e[$color;1m.oooO\e[m"
~~~~~~tput cup $((line - 8)) $left_foot
~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~~~~tput cup $((line - 7)) $((left_foot + 1))
~~~~~~echo -e "\e[$color;1m\ (\e[m"
~~~~~~tput cup $((line - 6)) $((left_foot + 2))
~~~~~~echo -e "\e[$color;1m\_)\e[m"
~~~done
~~~sleep $delay
~~~[ $((line -14)) -lt 0 ] || {
~~~~~~tput cup $((line - 14)) $right_foot
~~~~~~echo -e "\e[$color;1mOooo.\e[m"
~~~}
~~~[ $((line -13)) -lt 0 ] || {
~~~~~~tput cup $((line - 13)) $right_foot
~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~}
~~~[ $((line -12)) -lt 0 ] || {
~~~~~~tput cup $((line - 12)) $((right_foot + 1))
~~~~~~echo -e "\e[$color;1m) /\e[m"
~~~}
~~~[ $((line -11)) -lt 0 ] || {
~~~~~~tput cup $((line - 11)) $right_foot
~~~~~~echo -e "\e[$color;1m(_/\e[m"
~~~}
~~~sleep $delay
~~~[ $((line -18)) -lt 0 ] || {
~~~~~~tput cup $((line - 18)) $left_foot
~~~~~~echo -e "\e[$color;1m( )\e[m"
~~~}
~~~[ $((line -17)) -lt 0 ] || {
~~~~~~tput cup $((line - 17)) $((left_foot + 1))
~~~~~~echo -e "\e[$color;1m\ (\e[m"
~~~}
~~~[ $((line -16)) -lt 0 ] || {
~~~~~~tput cup $((line - 16)) $((left_foot + 2))
~~~~~~echo -e "\e[$color;1m\_)\e[m"
~~~}
done
Postado por Valtoir às 23:18 0 comentários
Marcadores: Bash, Shell script
Postado por Valtoir às 23:07 0 comentários
Marcadores: Serious Hints
"O que penso eu do mundo?Sei Lá o que penso do mundo!
Se eu adoecesse pensaria nisso."
(trecho do poema "Há Metafísica
Bastante em Não Pensar em Nada",
de Alberto Caeiro, heterônimo
de Fernando Pessoa)
Postado por Valtoir às 09:04 0 comentários
Marcadores: Citações
Vamos consertar o mundo
Vamos começar lavando os pratos
Nos ajudar uns aos outros
Me deixa amarrar os seus sapatos
Vamos acabar com a dor
E arrumar os discos numa prateleira
Vamos viver só de amor
Que o aluguel venceu na terça-feira
O sonho agora é real
E a chuva cai por uma fresta no telhado
Por onde também passa o sol
Hoje é dia de supermercado
Vamos viver só de amor
Vamos viver só de amor
Vamos viver só de amor
Vamos viver só de amor
E não ter que pensar, pensar
No que está faltando, no que sobra
Nunca mais ter que lembrar, lembrar
De pôr travas e trancas nas portas
(Herbert Vianna)
Postado por Valtoir às 00:08 0 comentários
Marcadores: Citações
Alô, alô, testando...
Um, dois, três.... testando... som... som... testando.
Postado por Valtoir às 19:01 0 comentários
Marcadores: Besteira