The main issues you probably will face developing a GraphQL API

Image for post
Image for post
Snowflake: Ice Rainbow by Alexey Kljatov

This post is a branch of "Sharing data in a Microservices Architecture using GraphQL" where I explore some problems integrating services in a Microservices Architecture and how GraphQL comes in handy to solve some of them.

For some time working and studying GraphQL, I have found some important concerns for anyone considering using this tool. In this post I’ll summarize these concerns and list some actions that can be taken as workarounds.

We will cover three main types of concerns/problems:

1 — Almost impossible to solve:

  • Query In Indefinite Depth
    TL;DR: GraphQL cannot query in indefinite depth, so if you have a tree and want to return a branch without knowing the depth, you’ll have to do some pagination.

English version here.

Aqui no GetNinjas, passamos por alguns dilemas integrando componentes da nossa Arquitetura de Microsserviços e explorando as opções disponíveis, o GraphQL mostrou-se como uma excelente ferramenta. Vou listar aqui alguns problemas com três maneiras comuns de fazer essas integrações, e no final, sugerir o GraphQL como uma opção melhor para alguns casos.

Estratégias comuns

Estratégia #1 — Compartilhar acesso ao banco de dados

Integrar sistemas através dos seus bancos de dados parece ser tão fácil que nos sentimos seduzidos à fazer isso. Tudo o que temos que fazer é compartilhar acesso ao bancos de dados entre os serviços, portanto, o sistema A poderia acessar o banco de dados do sistema B e assim por diante. …


Here at GetNinjas we’ve faced some problems integrating components of our Microservices Architecture and exploring available options, GraphQL showed up as an excellent fit. I’ll focus on exploring problems with three common ways to do that, and in the end suggest GraphQL as a better option for some cases.

Common strategies

Strategy #1 — Share database access

Integrate systems by their databases seems to be so easy that we feel seduced to do this. All we have to do is share databases access among the services, so the system A can access the database of the system B and so forth. What is the problem with this approach? …


Há alguns dias consegui duas matrizes de leds 8x8 azuis e resolvi brincar com elas :)

Image for post
Image for post
https://www.flickr.com/photos/bsoares/sets/72157620919850875/

O resultado foi um jogo de Ping Pong, sim O primeiro videogame lucrativo da história. É de fato um joguinho bem interessante e facíl para quem pratica eletrônica digital por hobby.

Para ligar e desligar cada led da matriz utilizei como referência o código encontrado no Arduino Playground (http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix), só que minha matriz é diferente do utilizado no exemplo, então fiz algumas pequenas alterações no método doubleBuffer. Resumindo, no exemplo encontrado no Playground a matriz utilizada tem a linha como cátodo já minha matriz tem a coluna como cátodo.

Abaixo a especificação da matriz utilizada:

8x8-led-matriz-especification
8x8-led-matriz-especification

Código fonte

Conteúdo relacionado:

Instructables
Mais fotos no Flickr
Ping Pong com Matriz de Leds 8x8 no YouTube
Arduino 8x8 LED Matrix Direct drive
O primeiro videogame lucrativo da história (Pong)
Led Dot Matrix
TimerOne


Image for post
Image for post

Ultimamente tenho me deparado com muitos trechos de códigos que utilizam operações binárias, como chaveamento de multiplexador, extração de RGB a partir de um inteiro ou hexadecimal, bitshift para controlar Matriz de Leds, etc… E finalmente dei aquela estuda, agora vai ai um post sobre o que resultou o estudo.

Obs.: Os trechos de códigos deste post foram escritos em ActionScript, mas pode ser aplicado a C, C++, Java, Processing, entre outras linguagens.

Introdução

Um operador binário, como o nome sugere, é um operador que trabalha com a representação binária do número, e como normalmente não sabemos a representação binária dos números de cabeça, vamos utilizar a tabela…


Image for post
Image for post
https://www.flickr.com/photos/bsoares/sets/72157617326290410/

Vamos a um exemplo de uso da Arduino onde controlo um Led RGB de quatro terminais através da porta serial.
Para enviar as cores através da serial usaremos processing.

Para combinar as cores de um Led RGB é necessário variar a voltagem em cada terminal, e para isso a Arduino conta com 6 pinos PWM (Pulse Width Modulation, Modulação por largura de pulso), somente 3 são necessários, pois o quarto terminal deve ser conectado a GND (terra).

No exemplo conectamos os pinos da seguinte forma:

  • Terminal Vermelho no pino 9 (utilizando resistência de 150 Ohm)
  • Terminal Azul no pino 10 (utilizando resistência de 90…

Twitter Hardware é um projeto que utiliza a placa Arduino e um Display LCD para exibir as mensagens do Twitter. Para que a Arduino tenha as mensagens escrevi um software em Adobe AIR / Flex, que se conecta ao Serial Proxy enviando o conteúdo para a Arduino.

Esquemático

Image for post
Image for post

Conteúdo relacionado:
Fotos no Flickr
Fritzing
Arduino
Adobe AIR
Adobe Flex
LiquidCrystal Library

Bruno Soares

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store