sexta-feira, 11 de maio de 2018

Como colocar o PyCharm no launcher do Ubuntu

Atualizei recentemente meu pycharm para a versão 2018.1.
A atualização basicamente consiste em baixar do site da Jetbrains dedicado ao PyCharm, e depois do download basta descompactar e mover o diretório criado para você você achar mais adequado.
No meu caso está em ~/bin/pycharm.
Para rodar o pycharm é só executar o script pycharm.sh que está no diretório bin dentro do diretório do pycharm, isto é, no meu caso ~/bin/pycharm/bin/pycharm.sh.

Eu queria ter o ícone do pycharm no launcher (aquela barra lateral do Ubuntu) para ficar mais fácil chamá-lo. O PyCharm pode criar seu próprio ícone de lançador, contudo ele não é cria por padrão.
A gente tem que executar alguns comandos:

1) Comece chamando o PyCharm em um terminal.


2) No menu Ferramentas, selecione "Criar entrada da área de trabalho ..."

3) Se você já tem o PyCharm, ele irá perguntar se você quer reaproveitar as configurações da versão anterior:


4) Marque a caixa correspondente, se você quiser o lançador para todos os usuários. Se você selecionou "Criar entrada para todos os usuários", será solicitada sua senha e seu usuário deve estar entre os sudoers.

5) Você precisa fechar o Pycharm. Você verá na parte de baixo da tela do programa que ele terminou a instalação e criou a entrada de desktop.


6) Você agora irá encontrar o PyCharm no Unity Dash. Clique no ícone para abrir o PyCharm novamente.


7) Ao abrir o Pycharm novamente você pode fixá-lo na barra lateral clicando com o botão direito sobre o ícone.



domingo, 6 de maio de 2018

Como instalar o kernel do Javascript (Node.js) no Jupyter do Windows

Neste vídeo considero que você já tem o Jupyter instalado no seu Windows.
Kernel é o nome que o Jupyter dá para os módulos que acrescentam linguagens no seu ambiente.
Para achar onde está o kernel basta procurar no google "jupyter javascript". Vamos utilizar o kernel que aparece na primeira opção, que é o "n-riesco/javascript":

Se você clicar no link, será enviado para a página no GitHub. Mais ou menos descendo 70% da página, você achará as instruções para instalação no Windows que mostramos abaixo:

No meu caso estou utilizando a versão oficial do Python para Windows, contudo o processo de instalação descrito acima não funcionaram no meu Windows 10. Os comandos são parecidos e eu mostro abaixo:

python -m pip install --upgrade pip
pip install npm
npm install -g ijavascript
ijsinstall
Se você não tiver o jupiter ainda, basta alterar a segunda linha de comando acima para a linha abaixo:

pip install jupyter npm
Agora o módulo está instalado. Podemos abrir o jupyter. Fazemos isto na linha de comando como mostramos abaixo:

O navegador irá abrir a página do notebook do Jupyter e você poderá criar um notebook com Javascript:

terça-feira, 1 de maio de 2018

Rodando vários cron jobs em uma linha

Neste post mostro como executar dois (ou mais) comandos consecutivamente, não simultaneamente, utilizando uma linha do crontab.
Um crontab normalmente executa um comando em cada linha.
Por exemplo:

# m h dom mon dow command
01 00 * * * /usr/sbin/meu_programa1
05 00 * * * /usr/sbin/meu_programa2
00 01 * * * /usr/sbin/meu_programa3
00 02 * * * /usr/sbin/meu_programa4

No exemplo acima mostramos como criar quatro tarefas que são executadas às 00:01, às 00:05, às 01:00 e às 02:00. Contudo imagine que queremos que meu_programa2 seja executado depois de meu_programa1 e meu_programa1 pode durar menos ou um pouco mais de cinco minutos.
Usando a configuração acima, não temos esta garantia. Assim teríamos que alterar a segunda linha para garantir um intervalo maior entre os dois programas.

Em vez disso, posso executar essas tarefas cron uma após a outra, colocando && entre cada tarefa. Assim o nosso exemplo ficaria:

# m h dom mon dow command
01 00 * * * /usr/sbin/meu_programa1 && /usr/sbin/meu_programa2
01 01 * * * /usr/sbin/meu_programa3
01 02 * * * /usr/sbin/meu_programa4

Desta forma as duas primeiras são feitas consecutivamente. Assim que acabar meu_programa1, a segunda tarefa (meu_programa2) é executada.

Isso é útil para situações onde queremos que as tarefas sejam executadas uma depois da outra, ou
(1) porque existe uma dependência entre elas, isto é, a tarefa executada pelo primeiro programa é uma entrada do segundo programa ou
(2) utiliza um recurso de hardware (por exemplo, é muito intensiva em I/O ou gasta muito espaço em disco para executar)  que é importante que a primeira tarefa acabe antes da segunda começar.

Reparando o boot no Ubuntu

Caso você não consiga mais acessar o seu Ubuntu porque um erro para a inicialização (ou o boot para no prompt grub>), você pode reparar a inicialização utilizando uma ferramenta bastante interessante e que torna o processo bem simples: Boot Repair (a página do projeto é https://sourceforge.net/p/boot-repair/home/pt/).

Para instalar o Boot Repair no Ubuntu é necessário instalar um novo repositório. Esta instalação permite ainda que você receba automaticamente as futuras atualizações dele.

Vamos iniciar o computador com um pendrive que tem o Ubuntu live, selecionando a opção de Experimentar o Ubuntu como mostrado abaixo:



Quando o Ubuntu tiver carregado, precisamos chamar um terminal (no Unity use as teclas CTRL + ALT + T) ou podemos pesquisar em aplicativos como abaixo:


Agora vamos adicione o repositório do programa com este comando:



$ sudo add-apt-repository ppa:yannubuntu/boot-repair


Se você estiver utilizando o Ubuntu 18, não é necessário atualizar o APT com o comando, contudo para versões 17 ou inferior, você precisa executar:
$ sudo apt-get -y update
Tendo feito a atualização (caso necessário), use o comando abaixo para instalar o programa:
$ sudo apt-get -y install boot-repair

Pronto agora basta rodar o programa (digitando a linha abaixo no terminal) e selecionar a opção de reparação recomendada:
$ boot-repair

Agora o programa irá rodar e quando terminar irá mostrar o resultado da reparação. Se seu HD estiver ok, acredito que você não terá problemas e receberá uma mensagem como a mostrada abaixo:

É só dar reboot.


Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...