‘Internet’

5 formas de receber o pagamento do cliente com rapidez e segurança

March 13th, 2010

Hoje recebi um email de um caro leitor perguntando como fazer para receber do cliente o pagamento prometido. Então resolvi trazer a resposta para o nosso blog. Afinal, como faço para receber o pagamento do cliente? Faço em 3x na lábia? Confio no cliente em me pagar em dia? Afinal, o que devo fazer?

Convenhamos, se até nós que somos pessoas de bom coração, atrasamos uma continha ali ou aculá mesmo tendo a grana para pagar mas não pagamos por puro esquecimento, o mesmo pode ocorrer entre você e seu cliente, concorda? Então a primeira coisa que você deve colocar na cabeça é que há grande probabilidade do cliente atrasar o pagamento. Com isso em sua cabeça você não ficará explodindo de raiva por aquele dinheirinho não cair na conta na data prometida.

Anos atrás tinhamos poucas formas de receber do cliente a não ser por depósito bancário, cheque ou dinheiro à vista, em mãos. Com o progresso da internet abriu-se novas possibilidades de recebimento. Aqui listo 5 delas que poderão ajudar você, veja:

1. 50% na entrada, 50% na entrega. Dessa forma você já garante um inicial, confirmando o comprometimento do cliente em realizar aquele serviço com você até o final. Para garantir os 50% finais, só entregue os arquivos-fonte com o restante do pagamento.

2. Desconto à vista. O que você puder fazer para garantir o valor total antes de iniciar o trabalho, melhor. Mesmo que para isso você precise dar um bom desconto. Assim você poderá trabalhar tranquilo, sem medo de que será “enrolado” no final e para o seu cliente sempre haverá a vantagem do desconto.

3. Contrato. Em qualquer forma de pagamento escolhida, procure fazer um contrato. Esse contrato pode ser entre pessoas físicas ou jurídicas. E não se preocupe com registro, cartório, nada disso. Contrato basta um papel com direitos e deveres finalizando com uma assinatura de ambas as partes. Sendo assim pode ser num papel ofício, guardanapo, papel higiênico, o que for, pois estando escrito e assinado embaixo, basta isso para torná-lo um documento de valor legal.

4. Boleto. Se você tiver um sistema de criação de boletos poderá cobrar o cliente através deles. Você poderá cobrar multa e juros, fazendo com que o cliente se sinta “motivado” a pagar no vencimento. Além disso será mais fácil protestá-lo em caso de falta de pagamento.

5. Cartão de Crédito. Sem dúvida a melhor forma de recebimento tanto para você como para o cliente. O cliente poderá parcelar o valor em quantas vezes ele quiser e você receberá o valor integral, como se fosse à vista. Tudo bem, tem o valor das taxas do cartão mas aqueles 6% que o cartão leva embora compensa os outros 94% do valor que irão para sua conta. É a certeza do pagamento integral. Antigamente era difícil se associar as operadoras de cartão mas hoje com o advento do PagSeguro, Pagamento Digital e outros, a coisa ficou muito mais fácil.Não existem mais motivos para não aceitar cartão. É uma maravilha, dessa forma você nunca mais vai reclamar que o cliente não lhe pagou.

Quer utilizar o Pagseguro. Se registre, é grátis clicando aqui.

Já se você optar pelo Pagamento Digital, também é grátis clicando aqui.

No caso de falta de pagamento e se você notar má-indole do seu cliente, se dirija a um juizado especial que trate de pequenas causas. Você não precisará de advogado, basta ir até o juizado com os emails, contrato ou outras provas do serviço realizado, o que foi combinado com o cliente e o demonstrativo da falta de pagamento. Será aberto um processo, primeiro uma tentativa de conciliação e depois audiência. Normalmente na conciliação o cliente se prontifica a fazer um acordo pois ele pensará nos custos de advogado que deverá dispensar caso o processo se prolongue. E o melhor de tudo é que a justiça nesses casos é rápida, não demora mais que 6 meses.

A justiça funciona, o problema é que o brasileiro não costuma procurar a justiça por achar que ela não funciona. Para esses casos digo com conhecimento de causa que funciona muito bem. Portanto jamais combine nada com seu cliente por telefone ou ao vivo sem registrá-lo. Tudo que for combinado, registre em email e envie para o cliente. Isso poderá ser útil nesses casos.

Pronto! Agora pode trabalhar tranquilo.

Para o alto e Avante!

“O código que escrevemos tem muito pouco impacto sobre as pessoas”

March 13th, 2010

