Archive for the ‘Conhecimentos Gerais’ Category

Gradle vs Gulp

gulp_vs_gradle


Um pouco sobre as duas ferramentes

Gulp tem sido usado em larga escala por desenvolvedores front-end para automatização de processos. Tendo algumas concorrências diretas como o Grunt.
http://gulpjs.com/

 

Gradle vem ganhando forças principalmente por ter sido adotado pelo Google e por ser um ótima opção pra quem usa Apache Maven.
http://gradle.org/

 

Irei apenas mostrar algumas diferenças dos pontos mais básicos das duas ferramentas, ou seja, serei bem superficial, mas irei colocando links para quem tiver interesse em mais conteúdo.

Instalação:

Gulp Gradle
Ter feito a instalacao do node
Criar um npm project
Depois instalar globalmente e localmente o gulp

npm init
npm i --global gulp
npm i --save gulp

https://github.com/gulpjs/gulp/blob/master/
docs/getting-started.md

Faze download do Gradle no site e configurar o GRADLE_HOME
https://docs.gradle.org/current/
userguide/installation.html

 

Arquivo principal:

Gulp Gradle
gulpfile.js  build.grade

 

Primeira tarefa:

Gulp Gradle
var gulp = require('gulp');
gulp.task('HelloTask', 
function() { 
 console.log(‘gulp_vs_gradle’)
});

No prompt de comando:

 gulp HelloTask 
task HelloTask<< {
 println 'gradle_vs_gulp'
}

No prompt de comando:

gradle HelloTask

ou

gradle HT

 

Ciando variáveis:

Gulp Gradle
Como o Gulp é puramente javascript basta usar o var


gulp.task('Task2', 
function() {
var foo="gulp_vs_gradle"; 
console.log(foo);
});
Como o Gradle tira proveito do Groovy podemos ter tipagem ou não.

task Task2 << {
String foo='gradle_vs_';
def bar = 'gulp';
println (foo+bar);
}

 

Usando plugins:

Gulp Gradle
Pra instalar tem que usar o node

npm install --save-dev PLUGIN

e no gulpfile.js “importa-lô”

 

var plugin = require('plugin');


http://gulpjs.com/plugins/

Coloque os imports no build.gradle

 plugins { 
id "com.moowork.node"
 version "0.12"

id "com.moowork.gulp" 
 version "0.12" 
} 

Execute ‘gradle tasks’ e veja que já teremos tasks para o node e para o gulp
feito magica!

gradle tasks

https://plugins.gradle.org/

Construct_Gamemaker_Gamesalad_Stencyl_Flash

{Construct, Gamemaker, Gamesalad e Stencyl + Flash}
Então…
Escreveria sobre essas ferramentas, mas não pesquisei muito e já vi que isso não seria algo novo.

Segue uns links interessantes:

http://www.scirra.com/blog/59/construct-2-vs-gamemaker-vs-gamesalad-vs-stencyl
http://johnbura.blogspot.com.br/2011/11/construct-2-vs-gamemaker-vs-gamesalad.html 

Agora só resta opinar sobre o que li =P

“Stencyl currently exports to Flash, which was shaken by Adobe’s recent announcement to abandon Mobile Flash in favour of HTML5 tools” by scirra.com
– Como programador com alguma expertise em AS/Flash, não da pra deixar essa passar. Sim, Adobe parou com Flash PLUGIN para “navegadores moveis” , por motivos ainda obscuros, o fato é que ainda está disponível a exportação no formato AIR, onde, com o “mesmo” projeto, você vai ter o seu jogo rodando no IOS, ANDROID, Blackberry, TV e etc…

“Since flash is not being supported any more it will be hard to use stencyl as a commercial platform” by johnbura
– Pago minhas contas com o Flash =P

“Remember that’s not including the much-faster WebGL renderer – and Construct 2 is still 3.5x faster than the Flash-powered Stencyl” by scirra.com
– Não sei se esse teste foi justo, afinal, WebGL usa facilmente a GPU =) Com o flash, a um tempo atrás,  não era bem assim =/ creio que a/o Stencyl não tinha Stage3D bem implementado.

Segue agora um bom exemplo do Stage3D (FLASH / ActionScript) -> “joguinho” by Ubisoft  http://www.youtube.com/watch?v=KE_OqFIrhGA

Agora, o que motivou o Espigah (eu, eu mesmo) a escrever =P
Sou muito fã do Scratch para quem está aprendendo lógica+programação, justamente pelo workflow bacana que essa ferramenta simples tem, já o construct, mesmo sendo o #BamBamBam (com todo o mérito), achei bem bagunçado para criar um jogo muito grande. Workflow faz um bocado de diferença para os nossos cabelos, foi onde a/o Stencyl se destacou pra mim, mantendo o que eu mais gostava do Scratch e como um plus… Ele exportar em swf !!!

