terça-feira, 24 de maio de 2022

Habilitar recurso de máquina virtual no Windows

 Dependendo da versão do windows e até dos softwares instalados, pode ser necessário habilitar o recurso de máquina virtual no windows para utilizar Virtualbox ou Vagrant. Para tanto, basta executar o comando abaixo no poweshell como administrador:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

quarta-feira, 3 de novembro de 2021

Instalar o WinGet no Windows 10 com Java/OpenJDK, Git e VSCode

Os passos são simples, mas demorei para descobrir por isso resolvi registrar aqui:

  1. Baixar o arquivo .msixbundle do link https://github.com/microsoft/winget-cli/releases (se você souber a utilidade dos outros arquivos deixe um comentário)

  2. Executar o Powershell como Administrador e rodar o seguinte comando no diretório onde baixou o arquivo (provavelmente em Downloads):
    Add-AppPackage -path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

  3. Depois basta rodar o comando winget no prompt de comando (no powershell deu erro de termos de uso). Seguem os comandos:
    winget install "The Silver Searcher"
    winget install Microsoft.OpenJDK.17
    winget install VSCode
    winget install Git.Git
    winget install Microsoft.WindowsTerminal

Obs: The Silver Searcher instala o comando ag que é a melhor ferramenta de busca de string em arquivos que conheço.

segunda-feira, 22 de março de 2021

Programas para instalar no openSUSE logo após primeiro boot

Executar os seguintes comandos do zypper no primeiro boot do openSUSE Tumbleweed (se for o Leap basta trocar o repositório do Packman) para instalar programas úteis:

  1. sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/' packman
     
  2. sudo zypper refresh
     
  3. sudo zypper dist-upgrade --from packman --allow-vendor-change
     
  4. sudo zypper install --from packman ffmpeg gstreamer-plugins-{good,bad,ugly,libav} libavcodec-full vlc-codecs
     
  5. sudo zypper in opera i3 java-17-openjdk-demo neofetch the_silver_searcher

É bom usar o XFS ou ext4 de filesystem, btrfs é muito ruim pra desktop. 

quarta-feira, 1 de maio de 2019

Reflexão sobre o trabalho subjetivo no Design Thinking

O que é Design Thinking?

É um processo iterativo de análise e proposição de solução, no qual procura-se entender o usuário, desafiar suposições e redefinir problemas, na tentativa de identificar estratégias e soluções alternativas que talvez não sejam instantaneamente aparentes com nosso nível inicial de compreensão (ou pré-conceitos). Ao mesmo tempo, o Design Thinking fornece uma abordagem baseada em solução para resolver problemas. É uma maneira de pensar e trabalhar, bem como uma coleção de métodos práticos.

O método gira em torno de um profundo interesse em desenvolver uma compreensão das pessoas para as quais estamos projetando os produtos ou serviços. O "profundo" vem da vontade do analista em realmente "mergulhar" no problema e entendê-lo sob o ponto de vista do usuário, pois isso ajuda a observar e desenvolver empatia com quem vai usar a solução. O Design Thinking também ajuda no processo de questionamento: questionar o problema, questionar os pressupostos e questionar as implicações. Essa forma de trabalho é extremamente útil no tratamento de problemas que são mal definidos ou desconhecidos, reenquadrando o problema de formas centradas no ser humano, criando muitas ideias em sessões de brainstorming (de forma direcionada e contextualizada) e adotando uma abordagem prática em prototipagem e testes. O Design Thinking também envolve experimentação contínua: esboçar, criar protótipos, testar e experimentar conceitos e ideias.

Fases do Design Thinking

