Blog

Instalando Node.js 6.x e npm no Ubuntu 16.04

Instalando Node.js 6.x e npm no Ubuntu 16.04

Node.js é uma plataforma Javascript que permite que os desenvolvedores criem aplicações de rede escaláveis e de maneira rápida. É utilizada no mundo todo e mantida por uma grande comunidade.
Outro importante elemento é o gerenciador de pacotes npm (node package manager). Com o npm é possível ter acesso a um repositório online onde existem milhares de projetos de código-aberto para o Node e, claro, gerenciar todas as dependências e versões que precisarmos. Dito isso, vou mostrar duas maneiras de instalar o node e também como instalar o npm no seu Ubuntu 16.04. Vamos lá?
Utilizando os repositórios do Ubuntu
A maneira mais simples de instalar o node no Ubuntu é obtendo-o dos repositórios padrões do sistema operacional. Geralmente não será a última versão, mas será uma versão estável. Primeiro, precisamos ter certeza que nossos repositórios e os pacotes do sistema estão atualizados

$ sudo apt update
$ sudo apt upgrade

E logo então podemos instalar o node (aqui precisei de sudo)

$ sudo apt install nodejs

E por último o npm (também precisei de sudo)

$ sudo apt install npm

Para verificar que tudo foi instalado corretamente, vamos conferir as versões que foram instaladas (pode ser que você já tenha instalado uma versão mais atual)

$ node -v
v6.9.4
$ npm -v
3.10.10

Utilizando um PPA
PPA (Personal Package Archives) são pacotes pessoais que não pertencem as atualizações ou softwares padrões do Ubuntu; criados e mantidos pela comunidade. Geralmente são utilizadas para manter as versões mais atualizadas dos softwares, que não estão nos repositórios padrões. Eu não vou entrar aqui no assunto se PPAs são seguros ou não, porque nesse caso o PPA que vou indicar para vocês é indicado pelo site oficial do node.
Primeiro precisamos instalar uma dependência do pacote python-software-properties caso você ainda não o tenha


$ sudo apt install python-software-properties

e agora basta adicionar o PPA

$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

Feito isso

$ sudo apt install nodejs

Utilizando o PPA, o npm é instalado automaticamente junto com o node. Novamente testando a instalação


$ node -v
v6.9.4
$ npm -v
3.10.10

No momento em que escrevi este artigo, a versão mais atual do Node.js é a v7.4.0, mas ela ainda não estava com LTS (Long Term Support), o que não impede você de testá-la ou usá-la. Se quiser fazer isso, simplesmente repita a instalação via PPA, mas com o seguinte repositório


$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

Verá que as versões foram atualizadas


$ node -v
v7.4.0
$ npm -v
4.0.5

É isso ai pessoal! Tem alguma dúvida? Me deixe uma mensagem nos comentários. Até a próxima!

O post Instalando Node.js 6.x e npm no Ubuntu 16.04 apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Instalando Node.js 6.x e npm no Ubuntu 16.04
Fonte: Locaweb

Na mesa do Chief – Entrevista com a Designer Cristiane Amaral

Na mesa do Chief – Entrevista com a Designer Cristiane Amaral

Eae! Td bele? Mais um hangout para vocês. :) No vídeo de hoje converso com a Designer Cris Amaral. Nesse hangout falamos sobre a profissão, mercado, clientes, entre outras coisas. Assista abaixo esse bate-papo: Sobre a Designer Cris Amaral Formada em Design de Interiores (CAD) e Design Gráfico pela Universidade Federal de Santa Catarina, experiência como […]
O post Na mesa do Chief – Entrevista com a Designer Cristiane Amaral apareceu primeiro em Chief of Design.

Na mesa do Chief – Entrevista com a Designer Cristiane Amaral
Fonte: Chef of Design

APPs híbridos com Cordova

APPs híbridos com Cordova

