First month again

Here I’m again, my second first month in Dublin. The first time as a student, eight months living in Dublin was a great experience. Broke some concepts and rebuilt me again, an exchange after 30 years was a great experience. One day I told to a friend “we don’t travel abroad, we travel internally in ourselves”. Get out of the comfort zone make us look for ourselves in a pure state, we are abroad without family, friends and masks that we were building during years trying to be someone that we want to be, but sometimes not exactly who we are.

Now it’s a new time, After two months waiting for my visa, I  started to work in a digital agency Inspiration Marketing. Now I already know the city, understand how the city works, how the seasons works here, we are like old friends. But now I have a different feeling, the relationship between Dublin and me have another meaning. I have the possibility to make real plans, with a job it’s possible to make plans for a long time.

Every day wake up at 6:45 AM, prepare my lunch, take the DART to my job, work the whole day and back top home. The classes are substituted for normal work days, but I still learn the routine with native speakers are totally different than students. My team is so patient they know “I’m not a native speaker.”

During the first days; I figured out that I didn’t see so much the city like when was a student, the time for entertainment it’s more restrict, but It’s not so bad I have more time to planning my trips and my routine in Ireland.

It’s just a begin, I’m happy about everything and waiting the whole new experiences that will come.

5 coisas que você deve saber antes de se mudar para Dublin

A quase um ano cheguei em Dublin, nesse post vou listar as 5 coisas que notei como Brasileiro logo quando cheguei aqui na terra da Esmeralda. Não são necessáriamente pontos positivos ou negativos são apenas particularidades no meu ponto.

1 – Guarda chuva não funciona aqui

Quando vir para Dublin traga casacos à prova d’agua essa é a melhor opção(vai por mim), além de chover quase todo dia os ventos são muito fortes, ou seja seu guarda-chuva se não tiver cuidado vai durar poucos dias. Não estou brincando oficialmente chove metade do ano.

2 – A balada acaba cedo

Uma coisa que achei estranho quando cheguei aqui, você pensa que todo lugar é igual ao brasil, onde você se prepara para sair depois as 23h, veio para Dublin: Esqueça isso.

Pubs e baladas aqui acabam no máximo 2:30, ou seja, se quer curtir a noite você vai precisar mudar de hábito. Mas isso é bem comum na Europa e em outros paises. Poucas são as cidades que a noite passa das duas horas da manhã. Não só balada mas também os estabelecimentos comerciais também fecham cedo, mas nada tão grave com o tempo vc se acostuma.

3 – Dificilmente você vai morar sozinho

Caso venha como estudante será uma loteria achar um local barato e que aceite estudante. Primeiro Dublin vive uma crise imobiliária, hoje tem mais gente que casa para alugar na cidade isso causou um crescimento absurno no custo com aluguel.

Segundo ponto anos atrás era possivel fazer contratos de seis meses, mas com o aumento da procura as imobiliárias só aceitam contrato de 12 meses no mínimo. Isso corta as possibilidades dos estudantes que só possuem no papel 8 meses de visto(claro vc pode renovar), mas as imobiliárias falam: o que garante que você vai renovar. Ou seja venha preparado para dividir casa ou ap. Se o objetivo é estudar inglês, dividir casa com estrangeiros vai ajudar no seu desenvolvimento.

4 – Você não está 100% seguro

A criminalidade aqui existe mas é bem menor que países como o Brasil, mas tretas acontecem aqui. Pequenos furtos e roubo de bicicletas são os fatos mais comum. Se anda em regiões centrais com bastante movimento cuidado com carteiras e mochilas.

5 – Aqui tem muito Brasileiro

Brasil é responsável por 22% dos estrangeiros na Irlanda, boa parte residente em Dublin, Dublin tem mercado brasileiro(melhor coisa para fazer um churrasco brasileiro), restaurante brasileiro, aula de jiu jitsu, coxinha, pão de queijo, pub com noite de forró, pub com noite de roda de samba. Você nunca vai sentir saudade do Brasil aqui.

 

Vulnerabilidade na versão 4.7 do WordPress

Uma das grandes features do WordPress lançada na versão 4.7, a API de REST possui uma vulnerabilidade. Se você utiliza esta versão corra já e atualize seu WordPress, nas versões 4.7 e 4.7.1 é possível injetar conteúdo em qualquer post, mesmo não estando logado. Alguns sites falam em 1.5 milhão de sites infectados.

A vulnerabilidade

Este bug foi corrigido na versão 4.7.2. A vulnerabilidade pode trazer um problema bem chato qualquer pessoa pode injetar conteúdo em seus posts através da WordPress REST API, um dos endpoints da API permite que os visitantes deslogados consigam editar, excluir e adicionar qualquer post do seu site ou blog.

Solução