Existem muitas variantes do processo de Design Thinking, algumas com três e outras com até sete fases, estágios ou modos, contudo, todas as variantes são muito semelhantes. Os princípios que regem o processo foram descritos pela primeira vez pelo Prêmio Nobel Herbert Simon em The Sciences of the Artificial em 1969. Conforme as fontes consultadas e as percepções deste autor, segue descrição do modelo de cinco fases proposto pelo Instituto Hasso-Plattner de Design em Stanford, que também é conhecido como d.school. Foi considerada a abordagem deles porque estão na vanguarda da aplicação e ensino do Design Thinking. As cinco fases do Design Thinking, de acordo com a d.school, são as seguintes:


  • Empatizar - com seus usuários
  • Definir - as necessidades dos usuários, o problema deles e suas ideias
  • Idear - desafiar suposições e criar ideias para soluções inovadoras
  • Prototipar - para começar a criar soluções
  • Testar - soluções


É importante observar que as cinco fases, estágios ou modos nem sempre são sequenciais. Elas não precisam seguir nenhuma ordem específica e podem ocorrer em paralelo e repetir iterativamente. Dado isso, não deve-se entender as fases como um processo hierárquico ou passo-a-passo e, sim, considerá-lo como uma visão geral dos modos ou fases que contribuem para um projeto inovador, em vez de etapas sequenciais, e neste artigo discute-se o trabalho subjetivo envolvido principalmente nas etapas de Empatizar e Idear.

O Problema dos Padrões de Pensamento Enraizados e o Trabalho com Empatia

Às vezes, a maneira mais fácil de entender algo intangível, como o Design Thinking, é entender o que não é.

Os seres humanos naturalmente desenvolvem padrões de pensamento modelados em atividades repetitivas e conhecimento comumente acessado. Isso nos ajuda a aplicar rapidamente as mesmas ações e conhecimentos em situações semelhantes ou familiares, mas eles também têm o potencial de nos impedir de acessar e desenvolver novas maneiras de ver, entender e resolver problemas de maneira rápida e fácil. Esses padrões de pensamento podem ser chamados de esquemas, que são conjuntos organizados de informações e relações entre coisas, ações e pensamentos que são estimulados e iniciados na mente humana quando encontramos alguns estímulos ambientais. Um único esquema pode conter uma grande quantidade de informações. Por exemplo, temos um esquema para lápis que consiste num corpo cilíndrico fino feito de madeira, e um núcleo de grafite, que pode vir apontado já de fábrica. Quando o estímulo ambiental corresponde a esse esquema - mesmo quando há um elo tênue ou apenas algumas das características presentes - o mesmo padrão de pensamento é trazido à mente. Como esses esquemas são estimulados automaticamente, isso pode obstruir uma impressão mais adequada da situação ou impedir que enxerguemos um problema de uma maneira que permita uma nova estratégia de solução de problemas (ex.: Podemos fazer o corpo do lápis de outro material? Formato cilíndrico é o melhor? etc). A solução inovadora de problemas também é conhecida como “pensar fora da caixa”.

O interesse "profundo" em entender o problema de um usuário passa pela necessidade do analista em aplicar essa técnica de "pensar fora da caixa" e deixar de lado seus esquemas pré-concebidos. Daí vem o passo inicial para conseguir empatizar com o usuário.

É necessário "experimentar" o problema do usuário. Mas só experimentação pura e simples pode fazer com que o analista tenha ideias e já "volte para a caixinha", e comece a procurar soluções. O passo de empatizar é mais do que experimentar, é importante observar (outros usuários), ouvir (questioná-los sobre a experiência e a situação), questionar o que se escuta também (a fim de aprofundar o relato do usuário) e, também, construir relacionamentos (um interesse genuíno em se engajar no problema e ouvir relatos significativos de usuário vai levar a um relacionamento com esse usuário). Ao chegar no nível de relacionar-se com o usuário, o analista vai ter uma visão melhor do que testar primeiro, além de feedbacks mais relevantes destes usuários.

O Poder da Narrativa para Ideação

