<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.
Conceito TI
Um olhar diferente sobre Tecnologia da Informação
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.
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
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
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/
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...
Gulp é 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.
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

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

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

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

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 é 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 é 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
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

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

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 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
Gulp é 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!
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).
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:
Logo após ter registrado a UDF, já é possível utilizá-la:
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!
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:
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/
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.
Assinar:
Comentários (Atom)
