Arquivos da Tag: Programação

Google lança código de compressão gratuito que acelerar sua internet

No ano de 2013, a Google lançou o algoritmo de compressão Zopfli, com o objetivo de proporcionar um carregamento mais rápido das páginas da internet para todos os usuários. Essa inovação recebeu uma excelente recepção e foi integrada a várias soluções de compressão de dados, desde otimizadores de arquivos PNG até o pré-processamento de conteúdo da web. Agora, a gigante das buscas disponibilizou gratuitamente uma evolução dessa tecnologia.

Chamada de Brotli, essa novidade apresenta um formato de dados totalmente novo, permitindo alcançar taxas de compressão entre 20% e 26% superiores às possíveis com o Zopfli. De acordo com a Google, caso os principais navegadores do mercado adotem essa novidade, a melhor utilização do espaço e o carregamento mais rápido das páginas trarão grandes vantagens para os usuários móveis, reduzindo o consumo de dados móveis e aumentando a eficiência energética do dispositivo.

Explicando a mágica

Acompanhando o anúncio do algoritmo, Zoltan Szabadka, engenheiro de software da renomada empresa de busca, divulgou um estudo comparativo do Brotli com o próprio Zopfli e outras tecnologias de compressão amplamente conhecidas. Segundo Szabadka, essa nova inovação oferece uma velocidade comparável ao Deflate da zlib, enquanto proporciona uma compressão ligeiramente mais densa do que as oferecidas pelo LZMA e Bzip2, com base no corpus Canterbury.

Szabadka explica que esse nível de compactação é alcançado por meio de uma modelagem de contexto de segunda ordem, a reutilização de códigos de entropia e o uso de uma janela de dados passados maior, juntamente com códigos de distribuição conjuntos. Para conferir o estudo comparativo completo, acesse o link.

Tags , , , , , , , , ,

Ache seu código de cor em HTML Color Codes

Você programador, designer, marinheiro de primeira viagem no mundo dos códigos ou apenas curioso tecnológico, já teve problemas na hora de escolher aquela cor para um site ou aplicativo? Qual é o código dessa cor? Como ela vai aparecer no meu monitor? Talvez esse site possa te ajudar.

O HTML Color Codes oferece várias formas de escolher aquela corzinha especial. Através de um seletor, cartela de cores, nome das cores, sim nome! Caso você faça parte daquela gama de pessoas que só conhece 12 ou 24 cores, saiba que existem muitas tonalidades e cada uma com seu nome próprio.

Além disso o site ainda oferece tutorias e recursos para te ajudar no uso dessas cores na linguagem HTML. Bacana né? Confere lá.

HTM Color Codes

Tags , , , , , ,

10 coisas úteis para aprender na internet

internet é um poço infinito de conhecimentos úteis e gifs de gatinhos, e por algum motivo a gente passa tempo demais vendo os últimos e quase nenhum com os primeiros. Com um pouco de disciplina – eu recomendo se organizar em uma rotina, bloquear redes sociais que causam distração e ouvir música no fone de ouvido – você pode encaixar na sua vida cotidiana algumas horas de aula de qualquer coisa por semana.

Quer aprender a desenhar? Cozinhar? Tocar violão? Dá, e é tudo de graça. Fizemos uma lista do que você pode aprender agora:

1. Cozinhar cientificamente para chegar ao melhor gosto possível. Não é segredo que dá pra aprender a cozinhar usando a internet. Agora, usando um viés científico, próprio de engenheiros, isso talvez você não soubesse. Vá ao Cooking for Engineers para aprender uma abordagem analítica da comida, que tem como objetivo reunir os melhores métodos para atingir a melhor crocância no bacon – um conhecimento que, convenhamos, tem valor imensurável.

2. Desenhar. Há vídeos do YouTube e tutoriais com fundamentos do desenho, mas o Drawspace é o mais completo. É um curso de desenho do início ao fim, que ensina sombras, contornos, técnicas que te ajudam a melhorar sua noção espacial e até outros tipos de arte. Pense numa escolha de artes digital gratuita e você terá o DrawSpace.

