quinta-feira, 19 de fevereiro de 2015

Dividindo Lista em Colunas

Depois de um tempo sem escrever nada e vendo um problema descrito em uma das listas do Facebook hoje, onde a pessoa que buscava realizar a quebra em colunas a cada "x" elementos, resolvi testar pois, de início não me pareceu tão complexo (a menos é claro que eu tenha entendido mal). A ideia é que, a cada 13 elementos, o código quebre em colunas os itens da lista. Para ver funcionando, basta copiar o código abaixo, criar um arquivo novo com o conteúdo e abrir em um navegador qualquer. Para "popular" a lista, informe uma quantidade de itens e clique no botão "Adicionar" e logo depois, no item "Ajustar em Colunas". O código separa em colunas de acordo com o tamanho da lista, tentando ocupar o máximo da tela. Bem, como o código é bem básico, vou apenas apresentar o código.

<html>
<script>

$ = function(nId){ return document.getElementById(nId); }

adiciona = function(qtd, destino){
    var ultimo = destino.getElementsByTagName('li').length;
    for( var i=0; i<qtd; i++ ){
        var novoTexto = ultimo + i + 1;
        li = document.createElement('li');
        li.innerHTML = 'Li '+novoTexto;
        destino.appendChild(li);
    }
}

ajusta = function(alvo, maxItens){
    var lista = alvo.getElementsByTagName('li');
    var colunas = Math.ceil( lista.length/maxItens );
    var tm = Math.floor( 100.0/colunas )-2;    
    var j = 0, uDiv;
    for ( var i=0; i<lista.length; i++){
        if (j == 0){
            uDiv = document.createElement('div');
            uDiv.style.float = 'left'
            uDiv.style.width = tm+'%';
            alvo.appendChild( uDiv );
        }
        uDiv.appendChild( lista[0] );
        j++;
        if (j==13) j=0;
    }
}

</script>
<body>
    <h4>Comandos</h4>
    <label for="qtdLI">Quantidade de Itens a Adicionar na Lista:</label>
    <input type="text" id="qtdLI" value="1" />
    <input type="button" value="Adicionar" 
      onclick="adiciona( $('qtdLI').value, $('lista') );">
    <input type="button" value="Ajustar em Colunas" 
      onclick="ajusta($('lista'), 13);">
    <br><br>
    <h4>Colunas</h4>
    <hr>
    <ul id="lista">    
    </ul>
</body>
</html>
Claro que o código pode ser melhorado, otimizado e adaptado às necessidades de cada um (utilizar jQuery ou aplicar um estilo mais elaborado usando o className por exemplo). Como eu disse, o código pode ser melhor elaborado, mas para se ter uma base já ajudaria. Bem, é isso.

quinta-feira, 4 de dezembro de 2014

Palestra - Conhecendo Django - TechWeek - Semana de Tecnologia - IFAC

Apresentação (PDF e Power Point) da Palestra que ministrei no evento TechWeek -  “1ª Semana Acadêmica de Tecnologia do curso de Sistema para Internet”  - Realizado no IFAC (Instituto Federal do Acre), apresentando um conteúdo básico sobre o Framework Web Django. Na palestra com o título "Conhecendo Django" tentei abordar o framework de forma geral, apresentando seus recursos e aplicações.

Versão Power Point
https://drive.google.com/file/d/0B8ZDNy1udkGzVFNnM2I5VlUwRHc/view?usp=sharing

Versão PDF
https://drive.google.com/file/d/0B8ZDNy1udkGzMl9kZjV1UDd6UFE/view?usp=sharing



Apesar de um pouco longa, creio ter conseguido, ao menos, criar um pouco de interesse sobre esse surpreendente framework.




Bem, é isso!

sexta-feira, 10 de outubro de 2014

Concurso Eletroacre - Vaga para Analista de TI - Bancos de Dados

Pessoal, estão abertas as inscrições para o concurso da Eletroacre. Tem 10 vagas (cadastro de reserva) para Analista de TI, especialidade Bancos de Dados, com remuneração de R$ 4.524,71. Data de realização de provas 14/12/2014