Então fique de olho sempre deixe seu blog ou site atualizado e com backups em dia. Desde a versão 3.7 o WordPress possui updates do core automático, mas com um intervalo maior para realizar a atualizar nesse caso o melhor é antecipar a atualização para evitar dor de cabeça. Mais uma dica de segurança é seguir o WordPress security checklist, uma série de passos para evitar problemas com o seu site:

http://wpsecuritychecklist.org/br/items/

 

Foto: Tim Lee

Back to Dublin

Was a long wait after a period of two months in Brazil now I’m back to Dublin, but during this time visited some friends and stay close with my family. This break happens because I was waiting for my work permit in Ireland.

How was in Brazil?

But was a good time to see that something never changes in Brazil and another that I didn’t spect started to change. I meet some friends that are trying make the difference in some cities. There is a development about IT in Caruaru my hometown that I was proud to discover it, but the city is ten years late, there are plans to make a technological park, but this thing must do ten years ago, and I hope this project turns reality.

The return

After a huge holiday, I’m back to Dublin; this time is different. I’m not a student now; I have a job and a routine. Now my life is entirely different even I live in the same city and the same house. Sometimes I looked to some students comes a nostalgic feeling, but this time pass and now started a new cycle.

I begun to work in a digital agency called Inspiration.ie the company is specialised in WordPress websites it’s good to come back to a digital agency in another country it is a new experience.

Next steps

My plan for this year is to improve my skills, participate more in the European WordPress community. Continue to be a volunteer in the events around Europe and started more personal projects, use more new stuff like Angularjs 2 and React.js.

WordCamp Europe Second day recap

The second day of WordCamp Europe I saw some familiar faces that I saw the last day, for example, Kat a Woocommerce employee, she is responsible for documenting the plugins and API inside Woothemes. Andres the guy that works at WPML, Julia a German girl works as a freelancer in Berlin. Theses things make the event easier because I started to know the people and know whom I asked what I need do.

My Task

Now was in the registration; this time was a little hard because, I needed to give many different pieces of information about the event, about the rules, how solved some small problems. But was good to practice my English.

After the registration, I finish my tasks in te second day and at 11 AM I went to Halle E to watch the lectures, the first that I saw was about rest API. I think this is the focus of Automatic in this time, Calypso, Rest API and REACT are present in all lectures about development. If you haven’t studied yet, you need look theses technologies.

When the second day ended, I was so tired but felt everything was good.

After the second day was the after party, I had to meet my friends in another party and just pass to say hello and decided to walk around the city before went to another place and this was the best idea. Wien at night is so beautiful, the architecture, the city centre, the lights everything creates a wonderful atmosphere. The city is incredible. After I was little walking through the city, I meet my Brazilian friend that works in Mailpoet, there we talked about work, life in Europe and remote jobs.

The contributor day

The last day was the contributor day, there were many tracks, that we could contribute to:

  • Community
  • Marketing
  • Theme Review
  • WordPress Core
  • Rest API
  • Translation

There we needed to choose one of these themes, and I decided Theme review was a good experience, in the first part, the Leader developer shows how to review a theme and give many tips. In the second part, we choose a Theme in the repository to review. For me was the first time that I reviewed a theme in the WordPress repository before I didn’t figure out this was so simple.

Last words

In resume work as a volunteer was the best thing that I decided to do in my time in Europe, I knew many people, getting touch with old friends. Was a big opportunity to know the European WordPress Community and was my first and biggest event as crew in Europe. Now I will start looking for another event here in Europe.

Eventos com React

Quando trabalhamos com JavaScript clássico temos N formas de trabalhar com eventos, adicionando atributos no nosso elemento html, definindo o atributo no JavaScript ou adicionando um listener, direto no elemento HMTL seria da seguinte forma:

Este método trás muitos problemas, por exemplo, manutenção e gerenciamento de eventos.

Outro formato adicionando um listener:

Isto funciona bem, mas você precisa ter uma organização no seu código, caso contrario ficará difícil de debugar seu código, nem todos os browser suportam este recurso sempre precisamos quer fallback para esta situação.

React tenta deixar o gerenciamento de eventos mais consistente. Todo evento retorna um SyntheticEvent, ele tem uma série de atributos:

Outra questão importante ele centralização do target, quem nunca teve problemas com targets dos eventos e precisou controlar um evento de click com stopPropagation() ou preventDefault(). O SyntheticEvent trabalha com o conceito de pooled, o objeto é limpo após o callback for invocado, por uma questão de performance.

Eventos suportados pelo React:

  • Clipboard Events
  • Composition Events
  • Keyboard Events
  • Focus Events
  • Mouse Events
  • Selection Events
  • Touch Events
  • UI Events
  • Wheel Events
  • Media Events
  • Image Events
  • Animation Events
  • Transition Events

Antes de trabalhar com Eventos e Componentes precisamos entender é a questão de Props e State, basicamente props temos os valores quando o componente é construído e state são os dados que a interface mantém durante a execução do aplicativo.

