Os 9 pecados de Startup Deadliest

Se o seu empreendimento é uma nova pizzaria ou o novo produto de software mais quente, tenha cuidado: estes nove pressupostos defeituosos são tóxicos .

1. Supondo que você saiba o que o cliente deseja. O primeiro e o mais mortal de todos é a crença inquebrável de um fundador de que ele ou ela entende quem serão os clientes, o que eles precisam e como vendê-los. Qualquer observador desapaixonado reconheceria que no primeiro dia, uma inicialização não tem clientes e, a menos que o fundador seja um verdadeiro especialista em domínio, ele ou ela só pode adivinhar sobre o cliente, problema e modelo comercial. read more

O negócio quebrado do comércio eletrônico e por que sua inicialização não será o próximo Casper

Se você não ouviu, a Amazon ganhou comércio eletrônico. O gigante de Bezos é o mercado mais poderoso e a marca que o mundo ocidental já viu ( obtenha minha análise aqui como um ex vendedor de Amazônia da figura 7 ). read more

Destaque de entrada de texto, estilo do TripAdvisor

O designer criou recentemente um estilo de entrada de texto, como a entrada de pesquisa no TripAdvisor . Eu gosto muito disso. Eu vou compartilhar minha solução como um guia passo a passo para que você possa construí-lo sozinho.

A implementação envolve CSS e JavaScript. Para a nossa versão, vou assumir que você tem um conhecimento básico de SCSS e Reagir.

Aqui está o CodePen concluído:

Vamos construí-lo a partir do zero

Vamos construí-lo

Primeiro, criaremos um componente React simples e o renderizaremos para o DOM:

O aplicativo de classe estende React.Component {
render () {
Retorna (
<div className = 'input-wrapper'>
<input
espaço reservado = 'Pesquisar ...'
spellCheck = {false}
/>
</ div>
);
}
} read more

Histórias de 300 desenvolvedores que obtiveram seu primeiro trabalho de tecnologia em seus 30s, 40s e 50s

É por isso que fiz tudo isso

Então, o que você diz a alguém que está entrando em pânico sobre se é "muito tarde" para eles? A maioria das pessoas apenas diz alguma variação da antiga citação da Walt Disney: "Se você pode sonhar, você pode fazê-lo!" read more

Hugo + Firebase: Como criar seu próprio site estático gratuitamente em minutos

Já pensou em ter seu próprio site para colocar seu portfólio de projetos ou currículo ou um blog para você. Até o final deste artigo, você poderá criar um.

Geralmente, para desenvolver um site você precisa conhecer HTML, CSS e um pouco de JavaScript (às vezes). Mas, para isso, você não precisa ter nenhuma habilidade de codificação. Você só precisa de habilidades básicas de informática.

Para colocar um site, você precisa ter um "espaço" (também conhecido como hospedagem), onde todos os seus arquivos serão carregados. Sempre que alguém digitar o seu site e os cliques entrar, estes são os arquivos que são atendidos / apresentados ao usuário no navegador.

Vamos começar com o que você precisa ter / saber:

Conta do Google

Eu acredito que você já pode ter uma conta do Gmail, o que é suficiente. Se não criar um.

Domínio

Isso é opcional. Existem vários provedores de nomes de domínio no mundo, além disso, você pode comprar um no Google . Você pode encontrar uma lista de provedores de nomes de domínio. É tão simples como fazer compras na Amazon .

Hugo

Hugo é uma ferramenta baseada em Go , que gera sites estáticos. Você pode usar vários modelos e criar diferentes tipos de sites como blogs, sites de portfólio etc.

Faça o download a partir daqui .

Firebase

A Firebase é uma plataforma de aplicativos para dispositivos móveis e web, adquirida pelo Google há alguns anos atrás. A Firebase oferece hospedagem como uma das suas características. No entanto, muitos desenvolvedores móveis usam isso para o Google Analytics, Notificações, Crash Reporting de aplicativos. Nós vamos usá-lo para hospedar nosso site.

Node.js

Node.js é um tempo de execução de JavaScript de código aberto criado no mecanismo de JavaScript V8 do Chrome . Para este tutorial, você precisa que ele seja instalado em sua máquina para que as ferramentas Firebase funcionem. Você pode fazer o download e instalá-lo a partir daqui .

Passo 1: instale o Hugo na sua máquina