As palavras que vemos no título desse post são do mestre Carlos Brando, especialista em Ruby on Rails. Carlos publicou em seu blog um post polêmico, lançando a seguinte pergunta no início de seu texto “Quer se tornar um programador de sucesso? Pare de escrever código”.

Brando contesta alguns programadores que focam demais no código e esquecem o usuário. “O problema é que a maior parte dos programadores se preocupam demais com o código. Passam horas e mais horas tentando criar o algoritmo perfeito. Porém se esquecem que o melhor código do mundo é inútil se ninguém utilizar o software que o contém.”

No final, sugere que o programador deixe de focar apenas no código, participando mais ativamente de comunidades, realizando palestras e melhorando suas habilidades sociais. Sobre isso Brando diz “Não escreva apenas código. Estude, escreva e fale mais sobre código”

O que Brando diz é bastante pertinente. E podemos trazer isso para o campo do Web Design. A questão é: afinal, trabalhamos com quem? Apenas com máquinas? Não, a finalidade do nosso trabalho serão sempre as pessoas. Não são máquinas, mas seres humanos.

O sucesso de sites e softwares mora justamente na interação com as pessoas. Basta observar os sites, aplicativos e serviços que são sucesso no mundo. O orkut surgiu como uma grande novidade. Porém toda aquela tecnologia já existia, principalmente as comunidades, que nada mais são que fóruns com pouquíssimos recursos se comparados com outros fóruns que temos por aí. Mas se tornou sucesso, graças a forma que o site “conversa” com o usuário, uma aliança de design, tecnologia e comunicação.

E o twitter? Existe alguma tecnologia nova e tão especial rodando nele? Nada mais que uma página com textinhos de poucos caracteres, que mais parece um mural de recados, os comentários de um blog, um RSS ou um chat altamente simples. Não há nada de novo em sua tecnologia mas há sim na sua comunicação com o usuário. O formato escolhido, o processo de postagem e interação dos usuários, sua forma simples de operar, tudo isso fez dele um sucesso.

O MSN Messenger, agora Windows Live Messenger, é um caso clássico de sucesso de comunicação com o usuário. Desbancou o reinado do ICQ graças a uma foto e um enter. Antigamente não era possível colocar uma fotinha junto ao nosso contato de ICQ. Além disso para enviar uma mensagem era necessário clicar com o ponteiro do mouse no botão “enviar”. Bastou a Microsoft incluir a possibilidade de colocar uma foto do usuário e apenas teclar “enter” para enviar a mensagem que a migração do ICQ para o MSN ocorreu em massa. Um caso clássico do formato de comunicação exercendo papel fundamental no sucesso de um software. Acredito que foi iso que Carlos Brando quis dizer, pouco interessa se o código do ICQ era melhor construído que o do MSN, o que importa é que o MSN se comunicou melhor com o usuário do que o ICQ.

Para mim programador ou web designer de sucesso é aquele que se comunica melhor com o seu cliente, com o cliente dos seus clientes e com seus colegas de trabalho, focando seu trabalho nas pessoas. Criar um bom código é fundamental para um programador ser chamado de programador assim como criar um bom design é requisito básico para um web designer ser chamado de web designer. O que irá diferenciar esses profissionais dos demais sempre será no formato de comunicação que escolherem na criação de seus trabalhos.

O foco é: gente. Gente de verdade.

Para o alto e Avante!

FONTE: http://www.brunoavila.com.br/avante/mercado/o-codigo-que-escrevemos-tem-muito-pouco-impacto-sobre-as-pessoas.html

Funções para tratamento de Arrays

October 11th, 2009

Funções Genéricas

Array

array array(…);

É a função que cria um array a partir dos parâmetros forncidos. É possível fornecer o índice de cada elemento. Esse índice pode ser um valor de qualquer tipo, e não apenas de inteiro. Se o índice não for fornecido o PHP atribui um valor inteiro sequencial, a partir do 0 ou do último índice inteiro explicitado. Vejamos alguns exemplos:

Exemplo 1
$teste = array(”um”, “dois”,”tr”=>”tres”,5=>”quatro”,”cinco”);

Temos o seguinte mapeamento:
0 => “um” (0 é o primeiro índice, se não houver um explicito)
1 => “dois” (o inteiro seguinte)
“tr” => “tres”
5 => “quatro” (valor explicitado)
6 => “cinco” (o inteiro seguinte ao último atribuído, e não o próximo valor, que seria 2)

Exemplo 2
$teste = array(”um”, 6=>”dois”,”tr”=>”tres”,5=>”quatro”,”cinco”);

