RSS Feed

October, 2009

  1. Evitando frustrações com sessões no PHP

    October 27, 2009 by Igor Escobar

    Aplicações Web PHP podem acrescentar estado nas suas aplicações de forma muito fácil, porque a ilusão de estado é mantida através do ID de uma sessão e nela podemos transportar informações entre uma página e outra sem perdê-la no meio do caminho. Talvez você já tenha perdido uma produtividade potencial por conta de bugs bizarros ou até mesmo brechas de segurança por causa dessas belezinhas. Aqui vão quatro dicas para evitar que você fique perdendo tempo e garanta o seu site.

    1. Não use underscores em hostnames

    A menos que você tenha memorizado o RFC de caracteres permitidos no nome do host, você pode não estar ciente de que não é permitido colocar underscores em nomes de hosts. Em alguns browsers, como o firefox, não aplica esta proibição, mas o Internet Explorer vai se recusar a setar um cookie/session cujo hostname possua underscores. O IE vai fazer com que em cada página carregada seja gerado um novo ID de sessão. Mas o usuário nunca vai aceitá-la. Fonte: documentação set_cookie.

    2. Atualize suas sessões depois de redirects

    Você deve chamar a função  session_write_close (ou pelo alias session_commit) para escrever os dados na sessão antes que qualquer HTTP Location redirects seja emitido. Este comando também “libera” a sessão do usuário assim ele pode fazer outras atividades na sua aplicação. Veja os comentários por cenaculo e bkatz.

    3. Prevenindo a fixação de sessão

    Fixação de sessão ou session fixation, permite que qualquer usuário mal intencionado receba o id de uma sessão válida passando um simples link. Sem predizê-la ou roubá-la do cookie de algum usuário ou através de um $_GET comum. A vitima é pega utilizando o id da sessão gerada pelo “hacker” e não através do servidor. Você pode prevenir este tipo de ataque chamando a função  session_regenerate_id(), particularmente após armazenar informações importantes como o nome de um login ou uma flag. Isso vai mostrar para o “hacker” um id de sessão inútil. Chris Shifflet fez uma discussão mais meticulosa sobre Session Fixation.

    Exemplo de ataque via Session Fixation

    4- Não exponha id’s de sessão.

    Cookies talvez sejam, relativamente, o lugar mais seguro para armazenar o id de suas sessões se comparando a incorporá-la diretamente na sua url (via PHPSESSID). Aqui vão duas configurações (via php.ini) para controlar este comportamento, cada um deles são muito importantes, por isso você deve setar ambos. Você deve setar o session.use_trans_sid para (off) e se você estiver utilizando PHP 4.3.0 ou superior você pode setar também session.use_only_cookies para “1?.

    []‘s
    Igor.


    Posts Relacionados:


  2. A função levenshtein(): Você quis dizer…

    October 27, 2009 by Igor Escobar

    int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )

    A função levenshtein, é uma função bastante interessante do PHP. Ela é capaz de calcular o numero de inserções, remoções e substituições necessárias para tornar a str1 na str2.

    A função serviu como base de inspiração para várias ferramentas e serviços vistos e utilizados de maneira frequente na Internet; corretores ortográficos, o famoso “Did you mean” ou “Você quis dizer” do Google estão todos inclusos nesta lista.

    Abaixo segue um exemplo da implementação do famoso “Did you mean” encontrado no próprio manual, utilizando a dita-cuja:

    <?php
        // input misspelled word
        $input = 'carrrot';
    
        // array of words to check against
        $words  = array('apple','pineapple','banana','orange',
        'radish','carrot','pea','bean','potato');
    
        // no shortest distance found, yet
        $shortest = -1;
    
        // loop through words to find the closest
        foreach ($words as $word) {
            // calculate the distance between the input word,
            // and the current word
            $lev = levenshtein($input, $word);
    
            // check for an exact match
            if ($lev == 0) {
                // closest word is this one (exact match)
                $closest = $word;
                $shortest = 0;
    
                // break out of the loop; we've found an exact match
                break;
            }
    
            // if this distance is less than the next found shortest
            // distance, OR if a next shortest word has not yet been found
            if ($lev <= $shortest || $shortest > 0) {
                // set the closest match, and shortest distance
                $closest  = $word;
                $shortest = $lev;
            }
        }
    
        echo &quot;Input word: $input\n&quot;;
        if ($shortest == 0) {
            echo "Exact match found: $closest\n"";
        } else {
            echo "Did you mean: $closest?\n";
        }
    ?>
    

    Saída

    Input word: carrrot
    Did you mean: carrot?

    Espero que um dia seja útil para alguém!

    Igor,
    []’s


    Posts Relacionados:


  3. Tradução: 31 dias para se tornar um blogueiro melhor.

    October 27, 2009 by Igor Escobar

    Achei este texto interessante para as pessoas que costumam manter um blog então cai bem uma tradução para aqueles que tem mais dificuldade com o idioma.

    Dia 1. Escreva melhor ’sobre’ a página. Escrever melhor ’sobre a pagina/blog’ ajuda a converter mais visitantes em fiéis leitores. Você pode ter uma página ‘ sobre’ mais efetiva simplesmente respondendo a pergunta: ‘O que esta página/blog tem a oferecer?’

    Dia 2. Comece usando mais imagens em seus posts. Leitores gostam de imagens — Elas ajudam o tom do seu blog, ilustrando metáforas e geralmente tornam os seus posts mais interessantes de se olhar. Você pode usar um estoque gratuito de fotografias, mas você consegue também usar o sensacional Flickr images.

    Dia 3. Escreva uma semana antes de antecêdencia. Desenvolvendo o hábito de escrever sempre antecipadamente ajuda você a te dar a segurança de conteúdo quando você estiver preguiçoso, ocupado ou sem inspiração. Escrever e publicar ao mesmo espaço de tempo conduzirá inevitavelmente a um errático hábito, por que seus leitores nunca sabem o que esperar de você. Escrever c0m andecêdencia o suficiente e poderá ganhar o dinheiro de ganhar um feriado blogger.

    Dia 4. Desorganização da sua barra lateral(sidebar). A desorganização gosta da barra lateral da mesma forma que macacos gostam de árvores. Se você tem menos em sua barra lateral, Você pode concentrar maiores espaços para o que realmente importa (seus feeds, categorias e posts mais populares). Remova widgets desnecessários e coloque seu blogroll e arquivos de postagens em sua própria página dedicada. Também pode ser uma boa ideia remover anúncios de baixa performance.

    Dia 5. Destaque seus posts mais populares. Colocar no seu blog de forma destacada os seus posts mais populares é uma ótima prática, por que isso da aos visitantes um novo lugar para ir. Eles não tem tempo para ficar procurando no seu blog um bom conteúdo: Eles querem ver o melhor que você tem a oferecer, imediatamente. Destacar estes links ajuda a manter os posts sempre vivos e os comentários sempre vindo, mesmo depois da postagens, meses depois

    Dia 6. Comece fazendo amigos em serviços de redes sociais como o Digg ou StumbleUpon. Esses lugares são ótimos para você fazer o seu network, por que você vai estar mantendo um relacionamento com pessoas que tem potencial para estar enviando seus artigos para milhares de pessoas. Se você votar no seu conteúdo, talvez você estará colocando as pessoas para falar em favor do seu conteúdo no futuro.

    Dia 7. Prova um post de sua autoria no mais popular blog do seu nicho. Posts de visitantes é um fantástico meio de trazer o seu perfil a tona e o tráfego de volta ao seu blog. Navegue no mais popular blog do seu nicho e pense em uma boa ideia para o próximo post (mas tenha certeza de que isso nunca foi postado anteriormente). Expresse sua ideia para o blog e comprometa-se em escrever um artigo completo caso for do interesse do mesmo. Se não, mesmo assim você consegue fazê-lo tentando em um outro blog, ou até mesmo no seu próprio blog.

    Dia 8. Tenha uma lista de boas fontes. As listas são muito populares em serviços de mídia social e pode ser muito fácil de fazer, Principalmente se você já possui essa lista em mãos. Pegue um tópico do seu publico alvo é sutilmente interessante e crie um lista de tópicos relacionados com a mesma. Você pode usar a sua própria lista de favoritos se você tiver. Se sua lista estiver curta, use o del.icio.us e procure pelo seu tópico, você vai achar milhares de links úteis que as pessoas salvaram usando o tópico de sua escolha anexo a uma palavra chave.

    Dia 9. Ofereça serviços gratuitos para os seus leitores (sem nenhuma expectativa de retorno). Se tratando de um redesing de um logo tipo, ideias, design review, votos de mídia social ou 15 minutos de consultoria grátis, dando algo de valor de graça sem expectativa de nada de volta vai deixar uma impressão duradoura nos seus leitores (e pode atrair alguns links também).

    Dia 10. Prova seu link para um ou três blogs do seu nicho. Pegue o mais popular post do seu blog e repasse através de 3 grandes populares blogs do seu nicho. Se eles gostarem, Eles vão apontar um link para ele no próximo post.

    Dia11. Adiciona links de midias sociais no rodapé dos seus posts e feeds. enquanto as pessoas votam no seu conteúdo através de barras de ferramentas, links em mídias sociais ou ícones relembra as pessoas a votarem a favor dos seus posts, se elas gostarem. É sempre mais que essencial adicionar esses botões em seus feeds, por que não há meio mais fácil para as pessoas votarem nos seus posts do que através dos leitores de feeds. Usando o FeedFlare você coloca um link ‘Adicione um comentário’ no rodapé dos seus feeds, é uma boa ideia. FeedFlares esta disponível Abaixo da tab ‘Publicize’ no painel de controle do seu Feedburner.

    Dia 12. Participe dos comentários no seu blog. Os leitores sentiram que você esta interessando no que eles pensam a respeito do seu post, você pode aprender alguma coisa, e também incrementar o número de comentários no seus posts.

    Dia 13. Trabalhe em um calendário editorial para o seu blog. É muito mais difícil escrever um post quando você sabe que o seu blog precisa de atualização. Trabalhando com um calendário editorial da ao seu blog um senso de ritmo. Isso pode te tornar mais produtivo impondo dead lines firmes para os próximos posts.

    Dia 14. Seja mais rigoroso com a suas inscrições RSS. Eu acho que os blogueiros perdem muito mais tempo lendo blogs do que escrevendo. Escolhendo melhor a sua lista de blogs pode te ajudar a ganhar um tempo a mais. Se você se encontrar regularmente pulando posts de um determinado blog, ou se você não consegue pensar em nada que tenha aprendido neste blog, provavelmente seja melhor você remover este feed da sua lista.

    Dia 15. Escreva um report ou um mini eBook. Poucas horas trabalho resultará em um relatório que você pode distribuir gratuitamente aos assinantes do feed, encorajando-os para compartilhar o mesmo, ou de qualquer forma trazer mais tráfego para o seu blog. Se for extremamente útil, o tráfego virá de forma viral.

    Dia 16. Tente colocar novas fontes de renda em seu blog. Se eu não for muito claro, Programas de anúncios em blogs tendem ser incertos. Você pode estar muito feliz com o seu programa de anúncios atual, mas os serviços mudam(e como), E se mudar? E com essas mudanças vão junto o seus rendimentos? Se você monetiza o seu blog é uma boa ideia ter 2 bons programas de anúncios como opções, pois se algo da errado com um, você tem o seu backup(ou plano B…como preferir).

    Dia 17. Pense em 20 ideias que você pode usar. Depois de saber o que você tem de escrever, começar se torna muito mais fácil. Tire um dia para fazer um brainstorm das 20 coisas que você quer ter em seu blog. Como alternativa, você pode simplesmente usar as vinte Ideias para seu post do Mark’s.

    Dia 18. Agradeça seus leitores. tire um dia para dizer obrigado para seus leitores — mesmo que seja um curso espaço no final dos seu post. Claro!, se você quer inovar na hora de dizer obrigado aos seus leitores, é muito melhor para deixar uma boa impressão.

    Dia 19. Atualize a versão do seu blog sempre!. Blogs desatualizados tendem a ter bugs e vulnerabilidades para ataques de hackers. Tenha certeza que na hora de atualizar a sua versão você tenha um backup da atual (e claro! saber o que você esta fazendo). Você precisa utilizar algum tempo para procurar mais detalhes sobre a transição de uma versão para outra.

    Dia 20. Ótima força, passwords alfanuméricos para todas as contas. Se todas as senhas que você possui são iguais entre seus blogs, Palavras do dicionário ou letras somente, Seria muito fácil para um determinado hacker para quebrar uma de suas contas. Tire um dia para tornar as suas senhas mais fortes usando combinações de letras, números e pontuações ela precisa exceder 8 caracteres. Tenha certeza de estar guardando seus passwords em um local seguro (e as escreva com cuidado).

    Dia 21. Sente e analise suas estatísticas do ultimo mês. As estatísticas dizem muito sobre o que você fez e o que você não fez. Analisar suas estatísticas durante um período pode relevar tendências, posts populares e qual das atividades promocionais que você se comprometeu a fazer eram dignas.

    Dia 22. Peça a alguém para postar no seu blog. Se você é amigo de outro blog, convide-os para escrever no seu blog. Se o seu blog é mais popular que o deles você tem uma grande chance de ser aceito. O post de um visitante consegue inserir um pouco de frescor no seu blog, o mais importante, permite que você mantenha seu foco em outra matéria para o dia.

    Dia 23. Pratique SEO no seu blog. SEO pode ser complicado, mas se você sabe um pouco sobre isso, tire um dia para revisar. Como alternativa, você pode aprender como otimizar o seu blog para os buscadores.

    Dia 24. Compre uma campanha StumbleUpon de $5 dólares para o seu melhor post. $5 compra aproximadamente 300 visitantes. Se alguns destes visitantes resolver votar a favor do seus posts, o resultado pode ser uma gigantesca bola de nele cheia de visitantes muito mais que os seus 5 dólares pode pagar! Depois de começar você pode ler este post ProBlogger no Programa de anúncios StumbleUpon.

    Dia 25. Crie uma logo personalizada para o seu blog, ou consiga alguém para fazer isso para você. O Blog branding é essencial. Se você usa um tema grátis sem nenhum distinção de branding, seu blog provavelmente vai parecer como outros milhares de blogs que usam o mesmo tema que você. Se você tem alguma habilidade em softwares de edição de imagens, crie uma logo customizada. Se você preferir a um passo a frente, você pode pagar um freelancer ou uma empresa para criar sua marca.

    Dia 26. Entre para um fórum popular no seu nicho. Um link para o seu blog na sua assinatura do fórum pode trazer um pouco de tráfego e uma boa quantidade de comentários em outros blogs.

    Dia 27. Use duas horas ou mais para cada post. Se você costuma utilizar várias horas em um único post você quer termina-lo agregando valor a ele. Investir um tempo extra em seus posts pode resultar em prêmios legais.

    Dia 28. Esvazie sua caixa de entrada. Você precisa responder seus e-mails frequentemente, então por que não começar isso hoje? Uma caixa de entrada vazia para um blogger é sempre bem-vinda.

    Dia 29. Comece a conversar com outro blogger do mesmo nicho. Diga Olá!, ofereça ajuda, comente nos posts que ele escreve — tanto faz faça isso, mande qualquer e-mail para outro blogger do seu nicho e não pergunte nada a ele. Se você conseguir uma conversa (ou uma conexão) isso pode criar oportunidades quando você faz um favor para um outro blogger e, depois, este favor pode ser devolvido.

    Dia 30. Mantenha uma competição com um modesto prêmio. Quer seja um e-book, consultoria grátis, DVD ou um CD, um pequeno prêmio e uma pequena competição pode ajudar a impulsionar o leitor sem afetar suas finanças demasiadamente.

    Day 31. Tire o dia de folga. Você mereceu isso! Sente um pouco e reflita sobre as três coisas que você fez para melhorar o seu blog. Você realmente deveria ter orgulho de si mesmo. ;)
    Texto Original: 31 Days to becoming a better blogger.

    Ufa! Realmente traduzir textos da trabalho :D
    Tentei traduzir da melhor forma que eu pude, pode ser que tenha algumas coisas estranhas, mais foi de coração ;)

    Espero que tenha contribuído!
    []’s
    Igor.


    Posts Relacionados:

    • Nenhum post relacionado!

  4. O que é Robot Friendly?

    October 27, 2009 by Igor Escobar

    Robot Friendly é um termo usado no exterior para afirmar quando um site é amigo dos buscadores, ou amigo do robô (spider).

    Por que tornar o meu site Robot Friendly?

    A primeira pergunta que devemos nos fazer é: por que alguns sites ficam sempre no topo dos resultados das buscas, independente se ele é patrocinado ou não?

    Os robots possuem uma série de regras, que são colocadas em prática quando eles acessam algum site, para determinar a relevância do mesmo, para uma determinada palavra-chave.

    Alguns destes sites precisam trabalhar muito para conseguir um lugar na primeira página, pois de palavra em palavra a concorrência varia e da mesma forma que você trabalha para sempre tornar o seu site relevante, a concorrência também não para.

    Alguns sites possui muitos links, muitos mesmo, e alguns deles são favoritados pelos buscadores, ou seja, além de ser seu concorrente, o site ainda é favorito dos buscadores naquela palavra chave. Tem coisas que só o tempo pode dizer se o seu destino será o fracasso ou a vitória.

    De todos os usuários na internet, a grande maioria deles não passam da segunda, terceira página de resultados em um buscador. Saibam que primeira página do google, é um reflexo do que a sociedade precisa e procura.

    Se eu vou no buscador e procuro por “Windows“, ele não vai apresentar nos primeiros resultados uma fábrica americana enorme de janelas concorda? por mais que faça sentido é verdade… da mesma forma que se eu ir no buscador e procurar por “banco” ele também não vai trazer uma pagina inteira cheia de lojas que vendem bancos e cadeiras.

    O fato da grande maioria dos usuários não passarem da primeira página, é o que mais encorajam as pessoas para sempre estar otimizando os seus sites, para estarem sempre nas buscas. Uma página a mais que se ganha pode gerar um lucro e um aumento de tráfego considerável para a sua empresa.

    Como faço para tornar meu site amigo?

    Em novembro de 2006 praticamente todos os maiores sistemas de busca concordaram em utilizar o padrão do sitemaps. No site do projeto, possuí todas as regras que os buscadores concordaram em seguir, para indexar suas páginas.

    Se você tem problemas na hora de gerar o sitemaps, por não conseguir instalar o programa no servidor, fornecido pela google (em python) ou por não ter estrutura de servidor para ativar a ferramenta, na internet possui alguns sites ou softwares que são capazes de gerar gratuitamente para você, basta informa a URL ou pode também ser feito através da internet.

    Recomendo o uso do programa GSiteCrawler para gerar este arquivo. Uma boa maneira de começar a “relacionamento” positivo com os buscadores é fornecendo este arquivo sitemap.xml através do Google Webmaster Tools, nesta ferramenta você indica a url do local onde esta o sitemap no seu domínio para que o google indexe as suas páginas de maneira mais prática e mais rápida.

    O legal é que no sitemap você consegue fornecer a prioridade de cada arquivo e a frequência que o arquivo é atualizado para que o google sempre forneça um conteúdo atualizado no seu buscador.

    Recentemente uma notícia bem legal foi dada pelos buscadores Google, Yahoo e Ask, indicando uma nova forma de indicar o local do arquivo sitemaps que seria indicando o seu endereço dentro do arquivo robots.txt.

    Uma coisa que poucos sabem, é que o robots.txt é uma outra maneira de dar um passo a mais no relacionamento positivo com o seu buscador. Além do robots.txt servir para apontar as regras que o robot deverá seguir para indexar suas páginas, serve também para indicar para o buscador que o seu site esta online a ativo.

    Imagine um grupo de 40 mil sites, 10% deles tem chances de estar offline, para verificar se um site esta online ou offline o retorno pode demorar de 15 a 30 segundos, multiplique isso pelos 10% destes 40 mil e você obterá o tempo perdido pelo spider para estes que estão offline, agora imagina o quão “P. da vida” o spider deve ficar com o seu endereço. ;)

    Sendo assim, crie um arquivo robots.txt mesmo que seja em branco, você ganha pontos.

    Agora segue algumas dicas que podem tornar o relacionamento do seu site com o seus buscadores mais saudável e positivo:

    • Faça com que todas as páginas do seu site sejam acessíveis a partir da página principal, não mais do que 3 cliques.
    • Crie o sitemap para o seu site indicando quais páginas você gostaria que o buscador indexe.
    • Considere ter no máximo 250-300 palavras em cada página do seu site, se você cria páginas muito longas, os spiders podem ignora-la. Geralmente os buscadores não indexam mais do que 100kb de textp mas páginas.
    • Evite colocar conteúdo em imagens ou em animações flash de forma não acessível, os buscadores não conseguem adivinhar o que tem nas imagens.
    • Tenha certeza de que seu site não tenha links quebrados ou erros comuns expostos.
    • Se possível não use crie navegações via script, os buscadores não conseguem ler tais scripts.
    • Se o seu site possui páginas dinâmicas, evite passar muitos parâmetros via query string, os buscadores não são espertos o suficiente para entender todos os parâmetros
    • Você pode usar o arquivo robots.txt para informar o spider como ele deve se portar no seu site.
    • Tenha certeza de que o seu site esta online o tempo todo.
    • Faça com seu site seja indicado em grandes sites do seu ramo de atuação ou relacionados ao conteúdo do seu site, isso fará com que seu site seja indexado rápidamente e com um nível alto de page-rank.
    • Dê uma atenção especial para as suas metas tags. Apesar delas estarem começando a ser extintas pelo uso de valor dos buscadores, a maioria delas tendem a desaparecer com o tempo, mas recomendo que não as ignore.

    Estas são algumas das dicas para melhorar o relacionamento do seu site com os spiders. Temos que levar em consideração também que os buscadores não são preciptados, um grande número de sites são colocados no ar todos os dias e um fator crucial para saber se o site vai ou não para o topo é o “tempo de vida” de um portal. A idade do domínio influência muito na relevância e na força das palavras chaves que estão expostas no site.

    Leitura complementar:
    Meta Tags: Será que o titulo esta muito grande? ;)

    Espero ter contribuído!
    []’s


    Posts Relacionados:


  5. As pequenas agências procuram um samurai, o que eu faço?

    October 27, 2009 by Igor Escobar

    Hoje falo sobre um assunto bastante comum, principalmente para os pequenos garotos(as) que estão na disputa por um lugar no mercado de trabalho.

    Neste post eu vou tentar convencer essas pessoas de que o cenário samurai, não é tão ruim quanto pensam.

    Procura-se Web Designer

    Procuramos Web Designer’s com no minimo “3 anos” de experiência que saibam: Photoshop, Corel e Flash.

    Conhecimentos desejáveis: PHP, .Net, Ruby, MySQL, SQL Server.

    Existem muitas vagas deste gênero em sites de empregos, e muitos já encaram estas vagas como algo “maligno”. Sim, para os profissionais que já possuem o seu espaço no mercado, é obvio que é, certamente, uma vaga com este perfil, é andar muitos passos para traz.

    Estes dias estava conversando com o pessoal da Visie e a esposa do nosso amigo David (programador), estava tendo muitas propostas de emprego com este perfil e pelo fato dela estar começando e estar insegura, isso acabava gerando muitas dúvidas sobre como agir e que decisão tomar. Ela reclamava muito a respeito da descrição da vaga pois a vaga descrevia uma pessoa que necessitava de muitas habilidades que não tem muito a ver com a área da outra.

    Pensamento Positivo!

    Todo mundo começa de baixo, seja você um Ninja do Photoshop ou um Ninja programador. As empresas desconfiam de profissionais sem experiência, as grandes empresas querem profissionais qualificados e com experiência, já as pequenas empresas procuram os “meio termos” pois elas sabem que não podem pagar, nem manter, um profissional de qualificação superior dentro da empresa.

    Desafie você mesmo!

    Se você esta começando, encare estas vagas como um desafio, o lado bom de trabalhar em uma agência que procuram estes profissionais é que você aprende muito em um curto intervalo de tempo. O fato de você estar começando e a vaga exigir muitas habilidades como, design, programação, animação, arquitetura da informação, usabilidade e etc. Isso vai exigir muita pesquisa e muito esforço do profissional que esta neste time, é uma exploração? talvez… mas encare isso por este lado.

    Quando estamos sendo engajados no mercado de trabalho, o objetivo é aprender, ganhar experiência, encare esta vaga como algo que vai exigir muito de você.

    Mesmo que você não esteja confiante para exercer todas estas funcionalidades, encare esta vaga mesmo assim, é uma grande chance de você aprender.

    Dê prioridade primeiro ao seu aprendizado, depois dê prioridade para as condições de trabalho, embiênte, salário, equipe etc.

    Quando eu comecei a trabalhar com Internet, eu já tinha alguns anos de experiência, quando resolvi procurar emprego, as empresas tinham o pé atrás de me contratar, pelo fato de eu não ter experiência comprovada, ou seja, eu também comecei em agências que procuram samurais, todos começamos, encare esta oportunidade como uma grande chance de aprender. Certamente esta vaga vai te preparar para uma outra melhor.

    Conhecimento nunca é demais!

    Você pode ficar pulando de agência em agência, pode não dar certo em muitas delas, mas pode ter certeza que por cada lugar que você passar, você vai aprender algo novo. Pense por este lado! conhecimento nunca é demais e ninguém tira ele de você!

    []’s
    Igor Escobar.


    Posts Relacionados:


  6. As microempresas e a pseudo-vontade de aderir os padrões.

    October 27, 2009 by Igor Escobar

    Acredito que a grande maioria de vocês, senão todos vocês, começaram de baixo, em uma empresa pequena, com poucos funcionários porém lutadora.

    De todas as pequenas que trabalhei, lembro-me que a Web 2.0 era (e ainda é) utilizada como uma forma de atrair e conseguir clientes, era Web 2.0 aqui, Web 2.0 lá, os donos das empresas utilizavam o termo, mais nem sabiam ao certo, que ele queria dizer, eles só sabiam que isso estava atraindo a curiosidade dos clientes e eles depositavam as suas esperanças nessa tal de Web 2.0 (na época) a Web 2.0 já estava sendo muito bem falada, estruturada e aplicada por algumas grandes empresas que possuíam uma boa organização e principalmente maturidade.

    Era mais ou menos igual aquela propaganda da escova de dentes com o limpador de línguas: – Quando crescer, vou querer ser como você.

    Tudo bem, admirar não faz mal a ninguém, mas a maioria das empresas acabavam dando um passo maior que as pernas para poder logo sair contando para os clientes que podem desenvolver sistemas utilizando os conceitos que a Web 2.0 trazia.

    A Mudança

    Toda empresa esta familiarizada principalmente os lideres a desenvolver sites da forma tradicional, abrir um editor WYSIWYG (Ex: Dreamweaver) e sair criando tabelas, inserindo as imagens do layout, os textos etc, sem nem olhar o que esta sendo criado por trás. Este era o cenário a anos atrás.

    São poucas as microempresas que possuem maturidade o suficiente para entender o passo que é começar a desenvolver utilizando conceitos da Web 2.0.

    O cronograma aumenta, mais processos no ciclo de vida do projeto são acrescentados, pessoas precisam ser contratadas (dependendo do caso), documentação aumenta, o paradigma do desenvolvimento fica mais complexo e detalhado…tudo aumenta.

    Toda essa adição de pessoas, processos e complexibilidade é consecutivamente convertida em mais despesas e mais tempo aplicado a um único projeto. As micros querem isso? na visão deles é Web 2.0 pra todos os lados na cabeça do cliente, e o melhor, sem adição no custo, e no prazo.

    Quem apanha no final?

    O coitado do programador que tem que fazer milagres em um curto intervalo de tempo, o coitado do cliente, que só queria o site dele prontinho em Web 2.0.
    Mas quem toma o maior prejuízo no final, é a própria empresa que acaba tendo que gastar muito mais do que o vendido para o cliente, principalmente para correção de bugs e melhorias de processos que não ficou como o cliente esperava ou de acordo com a realidade da empresa.
    Resultado: O Cliente fica insatisfeito, desiludido com essa tal de Web 2.0, nunca mais volta a ser cliente da empresa, fala mal de você para toda a direção da empresa e dependendo do desgaste até para a família.

    A Web 2.0 trás conceitos inovadores que podem tornar uma pequena empresa, em uma grande empresa criadora de soluções e ideias. Mas toda essa força e os seus “benefícios” pode se virar contra a própria empresa e contra o seu próprio usuário, se a empresa não possui um processo sólido, com foco principalmente, no ciclo de vida de um projeto.

    Para quem já trabalhou em uma pequena empresa, na época do boom empresarial em prol da Web 2.0, sabe o que eu estou falando.

    Claro, que este cenário hoje já esta mudando muito, mas o velho ditado diz: Antes de melhorar, vai piorar…muito!

    Tem empresas que aprendem na prática, outras aprendem na teoria para apanhar menos na prática ou caem naquilo que eu falei anteriormente, contratar mais pessoas!
    Aplicar os conceitos da Web 2.0 nos seus projetos é uma questão de puro planejamento e estratégia se você entrar nessa só por entrar e ficar com um pé na web 2.0 e outro na 1.0 isso só vai fazer a sua empresa afundar e se comprometer cada dia mais com seus clientes.

    Esta é uma visão minha, baseando-se em todas as pequenas empresas que eu trabalhei, se alguém possui um ponto de vista diferente e queira compartilhar, por favor, os comentários são abertos e muito bem aceitos.

    Espero ter contribuído!
    []’s


    Posts Relacionados:


  7. Coding Standards

    October 27, 2009 by Igor Escobar

    Todos nós sabemos que programar  é um arte, certo? Errado! :D Resolver problemas e criar soluções, é sim, uma arte. Com o amadurecimento do desenvolvimento e a iteração de equipes cada vez maiores, esta “arte” passou a virar ciência.

    Não existe mais este lance de cada um tem seu jeito de programar, cada um tem seu jeito de escrever etc., cada programador tem o seu jeito de pensar, mas não seu jeito de escrever seu código.

    O Coding Standards foi uma dessas demandas surgidas com o crescimento e o amadurecimento do ambiente corporativo. Visando mais produtividade e padronização do ambiente de trabalho, caras como Walker de Alencar, Todd Hoff’s, e Fredrik Kristiansen (e mais uns por aí) trabalharam desenvolvendo um manual, um guia, de como o seu código deve ser escrito para que todos em uma equipe e/ou empresa desenvolva de forma padrão: dar nomes de funções classes, tabulação, espaçamento, tudo, absolutamente, tudo de forma padrão e sugestiva.

    Adotar o Coding Standards pode ajudar você a não ter que abrir aquele arquivo de funções enorme para lembrar como você escreveu a função que verifica o cadastro dos clientes.

    Verifica_Cadastro() ?
    VerificaCadstro()?
    verificaCadastro()?
    CheckCadastros()?
    verificacadastro()?
    ...
    

    Pode ser que, para algumas pessoas que nunca tenham visto isso, o coding standards pode ser uma lavagem cerebral, algo que vá mudar totalmente a forma como alguns programam, mas é extremamente necessário.

    Qualquer programador que leve a sério o seu trabalho, e que tem o mínimo de respeito pelos seus colegas de trabalho, vão desejar programar de forma padronizada.

    Manuais sobre Coding Standards

    PHP Coding Standards (Walker de Alencar)
    C++ Coding Standards (Todd Hoff’s)
    Code Conventions for Java
    [UPDATE]
    Code Conventions for Python (Guido van Rossum)
    Code Conventions for C#
    Code Conventions for .NET
    [/UPDATE]

    []’s
    Igor.


    Posts Relacionados:

    • Nenhum post relacionado!

  8. Expressões Regulares: Use!

    October 26, 2009 by Igor Escobar

    Hoje vou falar sobre um assunto que é de suma importância para qualquer programador , expressões regulares. O poder e a facilidade que é proporcionada aos programadores adeptos deste conceito são realmente enormes.

    Para quem ainda não faz idéia do que eu estou falando vou mostrar um exemplo para vocês:

    if(! ereg(”^([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*[@]([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*[.]([a-zA-Z]){2,3}([0-9a-zA-Z])?$”, $input_email ) ) {
    echo &amp;amp;quot;Caracteres Inválidos no campo de e-mail!!!&amp;amp;quot;;
    }
    

    Estão vendo este grupo de caracteres aparamente mente misturados e sem lógica alguma, certo?

    Errado! claro que tem lógica! ;)

    A história das expressões regulares começou no ano de 1943 e só foi apresentada ao computador 25 anos depois em 1968 em um algoritmo de busca integrado no editor de textos, na época chamado “qed”.

    Os pais das expressões regulares foram dois neurologistas que na época publicaram um estudo que teorizava o funcionamento dos nossos neurônios. Alguns anos depois um matemático (não me pergunte quem) descreveu algebricamente os modelos deste estudo usando símbolos que por sua vez foram chamados de grupos-regulares (regular sets) e baseado nestas notações simbólicas foi que deu origem as expressões regulares.

    Como puderam notar, as expressões regulares são muito antigas e vem sendo muito utilizado para criar implementações “farejadoras”, o uso das expressões regulares nada mais é do que implementar regras de coletação e verificação de sintaxe de textos.

    O exemplo que eu dei para verificação do e-mail de um visitante é bem claro em relação a isso, ele verifica se o e-mail digitado pelo visitante possui uma sintaxe válida.

    Para o seu estudo e compreendimento existe um e-book publicado pelo Aurélio Marinho Jargas na internet que foi aonde eu aprendi tudo que sei no que se trata de expressões regulares.

    Facilitando o Estudo

    Na internet existe várias ferramentas que te ajudam na fixação e treinamento dos conceitos aprendidos neste livro, uma destas, é o Regex Tester online, você escreve um texto simples, escreve a regra e o editor vai colorindo as áreas afetadas por sua expressão regular no seu texto.

    Guia de Links Uteis

    Expressões Regulares – Aplicando

    Nos links acima você encontra informações suficientes para em pouco tempo sair criando suas próprias expressões.

    Concluindo

    Insisto para que se você ainda não sabe criar suas expressões regulares, por favor, leia o e-book que apresentei a vocês, vocês não fazem idéia do quanto as expressões regulares podem facilitar a vida de um programador. Recentemente na empresa na qual trabalho um programador criou uma rotina que tinha aproximadamente 15 linhas de código, vários parsers, loops e funções desnecessárias somente para verificar se o campo foi preenchido com 12 números 1, 2, 3, 4, 5, 6, 7, 8, 9, 0. ou seja, ele criou uma rotina que varria o campo cpf e verificava se os 12 números digitados eram repetidos por ex: 111111111111, 222222222222 … 999999999999.

    De 12-15 linhas implementadas em JavaScript a solução Regex foi:

    var Expressao = /([0]{12}|[1]{12}|[2]{12}|[3]{12}|[4]{12}|[5]{12}|[6]{12}|[7]{12}|[8]{12}|[9]{12}|)/
    if(campoCpf.test(Expressao)) return false;
    

    Viu? Poupa tempo e neurônios. Uma implementação de 12-15 linhas virar apenas duas.

    Objetivo deste post não é ensina-los Expressões regulares e sim tentar mostrar para vocês a importância da aprendizagem do mesmo para tornar você um desenvolvedor muito mais produtivo.

    Espero ter contribuído!
    []’s


    Posts Relacionados:


  9. Trabalhando com Mascaras em Java Script

    October 26, 2009 by Igor Escobar

    Recentemente, tive problemas com algumas funções já disponíveis na internet para poder facilitar a aplicação de mascaras em campos do tipo string.

    Por exemplo: o cliente precisava que no momento que eu fosse digitando a data no formato (00/00/000) o sistema automaticamente, iria colocando as barras “/” para facilitar o preenchimento do campo.

    Baseando-se neste ,desenvolvi uma função em JavaScript para aplicar qualquer tipo de mascara que você precisar basta informar o template da mesma:

    /**
     * Formata o Campo de acordo com a mascara informada.
     * Ex de uso: onkeyup=&amp;quot;AplicaMascara('00:00:00', this);&amp;quot;.
     * @author Igor Escobar (blog@igorescobar.com)
     * @param Mascara String que possui a mascara de formatação do campo.
     * @param elemento Campo que será formatado de acordo com a mascara, voce pode informar o id direto ou o próprio elemento usando o this.
     * @returns {void}
     */
    function AplicaMascara(Mascara, elemento){
    
    	// Seta o elemento
    	var elemento = (elemento) ? elemento : document.getElementById(elemento);
    	if(!elemento) return false;
    
    	// Método que busca um determinado caractere ou string dentro de uma Array
    	function in_array( oque, onde ){
    			for(var i = 0 ; i &amp;lt; onde.length; i++){
    			if(oque == onde[i]){
    				return true;
    			}
    		}
    		return false;
    	}
    	// Informa o array com todos os caracteres que podem ser considerados caracteres de mascara
    	var SpecialChars = [':', '-', '.', '(',')', '/', ',', '_'];
    	var oValue = elemento.value;
    	var novo_valor = '';
    	for( i = 0 ; i &amp;lt; oValue.length; i++){
    		//Recebe o caractere de mascara atual
    		var nowMask = Mascara.charAt(i);
    		//Recebe o caractere do campo atual
    		var nowLetter = oValue.charAt(i);
    		//Aplica a masca
    		if(in_array(nowMask, SpecialChars) == true &amp;amp;&amp;amp; nowLetter != nowMask){
    			novo_valor +=  nowMask + '' + nowLetter;
    		} else {
    			novo_valor += nowLetter;
    		}
    		// Remove regras duplicadas
    		var DuplicatedMasks = nowMask+''+nowMask;
    		while (novo_valor.indexOf(DuplicatedMasks) &amp;gt;= 0) {
           		novo_valor = novo_valor.replace(DuplicatedMasks, nowMask);
        	}
    	}
    	// Retorna o valor do elemento com seu novo valor
    	elemento.value = novo_valor;
    
    }
    

    Metodos de uso

    Mascara para campos do tipo Data:

    &amp;lt;input name=&amp;quot;data&amp;quot; maxlength=&amp;quot;10&amp;quot; onkeyup=&amp;quot;AplicaMascara('XX/XX/XXXX', this);&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt;1
    
    &amp;lt;strong&amp;gt; Mascara para campos do tipo Hora:&amp;lt;/strong&amp;gt;
    1&amp;lt;input name=&amp;quot;hora&amp;quot; maxlength=&amp;quot;8&amp;quot; onkeyup=&amp;quot;AplicaMascara('XX:XX:XX', this);&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt; 

    Mascara para campos do tipo CEP:

    &amp;lt;input name=&amp;quot;cep&amp;quot; onkeyup=&amp;quot;AplicaMascara('XXXX-XXX', this);&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt;  

    Mascara para campos do tipo TELEFONE:

    &amp;lt;input name=&amp;quot;tel&amp;quot; onkeyup=&amp;quot;AplicaMascara('(XX)XXXX-XXXX', this);&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt;  

    Mascara para campos do tipo CPF:

    &amp;lt;input name=&amp;quot;cpf&amp;quot; onkeyup=&amp;quot;AplicaMascara('XXX.XXX.XXX-XX', this);&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt;  

    E por ai vai, basta seguir os exemplos e ser feliz ;) Espero ter contribuído!
    []’s


    Posts Relacionados:


  10. Iniciando com o JSON

    October 26, 2009 by Igor Escobar

    Alguns dias atrás, recebi um e-mail de um leitor que acabou de iniciar em um novo emprego e seus supervisores lançaram a seguinte necessidade:

    Na nossa empresa temos uma base de dados que ao fazer a consulta X, irá vai te retornar um JSON, ou seja, um valor que por sua notação é denominada JSON.

    JSON quer dizer JavaScript Objection Notation, nada mais é do que um conjunto de chaves e valores, que podem ser interpretadas por qualquer linguagem. Toda essa estrutura, foi criada apartir do padrão ECMA-262 que por sua vez possui convenções muito semelhante às linguagens como C, C#, C++, Java, JavaScript, Perl, Python e várias outras. Com estas características o JSON se torna o formato ideal para troca de informações independente da linguagem.

    Um estrutura JSON pode ser identificada por duas estruturas de dados:

    Uma coleção de pares nome/valor. Em várias linguagens, isto é caracterizado como um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas.

    json-object

    Ex:

    var MeuBlog = {
    nome:"Igor Escobar // blog",
    ano:2008,
    assunto:"Tecnologia",
    getTitle:function(){
    return ('TituloBlog:' + nome);
    }
    }
    

    Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.
    json-array

    Ex:

    ["Igor Escobar // Blog", 2008, 0]
    

    Viu só? é super simples se trabalhar com o JSON. Não se preocupe ao aplicar estas regras na prática, a teoria é valida para você entender como o JSON gera estes dados, no seu caso (e de muitos), você precisa decodificar um Array ou um Objecto JSON para a sua linguagem nativa.

    Vou utilizar a linguagem PHP, como exemplo, para você entender como funciona e aonde entra o JSON nesta história toda.

    json-na-pratica

    • Primeiro o PHP recebe os dados e envia estes dados para o JSON seja ele um Array ou um Objeto.
    • Depois o JSON codifica os dados e retorna este valor (uma inofenciva string) para uma variavel PHP que por sua vez é responsável por enviar esta váriavel para o banco com os dados codificados.

    JSON na Prática

    Estou disponibilizando aqui o JSON em:

    Mais caso você precise da implementação JSON em outras linguagens basta ir até o site do projeto.
    Na prática você só vai utilizar duas funções do JSON:

    $JSON = new JSON();
    // JSON - Encode
    $dbValue = $JSON->;encode($objetoPHP); // Codifica um objeto PHP -> JSON
    // JSON - Decode
    $dbValue = $JSON->decode($dbObject->campoComJson); // Decodifica um objeto JSON -> PHP Object
    

    E é exatamente isso que no caso do nosso “amigo do e-mail” precisa fazer. Você precisa receber este valor na estrutura de dados JSON e decodifica-lo para que sua linguagem nativa o entenda e interprete.

    Possível problema

    Se você estiver utilizando JSON -> JavaScript e este array/objeto JSON retornar uma estring é possivel que você tenha problemas com caracteres especiais e na hora de exibir apareça uns caracteres como (+%…etc).

    Para corrigir este problema eu implemento em minhas funções javascript a seguinte solução:

    function urlencode(str) {
    str = escape(str);
    str = str.replace('+', '%2B');
    str = str.replace('%20', '+');
    str = str.replace('*', '%2A');
    str = str.replace('/', '%2F');
    str = str.replace('@', '%40');
    return str;
    }
    
    function urldecode(str) {
    str = str.replace(/\+/g, ' ');
    str = unescape(str);
    return str;
    }
    

    E é isso caro “amigo do e-mail”, conte-nos depois como foi a sua experiência iniciando com o uso do JSON e espero que este ajude todas as outras pessoas que forem iniciar com o mesmo.

    Vale lembrar, eu só escrevi este texto por que o nosso amigo aparentemente precisava MUITO, pela iniciação no novo trabalho e claro o seu problema com certeza bate com o de muitas outras pessoas, principalmente, com o objetivo deste blog que é em primeiro lugar, reunir soluções de desenvolvimento em um único lugar.

    Nota: Apartir do PHP 5.2 o JSON já se encontra nativo na linguagem através dos métodos json_encode(); e json_decode();

    Espero ter contribuído!
    []’s


    Posts Relacionados:

    • Nenhum post relacionado!