Windows: você receberá um arquivo executável portátil simples. Você pode colocá-lo em qualquer lugar e executar via linha de comando. Você pode adicioná-lo à sua variável de caminho nas variáveis ??de ambiente do Windows para obtê-lo referenciado em qualquer lugar.

Mac: você pode instalá-lo usando Homebrew. Se você não possui brew instalado no seu mac, você pode baixar o tarball a partir daqui .

De qualquer forma, certifique-se de que você pode acessar o Hugo dando o comando abaixo.

Etapa 2: criar um site de modelo

Dirija-se ao local onde você decidiu criar seu site e digite o comando abaixo:

 $ hugo novo site <path_to_folder> 

No local dado, você pode ver uma estrutura de pastas como mostrado na imagem abaixo.

Imagem tirada no Windows 10

Essas pastas são apenas espaços reservados para o seu conteúdo. Todo o conteúdo de texto do seu site vai para a pasta de conteúdo .

Você pode executar comandos abaixo para adicionar novos arquivos.

 $ hugo new about.md 

Se você quiser adicionar uma postagem no blog, crie uma pasta chamada " blog" na pasta "conteúdo" e comece a adicionar seus arquivos. Esses arquivos possuem uma extensão de ".md" que são arquivos Markdown .

Markdown é uma linguagem de marcação de formatação de texto simples. É bonito e fácil. Há vários guias sobre como abordar o Markdown, aqui é um .

Passo 3: Defina um tema para o site

Hugo tem uma grande comunidade. Seu site de temas é enriquecido com diferentes categorias de temas do site. Dirija-se a ele e selecione um tema, que se adapte às suas exigências.

Escolhi o tema Introdução . Clicando no botão de download, redirecionará para o GitHub .

Cada tema terá sua própria maneira de configurar as coisas. Este tema específico não tem muitos passos. Basta clonar ou baixar o zip na pasta de temas. Copie o arquivo config.toml para a pasta raiz do seu site.

Etapa 4: configure suas preferências

Abra o arquivo config.toml e comece a editá-lo. Dê seu nome e outros detalhes que deseja exibir no site. Alguns temas suportam o Google Analytics para que você possa acompanhar a contagem de visitas do usuário, etc. Você pode fornecer seu ID GA para coletar dados.

Etapa 5: configurar um projeto de hospedagem Firebase

Como mencionei anteriormente, a Firebase é uma bela plataforma móvel com uma tonelada de recursos. Usei o Firebase hospedagem para hospedar meu site estático gerado via Hugo.

Para usar os serviços da Firebase, use sua Conta do Google e entre no site da Firebase .

Clique em "Ir ao console". Crie um projeto ao dar-lhe um nome. Você será exibido uma página de visão geral na qual você deve selecionar " começar no Hosting".

Etapa 6: configure ferramentas Firebase em sua máquina

Abra sua interface de linha de comando / terminal na sua máquina e digite o comando abaixo.

 $ npm install -g firebase-tools 

O comando acima instala o pacote Firebase-tools. Você precisa executar mais alguns comandos para poder implantar seu site diretamente.

 $ firebase login 

Esse comando conecta sua máquina ao projeto Firebase. Ele permite que você liste e selecione o projeto ao qual você deseja pressionar suas mudanças.

 lista de $ firebase 

Você pode executar o comando acima para ver o projeto que você criou. Um toque final para todo o fluxo de trabalho, precisamos inicializar a pasta raiz do seu site como raiz do projeto Firebase.

 $ firebase init 

Ele irá fazer-lhe algumas perguntas como

  • Quais recursos da CLI Firebase você deseja configurar? Resposta: Hospedagem.
  • Selecione um projeto Firebase padrão para este diretório Responda: Selecione o projeto Firebase que você criou na Etapa 5.
  • Você deseja usar como seu diretório público? Resposta: Sim.
  • Configurar como um aplicativo de uma única página? Resposta: Sim.

Para evitar confusão, eu tenho screenshots detalhadas tomadas em cada etapa para sua referência. Pode ser baixado aqui .

Finalmente! A inicialização da base de permissão está completa.

Passo 7: verifique seu site localmente

Execute o comando abaixo para verificar seu site localmente em sua máquina.

 servidor $ hugo -w 

O Hugo vem com um servidor web leve e de alto desempenho, onde você pode verificar todas as suas mudanças. Certifique-se de que todas as suas imagens são colocadas na pasta estática / img . Em um processo iterativo, mude seu config.toml e verifique no navegador. Abaixo está a porta na qual o servidor estará em execução.

 http: // localhost: 1313 

