22 de abr. de 2015

Saída da Adobe FormCentral dá liderança à JotForm

Com o anúncio da desativação dos serviços Adobe FormCentral, a JotForm é a melhor escolha para migrar seus formulários online.
Com recursos dinâmicos e integrações com PayPal e Dropbox, a JotForm é hoje sem dúvida alguma a melhor opção, com excelente relação custo/benefício.
Eu mesmo utilizo essa solução há anos e só vejo vantagens.
Todos os formulários são customizáveis desde a versão gratuita, o que te dá a liberdade de testar e conhecer os serviços, sem desembolsar sua grana.
Faça o teste e deixe seu comentário aqui.
Para conhecer mais visite www.jotform.com ou acesse a matéria publicada em: http://www.digitaljournal.com

Voltando pra casa....

Galera, depois de algum tempinho distante do blog, estou voltando pra casa.
A partir de agora estaremos muito mais próximos e com novidades.
Vejam as novas postagens, comentem e se possível compartilhem.
Grande abraço!!!!

1 de set. de 2011

Tutorial Flexigrid

Lista quase completa de todos os parâmetros disponíveis no Flexigrid.

Propriedades e Documentação

Como você pode ver o componente é muito intuitivo e inclui recursos para:
  • Busca de registros que satisfazem os seus critérios fornecidos (clicando primeiro no ícone de pesquisa).
  • Classificar em ordem ascendente ou descendente por uma coluna selecionada.
  • Ocultar e mostrar colunas para fazer o melhor uso do espaço disponível.
  • Navegar entre páginas usando os ícones de navegação ou pular direto para uma página particular.
Como usar

Adicionando o Flexigrid a sua página não poderia ser mais fácil. Basta baixar o código de http://www.flexigrid.info e copiar os arquivos necessários em diretórios do seu site. Você também deve ter uma versão do jQuery em execução no seu site para este trabalho, que pode ser encontrada em jquery.com.

Você vai encontrar um arquivo flexigrid.js no arquivo baixado. Incluir este arquivo na seção head do seu site como você faria normalmente, junto com o arquivo CSS (você precisará copiar todo o conteúdo inteiro do 'css' diretório incluindo as imagens).

Depois de criar um elemento de tabela em sua página com um id 'flex1' para este exemplo, você pode criar e incluir um arquivo javascript que consiste no seguinte código. A Flexigrid será então criada no carregamento da página.

$(function() {
        $("#flex1").flexigrid({
                url: 'staff.php',
                dataType: 'json',
                colModel : [
                        {display: 'ID', name : 'id', width : 40, sortable : true, align: 'left'},
                        {display: 'First Name', name : 'first_name', width : 150, sortable : true, align: 'left'},
                        {display: 'Surname', name : 'surname', width : 150, sortable : true, align: 'left'},
                        {display: 'Position', name : 'email', width : 250, sortable : true, align: 'left'}
                ],
                buttons : [
                        {name: 'Edit', bclass: 'edit', onpress : doCommand},
                        {name: 'Delete', bclass: 'delete', onpress : doCommand},
                        {separator: true}
                ],
                searchitems : [
                        {display: 'First Name', name : 'first_name'},
                        {display: 'Surname', name : 'surname', isdefault: true},
                        {display: 'Position', name : 'position'}
                ],
                sortname: "id",
                sortorder: "asc",
                usepager: true,
                title: "Staff",
                useRp: true,
                rp: 10,
                showTableToggleBtn: false,
                resizable: false,
                width: 700,
                height: 370,
                singleSelect: true
        });
});
Propriedades
Usando o script acima como base para a sua rede, você pode personalizá-lo para atender às suas necessidades usando as propriedades javascript diversas. Por exemplo, você pode especificar em qual coluna os resultados devem ser classificados inicialmente e se classificar em ordem crescente ou decrescente. As propriedades mais comuns são mostrados abaixo. 