3. Ser bem-sucedido com executivos importantes. Gente bem-sucedida tem o poder de inspirar. A internet possibilitou que todos nós tivéssemos pessoas que admiramos como mentores, porque a rede permite que eles falem direto pra gente. É dessa ideia que o programa 30 Second MBA, da Fast Company, se aproveita. A série reúne vídeos em que executivos bem-sucedidos de várias áreas respondem, em 30 segundos, perguntas pertinentes pra quem tem um negócio.

4. Inglês, espanhol, e depois italiano, alemão, francês… O Duolingo é uma das plataformas de ensino de idiomas mais populares da internet. Completamente grátis, ele ensina inglês e espanhol pra quem fala português; e e você já fala inglês, a possibilidades se abrem muito mais: tem francês, alemão, italiano, pra ficar no mais básico, e se você estiver empolgado, húngaro, russo, romeno, polonês…

5. Se colocar no lugar do outro. Para mim, a principal virtude do Quora é a capacidade de mostrar pros usuários a visão de mundo de pessoas que a gente jamais teria acesso de outra forma. Como é ser milionário? Como é sofrer um sequestro? Como é ser um astronauta? O Quora reúne relatos ricos de gente que viveu situações inacreditáveis. De quebra, ainda tira dúvidas reais sobre coisas muito interessantes.

6. Tocar violão. Você ainda pode realizar seu sonho de adolescência: nunca é tarde para aprender a tocar violão. Não se preocupe se você estiver começando do zero, porque o Justin Guitar tem aulas pra todos os níveis. Técnicas, exercícios, escalas e até o básico dos acordes: está tudo lá. Não tem mais desculpa pra você não ser a estrela do luau na praia.

7. Matemática, história, filosofia, programação, marketing… Não é de hoje que ganhamos sites incríveis que, em parceria com universidades estrangeiras, oferecem cursos de alto nível pela internet gratuitamente. Muitos são super específicos e alguns têm interface meio complicada. Não é o caso do Khan Academy e do Academic Earth, que se dedicam a oferecer cursos de matérias mais básicas. Pense em coisas que vão de Matemática e Física a Sociologia e Psicologia; tem programação, história, arte e coisas assim, também.

8. Fazer quase qualquer coisa você mesmo. Sabe aquela sua técnica única para picar cebola? Você pode dividi-la com a internet no Instructables, enquanto aprende a fazer um supercapacitor de grafeno (!). O Instructables é uma plataforma de troca de tutoriais que ensinam a fazer em casa coisas que, normalmente, a gente compra. Tem projetos em áreas tipo lifehacking, mas a maioria é mão na massa mesmo: artesanato, marcenaria, eletrônica… tem tudo lá. Dê uma olhada antes de pagar uma fortuna em um suporte pro seu iPad.

9. Entender o mercado financeiro. Eu acho um equívoco que não tenhamos aulas de economia doméstica e o básico de mercado financeiro no colégio. Todo mundo precisa entender como essas coisas funcionam. Mas dá pra contornar isso com a Investopedia. Veja, não vai ser da noite pro dia, mas com um pouco de tempo e esforço você vai entender os chavões desse mercado e talvez possa até começar a investir seu dinheiro.

10. Programar. Eu sei que você já sabe: programar é a habilidade do futuro, há vários sites que ensinam programação de graça etc etc. É que o Codeacademy é mesmo o melhor, e isso vem de alguém que testou vários sites diferentes. É o mais amigável para quem é completamente iniciante, é didático, é bonito, é grátis e é em português. Se você estiver afim de aprender a programar, pode começar por aí que não tem erro.

Via Galileu

Tags , , , , , , , , , , , ,

As principais áreas do design

Design é uma área de trabalho ampla, com uma enorme variedade de disciplinas. Para quem está estudando, começando a entrar no mercado ou simplesmente não entende o que um designer faz (as mães que o digam), aqui está um guia para entender as principais áreas do Design.

Design Gráfico

Design Gráfico muitas vezes é chamado apenas de “Design” por ser a área mais conhecida.

O Designer Gráfico trabalha diretamente com o visual dos produtos: sejam imagens para um site, material gráfico, fotografias, infografia, sinalização, diagramação, tipografia, embalagens, etc.

