Como utilizar o Expo em versões antigas do emulador do iOS

Se você chegou até esta publicação deve estar passando por problemas para utilizar o Expo rodando no iOS 10.2 ou similares correto ?

O fato é que o desenvolvimento Javascript exige que nosso ambiente esteja sempre o mais atualizado possível e isto muitas vezes acaba penalizando quem possui máquina mais antigas ou utilizando Hackintoshs mais antigos.

Bem felizmente isto muitas vezes pode ser contornado, Se você está testando o Expo nas versões mais atualizadas deve ter encontrado erros de compatibilidade de versão e por ai vai.

Como resolver ?

Se você está utilizando assim como eu o emulador do iOS 10.2 você não poderá testar o Expo na versão mais atual. Faça um downgrade em seu app.json localizando a seguinte linha:

"sdkVersion": "36.0.0",

mude a versão da SDK para 33

"sdkVersion": "36.0.0",

Em seu arquivo package.json localize as seguintes linhas:

expo": "~36.0.0","
react": "~16.9.0","
react-dom": "~16.9.0","
react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz"

Mude para a versão do React Native para que fique compatível com:

expo": "~33.0.0","
react": "16.8.3","
react-dom": "~16.9.0","
react-native": "https://github.com/expo/react-native/archive/sdk-33.0.1.tar.gz"",

Feito, agora é só remover o node_modules, rodar o Yarn ou NPM para instalar as dependências e depois iniciar o projeto com o Expo

Entendendo o UseState no ReactJS

Eu resolvi fazer este tutorial depois de muitos guerreiros devs me pedirem pelas redes sociais para explicar na prática o funcionamento do estado ( State ) no ReactJS.

Toda e qualquer informação que precisa transitar entre os seus componentes de sua aplicação React precisam ser armazenadas no estado. Eu criei um exemplo prático aqui de um simples contador.

Vamos imaginar um contador onde nós temos uma função de incrementar e outra para decrementar um número. O estado precisa ser inicializado em zero e na medida que o usuário tentar incrementar ou decrementar este número o estado do contador é acionado. Então vamos ao exemplo:

Entendendo o código:

Acessando e setando o valor do estado

Na linha 05 nós inicializamos o nosso estado da variavél counter com o valor 0. Utilizamos a deestruturação para onde temos o acesso aos dados pela variavél counter e ao mesmo tempo o acesso a função setCounter que manipula os dados do estado

const [ counter, setCounter] = useState(0);

Veja que estamos utilizando um array na deestruturação onde temos a variavél counter e a função setCounter. Este estado inicia em 0

As funções que vamos manipular os dados do estado precisa estar dentro da função do componente, sim uma função dentro da função do componente.

function Incrementar(){

    setCounter( counter + 1);
    return counter;

  }

Na função que incrementar + 1 a cada clique pega o valor atual de counter que é 0 e soma um assim como no exemplo acima.

Depois de somado ele retorna o valor de counter já alterado.

O ReactJS utiliza o conceito de imutabilidade ou seja um valor ele sempre cria um novo estado e não atualiza o um determinado valor do estado.

Eu coloquei uma outra função que decrementa o valor verificando se o valor do estado é menor que 0 para que ele não permita que o valor do estado seja negativo.

Este é um exemplo extremamente simples para que você possa entender o funcionamento do estado. No estado você pode passar uma string, número, uma função um array e lá dentro do estado manipular esta informação da maneira que melhor entender.

Gostou da dica ? utilize os comentário caso tenha alguma dúvida e acompanhe o canal no Youtube para ver estes conceitos aplicados na prática.

Obrigado e abs

Introduzindo o novo Apple Tag

A Apple vem trabalhando em um novo produto chamado de Apple Tag. E você deve estar se perguntando que raios é o Apple Tag ? Bom este novo produto é um gancho que a Apple pegou em produtos powered by China e que já existem a alguns anos e colocaram um toque de design e software.

Find My Iphone criado em 2010 passará a se chamar Find My

A ideia é que com o Apple Tag você consiga fazer o tracking de qualquer objetivo próximo ao Apple Tag através do novo Find My, sim o antigo Find My Iphone utilizado no iCloud para localizar seus dispositivos Apple agora passará a se chamar apenas Find My.

A ideia é que mesmo que você se distancie desta sua tag outros iPhones próximo a ela possam detectar e enviar um sinal para o Find My informando a atual localização “Será ?”

E você o que achou do novo Apple Tag ? será mais um produto para criar fãs no mundo todo e sem utilidade ou será que trará algum diferencial ?

Deixe sua mensagem do que pensa a respeito deste produto. Abs

Se você assistiu Mr Robot vai ter medo deste post

Se você já assistiu a série Mr Robot deve estar acostumado com o hacks em tudo quanto é dispositivo, mostrando uma realidade quase paralela correto? Bom e se eu disser que exatamente neste momento diversos dispositivos IOT estão sendo monitorados em tempo real sem o consentimento das pessoas ?

Existe uma plataforma chamada Shodan.io que diferente do Google que o crawler monitora atividades em páginas e conteúdos da internet, o Shodan monitora atividades de dispositivos conectados na internet.

Com ele é possível por exemplo ver em tempo real todas as cameras IP com um determinado tipo de assinatura digital possibilitando filtros insanos.

No screenshot acima estamos listando todas os dispositivos do tipo camera que tenham screenshots ativos. Nisto o Shodan irá buscar na internet todas as cameras espalhadas pelo mundo que tenham screenshots ativos. Dados como IP, Porta , tipos de protocolo de transmissão e características de hardware podem ser fácilmente vistos ali.

Como podem ver acima ele apresenta uma lista de cameras com estas características.

Em um nível mais detalhado você pode encontrar IPs , portas tudo fácilmente compartilhados ali.

E você quer aprender mais sobre o Shodan e como buscar informações neste buscador de devices ? Escreva nos comentários.

Fix + “Uncaught SyntaxError: Unexpected token <”

Um dos problemas que podemos encontrar quando vamos passar um template com Jquery para React são os problemas de interpretação entre React e Jquery. O problema “Uncaught SyntaxError: Unexpected token <” é causado quando você possui uma entrada em seu script chamando um arquivo JS sem especificar o type JSX na importação.

Exemplo:

 <script src="assets/vendors/js/vendor.bundle.base.js" ></script>

o correto seria:

 <script src="assets/vendors/js/vendor.bundle.base.js" type="text/jsx"></script> 

Esta dica te ajudou ? escreva aqui em baixo nos comentários.

Alterando a senha de uma conta NextCloud via CLI

Image result for nextcloud

Fala galera, este tutorial express tem como objetivo reiniciar a senha de uma conta NextCloud via CLI.

Você deve ter acesso shell ao local onde está hospedado o seu NextCloud. Feito isto entre no diretório onde esta hospedado o NextCloud e execute o seguinte comando:

sudo -u www-data php occ user:resetpassword jaccon

Para entender o comando, você primeiramente precisa estar como o usuário padrão do Apache para executar o comando PHP. O script occ possui diversas flags de comando para executar via CLI.

No nosso caso iremos utilizar o user:resetpassword e depois informamos o nome do usuário que queremos resetar a senha.

No meu caso estou executando o NextCloud dentro de uma estrutura Docker na Mobsale. É uma boa opção e de baixo custo para ter uma estrutura Docker e com uma quantidade interessante de disco.

E você já utiliza o NextCloud ? Compartilhe conosco sua opinião a respeito desta plataforma open source.