domingo, 23 de julho de 2017

ECMAScript 2017: The Latest Version Of JavaScript Language Is Here

Source: https://fossbytes.com/ecmascript-2017-javascript-es8/

You can find the complete ECMAScript 2017 specifications here.


quinta-feira, 20 de julho de 2017

Vaga Portugal/Lisboa - Consultor Oracle PL/SQL

Quer trabalhar em uma empresa multinacional que possibilite incentivo para desenvolvimento e crescimento na sua carreira?   

Perfil: 
  • Ter Cidadania Européia ou possibilidade de retirada.  
  • Licenciatura em Engenharia Informática ou áreas similares; 
  • Experiência profissional em desenvolvimento com Oracle Developer (Forms & Reports)  
  • Para essa posição o inglês terá que ser avançado

Interessados enviar currículo para roberta@huntingti.com mencionando Consultor Oracle Portugal no assunto


quarta-feira, 19 de julho de 2017

Vaga Portugal/Lisboa - Consultor Java

Repassando:

Quer trabalhar em uma empresa multinacional que possibilite incentivo para desenvolvimento e crescimento na sua carreira? 

Perfil: 
Ter Cidadania Européia ou possibilidade de retirada. 
Licenciatura em Engenharia Informática ou áreas similares; 
Experiência profissional em JEE, Hibernate, GIT e/ou Maven; 

Interessados enviar currículo para roberta@huntingti.com mencionando Portugal no assunto.


Oportunidade: Desenvolvedor iOS e Android

Meu cliente Lexsis (Porto Alegre - RS) está a procura de Desenvolvedor iOS e Android, de preferência que desenvolva nas duas plataformas.

Somente CLT.

Currículos enviar para Marcos Paulo (gerente).


segunda-feira, 13 de fevereiro de 2017

Senior Flex Developer - Opportunity - Krakow / Poland

I received a proposal to this opportunity:
https://career.luxoft.com/careers/90073/senior-flex-developer/

Is necessary relocation to Krakow / Poland to work at http://www.luxoft.com/


terça-feira, 17 de janeiro de 2017

IE fazendo cache para $http do AngularJS

Estava tendo uma situação com um cliente onde ele salvava e recebia mensagem de confirmação de salvo com sucesso, mas ao editar novamente a informação não estava lá. Só no Internet Explorer acontecia isso.

Conversando vimos que ao dar logoff e entrar novamente a informação aparecia, desconfiei logo de cache e para centralizar pensei em colocar um no-cache no header via interceptor do AngularJS.

Procurando na internet achei este conteúdo muito bom:

Unindo minha idéia inicial e link acima e também com o objetivo de manter cache de outros recursos como html, imagens, css usei o seguinte:


app.factory('commonHttpInterceptor', function ($q, $rootScope, commonConstants) {
    return {
        'request': function(config) {
            if (config.url.indexOf(commonConstants.URL_BASE) > -1) {
            if (!config.headers) config.headers = {};
            config.headers['Cache-Control'] = 'no-cache';
                config.headers['Pragma'] = 'no-cache';              
               
                $rootScope.openLoading();
            }
           
            return config;
        },

domingo, 4 de dezembro de 2016

Validação de campo em formulário

Em formulários para sinalizar para o usuário que o campo é inválido e o porque normalmente coloco uma borda vermelha no input e / ou um x vermelho ao lado, com tooltip com o motivo nos dois.

Um exemplo:

<div ng-class="{'has-error' : (formCrud.$submitted && formCrud.email.$error.required) || formCrud.email.$error.email}">
    <label>E-mail</label>
    <input type="email" id="email" name="email" class="campo-maior text-lowercase" ng-model="paciente.email" required
           uib-tooltip="{{(formCrud.$submitted && formCrud.email.$error.required ? MENSAGEM.OBRIGATORIO : MENSAGEM.FORMATO_INCORRETO)}}" 
           tooltip-enable="(formCrud.$submitted && formCrud.email.$error.required) || formCrud.email.$error.email" />
    <span ng-show="(formCrud.$submitted && formCrud.email.$error.required) || formCrud.email.$error.email
          class="glyphicon glyphicon-remove text-danger" 
          uib-tooltip="{{(formCrud.$submitted && formCrud.email.$error.required ? MENSAGEM.OBRIGATORIO : MENSAGEM.FORMATO_INCORRETO)}}"></span>
    <span ng-show="!formCrud.email.$error.required && !formCrud.email.$error.email" class="glyphicon glyphicon-ok text-success"></span>
</div>


Mas a repetição em destaque me incomodava (code smells), se precisar alterar a condição teria alguns pontos a fazer.
Pensava em criar uma diretiva e criar watchers quando necessário e variáveis para controle, mas não me parecia ainda opção adequada por ainda achar burocrática.

Então percebi que podia criar variáveis no html.

<div ng-class="{'has-error' : emailInvalid}">
    <label>E-mail</label>
    <input type="email" id="email" name="email" class="campo-maior text-lowercase" ng-model="paciente.email" required
           uib-tooltip="{{mensagemEmail}}" tooltip-enable="emailInvalid" />
    <span ng-show="emailInvalid = (formCrud.$submitted && formCrud.email.$error.required) || formCrud.email.$error.email
          class="glyphicon glyphicon-remove text-danger" 
          uib-tooltip="{{mensagemEmail = (formCrud.$submitted && formCrud.email.$error.required ? MENSAGEM.OBRIGATORIO : MENSAGEM.FORMATO_INCORRETO)}}"></span>
    <span ng-show="!formCrud.email.$error.required && !formCrud.email.$error.email" class="glyphicon glyphicon-ok text-success"></span>
</div>