Muitos profissionais de outras áreas (fotógrafos, ilustradores, estilistas, etc) também podem ser designers gráficos ou acabam atuando na área mesmo sem formação. Isso torna o Design Gráfico o segmento mais popular e genérico do design, o que muitas vezes dificulta a valorização do trabalho, e por isso é sempre bom que o profissional se especialize.

Ferramentas: Photoshop, Illustrator, fotografia, Corel Draw.

Diferenciais: Saber desenhar bem, ter ótima percepção de cores, tipografia.

Design de Interface

Engloba uma área grande de atuação. O objetivo do design de interface de usuário é tornar a interação do usuário o mais simples e eficiente possível, em termos de realização dos objetivos do usuário.  O processo de design deve equilibrar funcionalidade técnica e elementos visuais para criar um sistema que não é apenas operacional mas também útil e adaptável para alterar as necessidades do usuário.

Quando falamos de interface podemos pensar em todo tido de interação humana com uma interface ou sistema. Painéis de carros, secretárias eletrônicas, softwares (que pode ser considerado uma área do design a parte – Design de Software), a internet e mais recentemente os celulares e tablets criaram um segmento de mercado enorme para a criação de interfaces.

O profissional deve pensar em como um usuário leigo vai utilizar o produto, sempre procurando facilitar o uso, porém sempre levando em conta que toda pessoa possui capacidade para entender coisas mais complexas também. O Design de Interface combina elementos de programação e principalmente estudo do comportamento.

Ferramentas: Illustrator, Photoshop, Dreamweaver, Flash, entre outros.

Diferenciais: Ter muito conhecimento de interação e comportamento, saber programar.

Web Design

Este é um segmento que se mistura ao Design Gráfico e de Interface. O Web Designer é o profissional que desenvolve web sites, hot sites, blogs, lojas virtuais, etc.

Antigamente fazer sites era um trabalho muito manual e focado no código. Era um processo lento e demorado. Hoje, o foco do Web Designer é a praticidade, a segurança, o visual e a navegação dos sites.

É importante nesse segmento do design que se entenda como funciona a programação, o código por trás da interface. O designer aqui não necessariamente precisa ser um programador, mas deve ser um desenvolvedor web, o que significa que ele precisa entender a mecânica, conhecer o que é possível ou não fazer e saber integrar seu layout a um código.

Ferramentas: Aplicativos, softwares de programação Web e programas para Design Gráfico.

Diferenciais: Saber programar e conhecer bem as tendências de desenvolvimento web.

Motion Graphics

Motion Graphics é a criação de animações digitais com vídeo, efeitos e imagens, também conhecida como “multimídia”. É um segmento forte do design porque possui aplicações no cinema, na música, na publicidade e em diversas outras áreas.

Trabalhar com Motion Graphics significa criar animações, efeitos especiais, gráficos e arte digital em vídeo.

O legal de trabalhar com vídeos é que o resultado é muito bacana e impactante. Mas apesar de ser um trabalho bem visual, o processo de criação é demorado e muito minucioso.

É interessante procurar alguma especialização em Motion Graphics, como animação de personagem, efeitos visuais ou 3D. Se conseguir mergulhar em um desses assuntos, com certeza terá mais base para suas criações.

Ferramentas: After Effects, Cinema 4D, Photoshop, Maya, Flash.

Diferenciais: Conhecimento de animação tradicional.

Game Design

Enquanto nos anos 80 e 90 as pessoas curtiam os games sem nem imaginar que poderiam colaborar com suas idéias, hoje existem milhares de pessoas lançando jogos. Criar games deixou de ser algo exclusivo das grandes produtoras.

Trabalhar com design para games é uma mescla de Design Gráfico, animação, programação, modelagem 3D e Design de Interface.

O desenvolvimento de games é dividido em várias áreas e exige muito conhecimento técnico. É difícil um game ser desenvolvido por apenas uma pessoa (a não ser um jogo mais simples) e por isso é muito bom saber trabalhar em equipe e ter um conhecimento geral do processo.

Ferramentas: Varia bastante de acordo com a plataforma.

Diferenciais: Ter muito conhecimento de games e bastante criatividade.