Em 2014 um caminhoneiro que estava transportando no seu caminhão uma carga alimentos para um supermercado em Brasília bateu na ponte do Bragueto. Segundo o relato do motorista, ele foi pelo caminho que haviam indicado para ele. Provavelmente ninguém pensou na possibilidade do acidente, mas o motorista que é caminhoneiro experiente também não pensou que o caminho indicado poderia dar problema, apenas seguiu supondo que não haveria tal contratempo. Outro ponto interessante nessa notícia foi a solução dada pelos bombeiros, pois num primeiro pensamento o jeito seria desmontar a peça do caminhão, mas a solução deles foi de esvaziar os pneus, que certamente é a solução mais simples, pois evitou chamar um profissional específico, além do ganho de tempo para liberar a pista.
Fonte G1: http://g1.globo.com/distrito-federal/noticia/2014/10/caminhao-fica-preso-na-ponte-do-bragueto-e-fecha-2-faixas-de.html
Fonte: G1

Mas por quê contar aqui esta história? Contar histórias ajuda a inspirar oportunidades, ideias e soluções. Histórias são moldadas em torno de pessoas reais e suas vidas. As histórias são importantes porque são relatos de eventos específicos, não de declarações gerais. Elas nos fornecem detalhes concretos que nos ajudam a imaginar soluções para problemas específicos.

Ciência e Racionalidade no Design Thinking

Algumas das atividades científicas incluirão a análise de como os usuários interagem com os produtos e investigam as condições em que operam: pesquisando as necessidades dos usuários, reunindo experiências de projetos anteriores, considerando as condições presentes e futuras específicas do produto, testando os parâmetros do problema e testar a aplicação prática de soluções de problemas alternativos. Ao contrário de uma abordagem exclusivamente científica, onde a maioria das qualidades, características e problemas conhecidos do problema são testados para chegar a uma solução de problema, as investigações do Design Thinking incluem elementos ambíguos do problema para revelar parâmetros anteriormente desconhecidos e descobrir estratégias alternativas, daí a importância de fazer um bom trabalho na empatia e ideação.

Depois de chegar a um número de possíveis soluções de problemas, o processo de seleção é sustentado pela racionalidade. Os projetistas são encorajados a analisar e falsificar essas soluções problemáticas para que possam chegar à melhor opção disponível para cada problema ou obstáculo identificado durante cada fase do processo de design.

Design Thinking é para todos

Tim Brown (autor e um dos precursores do método) também enfatiza que as técnicas de Design Thinking e as estratégias de design pertencem a todos os níveis de um negócio. O método não é apenas para designers, mas também para funcionários criativos, freelancers e líderes que buscam inovar em todos os níveis de uma organização, produto ou serviço, a fim de impulsionar novas alternativas para os negócios e a sociedade.

O Design Thinking é essencialmente uma abordagem de solução de problemas, que envolve avaliar aspectos conhecidos de um problema e identificar os fatores mais ambíguos ou periféricos que contribuem para as condições de um problema. Isso contrasta com uma abordagem mais científica, em que os aspectos concretos e conhecidos são testados para se chegar a uma solução. É um processo iterativo em que o conhecimento deve ser constantemente questionado e adquirido, ajudando a redefinir um problema, na tentativa de identificar estratégias e soluções alternativas que podem não ser imediatamente aparentes com nosso nível inicial de compreensão e preconceitos. É importante para pessoas que estão tentando desenvolver novas formas de pensar, que não respeitem os métodos dominantes ou mais comuns de resolução de problemas - assim como os artistas fazem. No coração do método está a intenção de melhorar os produtos, analisando como os usuários interagem com eles e investigando as condições em que estes operam, e esse método nos oferece um meio de cavar um pouco mais fundo para descobrir maneiras de melhorar as experiências do usuário, sempre que o analista que vai aplicar o método esteja disposto a dar esse passo "pra dentro".

Para saber mais:


sábado, 27 de abril de 2019

Growth Hacking

Growth Hacking é um termo criado por Sean Ellis para definir uma estratégia de experimentação rápida em marketing e desenvolvimento de produto ou negócio. Para empreendedores e desenvolvedores de startups, esse processo precisa ser compreendido pois sua utilização pode trazer resultados.

Essa estratégia é processo de venda de produtos e aumento de presença de marca, usando métricas testadas, criatividade e muito analytics. A pessoa que implementa essa estratégia - o Growth Hacker - deve resolver cada desafio de marketing de maneira única para aquela marca, implementando métricas relevantes e análise específica para cada situação de desenvolvimento que a marca precise. Essencialmente essa pessoa é o cérebro por trás de uma estratégia de marketing, planejando a forma de crescimento de um produto ou negócio. Ainda que estratégia de marketing seja algo trivial para qualquer empresa, a diferença do Growth Hacking é nas ferramentas utilizadas e na abordagem da proposta de marketing. Empresas estabelecidas já possuem uma área de marketing e dados sobre seu produto, negócio e mercado, bem como detalhes dos clientes. Já uma startup precisa desenvolver isso tudo do zero, e a abordagem do Growth Hacking permite que se faça isso de maneira iterativa e direcionada, com validação constante e análise de cada métrica - daí o uso do termo "hacking".

Executar essa estratégia com sucesso não é fácil, pois muita parte do processo é subjetiva. Isso exige do Growth Hacker uma capacidade de encontrar soluções criativas e observações refinadas, pensamento crítico e muito trabalho de coleta de dados e análise de métricas. Quando bem-executado, esse trabalho torna-se chave dentro de uma startup. A seguir vou detalhar um roteiro básico de como trabalhar o Growth Hacking.

Definir metas

Sem metas que direcionem o trabalho do Growth Hacker, não se sabe por onde começar. Aqui, o principal não é apenas definir número de seguidores, conversões ou engajamento; é entender o canal prioritário para a startup e o enfoque, para então começar a trabalhar.  Por exemplo, num dado momento é mais importante obter conversões no site ou aumentar o engajamento no Facebook? Se for definido o aumento de engajamento no Facebook como prioritário, então mais do que o foco num número (10.000 seguidores nos próximos 6 meses), é importante a definição de porque o Facebook foi mais importante, para trabalhar esse canal em detalhe. Dessa forma pode-se quebrar a meta em pequenos passos práticos, executáveis e verificáveis.

Exemplificando o caso, o Growth Hacker pode formatar o conteúdo em um vídeo no Facebook e, posteriormente, pode apresentar o mesmo conteúdo em uma postagem escrita. Assim é possível comparar qual postagem gerou mais engajamento com o público, e aí refinar esse trabalho. Se o vídeo gerou mais engajamento, pode-se experimentar "lives"; se a postagem escrita é que gera mais comentários, pode-se sugerir ao público usar os comentários para incrementar o conteúdo da postagem original. Seja qual for o formato, o importante é analisar o impacto de cada ação junto ao público e a forma que se consegue engajamento e compartilhamento.

Acompanhar a evolução

Com as metas quebradas em tarefas executáveis, o passo seguinte é analisar o resultado de cada ação, focando aquelas que estão apresentando melhor resultado. Se o vídeo postado gerou mais engajamento, a empresa deve focar em produção periódica de vídeos e trabalhar esse engajamento em cada postagem, por exemplo.

Previamente a essas ações, é importante definir as métricas utilizáveis. Isso também depende da mídia, pois em um website ou blog próprio podem ser instaladas ferramentas de analytics, enquanto numa mídia social deve-se utilizar o que estiver disponível nela (Como o Facebook for Business e o Instagram for Business). Análise de métrica é um trabalho de classificação e aprofundamento, desde verificar qual tipo de dispositivo seu usuário mais usa (computador, smartphone, etc.), passando pela distribuição demográfica do público (região, faixa etária), até detalhes mais voltados ao próprio conteúdo (linguagem produzida, tamanho do conteúdo, apresentação). O tratamento do conteúdo é subjetivo.

Produzir conteúdo impactante

Os esforços de marketing digital sempre evoluem para trabalho de conteúdo. Sendo assim, aperfeiçoar a produção de conteúdo é o trabalho fundamental do Growth Hacking, principalmente em startups que precisam se conectar com usuários e aumentar a audiência.