PropriedadeDescrição
url
Esta é uma URL do script do lado do servidor que fornece uma representação JSON ou XML dos resultados a serem exibidos na grade usando AJAX.
dataType
Você pode optar por ter o seu retorno do script de servidor ou de dados JSON ou XML.
colModel
Este é um array contendo uma lista de colunas a utilizar. Você pode definir o nome de exibição, a largura, se a coluna pode ser ordenada e alinhamento do texto.
buttons
É possível utilizar essa matriz para adicionar botões na parte superior do Flexigrid especificando uma função de callback, por exemplo, você pode querer criar botões para adicionar, editar e excluir registros. A propriedade bClass é a classe CSS usada para definir a imagem de fundo para o botão, etc
searchItems
Usando isso, você pode especificar quais colunas a serem usadas para procurar os resultados usando a área de "pesquisa rápida". Você simplesmente especifica um nome de exibição para a opção de pesquisa, o nome da coluna, e se a coluna é a opção padrão de busca.
sortname Esta propriedade é usada para especificar a coluna inicial para classificar.
sortorder
Especificando o 'asc' ou 'desc' para esta propriedade irá definir a ordem de classificação inicial.
usepager
Os botões de navegação da página pode ser ligado ou desligado usando essa propriedade.
title Este é o título que aparecerá no topo da Flexigrid.
useRp Se permite ao usuário especificar o número de resultados por página.
rp O número inicial de resultados por página.
showTableToggleBtn Isso irá ativar / desativar a minimização dos Flexigrid com um ícone no canto superior direito.
width A largura da Flexigrid.
height A altura da Flexigrid.
singleSelect
Esta propriedade não documentada é usado para indicar que apenas uma linha pode ser selecionada por vez. Isto é útil se você quiser criar botões, como editar ou apagar o que só se aplicam a uma única linha.
O script de servidor
Para este exemplo vou usar um script PHP para retornar os resultados JSON filtrados pelos critérios especificados no Flexigrid.

Os seguintes dados são enviados para o nosso script usando AJAX e pode ser encontrado no array do PHP $_POST: 

ParâmetrosDescrição
page Número da página atual.
sortname O nome da coluna para classificar.
sortorder A ordem de classificar por: 'asc' ou 'desc'.
qtype A coluna selecionada durante "busca rápida".
query O texto usado dentro de uma pesquisa.
rp O número de registros a serem retornados.
Agora que temos esta informação podemos ir em frente e criar o script:
php// Connect to MySQL database
mysql_connect('server', 'username', 'password');
mysql_select_db('dbname');
$page = 1; // The current page
$sortname = 'id'; // Sort column
$sortorder = 'asc'; // Sort order
$qtype = ''; // Search column
$query = ''; // Search string
// Get posted data
if (isset($_POST['page'])) {
        $page = mysql_real_escape_string($_POST['page']);
}
if (isset($_POST['sortname'])) {
        $sortname = mysql_real_escape_string($_POST['sortname']);
}
if (isset($_POST['sortorder'])) {
        $sortorder = mysql_real_escape_string($_POST['sortorder']);
}
if (isset($_POST['qtype'])) {
        $qtype = mysql_real_escape_string($_POST['qtype']);
}
if (isset($_POST['query'])) {
        $query = mysql_real_escape_string($_POST['query']);
}
if (isset($_POST['rp'])) {
        $rp = mysql_real_escape_string($_POST['rp']);
}
// Setup sort and search SQL using posted data
$sortSql = "order by $sortname $sortorder";
$searchSql = ($qtype != '' && $query != '') ? "where $qtype = '$query'" : '';
// Get total count of records
$sql = "select count(*)
from staff
$searchSql";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$total = $row[0];
// Setup paging SQL
$pageStart = ($page-1)*$rp;
$limitSql = "limit $pageStart, $rp";
// Return JSON data
$data = array();
$data['page'] = $page;
$data['total'] = $total;
$data['rows'] = array();
$sql = "select id, first_name, surname, position
from staff
$searchSql
$sortSql
$limitSql";
$results = mysql_query($sql);
while ($row = mysql_fetch_assoc($results)) {
$data['rows'][] = array(
'id' => $row['id'],
'cell' => array($row['id'], $row['first_name'], $row['surname'], $row['position'])
);
}
echo json_encode($data);
?>



Não há nada muito complicado aqui. Nós simplesmente conectamos a um banco de dados MySQL (substitua as variáveis de conexão para os valores correspondentes ao seu próprio banco de dados), criamos o SQL a partir dos dados fornecidos pela Flexigrid, obtemos o número de registros em todo o resultado e retornamos os resultados em formato JSON usando a função json_encode que está disponível para versões do PHP 5.2.0 e posterior.


