Mobaxterm: SFTP e SSH em uma só ferramenta

No Windows, quando precisamos acessar algum servidor via SSH, é comum utilizarmos o Putty. Já para enviar e baixar arquivos dos servidores, a ferramenta mais conhecida é o FileZilla.

Mas e se tivéssemos uma única ferramenta para os dois casos? Foi aí que conheci através do Edison Costa o MobaXterm. Além de permitir a conexão via terminal (linha de comando), ele possui na lateral uma navegação visual das pastas, similar à estrutura do FileZilla. Além disso, ele conta com várias outras facilidades, possuindo inclusive, um editor de códigos próprio e opção de instalar plugins para expandir a ferramenta.

Existem duas versões free do software: uma portátil e outra para ser instalada no PC. A vantagem da instalação é que você pode armazenar até 12 sessões, para facilitar ainda mais o acesso. A versão paga não possui limite de sessões, além de contar com um suporte de 1 ano.

Já conhecia está ferramenta? Tem alguma outra para indicar? Deixem seus comentários 😉

Melhore a busca por arquivos no Windows com o Everything

Pesquisar por algum arquivo no Windows nem sempre é uma tarefa fácil. Isso porque a busca do Windows Explorer, apesar de ter melhorado bastante nos últimos anos, não é muito eficiente.

Se você quer melhorar a forma de fazer estas buscas, existem algumas ferramentas que podem auxiliar, dentre elas, a que mais se destaca, na minha opinião é o Everything.

Para acelerar ainda mais, habilite-o para iniciar junto com o Windows, assim não terá um atraso ao realizar a primeira busca.

Vale a pena testar! Depois deixem um feedback sobre o que acharam dela 😉

Como criar seu primeiro plugin para o WordPress

Este post é baseado na palestra que apresentei no Meetup de WordPress aqui em Curitiba. Aliás, se você ainda não participa da comunidade de WordPress da sua cidade, aproveite e clica aqui para ver se ela possui. Se não possuir, é um excelente momento para você juntar algumas pessoas que trabalham com WordPress na sua cidade e criar uma comunidade local (pode inclusive solicitar a criação de um canal específico para ela no Slack da comunidade WordPress Brasil) 😉 .

Por diversas vezes nos deparamos com projetos que necessitam de algum algum comportamento específico, seja acrescentando ou removendo uma funcionalidade.

Neste post, vou mostrar como criei meu primeiro plugin e como disponibilizei ele no repositório oficial de plugins para WordPress, e o melhor: com estas dicas você não precisa ser exatamente um desenvolvedor para pode criar um plugin!

Recentemente trabalhei em um projeto no qual eu precisava remover os produtos relacionados que o WooCommerce exibe por padrão na página do produto:

Como esconder a div com CSS, não era uma opção muito boa (apesar de não aparecer, os elementos na tela, eles ainda seriam carregados pelo navegador), decidi pesquisar se existia algum filtro (caso não saiba o que é um filtro, o Felipe Elia fez uma série de vídeos no YouTube com uma excelente explicação e você pode assistir clicando aqui) que poderia ser utilizado para remover esta área. Foi aí que encontrei neste post o seguinte filtro:

add_filter('woocommerce_product_related_posts_query', '__return_empty_array', 100);

Adicionando este código no arquivo functions.php do tema que eu estava utilizando, a página do produto não exibia mais os produtos relacionados e o problema estava resolvido.

O filtro acima faz com que toda vez que a função (woocommerce_product_related_posts_query) for chamada, ela não retorne nenhum produto (__return_empty_array). Além disso, ela é definida com a prioridade 100, para ter prioridade maior do que a prioridade padrão da função no plugin do WooCommerce.

Mas editar o arquivo functions.php do tema não é uma boa pratica, pois quando o tema tivesse uma atualização o arquivo seria modificado e o filtro seria removido. Nestes casos, o melhor é criar um tema descendente e incluir o filtro no arquivo functions.php dele, assim, em uma atualização o filtro não seria removido. Porém, no meu caso, a única funcionalidade do tema descendente seria apenas para manter este filtro, então porque não transformar o filtro em um plugin?