Desde que tive meu primeiro smartphone, sempre quis entender como os aplicativos eram feitos. Eu achava aquilo um máximo! Por isso, ainda na faculdade, em minhas horas vagas, depois que eu aprendi a programar, sempre ficava me aventurando no mundo do Android. Aprendi o suficiente para saber fazer aplicativos básicos e até elementos um pouco mais avançados.
Mas ainda não era suficiente, porque eu queria saber como desenvolver aplicativos para iOS e Windows Phone (sim, acreditem :D) também. Então naquela época eu fiz algumas aulas de Objective C e de C# e acabei até fazendo meus primeiros aplicativos para as duas plataformas.
O problema é que é muito complicado você manter o mesmo APP em três linguagens diferentes e eu não tinha vontade para aprender Objective C (com seus infinitos colchetes) e nem memória no PC para manter o Visual Studio e programar com C# :D
Foi aí que em um belo dia ouvi falar do PhoneGap, basicamente um framework mobile multiplataforma baseado nas tecnologias padrões da web. Isso significa que o mesmo código de um aplicativo rodaria nas três plataformas que eu mencionei e em mais algumas que o Phonegap dava suporte. Sensacional, não?
 
A tecnologia
O que deu vida ao PhoneGap foi um conjunto de APIs móveis open-sources chamado de Apache Cordova, gerenciado pela Apache foundation.
Basicamente, o que o Cordova faz é prover APIs que permitem acessar os elementos nativos dos dispositivos móveis e computadores tais como, câmera, gps, NFC, áudio, etc., via JavaScript.
Como é o Cordova que vai fazer com que nossas chamadas via Javascript sejam interpretadas por cada uma das plataformas que desejarmos, temos aí uma maneira universal para programar nossos apps sem termos que nos preocupar com Java, Swift ou C#, mas somente com HTML, CSS e qualquer framework JavaScript que estivermos dispostos a usar.
Uma vez combinado com um framework UI (Interface de usuário), as possibilidades para criar aplicativos utilizando somente as linguagens web que mencionei, eram infinitas. Essa modalidade de aplicativos ficou então conhecida como aplicativos híbridos.
Desde os tempos iniciais do PhoneGap até os dias de hoje, a plataforma evoluiu bastante e já é possível utilizá-la inclusive para criar aplicativos para Windows, Ubuntu e OS X, ultrapassando as barreiras do mobile.
 
Frameworks e mais frameworks
Falando em frameworks, o PhoneGap já não está mais sozinho no universo Cordova. Existe um verdadeiro ecossistema de frameworks open-source que permitem que você construa aplicativos híbridos.
Um deles é o ionic, um dos melhores atualmente. Ele foi construído utilizando Angular e é uma plataforma que já permite até mesmo integrar serviços como push notifications e analytics.
A grande vantagem do ionic é a extensa comunidade que ele já possui e com isso a vasta gama de elementos UI que ele possui. Só para você ter uma ideia, enquanto escrevia esse artigo, o projeto já tinha mais de 27 mil estrelas no GitHub.
Além do ionic, existem diversos outros que talvez você possa se interessar: jQuery Mobile, Sencha Touch, Ratchet e Lungo. Esses são os que eu conheço, mas existem muitos outros por ai.
 
Nativo X Híbrido
Eu já falei da principal vantagem que vejo em se fazer aplicativos híbridos: a complexidade de desenvolvimento multiplataforma que é bastante facilitada. Ainda assim, pense que é preciso uma equipe com expertise nas plataformas para as quais iremos desenvolver por conta dos testes que realizaremos. Afinal, garantir o funcionamento do produto em todas as plataformas continua sendo uma obrigação de quem desenvolveu o produto, não é mesmo?
É por isso que por mais que diminua a complexidade de desenvolvimento, o custo de desenvolver para múltiplas plataformas continuará sendo alto em outros aspectos. Nós sabemos que desenvolver software de qualidade ainda é uma tarefa complexa e cara. Mesmo assim é possível utilizar tecnologias híbridas para desenvolver um software mobile multiplataforma de qualidade; basta estarmos dispostos a pagar o preço para isso.
Atualmente, muitas empresas utilizam os APPs híbridos como MVP (Minimum Viable Product) porque conseguem desenvolver rapidamente os aplicativos para várias plataformas, a fim de testá-los e validá-los com seu público-alvo. É realmente uma das finalidades que eu indicaria para que você utilizasse essa tecnologia, pois a um custo baixo, você poderia errar ou acertar rapidamente (agora eu vi vantagem :D).
Muitos APPs híbridos acabam virando nativos mais tarde, quando atingem uma base considerável de usuários, muitas vezes por conta de performance. Eu não vou entrar muito no assunto de performance porque os softwares como o Cordova estão cada vez mais evoluídos e já permitem, como disse anteriormente, a utilização de recursos nativos dos aparelhos em contrapartida dos apps “fakes” feitos com WebView.
Mas é fato que se você precisar desenvolver um código nativo (em C por exemplo), como muitas empresas de games precisam, ou se precisar de uma performance absurda, então realmente escolher o híbrido não seria uma boa ideia. É melhor então começar a pensar em montar suas equipes para cada uma das plataformas que pretende atuar.
E você, o que acha? Nativo ou híbrido?
Dúvidas? Deixe um comentário, que eu terei prazer em responder! Até a próxima!
O post APPs híbridos com Cordova apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

