Hi, thanks for visiting my page! Hit enter to go to the menu.

Felipe N Moura - Web developer, speaker, trainer and addicted

Tools
Here you will find some information about me, both professionally and personally.

JavaScript and Front End developer and enthusiast.

Open Source projects taught me a lot, and inspired me to start projects from my own.

I am graduated at Senac/RS, a technician from CTT Maxwell, Project Manager by PMTech and have some different specialization courses.
Actually, I have worked on McDonalds, was an alxiliar of a baker, worked on a super market, on a warehouse...but it doesn't really matter now :p

An advice?
Do it because you love it, use, contribute and create Open Source projects and be passionate to learning!
I work with web development for almost a decade, and nowadays I work at Terra as a Senior Development Analyst.

Also, I love giving talks in conferences and enjoy giving trainings(I enjoy being an attendee, too!).

Among my projects, you can find Power-polygon, theWebMind, Botaoteca, PHPDevBar and of course, I am an organizer of the RSJS and BrazilJS Conference, the first Brazilian JavaScript Conference, also, the biggest one in Latin America, and one of the biggest in the world!
With the same name, the BrazilJS Foundation.

Changing the world is the least I expect from myself

Short bio
Felipe works with web development for almost a decade, also giving talks and trainings. Works nowadays at Terra as a Senior Development Analyst.
He is an organiser of BrazilJS Conference, the Brazilian JavaScript Conference, and the RSJS, a regional conference.
Also, a co-founder of the BrazilJS Foundation.
Felipe has contributed to some Open Source projects as well as started some others, like Power-polygon, theWebMind and PHPDevBar.

Get in touch
Follow
My page is generously hosted by Este site está generosamente hospedado na RedeHost

Type:
Conference / Community
Name:
BrazilJS Conference and Foundation
Description:
The Brazilian JavaScript conference.
I am the founder, altogether with Jaydson, of the BrazilJS Conference.
It would be a JSConfBR, but we united forces with Cristiano Milfont, who convinced us to change the name to BrazilJS.
Nowadays, BrazilJS is the biggest Latin America JS conference, being one of the biggest in the world.

After BrazilJS Conference's success, many smaller, regional conferences were organized, and to help the community to keep the good work, BrazilJS Foundation was born!
Brazil-JS Foundation Project Brazil-JS Conference Project
Type:
Tool
Name:
Power Polygon
Description:
Power Polygon (github) is the definitive Presentation tool for presentations and talks in HTML, JavaScript and CSS, besides any web technology.

With Power Plygon, you can create and give talks easily using many tools it offers, such as:
  • Multi-lingual presentations
  • Profile your talk
  • Many themes and transitions
  • Custom animations and actions
  • Plugin supports(syntax highlight, social streams, charts...)
  • Remote control
  • Easy to create and use
  • Many tools(serach, print, thumbs, etc...)
Power Polygon Project Power Polygon Project logo
Type:
Tool
Name:
Remote Control
Description:
A complement to Power Polygon, the remote control uses Node.js to initialize the remote control to be used in your cell phone or tablet.
You can enable it in your talk, or people in your audience can enable it as well, so you can control the slides, draw in your presentation, focus on specific areas, read slide notes..., also using touch gestures.

Type:
Demo/Tool
Name:
Root3d
Description:
Rooted is a demo/tool I created a couple years ago to show the power of 3D on CSS3.
With this tool, you can build 3D models using HTML elements by just adjusting its CSS properties.
Type:
Tool
Name:
TheWebMind
Description:
TheWebMind is an Open Source project, able to understand high level languages to treat humam problems related to relational structures and create an inteligent base with that.

It may be ported to understand and learn different idioms and understands statements like this:

"We know that every teacher have many students, and each student may have one or many teachers. Also, both teacher and student have name:varchar, age:integer and sex:char."

With that, theWebMind can give you an ER diagram, Data Dictionary, documentation, SQL, DQL and DDL for different databases, and even source code for classes and frameworks for different languages.
theWebMind Project Power Polygon Project
Type:
Addon
Name:
PHPDevBar
Description:
PHPDevBar is an Addon for Firefox.
Stop searching at PHP.net to simply remember some function signature. With this addon you can search functions quickly for the official function description directly into your browser without a new tab.