Para transformá-lo em um plugin, basta colocar o código dentro de um arquivo .php e colocar este arquivo dentro da pasta wp-content/plugins, mas podemos deixar ele melhor escrito e organizado.

Primeiro vamos escolher um nome para o plugin. No meu caso, escolhi “Remove WooCommerce Product Related”, sendo assim, o arquivo php que contém o filtro ficou com o nome remove-woocommerce-product-related.php. Criei uma pasta com o mesmo nome (remove-woocommerce-product-related) e inseri o arquivo dentro dela.

Para deixar o plugin mais seguro, precisamos impedir que o arquivo seja acessado de forma direta, para isso, acrescentamos o seguinte código, no início do nosso arquivo:

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Interrompe a chamada se acessado diretamente
}

Como o filtro é para remover uma funcionalidade do WooCommerce, ele deve funcionar apenas se o WooCommerce estiver ativo. Para isso, podemos fazer a seguinte verificação:

/** Verificando se o WooCommerce está ativado **/
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
    /** Aqui vai o código do filtro **/
}

O código PHP plugin ficou assim:

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Interrompe a chamada se acessado diretamente
}
/** Verificando se o WooCommerce está ativado **/
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
    add_filter('woocommerce_product_related_posts_query', '__return_empty_array', 100);
}

Agora o plugin está praticamente pronto, mas ainda podemos inserir os requisitos de cabeçalho (no topo do arquivo, logo abaixo da tag de abertura do php), que são responsáveis pela exibição do nome, url do site do plugin, descrição, autor, url do site do autor do plugin, versão do plugin, tipo de licença, url da licença, domínio do texto, etc. Temos mais detalhes aqui.

O requisito mínimo é o nome do plugin, mas é interessante incluir o maior número de dados possíveis, como no exemplo a seguir, que utilizei na criação do meu plugin:

 
/**
 * Plugin Name: Remove WooCommerce Product Related
 * Plugin URI: https://github.com/marcos-alexandre82/remove-woocommerce-product-related
 * Description: Removes, globally, related products in WooCommerce.
 * Author: Marcos Alexandre
 * Author URI: https://marcosalexandre.dev/ 
 * Version: 1.0.0
 * License: GNU General Public License v3.0
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Text Domain: remove-woocommerce-product-related
 * Domain Path: /languages
 * WC tested up to: 5.2.2 
 */

Agora que meu filtro se tornou um plugin, porque não disponibilizá-lo no repositório oficial e ajudar outros usuários que também podem precisar desta funcionalidade? Foi aí que pesquisei sobre como fazer e vi que não era um bicho de sete cabeças, como muitos acham que é.

Como a intenção é enviá-lo para o repositório oficial de plugin do WordPress, utilizar termos em inglês é a melhor prática, pois assim ele fica acessível à mais usuários. A seguir temos o código PHP completo do plugin:

Observem que em Text Domain (domínio de texto), utilizei o nome do arquivo do plugin. É através dele que podemos identificar os textos (strings) do nosso plugin, na hora de traduzí-lo.

Por último, precisamos criar um arquivo readme.txt. Este arquivo é o responsável por exibir informações como descrição, dúvidas frequentes, etc. na página do plugin no repositório. Para isso existem duas ferramentas que auxiliam:

Plugin Readme Generator e Readme Validator.

Para enviar o plugin para o repositório oficial do WordPress é necessário ter uma conta no WordPress.org.

Ao fazer o login, basta acessar este link e utilizar o campo de envio no final da página, enviando um arquivo .zip da pasta contendo os arquivos do plugin.

Após o envio, será exibida uma mensagem contendo informações quanto ao prazo de análise do código pela equipe de plugins e a quantidade de plugins que estão na fila. Depois desta análise, se ele for aceito, você receberá um e-mail com o link do repositório SVN do plugin.

É através deste repositório que você irá enviar o código do seu plugin, o ícone e o banner que vão ser exibidos na página do repositório, além de fazer edições no código, para futuras atualizações, se necessário.

O acesso será algo como este exemplo:

Existem algumas formas de gerenciar os arquivos, porém irei abordar inicialmente apenas uma. Se estiver utilizando Windows, podemos utilizar uma ferramenta chamada Tortoise SVN.