APPs híbridos com Cordova
Fonte: Locaweb

Instalando o Cordova 6.x no Ubuntu e Mac OS X

Instalando o Cordova 6.x no Ubuntu e Mac OS X

Instalar o Cordova no Ubuntu e no Mac OS X é uma tarefa bem simples se já tivermos com o Node.js e npm instalados. Caso você ainda não tenha essas dependências, você pode instalá-las utilizando um destes dois guias, para Ubuntu ou para Mac OS X.
Bom, agora que você já tem as dependências necessárias, vamos utilizar o npm para instalar o Cordova. Neste guia, eu estou utilizando o Ubuntu 16.04, mas os mesmos comandos podem ser utilizados para instalar no Mac OS X também. Para instalar o framework, simplesmente digite em seu terminal

$ npm install -g cordova

Aqui eu precisei de sudo, por conta de algumas permissões de pastas do meu computador. A saída desse comando, deve ser mais ou menos a seguinte (pode mudar dependendo de quantas dependências do cordova você já tiver instaladas)

Para ter certeza que tudo está certo, vamos então criar uma aplicação de teste bem simples. Todos os comandos que vamos precisar para criar essa aplicação serão feitos através da CLI (command-line interface) do Cordova.
Entre em um diretório de sua preferência onde deseja criar a aplicação. No meu caso

$ pwd
/home/pablo
$ cd repos

Uma vez no diretório, digite

$ cordova create appTest
Creating a new cordova project.

Se nenhum erro apareceu, a aplicação inicial foi criada. Aqui não estamos falando de nenhuma plataforma, simplesmente estamos testando nosso framework. Por isso, vamos utilizar o nosso navegador mesmo para testar nossa aplicação, pois não vamos precisar instalar nenhuma dependência de plataforma. Com a aplicação criada, entre no diretório em que ela está

$ cd appTest

Agora vamos adicionar uma plataforma ao nosso projeto, neste caso como disse o próprio navegador (é possível que ele instale algumas dependências automaticamente)

$ cordova platform add browser
Adding browser project…
Running command: /home/phsil/.cordova/lib/npm_cache/cordova-browser/4.1.0/package/bin/create /home/phsil/repos/MyApp/platforms/browser io.cordova.hellocordova HelloCordova
Creating Browser project. Path: platforms/browser
Discovered plugin “cordova-plugin-whitelist” in config.xml. Adding it to the project
Fetching plugin “cordova-plugin-whitelist@1” via npm
Installing “cordova-plugin-whitelist” for browser

Uma vez que o nosso projeto agora tem suporte para o navegador, vamos então rodar nossa aplicação para confirmar que tudo deu certo

$ cordova run browser
Running command: /home/phsil/repos/MyApp/platforms/browser/cordova/build
Cleaning Browser project
Running command: /home/phsil/repos/MyApp/platforms/browser/cordova/run –nobuild
Static file server running @ http://localhost:8000/index.html
CTRL + C to shut down

Como você pode ver, foi criado um servidor estático no endereço http://localhost:8000/index.html. Abra seu navegador (se ele não foi aberto automaticamente) e digite o endereço do servidor.
Se tudo deu certo, você verá a seguinte tela:

Parabéns, você criou sua primeira aplicação utilizando o Cordova.
Você pode saber muito mais sobre o framework, olhando sua documentação neste link. É uma documentação bem completa que vai te ajudar a entender melhor os aspectos do framework e começar a desenvolver para outras plataformas, como Android e iOS.
Ficou alguma dúvida? Escreva aí nos comentários! Até a próxima!
O post Instalando o Cordova 6.x no Ubuntu e Mac OS X apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Instalando o Cordova 6.x no Ubuntu e Mac OS X
Fonte: Locaweb

Instalando Node.js 6.x e npm no Mac OS X com Homebrew

Instalando Node.js 6.x e npm no Mac OS X com Homebrew