Para inscrições, editais e maiores informações, acessem... http://ibeg.org.br/2014/10/10/concurso-eletroacre/

[Vaga] Desenvolvedores Python - Accennture

Requisitos:
Superior completo em Ciência da Computação, Sistemas de Informação ou cursos relacionados.
Experiência necessária: Linguagem Python e SQL
Conhecimentos desejáveis: Google Platform (App Engine, Compute Engine, BigQuery, SQL Cloud, etc.)
Inglês intermediário. 
Local de Trabalho: São Paulo, Alphaville ou Recife.

Os interessados podem enviar CV para o e-mail rodrigo.zenun.franco@accenture.com

Para conhecer mais sobre a Accenture

quinta-feira, 9 de outubro de 2014

Introdução ao Python - Palestra Realizada na Faculdade Meta

Apresentação realizada na Faculdade Meta no dia 08/10/2014, onde realizei uma pequena introdução a linguagem Python, apresentando um pouco de sua história de criação, suas áreas de atuação, empresas que utilizam, além de alguns pequenos exemplos de uso, com trechos de código. Alguns dos exemplos utilizados foram extraídos da prova final do curso de Python, "Python para Zumbis", do colega Fernando Massanori.



terça-feira, 7 de outubro de 2014

Tecnologias web e ferramentas para 2015

Compartilhando informações sobre um link interessante postado pelo colega Jonas Ferreira...

Web certamente percorreu um logo caminho nos últimos anos. Temos tecnologias e ferramentas que mudaram a nossa forma de desenvolver aplicações web. Como a tecnologia continua a evoluir, vamos ver mais melhorias para o próximo ano. Neste artigo, destaco algumas das melhores tecnologias da web e ferramentas que vão trazer impacto em 2015.

ECMAScript 6
Logo ES6
ES6 é o futuro do JavaScript e vai trazer muitos recursos novos. A boa notícia é que o conjunto de recursos de ES6 já está em alguns navegadores que já começaram a implementar as funcionalidades. Ferramentas como Traceur já permitem que você escreva código em ES6 e depois transfira-os para ES5 para que ele funcione em navegadores de hoje. Além disso frameworks como AngularJS e Ember vão direcionar ES6 em versões futuras. Dado o seu conjunto de recursos e popularidade. ES6, certamente, vai revolucionar o desenvolvimento JavaScript.

AngularJS 2.0

Logo AngularJS
Do Google AngularJS é um dos quadros mais populares para o desenvolvimento de página de apps . A boa notícia é que AngularJS 2.0 está em desenvolvimento e desta vez é mais forte, melhor e mais rápido. Como Durandal , outro quadro SPA popular, está convergindo em AngularJS o combo é definitivamente vai fazer um impacto. AngularJS 2.0 também vai direcionar ECMAScript 6 que significa que seu código JavaScript vai ser à prova de futuro.

React

Logo ReactJS
React, a biblioteca de interface do usuário do Facebook, é uma grande ferramenta para o desenvolvimento de interfaces de usuário. Como você pode estar ciente que há alguns desafios envolvidos na execução de páginas apps. A principal delas é SEO. Mas isso pode ser resolvido com a criação de isomorfismo apps. Uma das melhores coisas sobre React é que ele pode render no cliente e no servidor que o torna uma excelente opção para a criação de aplicativos de isomorfismo. React, quando usado com padrão de fluxo, é definitivamente uma bênção para os desenvolvedores. Sites populares como Facebook, Instagram, Khan Academy, New York Times e muitos mais estão usando React. Tendo falado sobre seus benefícios e crescente popularidade Acho React vai ser uma das tecnologias web populares nos próximos dias.

Meteor

Logo MeteorJS
Meteor é uma plataforma de código aberto para a criação em tempo real JavaScript apps. Uma das coisas boas sobre Meteor é que você acabou de construir modelos e as páginas de atualizar sempre que os dados nos bancos de dados as alterações. Assim, você pode dizer Meteor é algo que pode fazer o seu banco de dados (MongoDB) em tempo real. Meteor Grupo de Desenvolvimento também garantiu US $ 11,2 milhões no financiamento, que é definitivamente grande para um projeto open source. Acho Meteor 1.0 será o centro de atração de todos os olhos. Você também deve observar que alguns aplicativos já começaram a usar Meteor na produção.


