segunda-feira, 10 de abril de 2017


Aqui vai minha Stack básica de PHP 7.0. Apenas mais um daqueles posts que eu mato uma nota no meu Google Keep e faço nascer um post aqui pra comunidade. Essa é minha Stack default, ou seja, o general que fica ao meu lado na guerra. Uso esse esquema também nas minhas Dockerfiles também. Espero que ajude!

Instalação dos repositórios no Ubuntu Server 16.**

Instalação do Software Properties (Caso não houver) 
$ sudo apt-get install software-properties-common -y

Instalação do repositório do PHP 7.0 no Ubuntu

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update 

Instalação dos repositórios no Debian Jessie

Instalação do repositório do PHP 7.0 no Debian
$ echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list 

$ wget https://www.dotdeb.org/dotdeb.gpg
$ sudo apt-key add dotdeb.gpg
$ sudo apt-get update

Instalação do PHP 7.0 no Debian Jessie e Ubuntu 16.xx

Instalação uniforme para ambos as distribuições
$ sudo apt-get install php7.0  php7.0-bcmath php7.0-bz2 \
php7.0-cli php7.0-common php7.0-curl php7.0-dev php7.0-fpm \
php7.0-gd php7.0-interbase php7.0-intl php7.0-json php7.0-mbstring \ 
php7.0-mcrypt php7.0-mysql php7.0-opcache \
php7.0-pspell php7.0-readline php7.0-recode \
php7.0-soap  php7.0-tidy php7.0-xml php7.0-xmlrpc php7.0-xsl php7.0-zip -y 


E caso necessite de mais algum pacote do PHP, você pode encontrá-lo facilmente

$ sudo apt-cache search php7

Espero ter ajudado :)

PHP :: Instalação do PHP 7.0 em Ambientes Ubuntu 16.04 e Debian Jessie

quarta-feira, 5 de abril de 2017



Há um tempo fiz um post explicando a instalação do Fish Shell, uma shell voltada a produtividade que eu venho utilizando assiduamente em todos os computadores que eu tenho acesso (sério). E hoje eu venho trazer uma notinha rápida sobre um componente do Fish chamado Fishmark.

O Fishmark é um componente que se integra ao Fish Shell e te permite criar bookmarks em diretórios a sua escolha e te permite navegar até eles muito rápido. Ele é baseado no Bashmark, um outro projeto bem bacana que funciona da mesma forma porém para o Bash. Vale a pena dar uma olhada também

Git do projeto: https://github.com/techwizrd/fishmarks

Instalação Automática

$ curl -L https://github.com/techwizrd/fishmarks/raw/master/install.fish | fish


Instalação Manual

1. Clone o projeto para ~/.fishmarks
$ git clone http://github.com/techwizrd/fishmarks.git

2. Dê um source no arquivo para recarregar as configurações do Fish, ou inicie uma nova sessão
$ . ~/.fishmarks/marks.fish

# Ou

$ fish


Usage:


s <bookmark_name> - Salva o diretório atual com o nome de "bookmark_name"
g <bookmark_name> - Vai para o diretório com nome associado a "bookmark_name" (cd) 
p <bookmark_name> - Printa o caminho do bookmark associado a "bookmark_name"
d <bookmark_name> - Deleta o bookmark
l - lista todos os bookmarks disponívels

Exemplo:




Espero ter ajudado :)

Fish :: Navegando rapidamente entre diretórios com Fishmarks


Eu sempre me achei um cara preguiçoso. E nem de longe vejo isso como uma coisa ruim (pra mim). Desde que me conheço como profissional sempre fui uma exímio automatizador preguiçosos, e absorvi isso pra minha vida pessoal de uma forma bem bacana. E nessas indas e vindas no dia a dia de um preguiçoso nato, eu descobri o mingit. O mingit (Minimalist Git) é um projeto Open Source de um cara que eu achei no dev.to. Eu

Git do Projeto: https://github.com/evansendra/mingit

Um exemplo de Git Aliases

Você precisa editar o arquivo de configurações do git do seu usuário presente na sua home, e customizar as entradas dentro da tag [alias] de forma parecida com:

$ vim ~/.gitconfig
[alias]
  co = checkout
  ci = commit
  st = status
  br = branch
  hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
  type = cat-file -t
  dump = cat-file -p

$ git co branchdaabobora # git checkout branchdaabobora

É possível até mesmo customizar esses "git aliases" a partir dos alias do próprio bash editando o .profile do seu usuário:

$ vim ~/.profile
alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit'
alias gd='git diff'
alias go='git checkout '
alias gk='gitk --all&'
alias gx='gitx --all'

alias got='git '
alias get='git '

O Mingit é basicamente um conjunto de alias mais minimalistas ainda, pra quem tem preguiça de criar até mesmo seus próprios alias. Assim:

$ git commit -m "esse código destrói a Lua"

ficaria... 

$ g c "esse código destrói a Lua"

Um resumo dos aliases disponíveis