Design de Interiores

Design de Interiores é uma área bem ampla que envolve estudo, projeto e criação de ambientes levando todos os aspectos em conta: iluminação, conforto, temperatura, texturas e materiais. Cuidado para não confundir um Designer de Interiores com um Decorador.

O designer não vai simplesmente decorar o ambiente – ele vai combinar elementos com base em um projeto detalhado do espaço, materiais, temperatura e iluminação.

Ferramentas: AutoCAD, Sketchup, Revit, Photoshop.

Diferenciais: Ter ótima noção espacial e conhecimento de arquitetura, iluminação e materiais.

Design de Produto

Esse é um segmento que voltou com força total depois da popularização das impressoras 3D. Design de Produto envolve todas as etapas de criação de um produto, passando pelo rascunho, protótipos e produto final.

Atualmente é fácil modelar em 3D e criar produtos básicos sem muito conhecimento técnico. Mas quem quer se especializar como um Designer de Produto deve estudar bastante e conhecer a fundos os programas de modelagem.

Ferramentas: Alias Design, Solidworks.

Diferenciais: Ótima visão espacial, conhecimentos de geometria e de materiais.

Design de Moda

Design de Moda é a aplicação do design na criação de roupas e acessórios. É uma área que mistura elementos gráficos com o aspecto técnico da construção de roupas.

Trabalhar com moda exige conhecimento histórico e o acompanhamento incessante de tendências.

E não adianta fazer apenas ilustrações bonitas. Mesmo quem trabalha apenas fazendo estampas de camiseta precisa ter o conhecimento técnico de como as roupas são feitas, estampadas e finalizadas.

Ferramentas: Programas de Design Gráfico e ferramentas manuais.

Diferenciais: Conhecimento técnico e muitas referências.

Mobile Design

Talvez o mais novo de todos os seguimentos. Mobile design é uma área relativamente jovem, que muda muito rápido e está diretamente ligada a tecnologia. Trata-se de criar aplicativos, jogos, web apps… ferramentas que irão rodar em um dispositivo móvel como um celular ou um tablet.

Ser um desenvolvedor mobile é entender que estamos lidando com interação em uma interface com recursos limitados por tamanho e/ou processamento, no entanto a tecnologia tem permitido muitas melhoras nesse aspecto.

Tal qual um web design, para ser um desenvolvedor mobile é preciso entender a programação por trás da plataforma, não necessariamente ser um programador, mas conhecer e entender os limites e necessidades de um código. A programação do sistema muda de acordo com a plataforma: IOS (apple), Android (com suas versões de doces como Kitkat e Jelly Beans), Windows Phone, etc.

Além de códigos, é impotante saber que criar uma interface mobile vai depender de para qual plataforma você está desenvolvendo. Cada plataforma tem suas especificações de funcionamente determinadas por sua empresa responsável, que normalmente concede guias e downloads que permitem entender sua configuração e permitindo que seu layout siga essas premissas.

Ferramentas: Photoshop, Illustrator, softwaresd e programação e outros.

Diferenciais: Saber trabalhar em equipe, entender comportamento humano, estar antenado com as novidades tecnológicas.

Tags , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

O que designers e desenvolvedores não entendem um sobre o outro

Já reparou que as pessoas que trabalham com arte tem dificuldade de serem compreendidas pelo restante do mundo? Isso porque o artista tem uma forma de pensar única e isso fica ainda pior quando essa comunicação se dá com alguém que possui um raciocínio lógico mais forte. Pensar abstrato para essas pessoas é praticamente impraticável em algumas situações.

As brigas entre designers e desenvolvedores, por exemplo, são corriqueiras e praticamente eternas.

Uma equipe interdisciplinar torna qualquer trabalho mais rico, reunir muitas pessoas com formações e treinamento diferentes significa muito mais idéias sendo geradas, novos métodos sendo desenvolvidos, designs mais criativos e originais sendo produzidos. No entanto, o fator negativo diz respeito aos custos envolvidos. Quanto mais pessoas com formações diferentes em uma equipe, mais difícil pode ser fazê-las comunicarem-se e fazer avançar os projetos desenvolvidos. Por quê? Pessoas com formações diferentes apresentam perspectivas e maneiras diferentes de ver e falar sobre o mundo.