Ionic Framework

Ionic Framework Logo
Ionic é uma plataforma que permite a criação de plataformas de aplicativos móveis usando tecnologias web como HTML5 e JavaScript. Embora Ionic ainda está em beta, os desenvolvedores têm utilizado para construir aplicativos móveis. É uma das ferramentas que mudaram drasticamente a maneira como construímos aplicativos móveis. Com Ionic, qualquer pessoa com conhecimentos de desenvolvimento front-end pode começar a criar aplicativos de smartphones. Eu acho que isso é muito grande e Ionic vai ver a grande demanda em 2015.

Dart & AngularDart

Dart
Dart é um projeto open source do Google, que visa simplificar o desenvolvimento web. Ele pode ser executado na web e servidor. Ultimamente Dart vem recebendo a atenção dos desenvolvedores e ele foi portado para AngularJS também.

Firebase

Logo Firebase
Firebase permite sincronizar e armazenar dados em tempo real. Tem obrigatório para todas as linguagens de programação populares e do lado do cliente MV * frameworks. Como estamos vendo mais e mais aplicativos baseada em JavaScript, Firebase , certamente, vai ser uma solução popular para realtime backend.

Parse

Logo Parse
Parse é um backend completo para aplicativos móveis. Ele tem tudo que você precisa no backend para o seu próximo aplicativo móvel. Você pode armazenar arquivos e dados em Parse e também enviar Push Notifications usando Parse Push. Como o número de aplicativos móveis está a aumentar exponencialmente você não pode ignorar Parse no ano que vem.

Socket.io

Logo SocketIO
Socket.io é um módulo que permite a criação de aplicativos em tempo real com facilidade. Segundo o site Socket.io ele está sendo usado por produtos como o Microsoft Office, Yammer, Zendesk, Trello etc, aplicativos em tempo real são definitivamente legais e estes tipos de aplicativos estão ganhando atenção ultimamente.Socket.io faz criar tais aplicativos fácil e agradável. Acho que vamos ver mais uso de Socket.io no ano seguinte.

Polymer

Polymer
Polymer usa WebComponents redefinir desenvolvimento web. Ele permite que você construa componentes personalizados bem encapsulados e reutilizáveis ​​que se estendem HTML. Desenvolvimento baseado em componentes é definitivamente grande e Polymer faz isso direito. Então, podemos esperar Polymer para crescer e se tornar favorito dos desenvolvedores no futuro próximo.



Gulp

Logo GulpJSGulp é uma ferramenta de construção que se baseia em code-over-configuration para manter processo de construção simples. Ele se baseia fortemente em funcionamento em código assíncrono. Então, se você estiver familiarizado com Node.js você vai adorar Gulp. Gulp é relativamente nova pode ser visto como um rival para Grunt. Mas a sua natureza orientada código único. À medida que mais e mais projetos estão adotando Gulp, este vai ser o movimento para construir o sistema no futuro próximo, IMHO.


Fonte: http://planningit.wordpress.com/2014/09/30/tecnologias-web-e-ferramentas-para-2015/

sexta-feira, 3 de outubro de 2014

Concursos Previstos: IBGE e Câmara dos Deputados

Aos concurseiros de plantão, alguns concursos previstos: IBGE e da Câmara dos Deputados.
Do IBGE prevê a contratação de diversos cargos, inclusive o de Analista de TI. Acesse aqui o link com a notícia. Já o da Câmara, tem como atrativo o salário para cargo de Assistente Administrativo (nível médio): R$ 12.000,00. Clique aqui para acessar a notícia. Bem, é isso!

Exemplos de ToDoList em Javascript.