No exemplo acima crio um componente botão onde ele simplesmente faz o toggle de um atributo, poderia ser qualquer outro atributo ou interagir com outro elemento. O evento nos acionamos quando passamos o render do nosso componente neste caso onClick, poderíamos passar mais de um evento.

Lembrando todos os exemplos estão no meu github: https://github.com/fellyph/react-tutorial

Variáveis e funções com ECMAScript 2015

ECMAScript 2015 é nova especificação do JavaScript antes chamado de ECMAScript 6, por uma padrão de conversão e buscando implementações menores em pequeno prazo. Lembrando que esses recursos nem todos os browser rodam, o ideal é utilizar uma ferramenta para compilar seu código para browsers antigos, um dos mais utilizados é o Babel, ele possui um handbook em português que mostra instalação e como usar:

https://github.com/thejameskyle/babel-handbook/blob/master/translations/pt-BR/user-handbook.md

Boa parte dos exemplos eu rodei no Chrome sem precisar do babel, nesta página(ECMAScript 6 compatibility table) você tem uma tabela detalhada do suporte de cada browser. Para um projeto em produção é necessário o uso do babel. Agora voltando ao ECMAScript, ela vem com uma série de novidades, já mostrei alguns dos novos recursos nos posts sobre REACT, mas não entrei em detalhes neste post vou listar algumas das novidades.

Declarando variáveis

let

let é utilizado para declarar variáveis dentro de um escopo menor comparado ao var que tem um escopo global ou relacionado a funções, com o let o escopo pode ser limitado por blocos menores if, else, for e while.

const

const como em outras linguagens o permite nos criarmos variáveis read-only, constantes nos ajudam a criar códigos mais legíveis, exemplo quando lemos o seguinte código:

Não temos idéia o que é o número 5, apenas um fator na condicional, se mudarmos para o seguinte código:

Agora com as modificação batemos o olho sabemos que os loops estão limitados por um número máximo de produtos. Esse valor é escrito apenas uma vez, ele não pode ser alterado após ser definido. Por um padrão de escrita de código todas as constantes precisa ser escritas em uppercase.

Funções

Surgiram novas funcionalidades super úteis relacionadas a funções com ECMAScript 2015. A primeira delas, valores default na assinatura da funções. Um problema básico é acesso a variáveis undefined, temos um tratamento comum para isso da seguinte forma:

Com nova definição de EcmaScript 2015 podemos criar valores default sem precisar de um tratamento especial como a versão anterior da seguinte forma:

Nomeando parâmetros

Uma nova funcionalidade, agora é possível nomear parâmetros como isso é útil, no exemplo abaixo:

Exemplo acima contornamos o problema do parâmetro “undefined” mas se os atributos não existirem nosso código irá disparar um erro.

Nomeando parâmetros, além do código ficar mais legível, não caímos nos problemas de atributos inválidos.

Rest Params

Outro novo recurso do ECMAScript 2015 é possível passar um array de parâmetros como argumento, como isso funciona, por exemplo, temos uma função de produtos relacionados onde podemos exibir, um, dois ou três produtos:

showRelacionados(“produto-1”);

showRelacionados(“produto-1”, “produto-2”, “produto-3”);

showRelacionados(“produto-1”, “produto-2”);

Você precisa passar um número x de argumentos que sempre variam, nunca é uma quantidade exata. Com parâmetros rest, permite definir que a função espera um array de argumentos.

Além dos “…” na assinatura da função, podemos adicionar na chamada da função mas ela tem uma funcionalidade diferente quando acionamos a função, neste caso ela quebra os parâmetros do objeto em vários argumentos. Exemplo temos o objeto

produto.nome = “Prato”;
produto.preco = 20;
produto.categoria = “casa”;

adicionaProduto(…produto);

A função “adicionaProduto” irá receber 3 parâmetros(nome, preco e categoria).

Arrow function

Arrow function além de simplificar a escrita de funções ela mantém o escopo de quem invoca a função útil quando estamos tratando, também chamado de “lexical binding” ele cria um escopo de quem o define e não de onde ele roda, outro ponto a Arrow functions sempre são anônimas. Sua síntaxe é simples:

Exemplo temos um código sem arrow function:

Com arrow function ele fica da seguinte forma:

Apenas uma chamada mas imagine isso sendo repetido várias vezes no dia, mas outra vantagem é a questão do escopo um problema comum é perder o escopo quando você codando alguma funcionalidade exemplo:

Criamos um objeto tipo Clock, mas ele tem um problema quando usamos o console dentro do setInterval por exemplo o escopo do setInterval é global nesse momento o this não é o clock e sim o objeto Window. Claro que podemos resolver esse problema criando uma variável self para para o clock e guardar o this(clock) dentro dessa variável outra solução seria usar o arrow function:

Vamos ficando por aqui o próximo post sobre ECMA irei falar sobre objetos e classes.