Não diferente disso, a comunicação entre o designer e o desenvolvedor pode ser um desafio.

O grande problema é que é preciso entender o outro para evitar maiores discussões. Muitas vezes o designer e o desenvolvedor querem as mesmas coisas e até mesmo brigam pelo mesmo objetivo, porém de formas diferentes. É comum esses dois profissionais serem pegos batendo boca sendo que tem a mesma coisa em mente, mas não sabem se comunicar.

O desenvolvedor tem sua própria visão do papel do designer e vice versa. Eis alguns pontos que podem ajudar a evitar maiores problemas.

Não entender de execução

Cada mídia tem seu sistema próprio de funcionamento. Criar não pode ser independente do que será posto em prática. Projetar para determinadas plataformas tem restrições e tecnicalidades que precisam ser levadas em conta. Não entender ou insistir em executar algo que é impossível, do ponto de vista lógico, é motivo para estimular a ira de qualquer desenvolvedor. Cabe ao designer aqui entender como as coisas funcionam.

Tudo ser estilizado

Designs ricos, cheios dos famosos “frufrus”, como dizem os desenvolvedores, devem ter limites! 500 fontes num mesmo trabalho ou arquiteturas incomuns deveriam ser proibidas por lei se dependesse deles. O caso que tudo deve ser uma negociação. Implementar qualquer coisa fora dos padrões da plataforma em que se está trabalhando gera um custo tempo/esforço. Nem sempre é possível implementar tudo que se deseja por causa disso, daí é preciso negociar o que pode ser feito de fato sem prejudicar o andamento do projeto.

Projetar as cegas

Como já foi dito cada plataforma tem restrições e cada projeto suas particularidades: tempo, dificuldades, etc. Mesmo conhecendo de execução, projetar algo sem consultar antes o desenvolvedor, sem saber se é viável para aquele projeto pode criar uma batalha desnecessária. Todos nós sabemos (mesmo que na teoria) como é feito um bolo, mas somente quem conhece a cozinha pode dizer porque aquele forno, em particular, precisa de um tapinha na lateral para funcionar.

“Isso vai ser fácil, né?”

Nunca, eu disse NUNCA suponha que algo é fácil para um desenvolvedor. O processo de desenvolver algo é totalmente diferente de projetá-lo. Operar softwares de imagem tem uma dinâmica totalmente diferente de se programar algo por exemplo. Além disso, cada desenvolvedor tem suas habilidades e dificuldades. O que pode ser rápido e simples para um, pode não ser para outro. Na dúvida se algo é “fácil” pergunte, mas com jeitinho por favor.

“Não da pra ficar preso a código!”

Aqui temos uma faca de dois gumes, por natureza os desenvolvedores procurarão aquilo que é mais simples para eles e confortável de fazer, o objetivo de muitos deles, principalmente se não tem o hábito de trabalhar com um designer é que o que estão fazendo funcione, não importa como ou a estética. Diferente de quem trabalha com arte, que na maior parte das vezes se desafia a ir além de sua capacidade, o mais simples nem sempre passa aquele “feeling” desejado. Isso não quer dizer que um desenvolvedor não busca aprender algo novo, mas que para ele “se funcionou tá bom”, o que nem sempre funciona para um projetista. Apontar para a cara de um desenvolvedor e dizer que não da para fazer do jeito que ele quer só para o código dele ficar mais limpo não é boa ideia. Muitos deles não entenderão essa necessidade, no entanto eles não estão errados em querer facilitar sua vida, afinal quem irá encarar linhas complexas de códigos serão eles. Um bom diálogo e muita paciência são a solução para essa questão, entender que se trata de uma negociação para se chegar a um acordo, e como em todo bom acordo ambas as partes ficam insatisfeitas no final.

5 coisas que desenvolvedores fazem que designers odeiam

“Use tabelas para fazer os layouts”