Apenas compartilhando conhecimento, acabei descobrindo o site http://todomvc.com/, que possui um exemplo de TodoList para download. Nada de especial, se esse exemplo não fosse criado usando os mais legais libs javascript: JQuery(claro), BackboneJS, AngularJS, Ember.js, KnockoutJS, YUI, e outros. Espero que gostem, porque eu achei muito legal.  Bem, é isso!

quarta-feira, 1 de outubro de 2014

Materiais de Apoio a Programação - PHP e Python

Hoje a postagem é curta, mais um link com diversas opções de apoio ao desenvolvimento...

Temos no site http://phpqatools.org/ uma série de ferramentas de apoio a desenvolvimento PHP.

Outro link legal é desse canal no Youtube que contém um curso de desenvolvimento PHP.

E aqui, aproveitando o site do colega Erick Hideki sobre Python, que apresenta uma série de aplicações feitas em Python com as mais diversas finalidades (reconhecimento facial, análise digital de sinais, tipografia, gerenciamento de estoques, mineração de dados, animações, desenvolvimento mobile, entre outros).

quinta-feira, 25 de setembro de 2014

StormUDF - UDF para Tratamento de Acentos no Firebird

Lendo hoje meus emails recebi uma mensagem de um rapaz que me questionou sobre o funcionamento de uma UDF chamada StormUDF que criei ha algum tempo. Para quem não sabe, uma UDF (User Defined Function, Função Definida pelo Usuário) é uma função, criada em uma linguagem qualquer (C/C++, Pascal, etc) para auxiliar na realização de algumas rotinas do banco de dados. Ao trabalhar com Firebird em suas primeiras versões (1.5 e anteriores), sentia a necessidade de uma busca mais abrangente, que não levasse e consideração os acentos, nem se a palavra estava escrita em maiúsculas ou minúsculas. Criar uma Stored Procedure seria uma opção, porém, fiquei preocupado com o desempenho e, aproveitando de outras situações, resolvi criar uma UDF que me auxiliaria nessa situação, nascendo assim a StormUDF. Um arquivo de UDF's pode conter várias funções, mas nesse caso específico, deixei apenas uma função, chamada TrataAcentos. O funcionamento dela é simples: joga todos os caracteres para maiúsculos, e remove os acentos dos mesmos (Ã vira A, É vira E, e assim por diante). E a vantagem, poderia ser usado seu valor para a  criação de índices, agilizando as buscas. Para fazer o download da UDF basta acessar o site do Firebase. Após realizar o download, copie a DLL para a pasta UDF na instalação do Firebird (por exemplo C:\Program Files\Firebird\Firebird_2_0\UDF). Logo depois, registre a UDF em seu banco de dados:

DECLARE EXTERNAL FUNCTION TRATAACENTOS 
CSTRING(254) CHARACTER SET NONE 
RETURNS CSTRING(254) 
ENTRY_POINT 'TrataAcentos' MODULE_NAME 'StormUDF' 

Logo após ter registrado a UDF, já é possível utilizá-la:

SELECT * FROM tabela WHERE TrataAcentos(NOME) = 'JOSE'; --Acha José, jose, JÓSE, etc 
SELECT * FROM tabela WHERE TrataAcentos(NOME) like 'MACA%'; --Acha Maçã, MACA, macarrão, etc

Claro que hoje no Firebird temos algumas formas de realizar essa busca utilizando-se de recursos nativos, mas de qualquer forma, talvez possa ajudar alguém, e como dizem, "Recordar é Viver".
Bem, é isso!

sábado, 20 de setembro de 2014

Limitando os registros a serem exibidos - Firebird, MySQL, PostgreSQL e IBM DB2

Bem, uma dica bem rápida, sobre como limitar as linhas resultantes em um select dentro de um banco de dados IBM DB2. Normalmente, isso é uma tarefa simples de se fazer. Por exemplo, como faríamos para listar apenas os 100 primeiros registros da tabela CLIENTES ??
Vamos ver alguns exemplos...

domingo, 14 de setembro de 2014

O que é Loop?

Um amigo mandou essa definição no Facebook. Muito legal!