Node.js é uma plataforma Javascript que permite que os desenvolvedores criem aplicações de rede escaláveis e de maneira rápida. É uma plataforma extensamente utilizada no mundo todo e mantida por uma grande comunidade.
Outro importante elemento é o gerenciador de pacotes npm (node package manager). Com o npm é possível ter acesso a um repositório online com milhares de projetos de código aberto para o Node e, claro, gerenciar todas as dependências e versões que precisarmos. Dito isso, vou mostrar como instalar o node e também como instalar o npm no seu Mac OS X utilizando o brew. Vamos lá?
Nosso Homebrew de cada dia
Uma das maneiras mais simples de instalar o node no Mac OS X é utilizando o Homebrew. Primeiro, precisamos ter certeza de que os repositórios do brew estão atualizados.

$ brew update

Vamos primeiro pesquisar as versões de node disponíveis para instalação, pois aqui queremos instalar a versão 6.x, que é a versão estável e LTS. Se executarmos o seguinte comando

$ brew install node

Ele instalará a versão mais atual, que na data de escrita deste tutorial era a 7.x. Como queremos a versão 6.x, vamos pesquisar para ver se ela está disponível

$ brew search node
leafnode llnode node node-build node@0.10 node@0.12 node@4 node@5 node@6 nodebrew nodeenv nodenv
Caskroom/cask/mindnode-pro Caskroom/cask/node-profiler Caskroom/cask/nodebox Caskroom/cask/nodeclipse Caskroom/cask/printnode Caskroom/cask/soundnode

Como podemos ver no resultado da busca, temos a versão node@6, a qual iremos instalar.
O restante são outros pacotes do node que podemos instalar com o Brew e por hora vamos só ignorá-los. Logo

$ brew install node@6

Como essa não é a última versão do node, precisamos exportar o nosso bin para o nosso PATH porque o Brew não faz isso automaticamente

$ echo ‘export PATH=”/usr/local/opt/node@6/bin:$PATH”‘ >> ~/.bash_profile
$ source .bash_profile

Uma vantagem do Brew é que quando instalamos o node com ele, o npm será instalado também. Para verificar que tudo foi instalado corretamente vamos conferir as versões que foram instaladas (pode ser que você já tenha instalado uma versão mais atual)

$ node -v
v6.9.4
$ npm -v
3.10.10

É isso ai pessoal, bem simples não é? O Homebrew sempre facilita algumas coisas para nós. Tem alguma dúvida? Me deixe uma mensagem nos comentários. Até a próxima!
O post Instalando Node.js 6.x e npm no Mac OS X com Homebrew apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Instalando Node.js 6.x e npm no Mac OS X com Homebrew
Fonte: Locaweb

Na mesa do Chief – Entrevista com a Designer e Desenvolvedora Anyssa Ferreira do estúdio Haste Design

Na mesa do Chief – Entrevista com a Designer e Desenvolvedora Anyssa Ferreira do estúdio Haste Design

Eae! Td bele? Hoje tem hangout, hoje tem entrevista, hoje tem “Na mesa do Chief” :) Durante este mês de março, que é o mês onde temos o dia internacional da mulher, eu vou trazer para você uma série de vídeos com mulheres que atuam na área. E começamos essa série com um bate papo […]
O post Na mesa do Chief – Entrevista com a Designer e Desenvolvedora Anyssa Ferreira do estúdio Haste Design apareceu primeiro em Chief of Design.

Na mesa do Chief – Entrevista com a Designer e Desenvolvedora Anyssa Ferreira do estúdio Haste Design
Fonte: Chef of Design

6# ERROS que te impedem de fazer um Portfólio e travam a sua carreira!

6# ERROS que te impedem de fazer um Portfólio e travam a sua carreira!

Eae, td bele? Você tem um portfólio ou ainda não dedicou um tempo para criar o seu? Independente da resposta é muito provável que você tenha cometido, ou ainda comete, certos erros ao criar o seu portfólio. Existem certas coisas que prejudicam a gente e nos fazem adiar, e até mesmo desistir, de ter um portfólio. […]
O post 6# ERROS que te impedem de fazer um Portfólio e travam a sua carreira! apareceu primeiro em Chief of Design.

6# ERROS que te impedem de fazer um Portfólio e travam a sua carreira!
Fonte: Chef of Design

Conheça a arte do SOLID

Conheça a arte do SOLID