Flexigrid requer alguns parâmetros a serem passados de volta na matriz JSON. Estes são: 


ParâmetrosDescrição
page O número da página atual.
total
O número total de registros no conjunto de resultados. Usado por Flexigrid para calcular o número de páginas.
rows Este é um array contendo os dados para as linhas. Cada linha precisa de um ID único (usado dentro do id para o elemento 'tr' o HTML) e uma série de dados da coluna.


Botões

Na listagem acima, javascript especifica que a função DoCommand deve ser chamado quando um botão "editar" ou 'delete' é clicado. Como é que Flexigrid sabe qual botão foi clicado? Dois parâmetros são passados para a função. Estes são o nome do comando que neste caso pode ser tanto "Editar" ou "Delete", e o objeto grid.

Todos estamos preocupados neste tutorial é em encontrar um id para a linha selecionada. Quando tivermos isso, podemos facilmente executar qualquer operação que desejamos nos dados para o registro selecionado usando técnicas AJAX por exemplo, que estão além do escopo deste tutorial.

function doCommand(com, grid) {
if (com == 'Edit') {
$('.trSelected', grid).each(function() {
var id = $(this).attr('id');
id = id.substring(id.lastIndexOf('row')+3);
alert("Edit row " + id);
});
} else if (com == 'Delete') {
$('.trSelected', grid).each(function() {
var id = $(this).attr('id');
id = id.substring(id.lastIndexOf('row')+3);
alert("Delete row " + id);
});
}
}


Como você pode ver é apenas um caso de encontrar a linha selecionada usando jQuery. Em seguida, extrair o ID numérico do registro do elemento 'tr' do HTML. Você é livre a partir deste ponto para implementar as funções de edição e exclusão. Você pode pesquisar exemplos usando caixas de diálogo jQuery UI.


Este tutorial é uma tradução livre baseada no tutorial de Eric Caron encontrado aqui

11 de ago. de 2011

Nokia X1 decepciona consumidores!

Havia muito tempo que precisava de um celular com a função Dual SIM (dois "chips" em um mesmo aparelho), mas como as grandes do setor e principalmente a Nokia não comercializavam, eu continuava carregando meus três aparelhos aguardando esse lançamento.
Posso me considerar consumidor da marca Nokia, pois somando todos os modelos já estou no sétimo aparelho.  E uma das coisas que mais gostava e divulgava para meus amigos, quando eles falavam de outras marcas, era sempre que a Nokia deixava seus menus de maneira padrão em todos os aparelhos e a possibilidade de fazer backups de seus contatos e passar para o novo aparelho era sempre uma facilidade.
Pois bem, chegou o dia de comprar um "2Chips" da Nokia, o Nokia X1-01...


Ainda convenci uma amiga a comprá-lo, acreditando no histórico da Nokia.
Não demorou muito para que eu percebesse que cai no conto da "zona de conforto", isso mesmo!!! O fabricante entra na tal "zona de conforto" e não mais se preocupa com o mínimo a oferecer aos seus consumidores em seus novos lançamentos de produtos.
Para que você, meu nobre leitor, possa ter uma ideia dos absurdos desse aparelho, listo abaixo todos eles:
  1. Você não consegue passar a agenda de outro telefone, mesmo que seja Nokia, para ele, nem mesmo por Bluetooth, pois ele não tem tal tecnologia.  Somente nos restando copiar seus contatos para o SIMCARD, que traz somente um único telefone de cada contato;
  2. Ao escolher um contato para ligar, o aparelho não te permite colocar o código da operadora no momento da ligação, ou seja editar o número a ser chamado.  Restando-nos armazenar o número com o código da operadora, porém se este contato que está na agenda ligar para você, adivinha.... Ele não identifica por causa do código da operadora.  Coisa que descobri após alguns testes com e sem número da operadora no contato.
  3. A perda de sinal é constante com esse aparelho, inclusive a "perda" do SIMCARD, tendo que fazer a retirada e colocação do "chip" para que o mesmo "pegue no tranco".
  4. O cartão te memória que em outros aparelhos serve para salvar contatos e mensagens, entre outras coisas, neste serve apenas para guardar música;
  5. Outro item a reclamar é o audio, que fora do fone de ouvido, não chega a encantar ninguém.