O QUE É UM LOOP?
Para quem não conhece o conceito de LOOP, trata-se de uma terminologia assim nomeada por estudiosos de informática para definir uma confusão criada e que não possui uma explicação concreta para a solução do problema.
Bem, vou tentar explicar em poucas palavras esta famosa terminologia:
Diz-se que um programa de computação "entrou em loop" quando acontece a seguinte situação:
O diretor chama sua secretária e diz:

terça-feira, 9 de setembro de 2014

Ferramentas de Automação de Rotinas

Lendo diversos artigos sobre Integração Contínua, replicação de ambientes e afins, achei esse link que achei muito interessante... Como Ganhar Mais Horas de Seu Dia. Apresenta uma ferramenta muito interessante. E no mesmo site, encontrei também um material um pouco mais específico... Como automatizar sua Infraestrutura - OpsCode Chef. Acho que vale a pena dar uma olhada da aplicação.

Produtividade, Infra e Estrutura de TI

Estou compartilhando um artigo que li e achei interessante e que trata da estrutura de TI. Ele cita alguns tópicos bem legais. Serve como um bom "balizador" para se escolher novas tecnologias a se estudar.
http://checchia.net/2014/09/1-infra-x-6-dev-x-100-servidores-pode-isto-arnaldo/

Cursos Online Gratuitos para Empreendedores

Vi uma postagem no site da Uol sobre cursos gratuitos, online, voltados para empreendedores. Muito legal a lista de cursos:

Aprender a Empreender – Sebrae
Voltado para aqueles que pensam em criar um negócio ou até mesmo para os empreendedores em “começo de carreira”, o curso é divido em três módulos. A duração total é de 30 dias e as aulas têm carga horária de 16 horas.
O programa abrange estudo de mercado, marketing, finanças e empreendedorismo. Mais informações no site de Ensino a Distância do Sebrae.

Como Vender Mais e Melhor – Sebrae
Durante 30 dias, você vai aprender como traçar e alcançar metas, fidelizar clientes, fortalecer o posicionamento da marca no mercado e compreender o perfil de seus clientes.
Para acompanhar as aulas, o Sebrae disponibiliza material de apoio para download. Interessados devem se cadastrar no site de Ensino a Distância do Sebrae.

Curso Superior de Tecnologia em Jogos Digitais

Achei muito interessante quando soube dessa iniciativa, de oferecimento de um curso superior em Jogos Digitais. Interessante não só por envolver uma área cativante da TI, como também por se tratar de uma área em plena expansão, e com um mercado muito interessante a ser explorado. 
Para maiores informações, clique aqui

quarta-feira, 3 de setembro de 2014

Curso/Treinamento Gratuito JQuery

Compartilhando com vocês o excelente curso, gratuito (melhor ainda) sobre a biblioteca JQuery disponibilizado pelo pessoal da CodeSchool. Para quem ainda não conhece, JQuery é uma biblioteca JavaScript, cross-browser desenvolvida para simplificar os scripts client side que interagem com o HTML. JQuery é muito poderosa e simplifica consideravelmente algumas tarefas, principalmente aquelas que envolvem busca e manipulação do DOM. O curso é em inglês, porém por se tratar de algo técnico, é muito tranquilo para acompanhar. O material é de alto nível e bem didático. Decididamente vale a pena dar uma olhada.

A Importância do Churn Negativo

Material interessante disponibilizado pelo portal Startupi. Ele comenta sobre churn (Taxa de Cancelamento de um Negócio). Confesso não ser muito minha praia, mas o material é bom, muito didático e pode auxiliar aquele que (como eu) não conheciam esse termo....

Indicação de Post: Mapeamento de Infraestrutura de TI -

Uma indicação de material sobre o Mapeamento de Infraestrutura de TI disponibilizado pelo pessoal do site profissionaisti. Um bom tutorial sobre o assunto.

Apostilas sobre Desenvolvimento Ágil - Portal GSTI

Pessoal, uma indicação de apostilas que tratam sobre Desenvolvimento Ágil, organizadas pela equipe do Portal GSTI. Com certeza vale a pena dar uma olhada.