Temos o seguinte mapeamento:
0 => “um”
6 => “dois”
“tr” => tres
5 => “quatro” (seria 7, se não fosse explicitado)
7 => “cinco” (seria 6, se não estivesse ocupado)

Em geral, não é recomendável utilizar arrays com vários tipos de índices, já que isso pode confundir o programador. No caso de realmente haver a necessidade de utilizar esse recurso, deve-se ter bastante atenção ao manipular os índices do array.

range

array range(int minimo, int maximo);

A função range cria um array cujos elementos são os inteiros pertencentes ao intervalo fornecido, inclusive. Se o valor do primeiro parâmetro for maior do que o do segundo, a função Devolve false (valor vazio).

shuffle

void shuffle(array &arr);

Esta função “embaralha” o array, ou seja, troca as posições dos elementos aleatoriamente e não Devolve valor algum.

sizeof

int sizeof(array arr);

Devolve um valor inteiro contendo o número de elementos de um array. Se for utilizada com uma variável cujo valor não é do tipo array, Devolve 1. Se a variável não estiver setada ou for um array vazio, Devolve 0.

Funções de “navegação”

Toda variável do tipo array possui um ponteiro interno indicando o próximo elemento a ser acedido no caso de não ser especificado um índice. As funções seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array para verificar seu conteúdo (chaves e elementos).

reset

mixed reset(array arr);

O ponteiro interno aponta para o primeiro elemento do array, e devolve o conteúdo desse elemento.

end

mixed end(array arr);

O ponteiro interno aponta para o último elemento do array, e devolve o conteúdo desse elemento.

next

mixed next(array arr);

O ponteiro interno aponta para o próximo elemento do array, e devolve o conteúdo desse elemento.

Obs.: esta não é uma boa função para determinar se um elemento é o último do array, pois pode devolver false tanto no final do array como no caso de haver um elemento vazio.

prev

mixed prev(array arr);

O ponteiro interno aponta para o elemento anterior do array, e devolve o conteúdo desse elemento. Funciona de maneira inversa a next.

pos

mixed pos(array arr);

Devolve o conteúdo do elemento actual do array, indicado pelo ponteiro interno.

key

mixed key(array arr);

Funciona de maneira bastante semelhante a pos, mas em vez de devolver o elemento actual indicado pelo ponteiro interno do array, devolve o seu índice.

each

array each(array arr);

Devolve um array contendo o índice e o elemento actual indicado pelo ponteiro interno do array. o valor da devolução é um array de quatro elementos, cujos índices são 0, 1, “key” e “value”. Os elementos de índices 0 e “key” armazenam o índice do valor atual, e os elementos de índices 1 e “value” contém o valor do elemento atual indicado pelo ponteiro.
Esta função pode ser utilizada para percorrer todos os elementos de um array e determinar se já foi encontrado o último elemento, pois no caso de haver um elemento vazio, a função não devolverá o valor false. A função each só devolve false depois q o último elemento do array foi encontrado.

Exemplo:

função que percorre todos os elementos de um array e imprime seus índices e valores

function imprime_array($arr) {
reset($arr);
while (list($chave,$valor) = each($arr))
echo “Chave: $chave. Valor: $valor”;
}

Funções de ordenação

São funções que servem para ordenar os elementos de um array de acordo com determinados critérios. Estes critérios são: manutenção ou não da associação entre índices e elementos; ordenação por elementos ou por índices; função de comparação entre dois elementos.

sort

void sort(array &arr);

A função mais simples de ordenação de arrays. Ordena os elementos de um array em ordem crescente, sem manter os relacionamentos com os índices.

rsort

void rsort(array &arr);

Funciona de maneira inversa à função sort. Ordena os elementos de um array em ordem decrescente, sem os manter os relacionamentos com os índices.

asort

void asort(array &arr);

Tem o funcionamento bastante semelhante à função sort. Ordena os elementos de um array em ordem crescente, porém mantém os relacionamentos com os índices.

arsort

void arsort(array &arr);

Funciona de maneira inversa à função asort. Ordena os elementos de um array em ordem decrescente e mantém os relacionamentos dos elementos com os índices.

ksort

void ksort(array &arr);

Função de ordenação baseada nos índices. Ordena os elementos de um array de acordo com seus índices, em ordem crescente, mantendo os relacionamentos.

usort

void usort(array &arr, function compara);