Quando escuto ou leio a palavra SOLID me vem logo o Snake, do game Metal Gear Solid na cabeça e isso acontece há muito tempo. Não sou nenhum fã do jogo, mas também não sou hater, apenas não joguei o suficiente para entrar em um dos lados da força.
Agora, voltando ao tal do SOLID – que não é jogo -, você já ouviu falar dele? Já o usou? Sabe para que serve? Neste artigo vamos fazer um overview e ver a melhor forma de usar esse cara…
Primeiro precisamos saber que SOLID é uma sigla para Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion.
Para facilitar, o SOLID é um acrônimo para os cinco primeiros princípios da programação orientada para objetos, nós buscamos segui-los para que um projeto seja realmente orientado a objetos e não um fruto da nossa linda e maravilhosa criatividade.
Vamos ver o que cada um desses princípios tratam; só para facilitar o entendimento dos conceitos, utilizaremos alguns exemplos em JAVA e outros em Ruby:
– Single Responsibility
O Single responsibility está ligado diretamente ao objetivo que a cada classe possui, sendo que uma classe deve ter sempre um único objetivo. Se o sistema está crescendo e uma classe passou a ter duas responsabilidades é hora de dividi-la em duas classes, cada uma com uma responsabilidade. Exemplo:
class Client
def save(args)
super
ExecuteDepencencies.execute(args[:dependencies])
end
end

class ExecuteDepencencies
def self.execute(dependencies)
dependencies.each do |dependency|
dependency[:module].execute(dependency[:arg])
end
end
end

class UploadFile
def self.execute(file)
#Do the upload
end
end

class Sendmail
def self.execute(email)
#Send email
end
end

Imagine um formulário de cadastro onde o usuário ao submeter os dados já faz o upload do arquivo anexo e envia um e-mail para o mesmo confirmando o cadastro. A responsabilidade de salvar ficou na classe do cliente enquanto fazer o upload e enviar o e-mail ficaram em classes separadas, podendo ser utilizados em outros lugares do sistema em que seja necessário novamente fazer o upload de um arquivo como no cadastro de produtos ou enviar um e-mail como no fechamento de uma compra.
– Open-closed
O princípio de aberto e fechado nos traz o conceito de que devemos sempre deixar nossas classes abertas para serem expandidas, porém fechadas para serem modificadas. Ou seja, você deve isolar a regra para que assim outras classes possam usar ela. Exemplo:
public class User {
public void executeRole(String role){
if(role == ‘Admin’){
// Do Something
}

if(role == ‘Client’){
// Do Something
}
}
}

No exemplo acima sempre que implementarmos alguma regra nova, por exemplo um Fornecedor (Provider), iremos colocar um if a mais no código e esses ifs tendem ao infinito.
A ideia do princípio é colocar a role em uma interface para retirar esses ifs. Exemplo:
public interface Role {
void executeRole(String role);
}

public class Admin implements Role {}
public class Client implements Role {}
public class Provider implements Role {}

Desta forma dentro das classes iremos implementar o método executeRole sem nenhum if, apenas executando o que cada um deveria fazer. A ideia nesse caso é que a interface Role seja pouco modificada (o ideal é que ela não seja modificada) e apenas a sua implementação nas classes que irão utilizá-la sejam alteradas conforme a necessidade da classe.
 
– Liskov substitution
Esse princípio está relacionado a herança e diz que se você tem um objeto B que herda A, em qualquer lugar que você tenha A você pode substituir por B sem precisar alterar o programa. Exemplo:
class Gadget
def call(number)
true
end
end

class Smartphone < Gadget
end

class Psp < Gadget
def call(number)
raise “This gadget do not make calls”
end
end

Basicamente temos uma classe Gadget e ela possui um método de call (ligar), sendo que Smartphone e PSP são Gadgets, logo herdam ela e trazem consigo o método call. Porém, o PSP não faz ligações, por isso mesmo faremos o método retornar uma exception. Com isso ferimos o princípio de Liskov.
Se tivéssemos uma instância de Gadget e a mesma fosse substituída por Smartphone funcionaria normalmente. O método call, ao invés de ter um retorno booleano, como o método da classe pai fazia, acaba retornando uma exception (claro que poderíamos fazer o método call no PSP, mas queria deixar dessa forma, como um exemplo).
 
– Interface segregation
O Princípio da Segregação de Interface trata da coesão de interfaces e diz que classes não devem ser forçadas a depender de métodos que não usam. Exemplo:
public interface Activity {
void buy(Order order);
}

public class ShopOwner implements Activity {}
public class Client implements Activity {}
public class Provider implements Activity {}

