Vim: Programando e Extendendo Funcionalidades

In my view, besides great features already present in vim, another fantastic thing is the possibility of programming new functions to solve unusual tasks.

Na minha opinião além das infindáveis funcionalidades já presentes no vim, outra coisa fantástica é a possibilidade de se programar novas funções para tarefas inusitadas.

Uma das melhrores formas de aprender novos recursos do vim é seguindo as threads do stackoverfow. Um exemplo seria esta pergunta postada hoje 27 de janeiro de 2018 sobre o vim

One of the best ways to learn new features is folowing stackoverflow theads. One example would be the this question posted today jan 27 on vim.

Copy block of code with increasing index

I have the following function declaration:
Eu tenho a seguinte declaração de função:

function f1(s)
real f1,s
f1 = 1/s
end
 
I would like to copy the same block but with increasing function name, i.e. f1, f2, f3, ... in order to get this:

Eu gostaria de copiar o mesmo bloco mas com incremento no nome da função, ex f1, f2, f3, ... a fim de obter isso:

function f1(s)
real f1,s
f1 = 1/s
end

function f2(s)
real f2,s
f2 = 1/s
end

function f3(s)
real f3,s
f3 = 1/s
end   
Lá vou eu criar uma função pra resolver o problema e me divertir com a solução

Here I go creating a function to solve the problem


Explicando a função:
A fim de testar essa função sem ter que colocar no seu ~/.vimrc basta copiar e executar: :@+ Agora você pode digitar ,c para copiar o bloco com o incremento

I am even using vim to change subtitles (using Tim's Pope Speeddating)

Estou usando o vim até pra alterar tempo de legendas, vejam só, instalo o plugin speeddating do Tim Pope, através do gerenciador de plugins Plug.

AWK: A mágica do operador ternário

O problema:
Inserir uma linha em branco a cada duas linhas

A Solução:
seq 10 | awk 'ORS=NR%2 ? RS:RS RS'

A Explicação:
ORS = Operador de registro de saída, determina qual será o separador de registros de saída

NR = número do registro por padrão "número da linha"

Na prática o que vai acontecer é o seguinte, ao testar o Módulo da divisão da linha 1 por 2 obtemos 1 e portanto o Awk definirá o operador de registro de saída como RS (separador de registros "quebra de linha por padrão")

quando o awk processar a linha 2 e obtiver o módulo da divisão  da mesma por 2 ele atribuirá uma dupla quebra de linha para o opeardor de registros de saída.

Aquele sinal de igual é uma atribuição que dependerá do valor do módulo obtido.


Linux: Autofalantes mudos - Resolvendo definitivamente o problema

Mais uma vez o Inglês me socorreu, usando o google fiz a busca:
"linux how force sound from headphones"

Entre os resultados no forum do Ubuntu achei esta dica:
http://askubuntu.com/questions/150887/

Basicamente o que você deve fazer:

Abra o terminal - Ctrl - Alt - T

Digite -->  alsamixer

Se só aparecer um item na lista pressione F6 e altere na lista

Use as setas para selecionar a opção relacionada ao autofalante, no meu caso em ingles aparece "headphone"  provavelmente aparacem duas letras MM indicando que está mudo, pressione a letra "m"  depois seta para cima para aumentar o som.

Agora navegue para um dos últimos item da lista chamado "automute" alterne essa opção para "disabled" a tecla para desativar será "j" como no vim.

Para sair do Alsamixer pressione "ESC"

Para salvar as configurações andei lendo no site askubuntu umas sugestões interessantes, dentre as quais isto:

    alsactl --file ~/.config/asound.state store

    reloading:

    alsactl --file ~/.config/asound.state restore

A disrussão no AskUbuntu pode ser lida aqui:
http://askubuntu.com/a/465641/3798

Vim: Scientific calculator using python3

A couple of years ago I have been writing a post on this blog showing how to use python on vim in order to get scientific math results. Now, a little bit overdue I am proud of show you the same solution using python3.

Maybe it will be improvements, I hope so.

Android: Nada de Airdroid ou Whatsappweb

Cabra macho que usa linux cria um http server usando python:

    $ cd /home/somedir
  $ python -m SimpleHTTPServer


Depois ele pega o ip da máquina

    ifconfig

no meu caso o ip é: 192.168.25.151

Daí basta digitar no seu celular:

    http://192.168.25.151:8000

daí no seu android da vida baixa o arquivo sem maiores problemas

English: Ideas novas para melhorar o aprendizado

O método tradicional que consiste em estudar um conteúdo e depois aplicar uma prova não é eficiente por no mínimo dois motivos:

  1. A prova cria estímulo negativo no cérebro. Quem de nós não fica nervoso em uma prova? Agora você acha que esse estímulo negativo não se reflete no aprendizado?
  2. Sem um número de repetições suficiente a informação não será registrada como memória de longo prazo. 
Veja o caso desse quizz: http://www.espressoenglish.net/can-you-pass-this-phrasal-verbs-quiz/
ele vai funcionar muito bem se você fixar ele em uma aba do seu navegador e repetir no mínimo 5 vezes nos próximos dias.

Pra melhorara o nível de retenção ouça o audio nesse link:
https://rhinospike.com/audio_requests/sergioaraujo/35395/#recordings

English: Quão importante são contextos ligeiramente mairoes para a memorização

No audio abaixo retirado da Série "Halt and catch fire", em uma fala encontramos as palavras "Cabinet - armário", "salt - sal", "cooking - cozinhar". O contexto maior também traz todas as ligações sonoras entre as palavras de modo que o aprendizado se torna muito mais natural. Se numa revisão futura desse audio você não lembrar da palavra "Cabinet" o contexto cumprirá um papel crucial.

Veja o audio:


Veja o que a moça no diálogo diz:
Okay, Gordon, do you want to maybe get me the salt? Maybe you could just reach into the cabinet about seven inches from your head, take out the salt and put it in my hand so I can finish cooking this. Do you think you could at least get me the salt?


Veja mais exemplos onde o contexto ajuda por demais:

 Frases contendo "isca, atrair --> lure" volta e meia trazem a palavra "wolf - lôbo"

Frases contendo "play (no sentido de desempenhar" quase sempre trazem "role - papel (não de escrever). 

O jeito certo de aprender vocabulário sobre determinado assunto é assim, não escrevendo listas de palavras soltas, vocabulário para o qual não se aprendeu a pronúncia não pode ser considerado vocabulário realmente adquirido.

Anki: Um jeito "fácil" de criar decks com audio real.

Pra quem não conhece o Anki eu sugiro uma lida no artigo do Mairo Vergara postado neste link.

Notem que coloquei "fácil" entre aspas pois produzir cartões para o anki com audios reais não é assim tão simples, você tem que gostar mesmo do Inglês, no meu caso, para dedicar um tempo e garimpar as frases corretas. (sempre no contexto)

Ultimamente, além de filmes dos quais capturo trechos com o "audio-recorder" no linux, ou mesmo com os botões avançados no VLC, costumo usar também, junto com o audio-recorder este site: http://youglish.com/

Nele você coloca a palavra e ele mostra uma série de vídeos do youtube em que a palavra aparece em contexto. Daí um pouco de criatividade de usuário linux nos permite capturar o audio e pegar a transcrição.

Em último caso combine o "audio-recorder", no linux com o site https://www.ivona.com/ que é outra excelente opção para ter uma frase pronunciada com o minimo de qualdiade.

O site do Mairo vergara também traz uma série  dicas com vários audios que podem ser baixados, veja um exemplo:
http://www.mairovergara.com/across-the-board-o-que-significa-esta-expressao/

Para os usuários do windows eu não sei recomendar qual seria o melhor programa para capturar o som que passa pela placa.

É bom também não esquecer que quando você baixa um podcast você pode edita-lo com o audacity, você faz um exercício de listening ao tentar compreender o audio ao mesmo tempo que cria um flashcard.

De um certo tempo pra cá descobri um site que me permite criar legendas com a extensão "ass", na prática ele combina duas legenas, eu coloco Inglês no topo e português na base, isso me ajuda  quando o trecho é mais complicado. O site é esse: http://pas-bien.net/2srt2ass/

Pra fnalizar com chave de ouro, alguns, por volta de 100 audios pequenos com expressões que postei no soundcloud.
https://soundcloud.com/voyag3r-1/sets/flashcards

Descobri um novo canal no soundcloud que vale a pena citar
https://soundcloud.com/english-808
 Pra baixar os audios que desejar use este site:
http://sounddrain.com/

Como dizer ao acaso/aleatoriamente em Inglês?

Bem pessoal eu aprendi pelo menos uma forma:

Out of a hat - agora imagine nomes colocados para sorteio dentro de um chapeu, você fecha os olhos, enfia a mão no chapeu e escolhe um nome. Isso é o que literalmente significa "out of a hat".  Caso conheça outras formas por favor faça um comentário indicando, lhe serei grato por isso.

OBS: Não vale randomically - Visite este link e dê uma olhada em exemplos reais.
http://youglish.com/search.jsp?accent=&q=out+of+a+hat

Linux: Escrevendo um wrapper para o ZSH

Pra começar, você sabe o que são Wrappers?

São programas que reescrevem funções de outros programas, funções que chamam um comando disponível no sistema mas que alteram determinados parâmetros para obter um resultado não usual.

Meu Exemplo: Tenho um script https://raw.githubusercontent.com/micheleb/subslider/master/subslider.py que tem o objetivo modificar legendas de filmes, mais especificamente o tempo das mesmas. O problema é que ao final o programa estava gerando caracteres estranos (código de final de linha do DOS) o famoso ^M. Isso era um incômodo pois gerava um trabalho extra de abrir o vim ou rodar o comando "sed -i 's/\x0D$//'" arquivo.

A solução: Um wrapper que você pode ver aqui:


Outro exemplo é um wrapper que achei para o comando ping, essa solução faz com que o ping aceite também http:// como parâmetro:
Neste link: http://www.cyberciti.biz/tips/unix-linux-bash-shell-script-wrapper-examples.html
A minha versão foi modificada para rodar no zsh
o código está aqui:


Talvez o mais famoso wrapper da atualidade seja o freshplayer que cria uma camada necessária para que o firefox possa usar o flashplugin mais atual do google-chrome.

Fica aí a dica pra galera.

linux-cookbook

Grupos do Google
Participe do grupo linux-cookbook
E-mail:
Visitar este grupo