Esta é uma função que utiliza outra função como parâmetro. Ordena os elementos de um array sem manter os relacionamentos com os índices, e utiliza para efeito de comparação uma função definida pelo utilizador, que deve comparar dois elementos do array e devolver 0, 1 ou -1, de acordo com qualquer critério estabelecido pelo utilizador.

uasort

void uasort(array &arr, function compara);

Esta função também utiliza outra função como parâmetro. Ordena os elementos de um array e mantém os relacionamentos com os índices, utilizando para efeito de comparação uma função definida pelo utilizador, que deve comparar dois elementos do array e devolver 0, 1 ou -1, de acordo com qualquer critério estabelecido pelo utilizador.

uksort

void uksort(array &arr, function compara);

Esta função ordena o array através dos índices, mantendo os relacionamentos com os elementos., e utiliza para efeito de comparação uma função definida pelo utilizador, que deve comparar dois índices do array e devolver 0, 1 ou -1, de acordo com qualquer critério estabelecido pelo utilizador.

FONTE: http://www.truquesedicas.com/tutoriais/php/apendices/00002a.htm

Ano Estrelar 3259 – FEDERAÇÃO DOS CRIMES DE GUERRA – O PIOR ESTÁ POR VIR

October 9th, 2009

galactic_warsGalactic Wars é um jogo de estratégia em tempo real dividido em turnos de 1 hora.

O jogo se passa no nosso universo aproximadamente no ano 2560. A humanidade finalmente descobriu a existência de vida extra-terrestre inteligente e desenvolveu sistemas para viagens espaciais a todas as galáxias.

Cada jogador controla um planeta, divididos em galaxias e as galaxias são divididas em setores, existem 5 raças disponíveis, cada qual com seus atributos especiais. Você também pode escolher um dos 4 estilos de governo que irá utilizar no seu planeta.

Galactic Wars é gratuito, o jogo ainda permite que os usuarios tornen-se associados para liberar algumas funcionalidades extras.

COMECE A JOGAR AGORA MESMO!

Prezado Líder,

Após recebermos da nossa agência de inteligência um relatório com um estudo minucioso sobre o que vem acontecendo no universo concluímos que a realidade é bem mais complexa e ameaçadora do que os rumores anunciavam. Pudemos observar uma movimentação muito grande de naves viajando pelo universo em busca de planetas menos desenvolvidos e o posicionamento que temos de seus Comandantes é de que seria “manobra militar”. Aparentemente o discurso é o mesmo para todos os questionados.

Procuramos pesquisar junto aos planetas Federados qual seria o verdadeiro motivo pelo qual os blocos de alianças teriam se fortalecido e qual a intenção dos planetas de alianças de outros universos estarem se aproximando dos nossos radares.

Alianças mais preparadas estão atacando outras em desenvolvimento com o intuito de frear o crescimento destas que por sua vez ameaçam assinar tratados com outras aliadas para se fortalecer e contra-atacar. Nós, da Federação dos Crimes de Guerra, pedimos que você prepare suas naves e prepare seu povo para uma nova guerra que está por vir. Que a sorte esteja conosco!

Saudações,
Comandante Geral da Federação dos Crimes de Guerra

Como adicionar sombra utilizando CSS

October 7th, 2009

Você sempre quis saber como colocar uma sombra numa imagem, utilizando apenas CSS? Saiba através do Dinamic Drive, que já foi inclusive indicado aqui no Avante,

Na realidade você pode colocar sombras não só em imagens mas em caixinhas também. Para saber como fazer essa proeza, basta clicar aqui.

Para o alto e Avante!

FONTE: http://www.brunoavila.com.br/avante/css/como-adicionar-sombra-utilizando-css.html

O nome das cores HTML

October 4th, 2009

Você sabia que as cores html possui nomes? É sim, cada cor hexadecimal tem seu nome e que funciona em qualquer navegador. Por exemplo, ao invés de você colocar color: #00FA9A coloque color: MediumSpringGreen que vai dar no mesmo. Para você saber todos os nomes e decorá-los assim como você decorou toda a tabuada, clique aqui e veja toda a lista.

PORÉM, se você quiser que seu site seja validado pelo W3C, seguindo os padrões, saiba que apenas as cores a seguir são validadas utilizando seus nomes: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, e yellow.

Para o alto e Avante!

Bordas Arredondadas com CSS

October 4th, 2009

bordasarredondadascomcss

Quer fazer aquelas bordinhas arredondadas, dando uma diferenciada naquela caixinha de destaque, utilizando CSS? Então conheça essa solução bem simples, o Spiffy Corners, que dá o CSS prontinho pra você fazer suas bordas arredondadas.