Esse exemplo está ferindo o princípio, pois o dono da loja pode comprar do fornecedor e o cliente comprar do dono da loja, mas o fornecedor não compra de ninguém e, nesse caso, você seria obrigado a implementar o método buy no fornecedor, mesmo o método não servindo para ele.
– Dependency inversion
O princípio de inversão de dependência nos diz que SE devemos acoplar alguma classe em outra, devemos fazer esse acoplamento em classes estáveis. De forma mais simples o princípio quer dizer:

Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações.
Abstrações não devem depender de detalhes. Detalhes devem depender de abstrações.

Exemplo:
public interface ActionAfterBuy {
void execute(User user);
}

public class Cart implements ActionAfterBuy {}

Nesse exemplo o carrinho é um módulo de alto nível e o ActionAfterBuy (Ação depois de comprar) é uma abstração. Perceba que o ActionAfterBuy é uma classe estável, pelo fato de que ela pouco vai ser alterada ao longo do tempo (a ideia de classes estáveis é justamente essa, não alterá-la durante o ciclo de vida do software); além disso, ela não conhece detalhes de sua própria implementação.
Esse é apenas um resumo do que é o SOLID, caso queira se aprofundar no assunto, recomendo fortemente o livro “Orientação a Objetos e SOLID para ninjas” do Maurício Aniche. Outro bom artigo é o “The Principles of OOD”.

Gostou do que falamos? Ficou com alguma dúvida? Deixe nos comentários!
O post Conheça a arte do SOLID apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Conheça a arte do SOLID
Fonte: Locaweb

Brincando com a Internet das Coisas gastando pouco

Brincando com a Internet das Coisas gastando pouco

A Internet das Coisas (IoT) veio pra ficar. Grandes empresas como Amazon, Google e Nest estão investindo pesado em produtos e itens para você e sua casa ficarem sempre conectados.
Há pouco tempo a Amazon lançou uma linha de botões que com apenas um clique realiza a compra de produtos específicos, como sabão em pó e detergente. Ela também lançou o Alexa, sistema inteligente de assistência doméstica, que pretende integrar vários elementos de sua casa.
A Nest investe na área de automação residencial com câmeras de monitoração, alarmes de incêndio e até termostatos conectados à Internet. O Google, por sua vez, tem o Home, um speaker inteligente que responde a comandos de voz e está integrado à sua conta na plataforma.
Projetos desse tipo (larga escala e pronto para o mercado) requerem um investimento muito grande. É preciso contratar engenheiros para desenvolver o produto final, realizar testes dos mais variados na plataforma… Mas, calma, não se assuste! Brincar com IoT não sai caro e ainda pode ser um ótimo exercício para praticar e aprender programação e eletrônica básica.
Por exemplo: com um pequeno investimento e um pouco de conhecimento em programação e eletrônica, você pode desenvolver um protótipo para automatizar a abertura da cortina do seu quarto em um horário específico. Gostou da ideia? Vou mostrar pra você o que é necessário para dar os primeiros passos – sem pesar em seu bolso e sem passar dor de cabeça!
Plataformas de prototipagem
O mercado possui as mais variadas marcas e modelos de plataformas de prototipagem, custando a partir de R$15. Essas plataformas costumam ser vendidas com alguns kits com sensores e componentes eletrônicos básicos e é aí que eu recomendo o investimento. Mas vamos para as plataformas:
// Arduino
O Arduino (https://www.arduino.cc/) é uma plataforma de hardware open-source desenvolvida pensando em todos os níveis de conhecimento. O que eles mesmos afirmam é que o Arduino foi feito para que qualquer um pudesse realizar projetos interativos. De longe é o que eu mais recomendo para quem deseja brincar com pequenos projetos e que necessitam de pouco processamento.
As placas Arduino UNO e Genuino UNO. Imagem de: https://www.arduino.cc/en/uploads/Main/A000066_iso_both.jpg

Essa é uma placa eletrônica que fornece 6 portas de entrada e saída (I/O) digitais e 6 I/Os analógicas. Essas portas estão posicionadas de uma forma que você pode simplesmente encaixar outras plaquinhas (os chamados Shields) no Arduino. Os Shields oferecem desde conexão à Internet até a capacidade de se comunicar com satélites GPS e precisam ser comprados a parte.
E como escreve código nessa “coisinha”? A fabricante fornece o Arduino IDE, que lhe dá vários exemplos de código e, com o clique de um botão compila e instala o código escrito em C/C++ no seu Arduino. Simples assim.
São vendidos diversos kits Arduino – que variam de R$ 70 (os mais simples com menos componentes) a R$ 400 (com diversos Shields, sensores e componentes eletrônicos).
A recomendação é analisar o que você precisa e comprar um kit que contenha apenas os componentes necessários.
// ESP8266
Esse carinha é especial. Ele é bem pequeno e por isso conta apenas com 2 I/Os, mas para compensar ele já vem com um módulo Wi-Fi bem completo que pode ser utilizado, inclusive, como Access Point!
O ESP8266 com 2 I/Os e Wi-Fi integrado. Imagem de: https://hackadaycom.files.wordpress.com/2014/09/esp.png?w=250
Escrever código para o ESP é um pouquinho complicado. Você vai precisar de um conversor USB para RX/TX, que é vendido a parte, e um editor de texto de sua preferência.
Existem algumas linguagens de programação, como LUA, Python e C/C++, que são suportadas; inclusive o fórum oficial fornece uma boa documentação de como compilar e instalar o código da placa. Mas, pra você que não quer ter tanto trabalho gerando o binário na mão, alguém adaptou o Arduino IDE para o ESP: É o ESP8266 IDE! Nele você vai escrever o código em C/C++ e a IDE se responsabiliza pela parte “burocrática” de compilar e instalar.
O ESP dificilmente é encontrado em kits, mas ele custa apenas R$15 e os sensores podem ser comprados com facilidade na internet. Também é possível utilizá-lo como um Shield no Arduino ou em conjunto com outros Shields.
// Raspberry Pi
Você alguma vez já ouviu falar em um computador do tamanho de um cartão de crédito? Provavelmente estavam falando sobre o Raspberry Pi (https://www.raspberrypi.org). Ele é bem completo: Roda Linux, tem HDMI, USB e Ethernet.
Algumas versões possuem SATA, USB 3.0, interface de câmera, Bluetooth, Wireless… Se a sua intenção é fazer um projeto mais arrojado, como uma central de controle, essa pode ser sua escolha!
O Raspberry Pi 3. Um computador do tamanho de um cartão de crédito. Imagem de: https://www.raspberrypi.org/wp-content/uploads/2016/02/Raspberry-Pi-3-top-down-web.jpg
Programar para o Raspberry é mais fácil do que parece. Existem diversas IDEs que fazem todo o trabalho pesado e você ainda tem a opção de escolher programar em Java, Python, C/C++, PHP, Perl… Vale lembrar que os mesmos sensores são utilizados no Arduino e no ESP8266, e também podem ser utilizados no Raspberry Pi, pois ele possui 40 I/Os para você brincar bastante!
Vamos falar de valores… Oficialmente, o Raspberry Pi precisa ser importado dos EUA a partir dos US$20 + frete + impostos + taxas. No Brasil você vai encontrar na internet por valores que giram em torno de R$200.
Próximos passos
Agora que você já conhece um pouco mais sobre IoT e algumas plataformas de prototipagem, é possível pensar em um projetinho bacana para fazer. Existem vários fóruns de ajuda para as plataformas citadas e eles estão recheados de informações sobre os mais diversos sensores e projetos para lhe inspirar!
Dicas que eu posso dar pra quem está começando:

Aprenda um pouquinho de eletrônica: o que é e para que serve um resistor, quais as leis da física que operam sobre a corrente elétrica…
Acompanhe o andamento de projetos open-source, você vai aprender muito!
Pergunte! Se você não conseguiu encontrar a solução do seu problema, participe dos fóruns e poste suas dúvidas!

Existem alguns projetinhos simples que todo iniciante faz e é uma mão na roda para aprender o básico:

Piscar leds;
Ligar/Desligar leds ao pressionar um botão ou bater palmas;
Consumir a API do Twitter e exibir informações em uma tela LCD.

Se você se interessou pelo assunto e quer se aprofundar, em breve teremos mais posts sobre prototipagem! Caso alguma dúvida tenha surgido, escreva nos comentários!
O post Brincando com a Internet das Coisas gastando pouco apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Brincando com a Internet das Coisas gastando pouco
Fonte: Locaweb

Configurando o seu LAMP no Cloud em 4 passos

Configurando o seu LAMP no Cloud em 4 passos

Já teve problemas ao configurar seu Cloud? Para quem não tem tanta experiência, pensar em cloud pode parecer complicado, pois é preciso configurar o servidor, instalar muitas coisas e, normalmente, utilizando apenas o terminal – já que a maioria dos clouds não possui modo gráfico (eu não conheço nenhuma exceção ao que vou dizer, mas pode ser que tenha).
Para isso listei 4 passos para instalar e configurar o LAMP em seu servidor e deixar ele pronto para rodar sua aplicação.
No exemplo abaixo estou usando um Ubuntu 16.04 em S.O. com distribuição baseada no Debian. Esses 4 passos podem ter uma ou outra alteração, mas dão muito certo. Também podem variar os caminhos (no caso do PHP, se for uma versão que não usporte PHP7, você deve colocar sempre PHP5 nos comandos, irei falar abaixo).
Qualquer outra distribuição segue a mesma base, porém os comandos mudam um pouco (a única que conheço é o CentOS que em vez de usar apt-get usa yum).
Antes de iniciar atualize os pacotes do sistema rodando:
$ sudo apt-get update
1º Passo – Instalação e configuração do Apache
Para Instalar o Apache rode no terminal:
$ sudo apt-get install apache2
Logo de cara o Apache já é instalado e já se encontra funcionando, basta acessar seu servidor pelo link “http://SEU-IP”, você poderá ver a imagem abaixo, que é padrão do Apache:

2º Passo – Instalação e configuração do MySQL
Instale o MySQL com o seguinte comando:
$ sudo apt-get install mysql-server
Durante o processo de instalação você será perguntado sobre a senha para o usuário root do MySQL, fora isso, a instalação vai transcorrer normalmente. Após a instalação o MySQL é importante fazermos o seguinte passo:
É importantíssimo usar o comando abaixo para remover configurações defaults do MySQL que abririam brechas de segurança no seu banco. Nesse passo você será perguntado se deseja trocar a senha do usuário root do seu banco. Como você acabou de configurar ela, acredito que não queria então é só dar um by-pass nesse cara e ele vai manter a mesma senha.
$ sudo mysql_secure_installation
3º Passo – Instalação e configuração do PHP
Para instalar o PHP rode no terminal:
$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
Se a sua versão não suporta PHP 7 você deve usar esse comando abaixo:
$ sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-mysql
Note que acima estão alguns dos modulos mais usados do PHP, mas existem outros como o php-gd, php-curl, etc. Caso sua aplicação utilize algum módulo específico será necessário instalá-lo. Para ver todos os módulos disponíveis rode o comando:
– apt-cache search php-
Agora vamos fazer com que o Apache identifique os arquivos .php como prioridade quando o servidor for chamado, para isso vamos abrir o arquivo abaixo:
/etc/apache2/mods-enabled/dir.conf , você pode utilizar o editor que achar melhor, vou usar o nano pois acredito que seja mais fácil, caso tenha pouca experiência com terminal. Normalmente o VI também vem instalado com o S.O.
Rode o comando:
$ sudo nano /etc/apache2/mods-enabled/dir.conf
Você deve ver o arquivo da seguinte forma:

E você deve alterar para ficar desta forma, basicamente trocando o primeiro para PHP. O HTML você pode deixar aonde estava o PHP, ou deixar em segundo, e ir mudando todos – isso não tem importância nesse caso.

Para salvar o arquivo após a alteração, digite Ctrl+x (sair e salvar o arquivo); depois Y (salvar mesmo com mudanças) e, por fim, Enter (Confirmar que você quer salvar e sair).
Após essa alteração você deve reiniciar o Apache com o comando:
$ sudo service apache2 restart
4º Passo – Testar o seu servidor
Para testarmos se tudo o que fizemos está funcionando, vamos criar uma página em PHP que mostra as configurações do PHP no servidor.
Rode o comando (novamente você pode usar o editor que preferir):
$ sudo nano /var/www/html/info.php
Esse comando irá criar um arquivo em branco na pasta raiz de acesso do Apache, nesse arquivo você deve inserir o seguinte comando:
<?php phpinfo();
Após inserir esse comando salve e saia do arquivo (ctrl+x, y, ENTER)
Para testar seu servidor acesse “http://SEU-IP/info.php”
A página exibida deve ser algo parecido com o que está abaixo:.

Pronto! Agora seu cloud está configurado e pronto para receber sua aplicação. :)
O post Configurando o seu LAMP no Cloud em 4 passos apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Configurando o seu LAMP no Cloud em 4 passos
Fonte: Locaweb