Seguindo com o exemplo do vídeo, o trabalho principal é tornar esse vídeo compartilhável, o que pode ser feito adicionando um botão no próprio vídeo, ou mesmo o conteúdo do vídeo induzir o usuário a fazê-lo. Mas o "hacking" de conteúdo deve se preocupar com tudo o que é produzido. Um exemplo simples é o fazer com que "headline" do site seja impactante o suficiente para despertar a curiosidade do visitante para o produto. Na produção de conteúdo em formato de textos, além de correção na escrita, o texto deve ser "fluido" a ponto de envolver o leitor, fomentando o compartilhamento e a interação.



Growth Hacking está em cada detalhe do que é apresentado ao usuário, com o fim de trazê-lo ao negócio.


domingo, 14 de abril de 2019

Marketing Digital com Email Marketing

Qualquer negócio precisa de divulgação, e a ideia é formatar uma proposta de divulgação que atinja o público desejado e faça valer a pena cada centavo investido. Com a influência das mídias sociais na vida das pessoas, esse canal é agora o mais usado para divulgação de negócios, dos grandes aos pequenos. E principalmente pelos pequenos, que podem usar o Email Marketing.

A grande vantagem do Email Marketing, além de acessível e efetivo, é que ele pode conseguir interação com a audiência, captando informações comportamentais de cada usuário. O usuário que informou o próprio email para a listagem espera alguma coisa relevante, que seja do interesse dele, e se não render nenhum negócio com os emails enviados, ele ao menos terá que deletar o email para tirar da caixa, e isso já é um dado a ser observado.

O conteúdo pode variar desde promoções e descontos em algum produto, passando por informar sobre algo novo e até a revisar notícias e postagens sobre o assunto em questão. Costumeiramente, uma abordagem diversificada costuma trazer mais resultados, mas lembre-se que o assunto que gerou o interesse inicial precisa estar sempre em voga. Os meios digitais oferecem a capacidade de criar um "marketing personalizado", por isso o mapeamento do comportamento de cada cliente pode trazer dados que os diferenciem (mesmo que originalmente tenham se interessado pelo mesmo assunto). Existem softwares que podem mapear esse comportamento e ajudar a gerenciar diferentes listas de emails, agrupando os usuários por subgrupos de interesse ou padrões de comportamento. Com softwares é possível também gerar emails automáticos de resposta, indicando um caminho ao usuário ou marcando um comportamento desejável, no intuito de fortalecer o relacionamento.

Outro ponto importante é o momento de enviar emails. Isso depende do objetivo que o email possui, por exemplo, um email de "boas-vindas" deve ser enviado logo após o usuário se cadastrar na lista, bem como um email de confirmação de compra de um produto no site.

Além disso tudo, é importante também cuidar de pequenos detalhes. Algumas dicas de boas práticas: escrever uma mensagem simples e direta, com parágrafos curtos; incluir um botão CTA clicável sempre que possível; trabalhe agressivamente a construção de sua lista de emails, oferecendo benefícios a quem se inscreve; abra e mantenha um canal de comunicação (como resposta no email, ou um email de contato/chat etc.); ofereça valor (algo relevante para o público acionado); FOQUE NO ASSUNTO DO EMAIL, que deve ser claro e sucinto, apresentar de alguma forma o conteúdo e, se possível, passar um senso de urgência.

Referências:

sábado, 6 de dezembro de 2014

Instalando GnuCOBOL no openSuSE

Pacotes necessários para instalar o GnuCOBOL no openSuSE 13.1: 

  1. sudo zypper in checkinstall checkinstall lang make libdb-4_8-devel libdb-4_8 libgmpxx4 libgmp10 gmp-devel 


Comandos para compilar o código fonte do open-cobol:

  1. ./configure --enable-debug 
  2. make 
  3. make install 
  4. sudo /usr/sbin/checkinstall