Passo 8: Implante seu site

Digite abaixo o comando para gerar seu site e empurre-o para o projeto Firebase correspondente que você configurou na Etapa 5 .

$ hugo && firebase deploy read more

Isto é o que o PHP moderno parece

Por Faraz Usmani (Flickr) [CC BY 2.0 ( http://creativecommons.org/licenses/by/2.0 )], através do Wikimedia Commons

O título é realmente pretensioso, não é? Sim é. Embora eu tenha trabalhado com PHP há anos, como posso indicar quais são as melhores práticas e ferramentas para o trabalho? Não pude, mas vou fazer isso.

Estou vendo uma mudança real na forma como os desenvolvedores estão fazendo seu trabalho com o PHP, não só a linguagem está mudando drasticamente para se tornar mais madura e robusta com novas versões e melhorias, mas todo o ecossistema em torno dela está mudando.

Novas ferramentas, bibliotecas, frameworks e artigos estão sendo criados, padrões estão sendo definidos para tornar o código mais elegante e fácil de entender. Várias pessoas estão pensando em maneiras de tornar o trabalho (e sua vida como desenvolvedor) mais produtivo, limpo e divertido.

Eu não sou um adotador precoce de novas tendências, na verdade, eu apenas adotam uma nova ferramenta quando tenho certeza de que há uma comunidade por trás disso e eu realmente acho que vai melhorar meu trabalho. O que sempre faço é tentar escrever meu código seguindo as melhores práticas.

Por isso, me levou tempo para começar a usar coisas como Composer e PHPUnit. Cerca de um ano atrás, mais ou menos, abri meu coração para todas essas novidades brilhantes.

O PSR veio primeiro, depois Composer, PHPUnit, Travis-ci e várias outras bibliotecas e ferramentas incríveis. Estou até usando um IDE agora (Vim FTW, mas PHPStorm com integração XDebug é uma obrigação para um fluxo de trabalho sano)!

O que é moderno?

Por Karen Roe (Flickr) [CC BY 2.0 ( http://creativecommons.org/licenses/by/2.0 )]

Há toneladas de artigos na web sobre o horrível PHP, como sua vida seria terrível se você tivesse que trabalhar com o código PHP, como o idioma é feio e tudo o que você poderia pensar!

Se você estiver trabalhando com código legado, talvez sua vida não seja tão boa, mas se você tiver a oportunidade de trabalhar em um novo projeto e puder usar todas as novas ferramentas, você vai ver esse novo PHP Eu vou falar.

Tenho vários problemas para trabalhar com PHP diariamente, mas não se pode fechar os olhos para as mudanças que ocorrem na linguagem, na comunidade e no ecossistema. Há uma longa caminhada à frente, mas as coisas estão ficando maduras na terra do PHP.

Comecei a criar um SDK para uma API interna na empresa para a qual trabalho, assim como um projeto de estimação, e decidi seguir as melhores práticas. A maioria deles já estava fazendo, mas fiz algumas mudanças na maneira como faço algumas coisas. Essas mudanças e o que aprendi no ano passado são o assunto deste artigo e do que eu chamo de PHP Moderno.

Vamos começar com o fluxo de trabalho

TRIO FABRIKKER – https://nos.twnsnd.co

Como eu disse, sou um recém-chegado a essa coisa IDE, mas foi amor à primeira vista. PHPStorm é um ótimo e excelente software. É o meu primeiro e único IDE. Foi minha tentativa de punho e eu nem precisei tentar qualquer outro.

A integração com o XDebug é perfeita, a resolução do espaço para nome do PHP, a integração do compositor, a integração do git, o auto-preenchimento, a geração de código, a refatoração de código. Eu poderia continuar continuando.

Eu não acho que você deve usar um IDE, na verdade, esse ponto é completamente pessoal. Você deve usar o que quiser às suas necessidades – Vim, Atom, Emacs, Bracket, NetBeans, PHPStorm, Eclipse, seja o que for. Dois pontos importantes aqui são produtividade e ergonomia. Seu IDE / editor de texto deve estar lá para ajudá-lo.

No entanto, para mim, um excelente ponto é a integração do depurador. Para escrever código para grandes projetos (mesmo para os pequenos), você precisa usar um depurador decente. Vamos esquecer esses var_dumps e print_rs. Você precisa picar essas variáveis ??no tempo de execução, analisar traços de pilha, definir pontos de interrupção. Essas coisas são essenciais e facilitam o desenvolvimento e a refatoração.

Eu nem sei se existem outras opções aqui, o XDebug tem tudo que você precisa. Você tem alguns minutos? Se ainda não fez isso, tome um momento para configurar o XDebug e integrá-lo ao seu IDE ou editor de texto. Comece a depurar seu código usando as ferramentas certas.

A outra ferramenta em que quero chamar a atenção é o GitHub. Outro artigo inteiro poderia ser escrito sobre o quão bom Git e GitHub são e por que você deve começar a manter seu código em um sistema de versão. Mas eu quero mostrar-lhe outro motivo.

O foco aqui é a integração.

Existem várias ferramentas que se integram ao GitHub e você deve começar a usá-las. Essas ferramentas podem gerar métricas, executar testes, executar trabalhos para você durante um processo de integração contínua e fazer todo o tipo de coisas em seu fluxo de trabalho. A integração é uma boa razão para você começar a usar o GitHub, todos os outros estão sujeitos por outro momento.

Gerenciamento de dependência

INSTITUTO PASTEUR. LISBOA, PORTUGAL – https://nos.twnsnd.co

Outro ponto neste moderno ecossistema PHP é o gerenciamento de dependências, e o Composer é a ferramenta para o trabalho.

Compositor tem 5 anos, mas parece-me que a adoção maciça ocorreu há alguns anos. Talvez porque não sou um adotador inicial ou talvez porque os desenvolvedores PHP estão relutantes em mudar.

Esta ferramenta fornece uma interface para o Packagist, que é um repositório de pacotes PHP que consiste em bibliotecas PHP, projetos e ferramentas, cujo código-fonte é armazenado em Github (ou outros locais como o BitBucket).

Todas as bibliotecas nas quais eu estou falando neste artigo, e talvez um desses projetos de estimação, pode ser adicionado ao seu projeto com um simples

 $ compositor exige package_vendor / package_name 

Se você não conhece o vendedor de um pacote, você pode search um pacote para encontrar e instalar o caminho certo.

 $ composer search package_name 

O compositor seria uma ótima ferramenta se ele simplesmente fizesse isso funcionar, gerenciasse dependências, mas faz muito mais. Tire um tempo para instalar o Composer e leia a documentação .

Interface de linha de comando feita à direita

Eu realmente gosto de tentar idéias rapidamente usando interfaces CLI. Para mim, uma das maiores ferramentas REPL é o IPython . Isso ajuda você a preencher automaticamente seu código, permitir que você defina facilmente funções, facilite o acesso à documentação e vários outros recursos incríveis. A desvantagem para nós, a ferramenta é para Python, não PHP.

No mundo do PHP, temos algo chamado "modo interativo", que pode ser acessado pelo terminal, apenas digitando

 $ php -a 
Modo interativo ativado
 php> 

Neste ponto, você está no modo interativo e pode começar a testar algo. Funciona, mas a ferramenta não é muito intuitiva. Eu tentei várias vezes, mas, como eu sabia o que o IPython conseguia fazer, não conseguiria usá-lo.

Para a nossa sorte, há uma nova CLI fresca (interface de linha de comando) no bloco e seu nome é Psysh. Psysh é uma ferramenta incrível, cheia de recursos interessantes e pode ser instalada globalmente ou por projeto usando o compositor.

O melhor recurso de Psysh para mim é documentação interna. Acessar o documento para uma função PHP sem encaminhar para Php.net é ótimo. A desvantagem é que você precisa fazer algumas coisas antes de ser totalmente funcional.

Depois de instalá-lo, digite os seguintes comandos (estou usando o Debian aqui, isso pode não funcionar para todos) para que ele funcione corretamente

$ apt-get install php7.1-sqlite3
$ mkdir / usr / local / share / psysh
$ wget http://psysh.org/manual/en/php_manual.sqlite -o /usr/local/share/psysh/php_manual.sqlite read more

Fazendo o seu próprio Sistema de Reconhecimento de Rosto

O reconhecimento facial é a última tendência no que diz respeito à autenticação do usuário. A Apple lançou recentemente o novo iPhone X que usa o Face ID para autenticar usuários. O OnePlus 5 está obtendo o recurso de Desbloqueio de Rosto do OnePlus 5T em breve. E o Baidu está usando reconhecimento facial em vez de cartões de identificação para permitir que seus funcionários entrem em seus escritórios . Essas aplicações podem parecer mágicas para muitas pessoas. Mas neste artigo buscamos desmistificar o assunto, ensinando-lhe como fazer sua própria versão simplificada de um sistema de reconhecimento de rosto em Python.

Github link para aqueles que não gostam de ler e só querem o código

fundo

Antes de entrar nos detalhes da implementação, quero discutir os detalhes do FaceNet. Qual é a rede que usaremos em nosso sistema.

FaceNet

FaceNet é uma rede neural que aprende um mapeamento de imagens de rosto para um espaço Euclidiano compacto onde as distâncias correspondem a uma medida de similaridade de face. Ou seja, as imagens de duas faces similares são menores que a distância entre elas.

Perda de Triplet

O FaceNet usa um método de perda distinto chamado perda de tríplice para calcular a perda. A perda de Triplet minimiza a distância entre uma âncora e uma imagem positiva, que contém a mesma identidade e maximiza a distância entre a âncora e uma imagem negativa, que contém identidades diferentes.

Figura 1: A equação da perda de Triplet

  • f (a) refere-se à codificação de saída da âncora
  • f (p) refere-se à codificação de saída do positivo
  • f (n) refere-se à codificação de saída do negativo
  • Alfa é uma constante usada para garantir que a rede não tente otimizar para f (a) – f (p) = f (a) – f (n) = 0.
  • […] + é igual a max (0, soma)

Redes Siamesas

Figura 2: Um exemplo de uma rede siamesa que usa imagens de faces como entrada e produz uma codificação de 128 números da imagem. Fonte: Coursera

FaceNet é uma rede siamesa. Uma rede siamesa é um tipo de arquitetura de rede neural que aprende como diferenciar entre duas entradas. Isso lhes permite aprender quais imagens são semelhantes e quais não são. Essas imagens podem conter rostos.

As redes síameses consistem em duas redes neurais idênticas, cada uma com os mesmos pesos exatos. Primeiro, cada rede leva uma das duas imagens de entrada como entrada. Então, as saídas das últimas camadas de cada rede são enviadas para uma função que determina se as imagens possuem a mesma identidade.

No FaceNet, isso é feito calculando a distância entre as duas saídas.

Implementação

Agora que esclarecemos a teoria, podemos pular diretamente na implementação.

Em nossa implementação, vamos usar o Keras e o Tensorflow . Além disso, estamos usando dois arquivos de utilitário que recebemos do repo de deeplearning.ai para abstrair todas as interações com a rede FaceNet .:

  • fr_utils.py contém funções para alimentar imagens para a rede e obter a codificação de imagens
  • inception_blocks_v2.py contém funções para preparar e compilar a rede FaceNet

Compilando a rede FaceNet

A primeira coisa que temos a fazer é compilar a rede FaceNet para que possamos usá-la para o nosso sistema de reconhecimento facial.

importar os
importar glob
importa numpy como np
importar cv2
Importar fluxo tensor como tf
de importação fr_utils *
de inception_blocks_v2 importar *
do back-up de importação de Keras como K read more

Padrões de design: comando e conserje na vida e Ruby

A definição do Padrão de Comando é estressante a ser observada. A definição formal é que:

  • encapsula um pedido como objeto
  • permitindo que você parametralize outros objetos com solicitações diferentes, solicitações de fila ou de logs e suporte a operações desfazíveis.

Vamos esquecer por um segundo e fazer uma viagem ao Havaí.

E viva em um hotel de luxo.

Passamos o dia na praia, mergulhamos e fizemos um passeio. É hora de voltar para o hotel para relaxar, comer e planejar para o próximo dia. read more

Como se ensinar com sucesso como codificar

Depois de publicar meu artigo anterior sobre como eu me tornei um desenvolvedor de software de 19 anos, centenas de pessoas vieram comigo basicamente com a mesma mensagem: "Adorei ler seu artigo e eu realmente quero aprender a programar, mas eu simplesmente não pode superar esse primeiro passo. É tão frustrante e esmagadora, sinto falta de estrutura e motivação. " Quero envolver o maior número de pessoas envolvidas no mundo da tecnologia, e acho que é muito importante concentrar-se nas pessoas muito motivadas, mas simplesmente não saiba como fazê-lo. read more

Como configurar uma VPN em 10 minutos de graça (e por que você precisa urgentemente de uma)

"Camera Man and Flower" de Banksy. Stencil em concreto. 2010.

"Um computador permite que você cometa mais erros mais rapidamente do que qualquer outra invenção com as possíveis exceções de armas de mão e Tequila." – Mitch Ratcliffe read more

Qual classificação você deve confiar? IMDB, Tomates podres, Metacritic ou Fandango?

Um cientista de dados investiga

Você deve assistir a um filme? Bem, há muitos fatores a serem considerados, como o diretor, os atores e o orçamento do filme. A maioria de nós baseia nossa decisão fora de uma revisão, um trailer curto, ou apenas verificando a classificação do filme. read more

O que é uma API? Em inglês por favor.

Obra de Phillip Blackowl . Tradução para o espanhol. Tradução em português .

Antes de aprender desenvolvimento de software, a API soava como uma espécie de cerveja.

Hoje uso o termo com tanta frequência que, de fato, tentei recentemente comprar uma API em um bar.

A resposta do barman foi lançar um 404: recurso não encontrado.

Conheço muitas pessoas, trabalhando em tecnologia e em outros lugares, que têm uma idéia bastante vaga ou incorreta sobre o que esse termo bastante comum significa.

Tecnicamente, API significa Interface de Programação de Aplicativos . Em algum momento ou outro, a maioria das grandes empresas criou APIs para seus clientes ou para uso interno.

Mas como você explica a API em inglês simples? E existe um significado mais amplo do que o utilizado no desenvolvimento e nos negócios? Primeiro, vamos voltar e ver como a própria Web funciona.

WWW e servidores remotos

Quando penso na Web, imagino uma grande rede de servidores conectados .

Cada página na internet é armazenada em algum lugar em um servidor remoto. Um servidor remoto não é tão místico depois disso – é apenas uma parte de um computador localizado remotamente otimizado para processar solicitações.

Para colocar as coisas em perspectiva, você pode girar um servidor em seu laptop capaz de servir um site inteiro na Web (na verdade, um servidor local é o que os engenheiros usam para desenvolver sites antes de liberá-los para o público).

Quando você escreve www.facebook.com no seu navegador, uma solicitação é enviada para o servidor remoto do Facebook. Uma vez que seu navegador recebe a resposta, ele interpreta o código e exibe a página.

Para o navegador, também conhecido como cliente , o servidor do Facebook é uma API. Isso significa que toda vez que você visita uma página na Web, você interage com a API do servidor remoto.

Uma API não é o mesmo que o servidor remoto – em vez disso é a parte do servidor que recebe pedidos e envia respostas .

APIs como forma de atender seus clientes

Você provavelmente já ouviu falar de empresas API de empacotamento como produtos. Por exemplo, Weather Underground vende acesso à sua API de dados meteorológicos .

Exemplo de cenário: o site da sua pequena empresa possui um formulário usado para assinar clientes para compromissos. Você deseja dar aos seus clientes a capacidade de criar automaticamente um evento do calendário do Google com os detalhes desse compromisso.

Uso da API: a idéia é que o servidor do seu site fale diretamente com o servidor do Google com um pedido para criar um evento com os detalhes fornecidos. Seu servidor receberia a resposta do Google, processaria e enviaria informações relevantes para o navegador, como uma mensagem de confirmação para o usuário.

Alternativamente, seu navegador geralmente pode enviar uma solicitação de API diretamente ao servidor do Google, ignorando seu servidor.

Como esta API do Google Agenda é diferente da API de qualquer outro servidor remoto lá fora?

Em termos técnicos , a diferença é o formato do pedido e a resposta.

Para renderizar toda a página da Web, seu navegador espera uma resposta em HTML, que contém código de apresentação, enquanto a chamada da API do Google Agenda apenas retornaria os dados – provavelmente em um formato como o JSON .

Se o servidor do seu site estiver fazendo a solicitação da API, o servidor do seu site é o cliente (semelhante ao seu navegador sendo o cliente quando você o usa para navegar até um site).

Do ponto de vista dos usuários, as APIs permitem que eles completem a ação sem sair do seu site.

A maioria dos sites modernos consome pelo menos algumas APIs de terceiros.

Muitos problemas já possuem uma solução de terceiros, seja na forma de uma biblioteca ou serviço. Muitas vezes, é mais fácil e confiável usar uma solução existente.

Não é incomum para as equipes de desenvolvimento dividirem a sua aplicação em vários servidores que falam uns com os outros através de APIs. Os servidores que executam funções auxiliares para o servidor de aplicativos principal são comumente designados como micro-serviços .

Para resumir, quando uma empresa oferece uma API a seus clientes, isso significa apenas que eles criaram um conjunto de URLs dedicados que retornam respostas de dados puras – o que significa que as respostas não conterão o tipo de despesas gerais de apresentação que você esperaria em uma interface gráfica de usuário como um site .

Você pode fazer esses pedidos com seu navegador? Muitas vezes, sim. Uma vez que a transmissão HTTP real acontece no texto, seu navegador sempre fará o melhor que pode para exibir a resposta.

Por exemplo, você pode acessar a API do GitHub diretamente com seu navegador sem precisar de um token de acesso. Aqui está a resposta JSON que você obtém quando você visita a rota API do usuário do GitHub no seu navegador ( https://api.github.com/users/petrgazarov ):

{
"login": "petrgazarov",
"id": 5581195,
"avatar_url": "https://avatars.githubusercontent.com/u/5581195?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/petrgazarov",
"html_url": "https://github.com/petrgazarov",
"followers_url": "https://api.github.com/users/petrgazarov/followers",
"follow_url": "https://api.github.com/users/petrgazarov/following{/other_user}",
"gists_url": "https://api.github.com/users/petrgazarov/gists{/gist_id}",
"starred_url": "https://api.github.com/users/petrgazarov/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/petrgazarov/subscriptions",
"organisations_url": "https://api.github.com/users/petrgazarov/orgs",
"repos_url": "https://api.github.com/users/petrgazarov/repos",
"events_url": "https://api.github.com/users/petrgazarov/events{/privacy}",
"received_events_url": "https://api.github.com/users/petrgazarov/received_events",
"tipo": "Usuário",
"site_admin": falso,
"nome": "Petr Gazarov",
"empresa": "PolicyGenius",
"blog": "http://petrgazarov.com/",
"localização": "NYC",
"email": "petrgazarov@gmail.com",
"contratável": nulo,
"bio": nulo
"public_repos": 23,
"public_gists": 0,
"seguidores": 7,
"seguindo": 14,
"created_at": "2013-10-01T00: 33: 23Z",
"updated_at": "2016-08-02T05: 44: 01Z"
} read more

Aprenda CSS Flexbox em 5 minutos

Uma introdução rápida ao popular módulo de layout

Nesta publicação, você aprenderá os conceitos básicos do CSS Flexbox, que se tornou uma habilidade imprescindível para os desenvolvedores e designers da web nos últimos dois anos.

Usaremos uma barra de navegação como exemplo, pois este é um caso de uso muito típico para o Flexbox. Isto irá apresentá-lo às suas propriedades mais utilizadas do módulo, enquanto deixa de fora aqueles que não são tão críticos.

Também estou criando um curso gratuito no Flexbox. Se você quiser acesso antecipado, você pode deixar o seu e-mail aqui e eu o enviarei uma vez que estiver pronto.

Agora vamos começar!

Seu primeiro layout do Flexbox

Os dois componentes principais de um layout Flexbox são o contêiner e os itens .

Aqui está o HTML para o nosso exemplo, que contém um recipiente com quatro itens:

 <nav class = "container"> 
<div> Home </ div>
<div> Pesquisa </ div>
<div> Sair </ div>
</ nav>

Antes de transformarmos isso em um layout do Flexbox, os divs seriam empilhados um do outro como este:

Eu adicionei um pouco de estilo, mas isso não tem nada a ver com o Flexbox.

Para transformar isso em um layout Flexbox, simplesmente daremos ao contêiner a seguinte propriedade CSS:

 .container { 
exibir: flex;
}

Isso posicionará automaticamente os itens bem ao longo do eixo horizontal.

Se você deseja verificar o código real, pode dirigir-se a este campo de jogos Scrimba.

Agora, vamos minimizar esses itens em torno de um pouco.

Justificar conteúdo e Alinhar itens

Justify-content e align-items são duas propriedades CSS que nos ajudam a distribuir os itens no recipiente. Eles controlam como os itens são posicionados ao longo do eixo principal e eixo transversal .

No nosso caso (mas não sempre), o eixo principal é horizontal e o eixo transversal é vertical:

Neste artigo, apenas analisaremos o justify-content , como eu descobri que estava usando este muito mais do que align-items . No entanto, no meu próximo curso, vou passar por ambas as propriedades em detalhes.

Vamos concentrar todos os itens ao longo do eixo principal usando o justify-content :

.container {
exibir: flex;
justify-content: center;
} read more

Tech e a tática do Fake Market

Em uma geração, a Internet passou da abertura de novos mercados livres para a criação de uma série de mercados falsos que exploram a sociedade, sem que muitos meios de comunicação ou políticos percebam.

1. O mercado aberto da internet

A cultura americana adora usar o ideal de mercados livres competitivos como a solução para todos os tipos de problemas sociais. Embora o vultado Free Market não tenha incentivos para, digamos, cuidar de bebês com câncer, um mercado que funcione bem pode ser definitivamente uma ótima maneira de ver qual fornecedor oferece o preço mais barato para um rolo de papel higiênico ou um alqueire de maçãs. read more

Mudando o mundo, um arranque de hardware de cada vez.

Digamos que você tenha uma idéia para um dispositivo de hardware, talvez um dispositivo conectado para o mercado de consumo ou para negócios. Onde você vai?

Essa foi a pergunta que ouvimos várias vezes antes de mim e uma dúzia de outros fundadores decidiram criar associação produtizada. Estando envolvido com vários aceleradores de inicialização nos últimos 7 anos, testemunhei pessoalmente que o ecossistema de inicialização local cresceu praticamente zero para o que é hoje, tendo organizado muitas edições do Startup Weekend (e escrevendo sobre a falta de boas idéias de inicialização aqui ) , e a co-fundação do Beta-i, então o acelerador do Desafio de Lisboa – de muitas maneiras eu sinto que ganhamos uma grande batalha – o eco-sistema de Lisboa estava saindo do radar há muito tempo e finalmente recebeu a atenção da mídia merecida na Europa, também estimulados pelo movimento da WebSummit de Dublin e novatos inovadores como o TalkDesk e aceleradores internacionalmente reconhecidos como o Lisbon Challenge e as incubadoras de classe mundial como Startup Lisboa e Fabrica de Startups. read more

Uma Catalina independente continuaria a atrair talentos de alta tecnologia?

A Catalunha pretende realizar um referendo sobre a independência no domingo , apesar dos esforços do governo espanhol para impedir que isso aconteça, porque um plebiscito tal viola a Constituição espanhola e, portanto, é ilegal. Com a polícia ordenada para evitar que as pessoas votassem por toda a região do Nordeste, o resultado provavelmente será contencioso e inconclusivo, e podemos esperar que a campanha se separe da Espanha para continuar. read more

Espanha e logística: Deus abençoe a Amazon …

Ontem, sábado, minha esposa e eu percebemos pela tarde que um amigo estava vindo para o almoço hoje e que nos esquecemos de comprar um presente para ele. Sabíamos que estava disponível na loja de departamentos El Corte Inglés , líder do mercado em Espanha, então tentamos seu site. Encontramos o artigo, e a página disse que poderia ser entregue em menos de duas horas. Apesar dos atrasos históricos tradicionais das principais lojas de departamento em Espanha em relação ao comércio eletrônico e algumas experiências ruins anteriores com eles, decidimos dar outra chance. read more

Graças à Mini-Série Guerra e Paz, agora você pode finalmente lidar com o romance

One Hint: tente com um audiolibro, com o melhor narrador e tradução

Primeiro transmitido na BBC, agora nos canais Lifetime e History, a min-series War and Peace oferece uma entrada para a novela. Minha sugestão: assista o primeiro episódio (usando as informações da sua conta de cabo ou o log-in de um amigo) para obter uma correção nos poucos personagens principais que realmente contam. É uma novela alucinante, e com a confusão de apelidos e personagens femininos com sobrenomes ligeiramente alterados de seus parentes, parece quase impenetrável. read more

Recomendações do livro moderno com base em seus favoritos da infância

Se você gostou de alguns dos favoritos desta lista, é provável que você goste dessas próximas opções.

No mundo de hoje, é difícil escolher cegamente um livro e esperar para apreciá-lo, especialmente se você é cego. Com todas as opções em uma estante de Barnes & Noble, é difícil saber que esse livro é o ideal para você. Listados abaixo estão alguns livros que você pode ter lido como criança, bem como uma recomendação relevante para acompanhá-lo. read more