Besides that, there are useful tools and links to help PHP Developers to make their job easier or faster!
PHPDevBar Project PHPDevBar Project
Type:
Demo
Name:
ChromaKey JS
Description:
The Chroma Key with JavaScript demo was a live coding talk Felipe gave at the W3C's WebBR2012 conference.
The JavaScript source was created in one hour, with 100 lines of code.

With chroma key, you can remove pixels similar to a given color from a scene...it has been vastly used in movies and tv ads.

This demo uses getUserMedia, canvas and video to apply the effect. Check the code or fork it at Felipe's github project.
ChromaKey with JavaScript Demo
Type:
Tool/Demo
Name:
HTML5 Imager
Description:
HTML5 Imager is a demo, or tool I created in one weekend to show you how simple it is to create some really cool things with few lines of code, just by using cool Open Web Technologies :)

This tool uses canvas, web workers and file API.
HTML5 Imager - Demo

Talks

I can give a talk in your conference about many different technologies and motivation.
Get in touch and let's talk about it ;)

In-company Training

I can give trainings incompany. My schedule is better fit as this:
8 hours:
Staurday, full day.
16 hours:
two Staurdays, full day.
16 hours(out of Porto Alegre):
Friday and Staurday, full day(must negotiate dates).
16 hours(in Porto Alegre, only):
From Monday to Thursday, 4 hours at night.

Trainings about: JavaScript, HTML5, CSS3, Logic...

Schedule






call, bind e apply no JavaScript (parte 2)

Sep, 22nd - 2014

Este post, é uma continuação de outro post, mais focado em funções.

tied binded javascript

Neste, focaremos realmente nos três métodos do título deste artigo, .call, .bind e .apply.

Agora que você já leu sobre hoisting, escopos, e como as funções funcionam e podem ser declaradas e executadas na primeira parte deste artigo, podemos abordar esta, que considero ser uma parte um pouco mais avançada do JavaScript.

Estes três métodos estão presentes no prototype de Function, ou seja, toda função terá estes métodos, nativamente.
Uma coisa bacana, também, é que isto funciona igualzinho em nodejs ;)

.call()

O método .call, literalmente, “chama” a sua função.

A diferença, está nos argumentos(parâmetros) passados a esta função.
Ela permite que você possa setar qual o escopo daquela função.

Além disso, podemos passar parâmetros para aquela função, além do escopo atual.

Um macete interessante, é que por exemplo, ao utilizar o objeto arguments, ele trata-se de uma collection, e não uma Array, por tanto, não tem alguns métodos do prototype de Array, como .forEach, ou .sort.
Daí, podemos resolver isto usando:

Isto funciona por que o método slice da Array basicamente pega uma “fatia” da array (o this, do ponto de vista do prototype), devolvendo em uma nova Array.
Neste caso, estamos dizendo para o método slice, que o “this” dele, é na verdade aquela collection, e ele nos devolverá uma nova Array, com a fatia de 0 até o final dela(pois não passamos nenhum outro argumento a ela).

.apply()

O método apply da função, é parecido com o call, porém, ele recebe uma lista de argumentos, na forma de uma Array, mesmo.

A principal vantagem é que algumas vezes, queremos apenas repassar os argumentos recebidos em uma função, diretamente para outra, usando o próprio arguments.

.bind()

O bind, funciona um pouco diferente.
Ele não executará sua função na mesma hora, como o call e o apply, ao contrário disto, ele RETORNARÁ uma nova função, a qual já estará com seu escopo definido.

Quando finalmente chamamos a função “theFunction”, ela já ligada ao objeto “obj”, e então, passamos neste momento os argumentos.
Uma coisa interessante que vale lembrar, é que o bind, infelizmente, tem uma performance meio pobre! Então, cuidado ao sair usando e abusando dele por aí(em especial em loops)!
Eis uma alternativa que o pessoal faz:

O resultado produzido é o mesmo, mas ao contrário de utilizar o .bind, estamos utilizando o .apply, passando adiante qualquer parâmetro passado àquela função.

Finalizando

Uma outra coisa interessante, é que o “this” em uma função, pode ser qualquer coisa…

O que pode acabar sendo usado em situações como esta:

Espero que tenha sido um post útil e bem explicativo! :)

Não deixem de divulgar o post, e dar sua opinião.

by

Page not found!

Perhaps, you will find some of these interesting, instead: