Blog

  • Rodando sua Primeira Aplicação C no Windows ou Linux

    Rodando sua Primeira Aplicação C no Windows ou Linux

    Sem dúvida uma das melhores linguagens para se começar a programar é C. Uma linguagem baixo nível, que dá para entender bem todos os conceitos de programação, tipos, etc. Uma linguagem procedural e que é utilizada até hoje em diversos softwares modernos, como o Photoshop, o OpenGL, o AutoCAD, dentre outros

    Esta postagem é um complemento ao entendimento bem básico de C e programação.

    C é uma linguagem de programação que precisa ser compilada, isto é, ela precisa ser transformada em um conjunto de códigos que a máquina interpretará para, então, criar um executável. Para fazer isso, a linguagem precisa de um compilador, que é um software que faz esse processado.

    Obs. C é considerada uma linguagem auto-hospedada, pois com ela é possível criar o próprio compilador. Essa característica também é conhecida como linguagem completa.

    Primeiramente, você vai precisar do seu código. Porém, antes de começar, precisamos passar por um pequeno glossário para que não haja confusões acerca de termos:

    • I/O – Denomina-se I/O sistemas que fazem uso intensivo de entrada e saída de dados. I = input, O = output. Dentro da área de computação, a terminação I/O também é usada muito para expressar tecnologias novas de implementação.
    • Editor de Texto – Na área de desenvolvimento é chamado de editor de texto qualquer programa onde você possa programar um código. Geralmente, editores de texto possuem auto-complete, que são dicas que ajudam a programar. Como exemplos temos o Notepad++, o Brackets, o Atom, etc.
    • IDE – Ambiente de Desenvolvimento Integrado. Trata-se de uma ferramenta para desenvolvimento mais ampla do que um editor de texto. Além de inserir um contexto de projeto e não só de arquivos de texto editáveis, a IDE cuida da comunicação interna entre os elementos do código. Ou seja, é um ambiente completo para o desenvolvimento. Como exemplos temos o Eclipse, o JetBrains, o Visual Studio, o Coda, etc.
    • Compilador – O compilador é um programa que transforma o seu código em algo que possa ser interpretado pela máquina. Os microcontroladores compreendem apenas bytecodes, ou outras linguagens de baixo nível indicadas em seus firmwares, de modo que se faz necessário converter o seu código para algo que a máquina entenda.
    • Variável – Trata-se de um lugar que você reserva em sua memória para poder armazenar um dado, como um número, um caractere, etc.
    • Função – É simplesmente um trecho de código com o propósito de executar um procedimento e, geralmente, retornar uma informação.

    Outros termos poderemos ver em artigos futuros.

    Para quem ainda está começando com programação, vamos deixar aqui abaixo um código, onde cada ponto de explicação está incluído como comentário.

    #include <stdio.h>
    // ^ Isto é uma diretiva. Ela serve para poder importar uma biblioteca externa
    // (no caso, uma nativa do C conhecida como Standard I/O).
    // As importações de bibliotecas devem ser a primeira coisa a ser declarada.
    // O # simboliza que isso acontecerá antes de qualquer coisa ser executada pelo programa.
    
    // Isto é um comentário. Você pode colocar duas barras
    // no meio de um código e o compilador irá pular essa linha ou trecho
    /* Você também pode usar /*, caso você queira
    fazer um comentário com mais de uma linha.
    Todavia, você precisa fechar com */
    
    /**
     * Toda a aplicação em C deve ter uma função main() (principal).
     * Você deve ter reparado que este comentário está com uma cor diferente.
     * Convencionou-se que os comentários, antes de funções, devem ser feitos
     * com /** (Isso se chama Comentário de Cabeçalho). Isso indica a IDE que este
     * comentário descreve para quê serve
     * esta função. Isso acaba sendo incorporado a documentação do projeto
     * ou a dica de código mostrado por uma IDE. Você ainda pode usar
     * alguns parâmetros para indicar.
     * Colocar comentários, como este, não é obrigatório, mas faz parte de boas práticas,
     * pois você precisa lembrar o que esta função faz (e certamente, no futuro, você esquecerá),
     * ou indicar a um colega, como usar a função.
     * Por exemplo, esta função (também chamada de método), retorna um inteiro.
     * Logo, eu posso digitar:
     * RETURN :
     *            Type:   int   Resulta zero
     * Isso indicará a IDE e a documentação que a função retornará um inteiro.
     * Essa indicação de comentário de cabeçalho pode variar entre IDEs e linguagens.
     * */
    int main() //A primeira palavra indica o que a função retorna, ou seja, a função,
    // deve retornar um inteiro. Em seguida, coloca-se o nome da função, seguido de ().
    {//Inicia a função (também conhecido como begin)
    
        int aInt = calcular(88,32); // uma variável do tipo inteiro
                                    //(o nome aInt fui eu quem dei), que vai ser preenchido com o
                                    //retorno da função calcular (veja abaixo)
        
        char str[15]; //uma variável do tipo caractere que eu chamei de str.
                      //O [15] significa que ela poderá ter até 15 caracteres.
                      //Vocês ainda vão entender o conceito de vetores.
        
        sprintf (str, "%d", aInt); //sprintf é uma função nativa do C que serve
                                   //para transformar inteiros em caracteres,
                                   //pois só posso imprimir caracteres no console (ou no dispositivo de saída).
        
        str[15] = strcat(str,"\n");//strcat é uma função nativa do C que serve para concatenar.
                                   //Ou seja, juntar uma String (conjunto de caracteres) com outra.
                                   //A String (que significa amarra em tradução livre, ou seja, uma amarra de caracteres)
                                   //"\n" é um modo de dizer ao compilador que ele deve colocar uma quebra de linha
                                   // Usar \n é algo padronizado como quebra de linha em qualquer tipo de texto plano.
                                   // Lembrando que quebra de linha seria o equivalente a dar um CTRL+ENTER, em um texto comum.
        printf(str); //printf é uma função nativa do C que serve para mostrar (imprimir)
                     //algo no dispositivo de saída, no caso, no console abaixo.
    
        return 0; //O retorno da função.
                  //Como a função diz que retorna um inteiro (lá no começo da função),
                  //ela DEVE retornar um inteiro.
                  //Caso você não retorne o inteiro, ela NÃO irá compilar, pois você prometeu que ela retornaria isso.
    }//Finaliza a função (também conhecido como end)
    
    /**
     * Você vai notar que esta função que eu criei, tem uma peculiaridade.
     * Repare que dentro dos parênteses há duas variáveis inteiras.
     * Essas variáveis se chamam parâmetros. Elas servem para que a função possa ser reaproveitada
     * a partir de outros termos que serão chamados acima.
     * Repare, em main(), que eu chamo calcular(88,32), mas você pode mudar para qualquer outro número inteiro.
     * O que o método (ou função), fará é calcular os dois valores que você colocar nos parâmetros.
     * No caso de C, se você não colocar os dois valores, ao chamar a função, o compilador falhará.
     * 
     * * INPUTS :
     *       PARAMETERS:
     *           int     valor                Primeiro somando
     *           int     valor2               Segundo somando
     */
    int calcular(int valor, int valor2)
    {
        int total = valor + valor2; //uma variável inteiro, chamada total, que retorna a soma dos parâmetros valor e valor 2;
        return total; //O retorno do método será um inteiro (como foi descrito no começo do mesmo).
        //Em main(), você pode ver que o retorno deste método retorna uma variável. 
    }

    Você pode simplesmente copiar e colar o código acima em um editor de texto qualquer (como os citados acima). Você pode usar até mesmo o bloco de notas do Windows, ou o Gedit, no Linux. Em, seguida, salve o arquivo com o nome que você quiser, porém, com a extensão .c, por exemplo: meucodigo.c.

    Compilando C, no Windows

    Para poder compilar em C, no Windows, usaremos uma ferramenta de código aberto chamada MinGW (caso deseje testar, pode usar a versão 64 bits do MinGW, porém a versão 32 é compatível com ambos os sistemas). Ao instalar você pode escolher algumas especificações e se quer ou não que ela opere em modo visual (em janela), além da integração com o Explorer.

    Uma vez instalado o MinGW, você precisará selecionar o mingw32-base e mingw32-gcc-g++, pois ele é o compilador C / C++ para podermos trabalhar. Depois disso, basta ir no menu Installation e clicar em Apply Changes e, em seguida, no botão Apply. Ele irá instalar todos os arquivos do compilador que serão necessários para nosso teste.

    Após concluída a instalação, já podemos usar o compilador.

    Para poder compilar o seu arquivo, simplesmente abra o prompt de comando (cmd.exe), do Windows e vá na pasta do MinGW, localizada geralmente em C:\ (ou onde você preferiu instalar). Na dúvida basta digitar o código abaixo:

    cd C:\MinGW\bin

    Em seguida, vamos chamar o compilador e o arquivo que queremos que ele compile. Para isso, basta digitar o nome do compilador, o arquivo a ser compilado, o parâmetro do comando, e o nome final do programa.

    No caso, teremos:

    gcc meucodigo.c -o meuprograma.exe

    Onde gcc é o processo (o compilador), meucodigo.c é o código fonte, o parâmetro -o significa que eu estou indicando qual é a saída e o meuprograma.exe indica o nome final do programa compilado.

    No meu caso, como criei meu código fonte e o salvei dentro de Documentos, eu coloquei:

    gcc C:\Users\rodri\Documents\meucodigo.c -o C:\Users\rodri\Documents\meuprograma.exe

    Como é um pouco chato lembrar e até digitar todo o caminho, uma dica é arrastar o arquivo para dentro do prompt de comando, isso fará com que ele cole o caminho do arquivo.

    Devido a quantidade enorme de comentários e observações no código, é bem provável que ele retorne alguns Warnings (alertas), ao compilar, mas não dará erro. Você poderá testar o resultado do seu programa simplesmente digitando o nome do executável no prompt de comando.

    Compilando C, no Linux

    Para compilar C, no Linux, é ainda mais simples do que no Windows. Dependendo da distribuição do Linux que você utilizar é possível até que já haja um compilador instalado. Vamos utilizar, no exemplo, a compilação de C em uma distribuição Debian, como o Ubuntu ou CentOS, por se tratar de distribuições muito usadas.

    Abra o terminal do Linux e digite:

    sudo apt-get update

    Para quem é novo no Linux, o sudo é um comando que afirma que você vai executar como super usuário, ou seja, com acesso completo ao sistema operacional, e, por isso, ele deverá te pedir a senha. Já o apt-get update serve para atualizar o repositório (fonte de sistemas), de sua distribuição Linux.

    Em seguida, basta digitar o comando:

    sudo apt-get install build-essential

    Esse comando serve para pedir para que seja instalado os elementos principais para compilação de diversas linguagens usadas pelo Linux, inclusive C, assim como todas os seus pacotes de dependências (bibliotecas necessárias para o funcionamento).

    Agora vá até a pasta onde você salvou o arquivo do código, no meu caso está em /mnt/c/Users/rodri/Documents/.

    Para compilar basta colocarmos:

    gcc meucodigo.c -o meuprograma.out

    Onde gcc é o processo (o compilador), meucodigo.c é o código fonte, o parâmetro -o significa que eu estou indicando qual é a saída e o meuprograma.exe indica o nome final do programa compilado.

    Já para executarmos o programa, dentro do terminal, digitaremos:

    ./meuprograma.out

    … e voilà

    Concluindo

    C é uma linguagem muito boa para quem está começando a programar ou está ainda entrando no mundo da tecnologia. Compilar por linha de comando te ajuda a ter uma base ainda melhor para compreender como funciona a compilação de uma linguagem e te dá mais liberdade para usar qualquer compilador, IDE ou editor de texto que você prefira e se adapte.

    Para dar o exemplo no Ubuntu foi usado o Bash do Ubuntu disponível para Windows 10, todavia vai funcionar sem problemas em qualquer distribuição Linux, baseada em Debian, seja em máquina virtual ou em instalação normal. Se você quer saber como instalar o Bash do Ubuntu no Windows 10, acesse nosso artigo a respeito.

  • Portillo Mail

    Portillo Mail

     


    Download
    Considere ajudar um humilde desenvolvedor.

    ou veja a lista de desejos na Steam.

     

    Existem pela internet diversos serviços de envio de emails em lote. Porém, a maioria possui um custo e você não tem exatamente todo controle sobre o serviço.

    Sempre achei que não fazia sentido pagar serviços por fora, quando já temos uma hospedagem e não enviamos todos os emails que temos direito, geralmente não chegamos nem perto disso. Procurei diversas soluções, a maioria eram clientes gratuitos para Windows ou sistemas com poucas opções ou que só eram gratuitos até um determinado ponto. Por que não há uma ferramenta de código aberto para isso? Os que encontrei, que eram realmente funcionais, possuíam muitas complicações e era difícil instalar em uma hospedagem compartilhada simples. A grande maioria exigia o uso de servidor privado.  Pensando nisso, e em alguns clientes que tinham essa necessidade, resolvi criar, no começo de 2015, um sistema que enviasse emails em lote.

    História

    Inicialmente, criei um pequeno sistema, para ajudar um amigo a enviar mensagens de final de ano, muito simples, que enviava emails utilizando o Mail(), do PHP, mas que ficava atualizando a página a partir de um comando Javascript a cada 30 segundos. Esse sistema funcionava, mas não era funcional, pois a máquina tinha que ficar ligada, enviando emails, e era complexo para deixar alguém mais leigo fazendo.

    Então eu pensei: Como será que os sistemas de mailmarketing pagos enviam emails sem derrubar o servidor?

    Pesquisei então as regras para evitar que os emails chegassem como spam, e li questões sobre autenticação do envio, exigência de opção de cancelamento, vi que os emails só poderiam ter um destinatário por vez, dentre outras questões.

    Então percebi que os serviços de mailmarketing, pagos, enviam um email a cada x segundo. Mas, sem acesso ao servidor, e sem ter que mandar o javascript dar um update, como eu poderia enviar emails?

    Então, eu relembrei de um método do PHP chamado exec(), que permite executar funções no servidor. O PortilloMail usa o exec(), para que o apache, do próprio servidor, execute novamente a página de envio. Porém, o servidor pode acabar sendo reiniciado, ou falhar, por não termos controle. Por isso, através de cálculo que resulta no horário do próximo envio, o sistema verifica se o email parou de ser enviado e você pode retomar o envio sem problemas.

    No começo de 2015, resolvi que eu deveria fazer o sistema e, em uma maratona pessoal, criei a primeira versão que foram tendo pequenas atualizações durante o ano. Essa primeira versão, no entanto, ainda era complexa para alguém sem experiência instalar e exigia que configurasse o banco de dados manualmente, que atualizasse o banco manualmente e diversas funções importantes ainda não estavam definidas, nem mesmo importava o .csv. Além de tudo, era feio e havia pouca usabilidade. Porém, funcionava.

    Primeira versão do PortilloMail

    A partir da metade de 2015 até a metade de 2016, me empenhei em um sistema de frente de loja em Java, por isso não tive muito tempo para atualizações. Após finalmente concluir o sistema e homologa-lo, eu retomei o projeto PortilloMail e coloquei mais novas funcionalidades, que resultou nesta nova versão 0.9 (ainda há coisas para uma próxima atualização, para eu considerar 1.0).

    Como instalar o PortilloMail?

    É fácil, é muito fácil, para eu, você e todo mundo cantar junto. E para facilitar ainda mais, fiz um vídeo passo a passo mostrando a instalação. Porém, se você quer fazer isso com mais calma, siga os passos descritos abaixo.

    Você vai precisar, pelo menos, da versão 5.4 do PHP. O método exec(), precisa estar habilitado no php.ini. Se por acaso der falha no envio do email, consulte sua hospedagem para verificar.

    Primeiro, clique no grande botão de download, lá em no começo da página, ou clique aqui. Será baixado o arquivo PortilloMail.zip, que possui todos os arquivos do sistema.

    Agora envie os arquivos para uma pasta no seu servidor / hospedagem. Você pode dar o nome que você quiser a essa pasta. Em seguida, descompacte a pasta.

    Uma vez enviado os arquivos, ainda no seu servidor / hospedagem, configure um novo banco de dados, defina-o um usuário, e dê previlégios a esse usuário. Se você sentir dificuldades em fazer isso, o vídeo acima mostra como fazer isso em uma hospedagem com cPanel. Caso sua hospedagem não possua o cPanel, você pode pedir ajuda ao suporte dela, pois é um processo muito simples.

    Pronto, agora você pode usar o instalador Wizard, do PortilloMail.

    Acesse o seu site, na pasta que você criou, mais “/instalador”. Por exemplo, se seu site é meusite.com, e você colocou os arquivos na pasta /mailing, você deverá acessar:
    http://meusite.com.br/mailing/instalador, no navegador de sua preferência.

    Você passará por todos os passos para a instalação, todas as instruções estarão no próprio instalador e são bem simples, ele é todo guiado. Se ainda sim sentir alguma dúvida, pode ver o vídeo acima onde eu preencho todos os dados.

    Por fim, o sistema irá finalizar a instalação excluindo a pasta instalador. Isso é feito para sua segurança e garantir que ninguém sobre-escreva seus dados. Após o término da instalação, você já pode acessar o sistema, acessando a pasta que você criou anteriormente.

    Como utilizar o PortilloMail?

    Assim que você entrar no PortilloMail, você já cai na página de emails enviados, que vai estar vazia, obviamente. Mas antes de começar a enviar emails, é necessário criar os grupos. Você precisará selecionar um grupo (ou todos) quando for enviar um email. Os contatos ficam armazenados em grupos, por questão de organização.

    Vá na página de grupos e crie o primeiro grupo. Apenas digite um nome e descrição e clique em Salvar. O grupo será adicionado automaticamente. você pode manipular grupos a qualquer momento.

    Agora que você já tem os grupos, você precisa de contatos. Há duas formas de adicionar contatos ao PortilloMail. Você pode adicionar um por um, através da página de contatos, ou você pode fazer o upload de um arquivo .csv.

    Como importar os meus contatos?

    A versão atual do nosso sistema de emailmarketing permite que você importe arquivos .csv. Para fazer a importação acesse a página de configurações.

    A formatação desses arquivos segue a regra “email;nome;telefone”, separado por ponto e vírgula ( ; ).

    Usando o seu aplicativo de planilhas eletrônicas favorito (como excel, calc, numbers), ou um sistema particular, formate seus contatos na ordem EMAIL, NOME e TELEFONE, não precisa colocar cabeçalho.  Exporte para CSV. Caso ele pergunte, selecione para separar as colunas por ponto e vírgula ( ; ), enquanto que as linhas são separadas por quebra de linha.

    Em seguida, escolha o grupo para onde os contatos serão importados. Por fim, selecione o arquivo .csv e clique no botão importar. Aguarde até que o arquivo seja importado e ele retornará a informação com o sucesso e os possíveis erros.

    Enviando Emails

    Hora da diversão, vamos enviar emails. Vá na página de Novo Email, selecione o email de envio e o grupo qual serão enviados os emails. Em seguida, digite alguns emails adicionais, caso você deseje que mais pessoas fora do grupo recebam os emails, e o assunto do email.

    O editor de texto é HTML, então sinta-se à vontade para formatar facilmente o e-mail da forma que você quiser. Utilize a opção Ferramentas>Código Fonte, caso você já tenha um layout pronto que você queira importar.

    Caso deseje fazer o upload de uma imagem, simplesmente vá em Inserir > Inserir/Editar Imagem e clique no ícone de pasta para selecionar a imagem no seu computador e adicionar ao texto.

    Por fim, clique no botão Enviar.

    Você será enviado, então, para uma página de confirmação. Você poderá visualizar o resumo dos dados do email, assim como pré-visualizar o email montado. Por questão de segurança, envie um email teste para você, digitando o email no campo e clicando em Enviar Teste e verifique como chegou. Caso esteja satisfatório, clique no botão Enviar Email e o sistema começará os envios.

    Você pode acompanhar o processo de envio através da tela Emails Enviados. Lá você pode acompanhar o status do envio, verificar quantas pessoas visualizaram o email, verificar quantas pessoas clicaram em algum link do email, ou retomar o processo de envio, caso haja algum problema com o servidor. Ainda é possível acompanhar quando foi enviado o último email do processo ou a hora que terminou os envios, se for o caso.

    Quando o email não foi enviado ou envio foi interrompido

    Quando os emails ainda estão sendo enviados

    Quando todos os emails já foram enviados

    Importante:

    Evite enviar duas ou mais mensagens ao mesmo tempo. Se fizer isso, diminua a quantidade de emails por hora, na tela de configurações pois ele considerará o multiplo de emails de acordo com a quantidade de mensagens que estão sendo enviadas.

    E agora? Qual o próximo passo?

    O PortilloMail não vai ficar parado. Existem planos para novas atualizações, que serão:

    • Cadastro de emails respostas
    • Cadastro de múltiplos servidores de envio
    • Automação no gerenciamento de horários de envio de emails
    • Envio de grupos simultâneos
    • Gráficos
    • Agendamento de Início de envios
    • Outras opções de importação de contatos
    • Versão desktop com envio de dados via FTP
    • Otimização de metadados para especificar tipo de email
    • Melhorias com verificação no instalador

    Caso você tenha alguma sugestão, fique à vontade para enviar um email para rodrigo@portillodesign.com.br, com o assunto PortilloMail. Você também pode buscar ajuda através da nossa página do Facebook, ou através de nosso grupo oficial de design e desenvolvimento.

    Como posso ajudar?

    Considere ajudar um humilde desenvolvedor. Para isso, você pode fazer uma doação, através do PagSeguro, ou ajudar doando um key code da Steam ou de algum aplicativo interessante.

    Veja a lista de desejos na Steam.

    Informações para Desenvolvedores

    O PortilloMail é de código aberto e protegido sob a licença Mozilla. Isso quer dizer que você pode reutilizar o código em projetos privados ou públicos, porém não poderá disponibilizá-lo com outro nome, sem as devidas referências e nem vende-lo. Você pode encontrar o código aberto completo através do GitHub, assim como suas atualizações intermediárias.

    Programadores: Sim, as variáveis e comentários estão escritos em português. Isso vai ser alterado nas próximas atualizações e serão escritos em inglês. O fato é que esse sistema foi criado rápido e com o tempo foi criando proporções maiores. Além disso, programei o sistema em meu tempo livre e o objetivo inicial, ao abrir o código, era ajudar novos programadores em seus estudos. Por esse mesmo motivo, a maior parte do código é procedural e possui lixos. Os lixos do código estão sendo corrigidos com as atualizações.

    Designers: Vocês pode modificar o arquivo css/estilo.css para personalizar a aparência do sistema. Por ter sido desenvolvido apenas por mim, até o momento, e ter que cumprir prazos, o CSS possui muito lixo e baixo reaproveitamente. Isso será melhorado com as futuras atualizações. Não foi utilizado nenhum tipo de framework CSS (sou contra) e seu uso será otimizado com futuras atualizações.

    Por favor, não retire a mensagem Powered By PortilloDesign, no rodapé.

    Obrigado por utilizar o PortilloMail. Seu feedback é o mais importante. Visite e leia mais do blog para notícias e informações sobre novos projetos.

  • Como instalar nativamente o Bash do GNU/Linux no Windows?

    Como instalar nativamente o Bash do GNU/Linux no Windows?

    Uma das melhores características do GNU/Linux é seu terminal. Ele permite de forma simples e rápida executar e configurar ações e servidores que agilizam e permitem o uso e desenvolvimento de aplicações web e serviços. Apesar de possuir o PowerShell, o programador pode querer usar soluções Linux em seus testes e ambiente de desenvolvimento.

    Pensando nisso, a Microsoft implementou uma forma de trazer o bash de algumas distribuições como subsistemas para o Windows. Basicamente isso significa que você pode ter uma distribuição GNU/Linux instalada em seu sistema operacional de forma integrada. Ou seja, funcionando como um sistema nativo e não em uma máquina virtual, economizando assim recursos da máquina e mantendo um acesso mais rápido.

    ATUALIZADO

    Nas versões atuais do Windows 10, a instalação do bash GNU/Linux é muito mais simplificada.

    Basta primeiro você ir em iniciar e buscar por Ativar ou Desativar Recursos do Windows.

    Iniciar - Ativar ou Desativar Recursos do Windows

    Ao abrir, procure e marque a opção Subsistema do Windows para Linux. Você vai precisar reiniciar o computador logo em seguida.

    Subsistema do Windows para Linux

    Após reiniciado, abra a Windows Store e na busca digite Linux. Você encontrará várias opções de subsistemas que você pode instalar em seu computador. Selecione o que você quiser e instale.

    Windows Store - Aplicativos de Subsistemas para Linux

    Dica: Caso você procure por uma versão específica, na busca da Windows Store digite o nome da distribuição de seu interesse.

    Após instalar da loja, você vai notar que há um novo aplicativo no seu menu iniciar, referente a distribuição que você instalou. Ou você pode iniciar seu prompt de comando e digitar bash.

    Assim que você abrir o aplicativo, ele irá avisar que vai baixar o sistema operacional escolhido. Em seguida, você deve definir o login e senha de administrador.

    E, pronto! Você já pode usar o susbsistema GNU/Linux em seu Windows.

    Dica: caso você entre pelo BASH e queira entrar dentro do drive C:/ do Windows, digite “cd /mnt/c” (sem aspas) e você será encaminhado para o drive C:/.

    A partir de Outubro de 2017, se você atualizar para a versão Falls Creators Update,  não é mais necessário ativar o modo de desenvolvedor para usar o Ubuntu no Windows. Agora, caso você esteja com o Windows atualizado, basta abrir a loja da Microsoft e adquirir gratuitamente o Bash do Ubuntu. Clique aqui para poder acessar a loja diretamente ou clique na imagem.Caso você não tenha essa atualização, continue o tutorial abaixo.

    Após instalado, sempre que quiser usar o terminal do Linux, simplesmente vá no menu iniciar e digite “bash”, dessa forma, ele já abrirá no terminal nativo. Particularmente, eu prefiro abrir o prompt de comando e digitar “bash” (sem aspas) e ele iniciará o Ubuntu já dentro da pasta atual do Windows (no caso, Usersnome_usuario. O Ubuntu fica ligado nativamnete no Windows, não se trata de uma máquina virtual, então todos os recursos são compartilhados e o acesso é direto.

    Dica: caso você entre pelo BASH e queira entrar dentro do drive C:/ do Windows, digite “cd /mnt/c” (sem aspas) e você será encaminhado para o drive C:/.

    Loja da Microsoft com o Bash do Ubuntu

    Usuários da versão Estável do Windows

    Desde sua última atualização, em 2016, o Ubuntu pode ser instalado nativamente dentro do Windows 10 e trabalhado através de seu bash. Para que isso acontecesse, a Canonical e a Microsoft fizeram um acordo que gerou até certas piadinhas, sobre o quanto ele é aprofundado. O fato é que utilizar o bash do Ubuntu dentro do Windows ajuda muito desenvolvedores a realizarem certas atividades que antes necessitavam de programas de terceiros, como acesso SSH, SCP, funções como wget e apt-get, dentre outras. Este tutorial tem por objetivo ajudar aqueles que desejam usar o Linux profissionalmente, dentro do Windows, ou apenas experimentar o sistema do pinguim.

    A primeira coisa que deve ser feita é colocar o Windows em modo desenvolvedor. Não se preocupe se você usa o Windows 10 Home, que ele também possui essa opção. Abra as Configurações do Sistema ou simplesmente digite “desenvolvedor”, na barra de buscas. Será necessário reiniciar o computador, após colocá-lo em Modo de Desenvolvedor.

    Modo de desenvolvedor

    Uma vez com o modo de desenvolvedor aberto, vá até o menu iniciar e digite “Ativar ou Desativar Recursos do Windows”. Você também poderá acessar essa tela a partir do Painel de Controles convencional (aquele que existe desde o Windows 98) e ir em Adicionar ou Remover Programas. A opção de recursos do Windows, será a primeira.

    Procure pelo recurso: “Subsistema do Windows para Linux (Beta)”, marque, dê OK e aguarde ele fazer o download, algumas atualizações ativar o recurso.

    Ativando Subsistema do Winodws para Linux

    Agora basta você abrir o prompt de comando do Windows 10. Assim que o prompt abrir digite: “bash” (sem aspas), e ele iniciará o Download do Ubuntu (até então o 14, mas podem ter atualizado). É possível que ele peça para você confirmar algumas coisas (com sim ou yes), confirme tudo o que for necessário. O download poderá demorar um pouco, pois se trata de uma instalação completa do sistema, então tenha paciência ou uma boa conexão de internet.

    Digitando bash no Terminal

     

    Rodando o Bash do Ubuntu no Windows 10

  • Experimentando o Adobe XD

    Experimentando o Adobe XD

     

    A Adobe lançou o preview do Experience Design. Trata-se de uma aplicação para que designers de interação possam criar leiautes e protótipos para webapps e aplicativos mobile. Atualmente a versão preview está disponível apenas para MacOSX, porém foi prometido uma versão para Windows até o final do ano (2016). No site da Adobe você poderá se cadastrar para pegar o preview para Windows assim que sair. Vale lembrar que você precisa ter uma conta válida da Adobe para poder usufruir do aplicativo.

    Uma informação interessante é que o responsável pelo projeto é o brasileiro, Demian Borba, famoso no Brasil por trazer o Adobe e o FlashCamp, além de ter sido representante principal do BlackBerry há alguns anos. O Demian Borba sempre foi envolvido com design de interação, desde a época do desenvolvimento de RIAs com o Flex.

  • O Ladrão de Templates Grátis

    O Ladrão de Templates Grátis

    Outro dia andei discutindo com um rapaz pelo Twitter porque ele usa templates free, ou “piratas”, instala em um WordPress e assina como se ele fosse o designer (ou desenvolvedor) responsável. Isso se repete em todos os sites que ele fez, inclusive no seu próprio. Não fez nem questão de mudar uma cor ou uma forma. O problema é que essas pessoas revendem os sites para clientes. Alguns até compram, mas também somente para revender. A discussão começou por conta de uma notícia antiga, sobre o bispo que disse que, para manter seu blog, gasta mais de 107 mil reais por mês e ainda pediu ajuda dos seus seguidores para manter.

    Você sabe quanto custa ser um designer? E quanto custa ser um programador? E pior! Sabe quantas pessoas fizeram faculdade (ou até autodidatas), estudaram muito, fizeram bons cursos e/ou leram bons livros? Pois é… mas para alguns, isso não tem valor.

    Porém, esse rapaz não foi o primeiro a fazer esse tipo de trambicagem. Empresas estão se fortalecendo baseado nessa ideia absurda. Isso está acontecendo muito com gráficas rápidas, que resolvem vender sites para aumentar sua renda. O problema é que elas geralmente não fazem os sites, mas pegam templates grátis e trocam o “desenvolvido por”. E nem tomam o cuidado de disfarçar e no código, podemos até ver o nome dos templates.

    Euclides Site

    Na imagem abaixo, vocês podem ver um detalhe de uma das conversas que eu tive com uma ex-aluna de mídias sociais que trabalhava em uma empresa que fazia esse tipo de “trabalho” (ocultei o nome e a foto porque ela não necessariamente é a responsável, mas uma funcionária).

    Conversa sobre Templates

    Depois dessa conversa ela me bloqueou. Ela e seus colegas de trabalho. Porém, eu fui na página do Facebook deles e deixei uma mensagem “bonita”. Claro, que eles apagaram, aí eu deixava de novo. Mas na terceira vez fiz melhor. Resolvi colocar no Twitter dos clientes deles um link para o site original de onde eles pegavam os templates. Infelizmente, é comum que essas mesmas empresas que prestam esse serviço são quem tomam conta das mídias.

    O Site de um rapaz, chamado Nilton Câmara (que foi a vítima), foi um dos maiores exemplos de cara de pau de uma prestadora de serviço da área de tecnologia. Realmente não mudaram nada, nem uma cor ou um símbolo, e ainda colocaram no canto: Website Design by Conhecimento Digital. Copyright 2012.

    Nilton Camara Site

    Afinal, qual o problema disso?

    Primeiro lugar, vamos a questão ética. Você gostaria de comprar um iPhone 6 da Samsung? Eu sei que a pergunta parece absurda, mas é isso o que acontece. Simplesmente, ao invés de fazer um produto novo, está sendo terceirizado um serviço oferecido. Se você soubesse que poderia ter algo totalmente genérico a um preço muito mais baixo, ou até de graça, você pagaria por essa mão de obra inútil?

    Ainda na questão ética, assinar um projeto de outra pessoa é certo? Imagina se eu assinasse um site feito por outra pessoa, um quadro feito por outro artista. Isso não seria correto e traria grandes problemas para o comprador, que acha que está adquirindo um produto original, quando na verdade, é genérico.

    Segundo, os problemas legais. Terceirizar serviço (quarteirizar) oferecido é ilegal! Eu mesmo já processei uma empresa por isso, e ganhei, sem discussão. Não se pode oferecer um serviço e pagar outra empresa para fazer. Tanto que, no meu caso, resolveram mudar o nome e o tipo de serviço para consultoria. Além disso, isso fere os direitos de propriedade intelectual, que é irrevogável! Isso mesmo, não pode ser repassado para ninguém. A propriedade intelectual garante a autoria de projeto, o que é diferente dos direitos comerciais. O autor pode abrir mãos de seus direitos comerciais, mas não pode se abdicar do intelectual. Roubar a autoria do projeto de outro também é ilegal.

    O que isso traz de ruim para o cliente e para a prestadora de serviços?

    A contratante pode se sentir lesada, pois comprou, muitas vezes, um projeto original. Além disso, o leiaute de uma empresa, instituição ou órgão, deve seguir uma identidade corporativa que é definida em todos os projetos gráficos. O SEO desses templates geralmente não são dos melhores e a semelhança desse site com outros templates genéricos também não são bem trabalhados e podem dificultar o encontro do site pelo Google.

    A prestadora de serviço, além do fato da ilegalidade, também está perdendo experiência e estabilidade no mercado. Tornar-se-á pouco confiável.

    Mas como deve ser feito então?

    Existem 3 formas corretas de trabalhar corretamente com isso:

    1. Criar um Layout e Template Original;
    2. Modificar um Template Free existente, dando devida referência ao template original e deixando claro ao cliente que é uma alteração;
    3. Usar um template free ou pago, mas dar a devida referência ao autor e não ter nenhum lucro direto com isso.

    O site da PortilloDesign usa um CMS próprio, criado por nós, que prentendemos abrir o código futuramente. Porém, também trabalhamos com outros CMSs em alguns clientes, onde todos os sites são montados primeiro no Photoshop e depois implementado no código referente ao CMS escolhido. Cada template é único e pensado para a necessidade e estética de cada cliente. Os layouts não aprovados são jogados na lixeira para que não sejam reaproveitados.

    O blog The Pink Geeks usou um template modificado e as garotas colocaram no rodapé a assinatura junto com os criadores do template original, por exemplo. O Mesmo acontece com o site do E-Farsas, onde ele coloca: “Tema modificado do FabThemes.com”

    Exemplo Geek Pink

    Não tem problema nenhum em usar um template free, só deixe no rodapé o autor original e não cobre por algo autêntico, somente pela modificação que fizer. Não mude a autoria do trabalho, isso não vai desmerecer de forma algum o seu conteúdo. Todas as pessoas confiáveis precisam ser transparentes.

    Concluindo

    Não existe um real monitoramento, registro, fiscalização ou cadastro de empresas e profissionais de TI. Da mesma forma, não existe uma fiscalização sobre o que eles fazem. Existem muitas leis sendo criadas para defender pessoas que aparecem peladas na internet, ou um ou outro xingamento preconceituoso. Mas a parte de negócios continua sendo terra de ninguém. Pessoas disfarçadas de profissionais continuam tripudiando empresários e blogueiros que querem melhorar o seu trabalho.

    Vale lembrar de que de forma alguma você pode pegar um template pronto e simplesmente revender, ou modificar e revender, se você foi contratado para fazer o site. Se a ideia é modificar algo pronto, então deixe isso claro e revelado como o serviço. Lembre-se que terceirização de serviço oferecido é ilegal e anti-ético.

    Existe até uma ferramenta especializada em verificar se o site usa um template comum ou não, para WordPress:
    http://www.wpthemedetector.com

    Mas o que vocês acham disso? Tem uma opinião diferente sobre a ética nesse caso? Deixe sua opinião.

  • Conhecendo o Adobe Capture CC

    Conhecendo o Adobe Capture CC

    Você conhece o Adobe Capture CC? É um aplicativo mobile criado pela a Adobe que permite capturar informações do mundo real para serem usadas dentro de sua biblioteca da Adobe.

    Ele é a união do Adobe Color CC (antigo Kuler), Shapes, Brushes e Hue em um único aplicativo, porém com melhorias consideráveis.

    Através do Capture CC você pode criar novos pincéis, vetorizar desenhos reais, criar paletas de cores e filtros para fotos. Os objetos gerados são compartilhado a partir da biblioteca do Adobe Creative Cloud e pode ser utilizado em programas como Photoshop, Illustrator, InDesign, Premiere e outros, além dos apps móveis.

    O Adobe Capture CC está disponível para iOS e Android para todos que possuem a suite Adobe profissional ou estudante.

  • Fidelizando as Cores de Impressão

    Fidelizando as Cores de Impressão

    Quem nunca imprimiu uma cor e apareceu outra completamente diferente? Cada dispositivo possui um modo diferente de interpretar as cores. Este artigo foi feito para explicar como funcionam as cores e como garantir uma melhor fidelidade entre tela e impressora.

    Existem várias formas no mundo de se gerar cores. É possível misturar tinta, luz ou simplesmente causar uma ilusão de ótica por aproximação. Quimicamente, aprendemos, ainda no pré-escolar, o conceito de cores primárias, onde misturamos o azul, vermelho e amarelo para ter as cores secundárias e terciárias. Todavia, o conceito de cores primárias mudam de acordo com o meio em que a cor vai ser exibida. Para compreender quais são esses modos de cor, precisamos primeiro entender como funcionam os principais dispositivos usados por designers gráficos, para geração de cores, os monitores e as impressoras.

    Cores Primárias nas tintas

    Monitores

    A grande maioria dos monitores e displays LCDs usados hoje em dia ainda trabalham da mesma forma, mas com tecnologias diferentes que foram sendo implementadas conforme a evolução tecnológica e barateamento dos custo de produção. Basicamente, tratam-se de filamentos de metal acomodados em uma grade matricial. Cada campo dessa matriz possui 3 partículas de cristais líquido, que ao serem eletricamente estimuladas adquirem a característica de absorção de uma determinada área do espectro de luz e se solidificam, deixando vazar o restante. Cada uma das 3 partículas é responsável por deixar passar um pedaço do espectro, baseado no que chamamos de cores primárias da luz, que são vermelho, verde e azul (RGB). Aumentando ou diminuindo a solidificação, mais luz ou menos luz é absorvida. Porém, o cristal líquido não emite luz própria e, por isso, precisa ser retro-iluminado por uma luz branca, que vai ser filtrada por pelo LCD.

    Lembrando que essa é um explicação bem simplificada e o que diferencia na qualidade das cores, hoje em dia, é o tipo de retroiluminação. Aí se é OLED, AMOLED, IPS, é uma outra história.

    LCD visto de Perto

    Impressoras

    As impressoras, diferente dos monitores, jogam tinta (ou produzem tinta a partir de pigmentos) em pontos muito, muito próximos, mas não chegam a misturar os pigmentos (a não ser que ele sobreponha uma tinta na outra, mas isso não é bem misturar). Esses pontos, chamados de retículas, são fixados no papel (ou no material escolhido), que de tão próximos faz parecer que eles formam outra cor. Isso funciona porque a luz do ambiente, quando bate nesse pigmento, absorve um intervalo do espectro de luz e reflete outro. Esse intervalo chega aos olhos e são interpretados. As cores básicas para impressão são ciano, magenta e amarelo, que, por justamente ser reflexão e não emissão, são as cores secundárias do RGB (e vice-versa). Todavia, como os tons não emitem feixes, mas sim os refletem, eles acabam sendo mais fracos que as cores dos monitores, dependendo da quantidade e tom de luz do ambiente para prover uma boa leitura. Quando colocamos pontos cianos, magentas e amarelos próximos, temos uma sensação amarronzada, meio acinzentado escuro e, por isso, é necessário um complemento de pigmento preto, tornando o conhecido CMYK (onde K, outrora chamado de Bk, é uma letra usada para se diferenciar do Blue, representa o blacK).

    Meio Tom em CMYK

    Concluímos dessa forma que os monitores trabalham com modelos de cores aditivos (geralmente o RGB), por adicionar luz, e o impresso com modelos de cores subtrativos (geralmente o CMYK), por retirar luz.

    Deixar RGB para monitor e CMYK para impressão é suficiente para fidelidade das cores?

    A resposta é não. Isso porque você deve levar em consideração diversos outros fatores. Cada aparelho é de uma marca diferente e possui uma tecnologia diferente e ainda é calibrado de uma forma diferente. Essa forma diferente de calibração acaba causando diferenças que muitas vezes comprometem o resultado do trabalho.

    O designer deve, em primeiro lugar, calibrar o sue monitor. Essa calibração é feita de forma pessoal, e depende do ambiente em que você trabalha e da capacidade de seus olhos de interpretar as cores. Para fazer a calibração, geralmente usa-se um aplicativo próprio do sistema operacional. Essa calibração gera um arquivo icc, ou icm, que é conhecido como Perfil de Cores.

    Calibração de Cores no Mac e Windows

    Gamut de Cores

    Cada aparelho possui um perfil de cores padrão. Se você abrir agora o gerenciador de cores do sistema operacional, poderá ver alguns perfis de cores configurados. Isso é necessário porque cada equipamento tem uma quantidade diferente de cores que pode gerar / interpretar, dependendo de sua tecnologia. Essa quantidade de cores é representada em um mapa de cores o qual chamamos de GAMUT. Que não somente são diferentes entre si por quantidade, mas também por capacidade de exibição de determinadas cores. Por exemplo, o gamut CMYK, por padrão, é menor do que o RGB, mas possui uma quantidade muito maior de variações de amarelo do que o modelo aditivo. O que usamos para atingir esses tons que estão fora do gamut do CMYK, e até do RGB, na impressão, é a adição de Cores Especiais, que são tintas ou pigmentos fabricados com uma cor específica e, geralmente, somados ao CMYK.

    Gamut - Comparações

    Porém, essa diferença de cores gera uma problemática muito grave que é a diferença absurda de cores entre dispositivos diferentes, mesmo que seja do mesmo modelo. Para web, por exemplo, quando queremos que todos os monitores exibam as cores mais próximas possíveis do planejado, utilizamos as Cores Seguras, que, por conta dessa necessidade, acaba por diminuindo ainda mais o gamut de cores utilizáveis.

    Web Color Safe

    Fidelidade de Cores

    Para garantirmos uma melhor fidelidade de cores na impressão, precisamos configurar o nosso dispositivo de produção para que tenha o mesmo perfil de cores que o dispositivo de impressão. Ou seja, precisamos configurar o gerenciamento de cores de nosso software de edição gráfica com o perfil de cores da impressora. Obviamente que precisamos saber, enquanto estamos produzindo o material finalizado, em qual gráfica será impresso. Para conseguir esse arquivo, o melhor é você ligar para a gráfica

    – Gráfica Enrolada, bom dia! Em que posso ajudar?

    – Olá, eu gostaria de saber qual o procedimento para impressão e se vocês podem me mandar o perfil de cores.

    – Ah, um momento que vou perguntar para o pessoal de produção.

    (música de Beethoven)

    – Senhor, é só enviar em CMYK mesmo.

    – Não, não, amiga, estou querendo saber qual o perfil icc, queria que vocês me mandassem para eu poder trabalhar melhor nas cores.

    – Um minuto, Senhor.

    (música de Beethoven)

    – É isso, mesmo, CMYK.

    – Tá OK, obrigado.

    Se isso acontecer com você, troque de gráfica. Se por acaso for uma gráfica parceira, vá até lá e explique o que é um perfil de cores. Muitas vezes, esses perfis de cores são geradas durante a calibração da impressora e podem mudar de calibração para calibração e até com a marca da tinta/pigmento que a gráfica utilizar.

    Todavia, pode acontecer de gráficas seguirem padrões. Nas configurações dos aplicativos Adobe, vocês poderão ver padrões de perfis de cores CMYK, como FOGRA 39, US WebCoated, dentre outros. Se a gráfica mandar o perfil de cores, vocês devem carregar o perfil de cores CMYK em seus softwares gráficos para finalizar as imagens, se elas indicarem um padrão, basta selecionar qual padrão ela pediu. Atenção que vocês devem também configurar também o Cinza, para garantir a fidelidade de preto, de acordo com as indicações da gráfica. Lembre-se de também atribuir o perfil de cor RGB de seu monitor (ou o que você calibrou), caso esteja trabalhando com um impresso.

    Photoshop - Configurações de Cor

    Perfis de Cor Incorporados

    Arquivos de imagem possuem perfis de cores incorporados, por padrão. Então, quando forem utilizar um software gráfico de impressão, vocês devem incorporar o perfil que está configurado no aplicativo ao arquivo. Quando você incorporar (ou converter) para o perfil de impressão, na mesma hora o software irá reconfigurar a calibração de cores e se adaptará ao do perfil, mudando as cores da imagem, tornando-a mais próxima possível ao resultado impresso.

    A imagem deve ser finalizada já com o perfil incorporado, fazendo as adaptações necessárias nas cores e luminosidade.

    Comparação de Perfil de Cores CMYK

    Incorporações de Perfis na Exportação do InDesign

    Uma vez com seu arquivo finalizado e todos os perfis de cores configurados nas imagens que serão utilizadas pelo InDesign, a exportação para PDF (que é o mais comum) também deve se atentar a incorporação do perfil de cores. Ao exportar, na guia Saída, deve-se marcar para converter em destino. Essa opção não é 100% necessária, se você configurou corretamente antes o InDesign enquanto trabalhava, e os arquivos de imagem já tem incorporados os perfis, mas é uma segurança a mais que tudo vá correr bem. O destino escolhido, obviamente, deve ser o perfil CMYK que foi enviado / recomendado pela gráfica. Por padrão, o InDesign já deixa marcado para incluir o perfil, o que, obviamente, é o mais recomendado de se fazer.

    Exportação em PDF - Cores - InDesign

    Concluindo

    Se você busca fidelidade nas cores de impressão, fique atento a manter sempre o seu monitor calibrado e bem configurado. Se usa Windows, lembre-se que o monitor deve ser instalado ou reconhecido, nada de Monitor Plug And Play. Faça regularmente calibragem no seu ambiente de trabalho e sempre incorpore os perfis de cor enviados / recomendados pela gráfica em seu material impresso.

    Lembre-se que a cor é essencial para um projeto gráfico, e para atingir o resultado esperado, você precisa planejar e reconhecer muito bem a cor.

  • Introdução ao Adobe Character Animator

    Introdução ao Adobe Character Animator

    O Adobe Character Animator é uma nova Ferramenta da Adobe que tem por objetivo facilitar a criação de animação de personagens 2D. Ela funciona tanto como extensão ao AfterEffects quanto em um aplicativo separado.

    Para criar as animações, é utilizado um sistema de reconhecimento facial que detecta os detalhes do rosto e os converte em pontos de controle. Esses pontos são importados para uma personagem feito a partir de camadas do Photoshop ou do Illustrator e, com um conjunto de informações pré-estabelecidas pelo animador, gera o movimento na imagem. A voz também é importante para essa animação, pois o sistema de reconhcimento de som detecta as vogais que podem ser relativadas a diferentes aberturas da boa da personagem.

    Algumas pessoas que são inscritas no programa de pre-release e beta receberam o convite para testar as builds de pré-lançamento do Projeto Animal (codenome do projeto). Nós recebemos esse convite e a primeira coisa que fizemos foi verificar as permissões do que podemos divulgar.

    Como o projeto foi divulgado oficialmente no dia 8 de Abril de 2015, já podemos divulgar bastantes coisas, inclusive tutoriais, vídeos explicativos, exemplos e os resultados finalizados.

    Então se quer saber dicas, tutoriais, ou se simplemente tiver alguma pergunta, deixe aqui um comentário que faremos mais vídeos e fotos explicativos sobre o Projeto Animal, da Adobe.

    Introdução ao Character Animator

    Tutorial Character Animator Básico