Bem, depois de analisar o aparelho, friamente, encontrei algo que cumpre o que foi anunciado, a bateria.  Mas me considero arrependido da compra e candidato a experimentar outras marcas.
Concluindo, aconselho que não compre o NOKIA X1-01 sob pena de passar por muitas decepções, como foi meu caso.  E caso já tenha feito essa besteira, poste aqui o seu comentário.

13 de fev. de 2011

Os Segredos da Tecnologia Móvel

Ano passado fiz uma postagem onde citada o Samsung GT-I6220, porém hoje vou contar algumas coisinhas interessantes sobre nossos celulares.
Você sabia que cada modelo pode conter recursos, que para nós talvez seja como "Kinder Ovos" ?  É isso mesmo!!
Durante anos fui seguidor Nokia de carteirinha, quando trocava de aparelho, podia escolher qualquer um desde que continuasse a ser Nokia.  E isso foi principalmente porque tinha a necessidade de ter a agenda (contatos) transferida por completo e o Nokia PC Suite faz isso com total maestria, ainda hoje.
Mas devido a uma promoção da operadora acabei recebendo o Samsung GT-I6220 e importei os contatos via BlueTooth, foi genial.

Mas o que quero mostrar a vocês são alguns recursos interessantes, vejam:

  1. No "Ching Ling" 2 Chips que está sendo vendido na passarela do Iguatemi e demais regiões de comércio popular, por apenas R$ 80,00 (+/-) tem uns recursos interessantes:
    1. "Ruídos conhecidos" - Você diz que está em uma restaurante ou uma festa e pode simular o som de fundo, enquanto faz uma ligação, para dar credibilidade a sua "estória";
    2. Modificador de voz - Você pode falar com voz de criança ou inverter o sexo, aplicando pegadinhas a seus amigos;
  2. Já no citado modelo da Samsung vejam as vantagens de recursos, realmente uteis:
    1. "Lista de Rejeitados" - Sabe aquele telemarketing que vive te ligando ? Pois é, põe ele na lista e o telefone ao identificar o número nem toca.  E serve também para números não identificados ( eu particularmente uso isso, pois se quem liga tem o direito de não se identificar, eu também me dou o direito de não atender!);
    2. "Torpedo SOS" - Esse é fantástico ! Primeiro você cadastra alguns telefones, previamente, e também uma mensagem, quando ocorrer uma emergência, mesmo com o teclado, neste caso o TouchScreen, bloqueado você aperta 4 vezes os botões de volume, e isso pode ser até mesmo discretamente dentro do bolso ou da bolsa, e ele automaticamente envia o(s) torpedo(s) para o(s) destinatário(s) previamente cadastrado(s) e aguarda que alguém ligue de volta.  Então ele não toca e atende automaticamente passando a transmitir o som ambiente, sendo assim a pessoa passa a saber o que está acontecendo e pode pedir ou dar socorro.
São recursos assim que fazem a tecnologia salvar a vida de muita gente.

Grande abraço e continuarei tentando descobrir utilizações uteis de equipamentos do nosso dia-a-dia!

7 de fev. de 2011

Dia Mundial da Internet Segura


O que você faz para manter a internet um lugar seguro para todos ?  Tudo bem, vamos mudar a pergunta: qual dessas ações você efetivamente faz, no seu dia-a-dia na net:
  • Não encaminha mensagens para todos os seus amigos, sem que as mesmas possam lhes ser uteis;
  • Mantém antivírus, licenciado, atualizado em seus computadores;
  • Verifica com o antivírus sempre suas mídias móveis regraváveis quando faz uso em locais de segurança "duvidosa";
  • Visita páginas ou recebe notícias do fabricante do seu antivírus;
  • Não adiciona "qualquer pessoa" as suas redes sociais;
  • Troca suas senhas usadas na rede constantemente e utiliza senhas fortes (letras , números e símbolos);
Se você respondeu "não" a pelo menos um item, você já faz acesso inseguro na net.
Aproveite este dia para aprender mais sobre segurança na grande rede, vejam os links que podem te ajudar, logo abaixo.

Visite:

Gostou ?