Se entender o mundo dos desenvolvedores é complexo, entender o dos designers então é praticamente impossível! Jamais peça a um designer para projetar seguindo uma tabela ou um padrão, isso pode funcionar nos códigos, estruturar informações, porém designers tem sua própria forma de arquitetar conteúdo, diagramar. “Criar não pode ter limitações”, assim pensarão muitos designers. É preciso dar essa liberdade criativa para eles trazerem a vida algo único, especial, o diferencial que irá destacar o projeto. A princípio o que o designer faz pode parecer o caos para um desenvolvedor, no entando dar esse espaço e confiar na sua capacidade é importante, afinal há uma razão para ele estar fazendo as coisas dessa forma… mesmo que não pareça.

“Quebre o design em guidelines”

Você é louco? Quer começar a terceira guerra mundial? Como você pode pedir para que alguém divida a Monalisa em diretrizes? Como criar a estátua da liberdade em etapas?! O processo de se projetar algo pode ser totalmente abstrato, ideias surgem ao acaso, criar é contemplativo e lento (ou pelo menos deveria ser, mas como atualmente prazo é tudo). Um designer é uma pessoa atenta a tudo: prazo, feeling, criatividade… e tudo isso ocorre ao mesmo tempo, é comum tudo mudar de repente de acordo com os acontecimentos no decorrer do projeto. Infelizmente a incerteza é algo que um desenvolvedor terá que aprender a lidar quando estiver trabalhando com um designer.

Complicando a funcionalidade

É irritante para um designer ver como a forma metódica de um desenvolvedor está atrapalhando a funcionalidade de um projeto. Designers entendem que aquele projeto será usado por pessoas das mais variadas, ver o lado humano e inovar são coisas óbvias para eles. Pessoas usarão aquele formulário de cadastro feito para aquele site, logo não faz sentido coletar milhões de informações, mesmo que estas sejam importantes para as estatísticas mais tarde, só o que você irá fazer é com que as pessoas desistam de preencher aquilo tudo e não se cadastrem. Lógica pura e simples não ajuda aqui, estamos lidando com pessoas.

“Mas isso não está nos requisitos!”

Não é a toa que criação tem esse nome. É comum durante um projeto designers terem aquela ideia genial para algo que não estava planejado, a primeira reação de um desenvolvedor nesse caso é se recusar a fazer além do que estava planejado ou em mudar algo já definido. É preciso entender que se há a possibilidade de criar algo que deixe o resultado final ainda mais interessante, vale a pena o esforço. Designers se apaixonam pelo que fazem e querem ver o melhor resultado possível e isso inclui ir além. Não é algo forçado, simplesmente acontece. Antes de ser contra uma ideia fora da planilha tente abrir sua mente, deixe o roteiro um pouco de lado e tente ver o quanto essa decisão de incluir ou mudar algo pode fazer toda a diferença.

“Você só precisa deixar bonito”

Esqueça tudo o que vimos anteriormente sobre irritar um designer, nada é mais grave do que dizer que ele só deve deixar algo bonito. Entenda que o designer é um projetista, anos de estudo de comportamento humano, desenvolvimento de habilidades individuais, acúmulo de bagagem cultural, treino, composição, técnica, aprendizado de ferramentas, tudo somado para resultar em um grande projeto funcional, usável, eficiente e atrativo para um determinado público resumido em “você faz coisas bonitas”. Se você tem amor ao seu pescoço de desenvolvedor não faça isso! Imagine alguém que ache que você só faz o “troço” funcionar, está apenas dizendo a máquina o que fazer. Você sabe o quanto é complicado desenvolver aquele código, não é simplesmente “quero um botão aqui” e pronto, há muito mais envolvido por trás disso. Então lembre-se daquele velho ditado “não faça aos outros o que não gostaria que fizessem com você”, em outras palavras se coloque no lugar do coleguinha e entenda que o que ele faz não é fácil.

Com tantas diferenças é importante lembrar algo que os desenvolvedores e designers tem em comum, ambos odeiam o ego do outro.

Sim, somos orgulhosos. Queremos um ser superior ao outro, mas na verdade precisamos entender que somos uma equipe. Nem um projeta com o que o outro desenvolve e muito menos um desenvolve com que o outro projeta, fazemos tudo juntos para resultar no melhor. Uma equipe interdiciplinar colaborando para os melhores resultados.

Tags , , , , ,