domingo, 21 de fevereiro de 2016

Desktop Publishing - Seu Currículo com LaTeX e xMind

Concordo que criar um currículo não é uma tarefa das mais fáceis. Primeiro que isso não se aprende na escola, segundo que existem milhares de modelos disponíveis, terceiro que existem milhares de regras de conduta para um currículo e quarto que ele deve refletir muito bem o profissional que você é e qual imagem deseja passar. Anote a primeira regra: Um currículo é a sua foto. E por esse motivo, um currículo não deve ter foto (a menos que essa seja solicitada).


Não pretendo falar aqui sobre dar dicas como criar seu currículo (ainda mais porque já fiz isso nessa postagem), o que pretendo aqui é lhe dar um Modelo Pronto para que possa criar seu currículo sem erros ou perda de tempo. Esteja consciente que para isso vamos utilizar duas ferramentas: o LaTeX e o xMind.

Porque não o MS-Office ou OpenOffice? Porque a função principal do LaTeX é a geração de documentos profissionais, e quer algo mais profissional que seu currículo? Esse currículo vale para 90% dos profissionais de quaisquer áreas. Esses 10% que sobra é que este currículo não serve se deseja um cargo que envolva Criatividade, o objetivo aqui é ser muito "sóbrio" e sem muita "criação". Entenda essa diferença com esse modelo de uma Profissional em Marketing.


Este é um currículo tremendamente criativo, não poderia copiá-lo? Não, ser criativo no currículo é ser único então se esta é sua área crie seu currículo e não copie. Outro detalhe, não quero que pense que ser "sóbrio" é ser sem graça, existem toques de criatividade que são permitidos, usaremos o programa xMind para nos auxiliar na criação de alguns Mapas Mentais.

Vamos a primeira parte, baixe os seguintes arquivos necessários para nossa montagem:
Coloquei meu currículo aqui apenas para servir de exemplo e possa ver como ficará o resultado final.

Segunda parte é com o programa xMind é usado para a criação de dois Mapas Mentais, o primeiro é o tradicional no qual colocará todas as tecnologias que conhece por área não parta de um modelo pronto escolha o Mapa que melhor reflete suas características e a disposição entre elas. O segundo é uma linha do tempo, no qual usará a template disponível para criar um resumo de seu histórico profissional durante os anos. Gere duas imagens (uma para cada Mapa) e guarde-as.

A terceira parte é com o LaTeX, para isso é necessário colocar na mesma pasta os dois arquivos disponibilizados e as duas imagens geradas no passo anterior. Agora vamos começar realmente a construir nosso currículo. Pense que um currículo deve responder 3 perguntas:

  1. Quem sou?
  2. O que conheço?
  3. O que fiz com o que conheço?

Para colocar realmente a mão na massa, abra o Modelo do Currículo no seu editor de LaTeX e procure por:
\thispagestyle{empty} % Esta página não possui cabeçalho
\name{ZEZINHO DA ZEZA\\[10pt]}
\address{{\bf Cidade} -- Bairro \\
  Tel. (61) 9999.9999 \\  Tel.Contato (61) 9999.9999}      
Troque para seu nome e seus dados. Esqueça esse negócio de colocar Nº RG ou CPF, Carteira Profissional, Carteira de Habilitação ou outra informação irrelevante, tipo Casado, Pai/Mãe de 2 lindos filhos, Heterossexual, Não Homofóbico, Evangélico... Confesso que já vi as coisas mais bizarras.

Em seu Resumo Profissional fale "quem é você?" a pior coisa que pode fazer aqui é errar o português então MUITA ATENÇÃO neste detalhe. Segunda pior coisa é falar coisa que não deve (quer ser engraçado arrume um emprego de comediante) ou algo que não condiz com seu cargo. Terceira pior coisa é fazer o leitor se perder por divagar demais.

As próximas seções são relativas a seus conhecimentos, em Habilidades, deixei formatado no modelo a forma como ficaria se fosse apenas texto, porém se criou um Mapa Mental com as tecnologias que conhece é hora de usá-lo. Troque esta seção para:
\section{HABILIDADES}
\vspace{120pt}
\includegraphics[width=0.4\textwidth,natwidth=550,natheight=300]{tecnologias.jpg}
Esses 120pt de espaço vertical dependerá de muitos fatores, entre eles o tamanho do seu mapa, então ajuste até se encaixar corretamente.

Em Certificações e Títulos, Educação e Idiomas não é para colocar TODOS seus diplomas mas os mais importantes em cada área. Esqueça aquele curso de Panquecas que fez no final de semana ou a participação nas aulas de Yoga, básico em algum idioma é proibido (por exemplo, sei o básico de Esperanto mas não me arrisco a sequer tentar falar isso) e em Educação coloque Ensino Fundamental apenas se não possui o Ensino Médio, e se possui Graduação comece a partir dai. Coisas óbvias é que ninguém quer saber se foi Campeão no Torneio de Palitinhos da Escola ou se conseguiu capturar todos os Pokemóns no jogo... já disse, vi as coisas mais bizarras.