Basta fazer o download da ferramenta, instalar, acessar a pasta do plugin no seu computador, clicar com o botão direito e escolher a opção “SVN Checkout”, inserir a URL do repositório SVN, escolher uma pasta no seu computador onde os arquivos serão salvos, clicar em Ok, inserir o nome de usuário e senha (o mesmo do WordPress.org):

Na sequência, copie e cole os arquivos PHP e readme do seu plugin para a pasta “trunk”:

Para inserir uma imagem para a capa do plugin, basta criar uma imagem no tamanho 772×250, no formato JPG ou PNG, com o nome banner-772x250.(jpg|png).

Podemos melhorar ainda mais a exibição da capa, enviando um arquivo com o dobro do tamanho, para exibição em telas com alta DPI (retina). Ainda, como o plugin poderá ser acessado por pessoas que utilizam idiomas com a leitura da direita para a esquerda (RTL), é possível enviar a capa (tanto no tamanho normal quanto para tela retina), com suporte à estes idiomas, ficando da seguinte forma:

Banner normal: banner-772x250.(jpg|png)
Banner normal (RTL): banner-772x250-rtl.(jpg|png)
Alta DPI (Retina): banner-1544x500.(jpg|png)
Alta DPI (Retina RTL): banner-1544x500-rtl.(jpg|png)

Seguindo o mesmo formato, para inserir um ícone para o plugin, basta criar uma imagem no formato JPG ou PNG, no tamanho 128×128, para telas normais, e 256×256 para telas retina. Ainda é possível enviar um ícone SVG:

Normal: icon-128x128.(png|jpg)
Alta DPI (Retina): icon-256x256.(png|jpg)
SVG: icon.svg

Depois de criadas as imagens, basta copiá-las para a pasta “assets”, que vai estar dentro da pasta do seu plugin:

Após inserir as imagens na pasta “assets”, clique novamente com o botão direito na pasta raiz do seu plugin e selecione a opção “SVN Commit”. Insira uma mensagem descrevendo a alteração e clique em OK:

Feito isso, seu plugin já estará publicado e com as imagens na página oficial:

Lista dos links que me auxiliaram na criação do plugin:

Introdução sobre como criar plugin para WooCommerce
Introdução sobre Markdown
Introdução sobre como enviar seu plugin
Planejar, enviar e manter o plugin
Validar Readme.txt
Enviar plugin
Como usar o Subversion
Como funciona o Readme.txt
Gerador de readme
Como enviar ícones e capas para o plugin
Playlist do YouTube sobre criação de plugin e utilização do Tortoise (em inglês)
Como usar o Subversion com o diretório de plugins do WordPress (em inglês)
TortoiseSVN Checkout (em inglês)
Repositório de Snippets
Snippets WordPress
Snippets WooCommerce

Gostou deste post? Tem alguma sugestão sobre ele? Comentem 🙂

Photopea, uma excelente alternativa online ao Photoshop

Para quem trabalha com desenvolvimento, é quase unanimidade a preferência por Linux, que é um sistema baseado no Unix, em que o desenvolvimento é mais fluido. Para muitos desenvolvedores, como é o meu caso, migrar de sistema operacional nem sempre é uma tarefa tão fácil. Nem tanto pela forma que eles funcionam, mas principalmente por acabar não tendo a versão dos programas que utilizamos disponível para o outro sistema.

Apesar de trabalhar muito mais tempo com código, muitas vezes preciso recortar os layouts que recebo dos clientes (arquivos no formato PSD). Para minha tristeza, o pacote Adobe não é compatível, ao menos até a data desta publicação, com o Linux.

Recentemente, descobri através do canal do Diolinux o Photopea, uma ferramenta,que funciona de forma online, ou seja, funciona em qualquer sistema operacional pois roda no navegador, e possui o design muito semelhante ao Photoshop! Tenho testado ela e está me surpreendendo.

O MacOS também é baseado no Unix mas geralmente funciona apenas em Macbooks e iMacs, que custam muito caro para a nossa realidade, embora possuam compatibilidade com o pacote Adobe.

Existem formas de tentar contornar estes empecilhos: fazer um Hackintosh, um procedimento que consiste instalar o sistema MacOS em hardwares não Apple, mas essa não é uma tarefa fácil, principalmente para notebooks. Também é possível utilizar um “simulador” de Windows no Linux, através de programas como o Wine e o PlayOnLinux, para poder instalar no Linux programas rodam apenas no Windows, mas o desempenho deles não fica a mesma coisa.

Além destas opções acima, existem programas Open Source que podem ser usados para substituir os do pacote da Adobe: Gimp (Photoshop), Inkscape (Illustrator), mas a usabilidade, ao menos do Gimp (que foi o que testei), é diferente a do Photoshop, o que complica sua utilização.

E aí, conhece alguma outra ferramenta que possa substituir o Photoshop? Já testou o Photopea, o que achou? Comentem!

O que é memória Optane e o mais importante: vale a pena?

Se você é amante de tecnologias inovadoras já deve ter ouvido falar em memória Optane. Está memória, criada pela Intel, tem o objetivo de acelerar a velocidade dos HDs comuns e atuar como um complemento de memória Ram, porém, atualmente ela só funciona como uma aceleradora de HDs mesmo.

Possuindo capacidades de 16GB, 32GB e 64GB, ela funciona como um cache, guardando informações relativas ao sistema operacional e aos programas que você mais utiliza, fazendo com que eles sejam executados com mais rapidez, porém ele demora um tempo para “aprender” quais os programas que você mais utiliza e a forma que os utiliza, sendo assim, você não perceberá de início uma melhora no seu sistema.

Mas ela realmente vale a pena?

Se preferir uma resposta rápida e pessoal: não! Mas vamos à reposta mais elaborada:

Memórias Optane funcionam através da conexão M.2 (sua placa mãe precisa ter este tipo de conexão) e só tem compatibilidade com processadores Intel à partir da 7ª geração, além disso, sua BIOS também precisa ser compatível com a versão mais recente da Intel Rapid Storage.

Como o preço de SSDs de alta capacidade (1TB ou acima) ainda é alto, utilizar a memória Optane em conjunto com um HD comum, com capacidade de 1TB é uma boa opção, mas ao contrário do que anunciado, o HD não fica com a velocidade de um SSD (geralmente os relatos com relação ao desempenho mencionam que a velocidade dos HDs comum melhora em 200% com o uso da Optane, porém um SSD tem desempenho 5 vezes maior que um HD).

Além disso, se a sua placa mãe precisa ter suporte à conexão M.2, aconselho utilizar um SSD NVMe (se a conexão suportar), pois este tipo de SSD, em sites como o Aliexpress, custam em média R$ 500,00 (para modelos com 500GB de armazenamento que tem em média desempenho 30 vezes maior que HDs comuns) o que na prática é o mesmo valor de uma memória Optane de 32GB (lembrando que este é a capacidade de armazenamento em cache dela).

Pela falta de informações mais claras nas especificações dos equipamentos, é comum confundirmos a memória Optane como memória Ram efetivamente, dando a falsa sensação, ao adquirir um equipamento, de que ela se soma à memória Ram, o que na prática ainda não é assim.

Gostou deste post? Tem alguma dúvida ou sugestão? Comentem abaixo 😉

Conheça o Docking Station, um periférico com muitas conexões

Sempre preferi desktops ao invés de notebook, pela possibilidade maior de upgrade e com um menor custo, porém o notebook tem suas vantagens e uma delas é a mobilidade.

Trabalhar em casa é bom, mas é legal (e porque não diria: recomendado), que ao menos de vez em quando, possamos trabalhar em locais com mais pessoas, como um café ou um coworking e para isso um desktop está fora de cogitação.

Pensando nessa portabilidade, recentemente troquei meu desktop por um notebook. Outro ponto legal foi que os fios das conexões diminuíram muito, embora ainda tenham alguns, pois utilizo uma “estação de trabalho”, com dois monitores auxiliares e duas caixinhas de som para curtir meu pagode sagrado de cada dia, 🙂 .

Além de poder sair de casa para trabalhar, posso aproveitar para trabalhar um pouco na cama, embaixo das cobertas, o que é muito bom no inverno, rs.

