I'm a Web Developer for ~15 years, and during the last 6 years I have been working in several SPA and PWA projects in a big diversity of frameworks, such as Backbone, React and mainly Angular (1.x and 2+), which gave me a rich FrontEnd experience. I have always been close to the BackEnd as well in several platforms, such as NodeJS, Java and .NET, although FrontEnd and JavaScript will always be my preference. I am involved with IT and Open Source communities for a few years, where I began to share my knowledge in talks, organizing meetups and conference tracks.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { TestBed, async } from '@angular/core/testing'; | |
import { AppComponent } from './app.component'; | |
import { setUpCachedTestBed } from '../test-utils'; | |
describe('AppComponent', () => { | |
setUpCachedTestBed({ | |
declarations: [ AppComponent ], | |
}); | |
beforeEach(() => { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Component } from '@angular/core'; | |
import { Router, NavigationStart, NavigationEnd } from '@angular/router'; | |
@Component({ | |
selector: 'app-root', | |
templateUrl: './app.component.html', | |
styleUrls: ['../assets/styles/index.sass'], | |
}) | |
export class AppComponent { | |
constructor( |
- | Backbone | Ember | Angular 2+ | React+Flux |
---|---|---|---|---|
Template System | Handlebars | Handlebars | Angular Syntax | JSX |
Conventions | Too Flexible | Strong Conventions | Strong Conventions | Small Conventions |
Main Ecosystem | Distributed | Built-in | Built-in | Distributed |
Community Libs | Strong, decreasing | Strong | Medium, increasing | Strong |
Popularity | Low, decreasing | Low | High | High |
Maturity | High | High | High | High |
Active Development | Low | High | High | High |
Community Experience | Low, decreasing | Low | Medium, increasing | High |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Directive, Input, ViewContainerRef, TemplateRef, EmbeddedViewRef } from '@angular/core'; | |
@Directive({selector: '[context]'}) | |
export class ContextDirective { | |
private view: EmbeddedViewRef<any>; | |
@Input() set contextFrom(context) { | |
if (!this.view) { | |
this.view = this.viewContainer.createEmbeddedView(this.template); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1, 10, 100, 10000, 1000000, 100000000, 1000000000] | |
.forEach(size => { | |
console.log('with', size) | |
console.time('var'); | |
for (var i = 0; i < size; i++) {} | |
console.timeEnd('var') | |
console.time('let'); | |
for (let i = 0; i < size; i++) {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"lastUpload":"2018-06-19T17:05:00.761Z","extensionVersion":"v2.9.2"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function mostFrequentIn(array) { | |
const score = array.reduce((m, i) => m.set(i, (m.get(i) || 0) + 1), new Map); | |
return Array.from(score) | |
.reduce( | |
(r, [key, val]) => val > r.val ? {key, val} : r, | |
{key: '', val: 0} | |
); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
||paywall.estadao.com.br^ | |
||estadao.com.br/paywall/* | |
||www1.folha.uol.com.br/folha/furniture/paywall/* | |
||static.folha.com.br/paywall/* | |
||static.folha.uol.com.br/paywall/* | |
||oglobo.globo.com/servicos/inc/payWall.Conteudo.js | |
||oglobo.globo.com/plataforma/js/*/minificados/paywall/registraConteudosLidos.js | |
||static.folha.uol.com.br/library/jquery/1.8.3/* | |
@@|http://www1.folha.uol.com.br/paywall/adblock.shtml?$document | |
@@*paywall/js/1/publicidade.ads.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var person = { | |
name: 'Homer Simpson', | |
address: { | |
street: '123 Fake St.', | |
city: 'Springfield' | |
} | |
}; | |
//Complete Imperative | |
if (person != null && person['address'] != null) { |
NewerOlder