Clique aqui para testar.

CSS3: Conheça os novos efeitos do CSS

October 4th, 2009

Você já imaginou colocar efeito de fade nas cores do link? Colocar mútiplas imagens de background? Criar cantos arredondados sem necessidade de bg, só no CSS? Pois isso tudo já existe, na nova versão do CSS 3.

No vídeo abaixo você poderá ver na prática algumas novidades do CSS que só não está popularizado ainda pois nem todos os navegadores suportam essa nova versão. Mas isso é questão de tempo. Então dê uma olhadinha no vídeo para ver o que lhe espera. O vídeo é em inglês mas se você não sabe inglês não tem problema, o que importa é ver o amigo do vídeo programando e botando o bicho pra rodar. Só no visual você irá captar a mensagem.

Nesse site você irá encontrar informações e exemplos de outros efeitos do novo CSS. Divirta-se!

Não aparecem anúncios do AdSense?

October 4th, 2009

Após ter criado meu segundo blog, comecei a colocar os anúncios do AdSense, mas eles não apareciam, só mostrava um espaço em branco onde deveria aparecer o anuncio e tinha a palavra “advertisement” na parte inferior deste espaço, o pior era que isto só acontecia na minha maquina e em outras maquinas sim apareciam os anúncios. Fiquei pesquisando e sofrendo durante 15 dias, nem no próprio site do AdSense achei a solução, até eles informam de como ativar o JavaScrip no navegador e algumas coisas de políticas, mas não ajudou.

Importante: Você só pode colocar 3 anúncios do AdSense por página se colocar mais ele mostrará só três ou então não mostrará.

O problema foi resolvido editando o arquivo Hosts. Este arquivo, desconhecido se encontra na pasta do Windows, caminho:

C:\Windows\system32\drivers\etc

Ou seja, o Windows está bloqueando todo o conteúdo dinâmico que vem do Google (sobretudo os anúncios do Adsense). Diversos sistemas antispyware, antivirus, bloqueadores de anúncios e outros programas, escrevem suas instruções nesse arquivo, orientando o navegador sobre o que abrir, o que exibir e o que não. Muitas vezes o Nod32 e o Kaspersky costumam gravar instruções especificas para o navegador não exibir anúncios AdSense.

Tutorial para limpar o arquivo e exibir os anúncios do Adsense

Passo 1: Entre no disco C: , logo entre na pasta Windows e entre na seguinte pasta system32; encontre a pasta drivers e dentro dela esta a pasta etc. O caminho fica assim: C:\WINDOWS\system32\drivers\etc

arquivo-hosts

Passo 2: Dentro do diretório ‘etc’ procure o arquivo hosts. Clique com o botão direito e selecione Abrir com o Bloco de Notas. Com o Bloco de Notas encontre a expressão Google Inc (você pode clicar em Editar/Localizar ou simplesmente CTRL+F. Digite Google Inc na caixa de busca, e clique em Localizar).

Passo 3: Selecione e apague tudo que estiver após a expressão ‘Google Inc’.

arquivo-hosts-aberto

Isto já é suficiente para os anúncios aparecerem como por arte de mágica, então Salve e feche o arquivo.

O seguinte passo não é necessário, mas fica como sugestão:
Se você quer limpar todas as instruções adicionadas por algum programa, fora o AdSense, continue fazendo o seguinte, apague tudo que aparecer sem o “#” na frente. Busque por linhas com a palavra “Google” e “Syndication“. Apague todas. Por ultimo, salve e feche o arquivo.

Após estes procedimentos sua página que contenha anúncios do Google e se você seguiu corretamente os passos do tutorial, seu navegador vai exibir os anúncios do AdSense.

Boa sorte!

FONTE: http://www.curioso.biz/home/2009/05/02/nao-aparecem-anuncios-do-adsense/

98 Estilos de Tabela em CSS

October 2nd, 2009

98estilosdetabelaemcss

Tenho certeza que esse vai para o seu favoritos. Se você procura fazer uma tabela bonitinha em sua página ( tablelessmaníacos, estou falando de tabela mesmo hein ;) ) agora isso não será mais problema.

Apresento a vocês 98 estilos diferentes de construção de tabelas, de diferentes cores e tipos. Basta clicar, visualizar e pegar o código. Simples, não?

Para visualizar os 98 estilos, clique aqui.

Para o alto e Avante!

FONTE: http://www.brunoavila.com.br/avante/css/98-estilos-de-tabela-em-css.html