Enfim, contudo, não aconselho a usar facilitadores para aprender a coisa de verdade, acho que pegar o básico até vai =P depois tem que correr pras coisas que gerem conhecimentos uteis para fazer dinheiro e… Jogos 😉

É pra encerrar (Y)
Por que minha aversão a essas ferramentas?
Não e legal trabalhar para pessoas que vivem nesse mundinho de “facilitadores”…

Programação – Boas_Práticas 二

Fala pessoal \o/
Não existia a intenção de escrever uma “ Programação – Boas_Práticas ” parte2,
porem, vejo que pra quem está começando nesta vida de fazer programas =(
ainda é bastante complicado fazer suas linhas de códigos do zero.
Então…Vamos lá!

idiomas vs languages vs langues
Não e muito difícil, talvez pela preguiça, encontrar uma mistureba de idiomas pelo código.
Então, pra ficar bonito, manter o código em inglês, ok?
No máximo escrever comentário em seu idioma nativo, no máximo!!!

Hyphen, CamelCase, or Underscore ? 
Não importa, mantenha um padrão;
É, de novo aqui, sim, aqui….
Não mistures esses caras, mantenha um padrão;

OOTrue 
#De preferencia a grande quantidade de arquivos do que grande quantidade de linhas;
#Não misture as responsabilidades.
Se um método diz que vai tocar um som,
ele não vai parar outro som,
ele vai tocar um som e só
(simples, não?)
#Transforme problemas maiores
em problemas menores

Ambiente de teste
Você tem que ser capaz de reproduzir um erro
em um ‘Ambiente de teste’, ou seja, isolar o problema da aplicação (Y)
isso ajuda a resolver e a pedir ajuda hehe

Versionamento
#Svn, dropbox… não importa.
#Não confie plenamente;
#Facilite backups, não é porque da pra voltar que devemos contar com esse recurso,
backups periódicos (devidamente documentados) salva vidas
#Em etapa de estudo, gosto de criar pastas a cada marco.

Acho que é isso…
lembrando de coisas novas
eu atualizo aqui (Y)

Programação – Boas_Práticas

Hyphen, CamelCase, or Underscore ? 
Não importa, mantenha um padrão;

Se não existir um padrão, converse com os outros programadores para definirem juntos qual será o padrão;

Se existir um projeto que não tem mais os programadores,

agora o projeto é seu, se tiver paciência, migre para o seu padrão;

De preferencia a grande quantidade de arquivos do que grande quantidade de linhas;

get/ set or public?
“afinal, o que são get e set além de um jeito mais lento de fazer um atributo público?”

Concordo bastante com isso.

get /set por get /set é igual a um public XD

E não ligo para “cada objeto cuida de si próprio “, não quando o assunto e get/set…

Acho mais adequado quando precisamos de algo mais especifico, como: deixar uma variável apenas como “readonly” (‘get’) ou usar o ‘set’ quando precisamos de alguma logica ao atribuir um valor.

OO mal programado pode virar algo muito Procedural .
Enchendo o código com o famoso “Bad Smell”…você pode conseguir isso facilmente; =D

Orientação a objeto, a template, a domínio, a aspecto, a lua, ao sol, whatever…. 
Não ligo, desde que as coisas sejam coerentes.

Mas se a equipe falar o mesmo que o domínio
acho que flui melhor (serve tanto para os códigos quanto para o projeto)

Minhas manias:
variável usando get ou set começãndo com underscore = _variable;

variável que representa um objeto, coloco as duas primeiras letras para identificar este objeto = ComboBox = cbVariable;

constante sempre com letras maiúsculas e com underscore = CONST_VARIABLE;

Métodos privados = primeira letra maiúscula = Function();

Métodos públicos = primeira letra minuscula = function();

Parâmetros de um método, sempre coloco um simbolo
para diferenciar eta variável das demais no meio do escopo, no meu caso uso ‘$’ = function($param1, $param2);

Levo em consideração o nome do pai, tentando exemplificar:
Uma roda que tem como pai um objeto com o nome Carro,
não coloco o nome da roda de roda_carro ou carro_roda,
e apenas de -> roda,
para que no código fique -> Carro.roda
é não Carro. roda_carro ou Carro. carro_roda;

If()
{
}
else
{
}
Acho que facilita a legibilidade desta forma;

Dica rápida 1:
function MeuMetodo($dias:Array, $armas:Array):void
{

trace(“@MinhaClasse:: MeuMetodo {“)

const LENGTH_DIAS:uint = $dias.length

var personagemAtual:Object;

var i:uint;

for (i=0; i< LENGTH_DIAS ; i++)
{

personagemAtual = $armas[i];
trace(“Arma =”, personagemAtual.arma,” Cor =”, personagemAtual.cor);

}

trace(“@MinhaClasse:: MeuMetodo }”);

}

p.: Codigo em pt é as3.

Um exemplo de um ‘for’ que poucas programadores usam:
‘length’ fora do ‘for’,
declaração da variável fora do ‘for’,
uma constante para o que não vai mudar,
um objeto para não ficar indo toda vez dentro de uma matriz para acessar a propriedade de um objeto;
E a mania que ajuda a debugar
é ‘printar’ o nome da classe concatenado com o método no inicio e no final da lógica, mas só quando for necessário;

Dica rápida 2:
Inicializar uma variável no escopo da classe ou dentro do construtor faz alguma diferença para o JIT.

Dica rápida 3:
Use e abuse de ‘interface’;

Liks relacionados:

Boas Práticas de Programação

AIR FOR Android – you dont have the appropriate permission required

Fui tentar instalar a atualização para o ‘AIR_Android’, ai… problema!!!
erro “..missing appropriate permissions..”

Para poder instalar
basta ir no menu inciar e
executar como administradorExtension Mananger .
É ‘vapt-vupt’.
Agora você terá em:
Publish Settings{ctrl+shift+F12} -> Flash -> Player -> AIR Android

Boa sorte \o/
agora e com noir ^^

Extras:
Fixing the “missing appropriate permissions” problem in CS4 Extension Manager
-> http://www.youtube.com/watch?v=T8ECcyBPf0M

flashpro_extensionforair_p2_112210.zxp
-> http://download.macromedia.com/pub/labs/flashpro_extensionforair/flashpro_extensionforair_p2_112210.zxp

Devisland e Programmer-competency-matrix

http://www.qubit.devisland.net/ga/

http://www.starling-software.com/employment/programmer-competency-matrix.html

animal esses dois conteudos

Teoria da Forma.

LINGUAGEM VISUAL –Sempre que projetamos, traçamos ou esboçamos algo, o conteúdo visual desta comunicação é composta por uma série de Elementos Visuais. Esses elementos constituem a substância básica daquilo que vemos. São muitos os pontos de vista a partir dos quais podemos analisar qualquer manifestação visual, mas um dos mais reveladores é decompô-la nos elementos que a constituem de forma que melhor possamos compreender o todo. A linguagem visual constitui a base da criação do design. Há princípios, fundamentos ou conceitos, com relação à organização visual, que podem resolver situações problemáticas na realização de um projeto. O designer pode trabalhar sem esse conhecimento consciente, usando seu gosto pessoal e sensibilidade estética que são muito importantes, porém, uma compreensão dos fundamentos ampliará sua capacidade de organização, facilitando enormemente seu processo de criação. Se quiséssemos refletir sobre o número de vocábulos suficientes para se formar uma Linguagem Visual poderíamos ter como resposta que os principais são basicamente: o ponto; a linha; o plano; o volume e a cor. Com tão poucos elementos básicos, e que nem sempre se apresentam em conjunto, forma-se toda a expressão visual na arte e no design na sua mais imensa variedade de técnicas e estilos. Se compararmos a Linguagem Visual com a Linguagem Escrita, representada por letras e palavras, quantas necessitamos para contextualizar o entendimento de um simples parágrafo? Cabe lembrar que palavras e elementos visuais não são comparáveis em termos de igualdade. As palavras têm significado preestabelecido e os elementos visuais não têm. Eles não representam absolutamente nada se não estiverem inseridos em um contexto formal. E justamente por não determinarem nada isoladamente é que podem determinar tanto em conjunto. Para melhor compreensão da Linguagem Visual é importante ressaltar alguns elementos que formarão a base do entendimento futuros. Esses elementos estão muito relacionados entre si. Vistos individualmente parecem abstratos, mas juntos, determinam a aparência e a qualidade do design de uma página. Podemos definí-los como:

ELEMENTOS CONCEITUAIS – Um elemento conceitual, não é visível (o próprio nome já o define como conceito). Ele não existe na realidade, mas parece estar presente. Por exemplo: Sentimos a existência de um ponto no ângulo de um formato, sentimos que há uma linha marcando o contorno de um objeto ou que há planos envolvendo um volume. Esses pontos, linhas e planos não estão lá, pois se estivessem, deixariam de ser conceituais.

ELEMENTOS VISUAIS – Os elementos visuais são sempre visíveis. Quando desenhamos um objeto numa superfície, usamos uma linha que é visível para representar uma linha que é conceitual. Suas características (comprimento, largura, textura ou cor) dependem do material utilizado ou da maneira de como o representamos. Os elementos visuais formam a parte mais proeminente da representação gráfica, pois são aquilo que podemos ver de fato.

ELEMENTOS RELACIONAIS – Os elementos relacionais são exatamente os que governam a localização e inter-relação das formas em uma composição. Alguns parecem ser percebidos, como: direção e posição, e outros apenas são para serem sentidos, como: espaço e profundidade.

FORMA Todo ato de perceber uma FORMA no mundo é um ato intelectual de destacar um significado. A FORMA é o oposto da insignificância, é a presença em si. Na Comunicação Visual, em especial, toda FORMA tem contorno e superfície, e é criada sobre algum tipo de suporte. O contorno é o limite exterior da forma, uma espécie de fronteira entre o significado (FORMA) e o insignificante (FUNDO).

O SUPORTE é qualquer meio material onde se realiza a FORMA, podendo ser desde uma folha de papel, a tela de um computador ou o bloco de pedra onde se lavra uma escultura. Conceitualmente, a FORMA é uma relação que permanece constante mesmo que mudem os elementos aos quais ela se aplica. Um triângulo pode ter vários tamanhos ou inúmeras formas, mas a triangularidade permanece constante, independente de suas características.

FIGURA E FUNDO Uma FIGURA se destaca do fundo pela atenção que desperta no observador. A FIGURA é o elemento que possui significado, enquanto o FUNDO é o pouco significativo. A atenção sobre a FIGURA ocorre pelas características próprias do objeto ou por características presentes no observador. O contraste é o responsável pela distinção entre a FIGURA e o FUNDO. Contraste que pode ser formal, pela qualidade da superfície ou pelo significado da FIGURA. A FIGURA possui algo formalmente diferente em relação ao contexto sobre o qual está colocada. Pode ser um formato diferente, uma cor, uma textura etc. Com relação ao observador, as motivações pessoais podem ajudar a destacar uma FIGURA em relação ao seu contexto. Nem sempre as relações entre a FIGURA e o FUNDO são definidas. Pode-se perceber um espaço ora como FIGURA, ora como FUNDO.

MOVIMENTO Por associação, temos a sensação de que as figuras que representam objetos animados do mundo real revelam disposição para o MOVIMENTO. Em uma Comunicação Visual, dadas suas características formais, as figuras podem dar força à percepção em determinada direção dentro da composição. As linhas curvas ou diagonais podem induzir maior sensação de movimento que as horizontais, assim como as cores quentes parecem avançar em direção ao observador enquanto as frias parecem recuar. Toda a Comunicação Visual pode ser animada com o uso das características formaiscorretas. A ilusão de MOVIMENTO pode ocorrer quando há contraste entre uma FORMA e o CONTEXTO de onde ela parece ter se desprendido.

O PONTO – O início de tudo… Para que possamos observar o simbolismo de uma estrutura gráfica é necessário começar pelo elemento mais simples que compõe a matéria, o PONTO. O ponto é a unidade de comunicação visual mais simples e irredutivelmente mínima. Quando fazemos uma marca, seja com tinta, com uma substância rígida como um bastão, pensamos nesse elemento visual como um ponto de referência ou um indicador de espaço. Qualquer ponto possui um grande poder de atração visual sobre o olho, exista ele naturalmente ou tenha sido colocado pelo homem em resposta a um objetivo qualquer. Como Elemento Conceitual, um ponto indica posição. Não tem comprimento nem largura. Pode representar o início e o fim de uma linha e está onde duas linhas se cruzam. Ele é um “ser vivo”. A unidade mínima da presença. Estamos muito acostumados a usá-lo na escrita, como agora, mas ele tem outras posições, além desta. O ponto é a representação da partícula geométrica mínima da matéria e do ponto de vista simbólico, é considerado como elemento de origem. Como Elemento Visual, o ponto possui formato, cor, tamanho e textura. Suas características principais são: Tamanho – devendo ser comparativamente pequeno, e o Formato – devendo ser razoavelmente simples. Sua aplicação em uma representação visual pode também ser classificada em: Adensamento (a concentração de pontos para representar um determinado efeito) e Rarefação (o espaçamento entre eles, causando efeito contrário). Como Elemento Relacional, a sua representação enquanto Unidade de Forma constituirá uma Textura. Quando um conjunto de pontos é organizado de forma seqüencial, esses pontos se ligam, sendo, portanto, capazes de dirigir o olhar. Em grande número e justapostos, os pontos criam a ilusão de tom. A capacidade única que uma série de pontos tem de conduzir o olhar é intensificada pela maior proximidade dos pontos.

%d blogueiros gostam disto: