20/10/2017 Corridas / Maratonas

Essa prova foi realizada no dia 15/10/2017 e meu tempo foi de: 04:41:21

06/10/2017 Development / macetes
C:\Users\Huggler-Vaio\AppData\Local\Android\sdk\platform-tools\adb logcat chromium:D SystemWebViewClient:D *:S
05/10/2017 Development / java script
Eu uso essa parada pra testar as notificações e vira e mexe eu esqueço! Agora não esqueço mais ;-)

var key = 'YOUR-SERVER-KEY';
var to = 'YOUR-IID-TOKEN';
var notification = {
  'title': 'Portugal vs. Denmark',
  'body': '5 to 1',
  'icon': 'firebase-logo.png',
  'click_action': 'http://localhost:8081'
};

fetch('https://fcm.googleapis.com/fcm/send', {
  'method': 'POST',
  'headers': {
    'Authorization': 'key=' + key,
    'Content-Type': 'application/json'
  },
  'body': JSON.stringify({
    'notification': notification,
    'to': to
  })
}).then(function(response) {
  console.log(response);
}).catch(function(error) {
  console.error(error);
})
28/09/2017 Development / java script

Esse post serve só pra eu lembrar que no REDUX é criado uma unica STORE...maaaaaaas, não é bem assim...a gente pode sim, e aqui abaixo eu tenho o pulo do gato pra usar isso.

import { createStore } from 'redux'

// ISSO É O REDUCER = funcao redutora, entra de um jeito e sai de outro ;-)
function minhaFuncao(state, action){
if(action.type === 'BLABLABLA'){
return state
}

}

const store = createStore(minhaFuncao)

App store={store}

Quando a gente recebe as propriedades do store, usando o REDUX nos temos os métodos

subscribe()
getState()
dispatch()

http://redux.js.org/docs/api/Store.html

O getState() retorna o ultimo valor retornado da funcao redutora

O dispatch({ type: 'BLABLABLA' , payload: 'PAYLOAD'}) ou no ES6 poderia só passar dispatch({ type: 'BLABLABLA' , payload}) que recebe o type que vai ser responsavel por disparar a acao na funcao redutora, e o payload que é o valor.

Só que ficar mandando toda hora dispatch com o type, é uma merda!

Pra resolver esse problema a gente tem o REDUX-THUNK

https://github.com/gaearon/redux-thunk

E dai nosso dispatch ficaria

this.props.store.dispatch(minhaFuncao(meusparametros)) e na minha funcao eu retorno um dispatch

minhafuncao(url){
return dispatch => {
fetch(url).then(resp => {
dispatch({ type: 'BLABLABLA' , resp}) //explosao de variaveis para objetos literais
return resp
})
}
}

Pra isso temos que importar

import ReduxThunk from 'redux-thunk'

mas na hora de criar a store precisamos importar

import { createStore, applyMiddleware(ReduxThunk) } from 'redux'

O lance é que isso não é nada sem esse carinha aqui ó

https://github.com/reactjs/react-redux

import { Provider } from 'react-redux'

E para usar isso é bom a gente declarar as propriedades das classes que vão herdar o nosso store

App.contextTypes = {
store: React.PropTypes.object.isRequired
}

e usar no App store={this.context.store}

E no final a gente usa o npm install generator-electrode :-)

14/09/2017 Development / css

Esse jump the cat, é pra retirar aquele background amarelo horrivel que o chrome coloca, quando tem o autocomplete.

@-webkit-keyframes autofill {
    to {
        color: #fff;
        background: transparent;
    }
}

input:-webkit-autofill {
    -webkit-animation-name: autofill;
    -webkit-animation-fill-mode: both;
}

Boa sorte!

31/08/2017 Development / java script

A pessoa pode quebrar a cabeça um pouquinho com isso. Então pra ajudar outros pessoas e a me ajudar futuramente, caso eu venha utilizar novamente, vou postar aqui o pulinho do gato que faz funcionar a recuperação dos dados usando o req.body no node.

Basicamente é isso aqui uma chamada usando fetch

                    fetch('http://localhost:3000/position', {
                        method: 'post',
                        headers: {
                         'Accept': 'application/json',
                         'Content-Type': 'application/json'
                        },
                        body: JSON.stringify({
                            position: {latitude : position.coords.latitude, longitude: position.coords.longitude},
                            id: 'XPTO'
                        })
                    }); 

E no node você usa req.body.position, por exemplo.

Mas pra isso funcionar, o pulo do gato é inserir o headers

                        headers: {
                         'Accept': 'application/json',
                         'Content-Type': 'application/json'
                        },

Espero que ajude

 

08/08/2017 Development / mobile

Ja faz tempo que eu quero fazer um post falando sobre isso, eu vejo um monte de site fazendo uma série de posts falando que tem que fazer isso e fazer aquilo, e eu nunca entendia porra nenhuma que esses caras estavam falando.

Até que um dia eu coloquei na minha cabeça que ia ficar algum tempo estudando isso e fazer um post que eu mesmo pudesse entender.

Então basicamente é o seguinte, levando-se em consideração que você ja tenha criado o projeto, agora você vai gerar build, mas antes disso você precisa criar a chave de assinatura.

Que é esse comandinha ai:

keytool -genkey -v -keystore C:/onboard.keystore -alias onboard -keyalg RSA -keysize 2048 -validity 10000

 C:/onboard.keystore = PASTA ONDE ESTA MEU KEYSTORE

-alias onboard = NOMEDOMEUALIAS

Feito isso, o comando line vai pedir pra você inserir algumas informações e no final você digita Y de YES ou se for brasileiro Digita S de SIM

Blz, sua chave foi criada

Agora fazer o build

cordova build android --release -- --keystore="c:\onboard.keystore" --storePassword=123456 --alias=onboard

Pronto gerou sua APK-RELEASE MUTHER FUCKER!

30/06/2017 Corridas / Maratonas

Essa prova foi realizada no dia 18/06/2017 e meu tempo foi de: 04:45:25

30/06/2017 Corridas / Ultra-Maratonas

Essa prova foi realizada no dia 04/06/2017 e meu tempo foi de 11:32:24

30/06/2017 Corridas / Maratonas

Essa prova foi realizada no dia 09/04/2017 e meu tempo foi de: 04:23:03