As próximas duas seções são as mais importantes pois provam todas as anteriores. Ou seja, tudo tem que casar. O principal detalhe de um currículo é sua COERÊNCIA, não adianta colocar que fez um curso de PHP se a vida toda trabalhou com Java. Por exemplo, fiz um curso de 4 meses de Desenho Web, isso mesmo, muito tempo e dinheiro investido, porém abra meu currículo e verá que não tem absolutamente nada indicando isso. Por que? Não é meu foco. Fiz este curso pois desejava me aperfeiçoar na correta criação visual de um sistema e não porque almejo ter o cargo de Desenhista Web em uma empresa.

Acima do Histórico Profissional usaremos a segunda imagem respectiva a Linha do Tempo. Para tanto adicione o seguinte comando:
\section{HISTÓRICO PROFISSIONAL} % Da mais nova para mais antiga
\vspace{8pt}
\includegraphics[width=0.4\textwidth,natwidth=550,natheight=300]{experiencia.jpg}

% Mais Recente
A ideia é permitir o leitor uma visão rápida sobre da vida profissional. Outro detalhe aqui tenho mais de 25 anos de experiência, porém restringi meu currículo a 2004 para frente. Por que? A tecnologia mudou e não adianta ter um currículo com milhares de páginas com coisas antigas. No Linkedin mantenho toda minha carreira profissional e para a existência da última seção Maiores Informações e onde o leitor pode achar mais detalhes sobre seu trabalho. Nada de perder o foco, mantenho dois blogs de Música e de Literatura e ambos não estão no meu currículo.

Se profissional é ter foco e coerência naquilo que se deseja para sua carreira. Vejo bons profissionais não conseguirem uma simples entrevista por terem um péssimo currículo: mal escrito, mal formatado e mal feito. Use esse modelo e não perca mais nenhuma chance.

Obrigado e até a próxima
Fernando Anselmo

domingo, 14 de fevereiro de 2016

REST - YO com MEAN

Acredito que nesse último ano você não tenha vivido em uma caverna e já deve ter ouvido falar de MEAN, isso é uma abreviatura para MongoDB + ExpressJS + AngularJS + NodeJS. Todas aquelas tecnologias que temos discutido aqui neste blog e que estão concentradas na página Novas Tecnologias. A mudança ocorrida no último ano foi usar o gerador Yeoman para criar a estrutura e os artefatos necessários para usar tudo isso sem precisar gastar horas (preciosas).

Para integrar todas essas tecnologias precisamos modificar o gerado que utilizamos até o momento, nos dois artigos que postei sobre o Yo (YO facilitando a vida Angular e Criação de Rotas com o YO), que podem ser utilizados como base para nosso projeto.

Abra uma janela de terminal e instale o gerador através do NPM com o seguinte comando:
sudo npm -g install generator-angular-fullstack
Esse gerador possui, basicamente, os mesmos comandos do generator-angular visto anteriormente, recomendo que acesse sua página oficial. Na estrutura do projeto gerado existe um diferencial que serão criadas duas camadas do projeto divididas na pasta client e na server. Do que já vimos, está tudo concentrado na pasta client, então a novidade fica a cargo dessa nova pasta server.

Para gerar o projeto, vamos seguir os mesmos passos já vistos para o outro gerador. No terminal digite os seguintes comandos:
mkdir coffeshop2
cd coffeshop2
yo angular-fullstack:app coffeshop2
Agora basta seguir o passo a passo do gerador e ir responder suas perguntas escolhendo as tecnologias com que se deseja trabalhar, observe que podemos configurar muitas coisas como o banco que pode ser o MongoDB ou SQL (MySQL ou MariaDB). Segue aqui meu roteiro, para que possamos deixar as tecnologias de modo similar:

# Client

? What would you like to write scripts with? Babel
? What would you like to write markup with? HTML
? What would you like to write stylesheets with? CSS
? What Angular router would you like to use? ngRoute
? Would you like to include Bootstrap? Yes
? Would you like to include UI Bootstrap? Yes

# Server

? What would you like to use for data modeling? Mongoose (MongoDB)
? Would you scaffold out an authentication boilerplate? Yes
? Would you like to include additional oAuth strategies? No
? Would you like to use socket.io? Yes

# Project

? Would you like to use Gulp or Grunt? Grunt
? What would you like to write tests with? Jasmine