Mas uma coisa ainda me incomoda: ter que ficar conectando e desconectando cabo dos monitores, caixa de som, rede (embora ele tenha wi-fi, a conexão cabeada ainda é superior), etc. Foi aí que pesquisando como poderia melhorar conheci o Docking Station, que funciona similar à um hub, com conexões muito além da usb: alguns contam com conexão de rede, hdmi, vga, display port, usb 3.0/3.1, usb 2.0, conexão tipo C, microfone, combo fone/microfone, etc.

Ele funciona ligado à um carregador, similar ao de um notebook. Você conecta tudo nele e o conecta ao notebook, através da conexão tipo C (se seu notebook possuir). E ainda, se seu notebook possui conexão tipo C thunderbolt, pode utilizá-lo até mesmo para carregar seu notebook, pois ele o carrega através da conexão tipo C.

Muito tem se comentado sobre a falta de conexões dos macbook atuais, então para os donos destes equipamentos, as Docking Stations vão além de um acessório facilitador, é um acessório praticamente obrigatório, já que, se não me engano, nem conexão usb os modelos atuais possuem ;( .

Existem vários modelos e consequentemente vários preços. Como virei fanboy meu notebook é Dell, encontrei alguns modelos legais, mas os preços são salgados: variam em média de R$ 700,00 ( Dell Dock – WD15 ) à R$ 1.600,00 (Dell Thunderbolt Dock – WD19TB). Até encontrei um modelo mais barato (Adaptador USB-C Dell DA300), com preço na casa do R$ 300,00, porém ele só permite a conexão de um monitor por vez.

Por ora, diminuí um pouco as conexões utilizando um hub usb e utilizando a saída de áudio do adaptador HDMI/VGA (já que meus dois monitores possuem apenas saídas VGA).

E vocês, também acham ruim ter que ficar conectando e desconectando vários acessórios toda vez que precisa retirar seu notebook da mesa? Qual a solução que encontraram?

Como melhorar a performance do seu PC ou notebook com SSD

Há quase uma década havia adquirido um Macbook White e ele manteve a performance durante muitos anos, mas como todo hardware, uma hora ele começou a ficar obsoleto, apesar de que este prazo foi bem estendido (se não me engano, 4 ou 5 anos).

Quando ele começou a “engasgar” o dólar já estava nas alturas (quando comprei, o dólar custava R$ 1,50 – saudades…) e foi aí que pesquisando o que poderia ser feito encontrei um post do Wendell falando justamente sobre o que eu precisava para melhorar a performance: SSD.

Até então, meu conhecimento sobre a melhora de performance se restringia à trocar de processador, aumentar a memória RAM e até mesmo utilizar dois HDs como se fosse apenas um, dobrando a velocidade dele (RAID 0), mas isso em um notebook era impossível (ao menos eu achava – vou falar melhor depois sobre como podemos utilizar 2 discos simultaneamente em um notebook).

Mac é muito bom, mas está longe de ser algo que possa ser melhorado em muitos aspectos com relação ao hardware inicial. A memória RAM era expansível até 8GB apenas e o processador, para minha tristeza, era soldado na placa mãe (era um Core 2 Duo e minha intenção de migrar para um i7 havia ido por água abaixo).

Até a leitura do post do Wendell eu nunca tinha ouvido falar em SSD e olha que sou um apaixonado por inovações de hardware desde meu curso de informática em 1996, com um potente 486 turbo e um maravilhoso Windows 3.11 (imagine a frustração de saber depois que já existia o Windows 95, haha).

Mas afinal, o que é um SSD e porque ele é melhor do que um HD convencional?

HDs convencionais são em formato de discos e contam com um leitor, “similar” ao funcionamento dos leitores de CDs. Lembra quando queríamos escutar uma faixa 10 em um CD com 20 faixas e tínhamos que ficar esperando o leitor chegar naquele ponto?

SSD (Unidade de Estado Sólido), como o próprio nome já diz, é um tipo de armazenamento sólido, similar aos chips dos pendrives e cartões de memória. Sendo assim, a velocidade de gravação e leitura é muito superior, pois não possui a parte mecânica como os HDs comuns, ou seja, não precisamos esperar que o leitor encontre em qual ponto do disco aquele dado que precisamos está gravado.

Em média, SSDs são até 10x mais rápidos que HDs. Recentemente fiz um teste e em um HD comum, a taxa de leitura e gravação ficava perto dos 100MBs, enquanto em um SSD as taxas beiravam os 500MBs (5x mais rápido, o que já é uma boa vantagem).

Mas esse bônus também vem com um ônus: SSDs são mais caros que HDs convencionais. Com um espaço de armazenamento menor (em torno de 250GB) o valor de um SSD se compara ao valor de um HD de 1000GB.

Então como fazemos com todas aquelas fotos dos churrascos com os amigos que temos em nosso HD comum, se optarmos em trocar para um SSD? Bem, eu aconselharia subir tudo para um serviços na nuvem, como o Dropbox ou Google Drive, mas aí já é assunto para outro post.

Foi então que descobri, também no post o Wendell, outra peça importante criada para suprir este problema: o Caddy.

O Caddy é um adaptador que pode ser utilizado para conectar um segundo HD ao notebook, bastando remover o drive de CD/DVD (que não utilizamos mais, na maioria das vezes), se o seu notebook possuir e utilizá-lo no lugar.

Com ele, podemos manter o HD original, com todos nossos arquivos, e utilizarmos o SSD apenas para o sistema operacional e nossos softwares (que é a parte que realmente importa em termos mais velocidade).

Atualmente existem vários tipos de SSDs: SSD Sata, mSata, M.2 do tipo Sata e M.2 do tipo NVMe, etc. A taxa de leitura dos tipos mSata e M.2 Sata são similares ao SSD Sata, e estão limitadas à conexão Sata, podendo atingir até 600MBs de leitura/gravação. Já os SSDs do tipo M.2 NMVe são conectados através do slot PCIe, cuja taxa de leitura/gravação atinge, em média, 1600/800MBs na geração 2.0 e 3500/2300MBs(como é o caso do modelo Evo 970 Plus da Samsung)na geração 3.0, respectivamente, então, se precisa trocar de máquina futuramente, dê preferência à uma que tenha suporte ao NMVe 😉 .

E aí, o que achou deste post? Comentem, hehe

Como criar uma logo simples em minutos

Quando finalmente criei coragem para iniciar o blog, uma das primeiras coisas que pensei foi: “Será que tento criar uma logo, ou vou acabar levando muito tempo?”.

Como minha intenção é ser o mais rápido e dinâmico possível, pensei em apenas deixar simplesmente o meu nome, mas antes de tomar esta decisão, resolvi pesquisar uns minutinhos pela web e me deparei com o Free Logo Maker, uma ferramenta online, com uma versão free, que fornece diversos ícones em vetores e permite a criação de um logo em apenas alguns minutos \o/.

Claro que está longe de ser uma criação profissional, de forma conceituada, como os materiais que meu amigo Lucas Loiola cria, mas por enquanto acho que vai me atender, rs.

E aí, o que acharam da logo do blog?

Boas vindas ao blog!

Há muito tempo tenho a ideia de criar um blog sobre WordPress, WooCommerce, comunidade WordPress, alguns softwares e hardwares, mas nem sempre me sobrava tempo/coragem, rs. As vezes até mesmo ficava horas apenas pensando em alguns textos, sem nem ao menos rascunhar algo.

Como nós que trabalhamos com tecnologia, a cada dia aprendemos algo novo, escrever no blog também é uma forma de organizar e documentar tudo para uma consulta futura e, de quebra, poder ajudar à todos que também possam ter as mesmas dúvidas.

Sempre tenho conversado com o Daniel Kosmann, com o Felipe Elia e com a Sheila Gomes em nossos encontros mensais e uma das coisas legais que aprendi (e que me encorajou a, enfim, começar o blog) é que não precisamos de um texto enorme, mas sim de um Texto Mínimo Viável (MVT), um conceito muito legal que o Daniel Kosmann criou 😉

Ainda não sei com qual frequência irei escrever, mas sempre que tiver algo novo vou tentar dedicar um tempinho para compartilhar por aqui!

Nos vemos novamente em breve!!


Imagem destacada Designed by Freepik