g a .                   // git add .
g b other-branch        // git branch other-branch
g c "made some changes" // git commit -m "made some changes"
g commit --amend        // it also works with regular subcommands
g co master             // git checkout master
g co mas<TAB><TAB>      // auto-complete still works! 🙌
g d                     // git diff
g f                     // git fetch
g i                     // git init 
g m hotfix              // git merge hotfix
g pll                   // git pull
g psh                   // git push
g s                     // git status


Instalando o Mingit

O Mingit é um pequeno Shellcode que pode ser instalado diretamente pelo NPM.

$ npm install -g mingit

Espero ter ajudado :)


Git :: Usando o Git Como Um Preguiçoso com Aliases e Mingit


Ontem fiz mais uma Talk lá no Python Campinas! Mas dessa vez não foi sobre Docker, eu juro... Dessa vez foi um papo mais Dev e Boas práticas onde fizemos uma revisão sobre a implementação do REST utilizando Python, fizemos um Dojo legal onde criamos uma API quase RESTful, conversamos muito e demos muita risada com o Networking!

Confira o material!

Slides:



Repositório com os Exemplos: https://github.com/msfidelis/restfulpy-talk

Fizemos uma transmissão ao vivo lá no Labs!



Fiquem de olho no Meetup do Python Campinas para os próximos eventos! É nosso! Submetam palestras, temas, duvidas e etc!

Link do Meetup: https://www.meetup.com/pt-BR/Python-Campinas/

Muito obrigado mais uma vez a quem veio e quem acompanhou, e um abraço especial pro pessoal da Superlógica (minha empresa do coração) por ceder o espaço do Superlógica Labs pra gente brincar!

Pra quem não sabe o Labs é um espaço bem legal voltado pras comunidades de Campinas e tem uma agenda bem foda com a nata do Desenvolvimento, Marketing, Startups e Empreendedorismo. Ficam ligados na agenda!

:)

TALK :: Python Campinas #2 - REST com Python

quarta-feira, 29 de março de 2017


Hoje vamos abordar um esquema bem divertido que conheci esses dias, o Knock.
O Knock funciona como uma camada extra de proteção para portas SSH e demais outros serviçes, pois é bem customizado. Nele iremos definir uma sequência fixa de portas, onde um cliente irá mandar pacotes, e caso a sequência for correta, o servidor irá executar uma, ou mais ações, como liberar ou fechar portas de serviços como o próprio SSH.

Configurando o Servidor

Instalando o Knock
$ sudo apt-get install knockd

Editando o arquivo de configuração do Knockd
$ vim /etc/knockd.conf 



Aqui vamos testar o openSSH e closeSSH. Aqui iremos definir uma sequencia de portas que iremos "bater" para abrir e outra sequencia que iremos fechar a nossa porta do SSH no IPTables.

Edite o arquivo knockd para definir qual placa de rede irá ficar responsável por responder as "batidas"

$ sudo vim /etc/default/knockd
# 1 = start
# anything else = don't start
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1

# command line options
KNOCKD_OPTS="-i wlan0"

Agora nosso server já está configurado, e já está pronto para fazer nosso IPtables responder a nossa "senha secreta do clube do bolinha". Mas como informamos essa sequência, e por onde? Pra isso precisamos configurar nosso cliente.

Configurando o Cliente

Da mesma forma que instalamos no server, podemos tambem instalar no client.

Instalando o Knod
$ sudo apt-get install knockd

Abrir porta SSH

Agora vamos abrir a porta do SSH enviando uma série de pacotes para nossa sequência de portas que definimos. Nesse caso utilizamos as Default como ilustração, então é altamente recomendável que você as troque. 

$ knock 192.168.0.123 7000:tcp 8000:tcp 9000:tcp

Agora é só prosseguir com a conexão SSH normal.
$ ssh matheus@192.168.0.123


Terminei, agora preciso fechar a porta SSH

Vamos realizar o envio de pacotes para a segunda sequência que definimos. Isso irá fazer o Knock executar o comando de bloqueio da porta SSH
$ knock 192.168.0.123 9000:tcp 8000:tcp 7000:tcp


Espero ter ajudado! :)

Knock SSH :: Adicionando uma camada de segurança divertida para nossos serviços

domingo, 12 de março de 2017


Fui convidado pra fazer uma Talk bacana no primeiro Python Campinas, da um salve no Meetup, lá no Superlógica Labs em Campinas. Um espaço bem bacana destinado a oferecer um espaço para as comunidades de Campinas. A Talk foi sobre como construir um Web Crawler utilizando Python e as possibilidades que isso nos abre em diferentes frentes, como SEO, Machine Learning, vendas, captação de Leads e etc. Depois teve um Coding Dojo bem foda com o pessoal que participou, onde nós construímos um Web Crawler para mapear o site do IBGE. Tá tudo no Git. Se inscreva no Meetup dos brothers e não perca o próximo encontro. 

Github com os exemplos + Resultado do Coding Dojo

Link: https://github.com/msfidelis/talk-webscraping

Slides no Slideshare: 


Link do Video no LabsTV



:)

TALK :: Python Campinas #1 - Web Scraping com Python

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com