Ao término da geração, inicie o servidor do banco MongoDB, em seguida digite o comando para executar o projeto:
grunt serve
E a seguinte janela será mostrada:
Já disse uma vez que odeio ser repetitivo, toda a estrutura contida em client é a mesma vista nos artigos anteriores. Deixarei aqui um pequeno exercício, modifique-a deixando este projeto no exato ponto em que paramos. Porém como não desejo causar qualquer confusão, façamos algo mais simples: gere o projeto conforme indicado, baixe o projeto do link abaixo e sobreponha os arquivos originais.


Já procedi todas as mudanças necessárias para a primeira página e a tradução dos arquivos. É possível assinar a lista de usuários bem como proceder a administração do sistema (email: admin@example.com; senha: admin). O resultado final será este:
Atenção: Este projeto não rodará sozinho pois foram retiradas as pastas node_modules e client/bower_components. Deste modo é necessário gerar o projeto, sobrepor os arquivos e iniciar o banco MongoDB. Em breve vamos dar prosseguimento e criar a página para cadastrar os locais para se achar um bom café.

Obrigado e até a próxima
Fernando Anselmo


terça-feira, 9 de fevereiro de 2016

Desktop Publishing - Cartão de Páscoa com o LaTeX

Se na sua vida nunca fez um trabalho de faculdade então provavelmente para você a palavra LaTeX deve está associada com borracha (ou talvez fez mas usou o Word, OpenOffice ou outro). Pois bem, LaTeX é um sistema de criação de documentos de alta qualidade tipográfica, por esse mesmo motivo é utilizado em faculdades para realização de trabalhos ligados a Pós graduação, Mestrado e Doutorado.


É também utilizado para produção de artigos técnicos ou científicos, porém é possível utilizá-lo para qualquer tipo de publicação. É exatamente isso que pretendo mostrar aqui. Devemos entender que LaTeX não é um editor, é apenas e definição das macros para o programa de diagramação de textos (assim como HTML5 ou XML).

No Ubuntu, escolhi como editor o Kile por ser muito visual, possuir auto complete do código e bem fácil de aprender. Não se preocupe pois existe versão para todos os ambientes (e isso inclui Windows, Mac e BSD).

Para instalar no Ubuntu, execute o seguinte comando em uma janela de terminal:
sudo apt-get install kile
Pronto como a Páscoa está chegando vamos criar um Cartão de Páscoa. Chame o kile e crie um novo projeto. Para nosso exemplo, use uma template vazia. Na página em branco digite a seguinte codificação:
\documentclass[a4paper,10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage{gcard} % chama o pacote para criar o cartão
\usepackage{calligra} % adiciona a fonte calligra
\usepackage[T1]{fontenc} 
\usepackage{graphicx} % adiciona o pacote para a imagem
\usepackage{color} % adiciona a cor para a fonte

\begin{document}
  \begin{frontcover}
    \begin{center}
      \includegraphics[width=0.8\textwidth,natwidth=610,natheight=642]{pascoa.jpg}
      \newline
      \newline
      {\LARGE \color{red} % muda a cor da fonte
      {\calligra Que eu possa continuar a ter uma amizade tão especial quanto a sua...}}
    \end{center}
  \end{frontcover}

  \begin{insideleft}
  \end{insideleft}

  \begin{insideright}
    \section*{Que a alegria}
    da Páscoa invada o seu coração e o daqueles a quem ama, 
    irradiando luz para iluminar e fazer brilhar o mundo em que vivemos, 
    enchendo-o de AMOR, SAÚDE e PAZ. \\
    {\LARGE \color{red}\\ % muda a cor da fonte
    {\calligra Feliz Páscoa!}}
  \end{insideright}
\end{document}
Calma que não existe nada do outro mundo aqui, apenas a sintaxe pode ser desconhecida, mas aos poucos iremos compreender como é simples. O primeiro comando define o tipo de documento que estamos escrevendo. Os comandos usepackage informam ao LaTex quais são os pacotes necessários. Tudo inicia realmente no begin{document} no qual são criadas três partes: frontcover, insideleft e insideright. Na primeira é exibida uma imagem e um texto em fonte Calligra. A segunda está vazia. A terceira uma mensagem.

Agora precisamos de mais os seguintes passos. Salve este arquivo com a extensão .tex, na barra de botões clique no botão LaTeX para gerar o arquivo .dvi e no botão DVItoPDF para gerar o arquivo .pdf. E o resultado, ao abrir o arquivo PDF, será este:


E agora basta imprimir em um papel de qualidade e entregá-lo aos seus amigos e familiares. Uma observação é necessária, na mesma pasta que salvar seu arquivo insira uma imagem para seu cartão (que no código usamos pascoa.jpg) e o arquivo (extensão mf) contendo a fonte Calligra (pode ser baixado aqui).

O LaTex pode ser utilizado para dar uma qualidade profissional tanto para seus trabalhos escolares como para outras atividades de diagramação. Então aproveite e conheça o que esse poderoso sistema pode fazer por você.

Obrigado e até a próxima
Fernando Anselmo