Postagens

Mostrando postagens de 2015

PHP - Criando uma classe que concatena métodos

Imagem
É comum em frameworks ou bibliotecas aplicarmos métodos em cadeia para modificar um dado conteúdo. A ideia deste tipo de classe é evitar criar variáveis temporárias para guardar o resultado de um método para depois inseri-lo em outro a fim de aplicar uma nova modificação. Com o encadeamento de métodos o retorno de cada um é lido pelo seguinte automaticamente. Para isso existe um truque: os retornos dentro de cada método. Vamos ver um exemplo. Class Sequencia { public $retorno; public function primeiro($var) { $this->retorno .= " Primeiro {$var}:"; return $this; } public function segundo($var) { $this->retorno .= " Segundo {$var}:"; return $this; } } $seq = new Sequencia; $seq->primei

Git - Comandos básicos para começar

Imagem
O Git pode intimidar inicialmente o desenvolvedor, principalmente aqueles que não utilizam o Linux, já que é comum trabalhar com ele através do terminal digitando comandos, porém é uma questão de tempo até adaptar-se. Pelo fato de ter o terminal de comando como interface de trabalho perdemos muito no quesito 'intuição' já que uma interface gráfica sempre nos permite 'fuçar', ao contrário de comandos digitáveis que devem ser decorados ou sabidos de ante mão. Assim a leitura de materiais de referência e livros acaba sendo uma obrigação e não mais uma opção. Já foi publicado aqui uma matéria sobre duas boas referências de livros para entrar no mundo Git porém neste post pretendo listar os principais comando para começar, algo bem simples e rápido. Para começar você pode fazer o download do Git para várias plataformas. Se você usa Linux provavelmente já existe Git instalado ou pronto para instalar, bastando dar um " sudo apt-get install Git ". Também pode

Dicas de livros para iniciar no Git

Imagem
Imagem original em  blog.rjs.in   Programas de versionamento são indispensáveis para o desenvolvimento em equipe. É ele quem fará o controle das atualizações, mesclará as inúmeras partes dos vários desenvolvedores e manterá todo o trabalho coeso. Mas diferente do que se pensa os programas de versionamento podem ser também usados por desenvolvedores solitários, apenas localmente em suas máquinas. Assim estes programas ajudam tanto a organizar as atualizações e o fluxo de trabalho assim como também podem ser utilizadas como backup. Git é um dos mais famosos sistemas de versionamento e nasceu como um projeto para organizar o desenvolvimento do kernel do Linux, que envolve inúmeros programadores ao redor do mundo. Controlar cada alteração e acrescentá-la ao código final seria uma tarefa impensável sem um fluxo organizado e um gerenciador que controle as alterações de cada um. Este é o espírito do Git. Git X GitHub Uma coisa interessante de citar é a confusão em torno do Git

Porque o mobile é prioridade

Imagem
A explosão do mobile no mundo e, mais especificamente no Brasil, é algo assustador. O infográfico abaixo mostra como esta tendencia vem  forte e promete continuar. Não tem mais jeito! É obrigatório pensar em mobile em qualquer projeto, seja este novo ou já implantado. Talvez mais do que pensar no usuário ou analisar tendências a urgência em adotar o desenvolvimento para mobile veio com força total após o anúncio da Google em Abril de 2015 de que os sites com suporte para mobile ganhariam destaque nas buscas. Porém, além da decisão de adotá-lo, temos de encarar o fato de que o mundo mobile tem inúmeros desafios mesmo para aqueles que já trabalham com Web para desktop (apesar da Internet na verdade ser única, seja no celular, tablet, notebook ou desktop). AS DIFICULDADES Se você é do tempo em que o padrão era o IE6 sabe como era terrível trabalhar com um navegador que não seguia os padrões w3c, aliás, um navegador que adotava os padrões que queria e dane-se o resto.

Livro Mobile First Design with HTML5 and CSS3

Imagem
'Mobile First Design with HTML5 and CSS3' é um livro da editora 'Packt Publishing' para quem quer um passo a passo a partir do zero na criação de seu primeiro projeto de website responsivo (RWD). Para tal missão o autor utiliza o framework '320 and Up' como base. O conceito por trás do Mobile First ou 'Mobile Antes' é pensar em seu projeto levando em consideração inicialmente a experiência do usuário em um smartphone. A experiência em desktops ou telas grandes será sempre uma adaptação do primeiro caso. Esta lógica inverte a anterior, quando o Mobile era considerado uma novidade e estava engatinhando. Esta linha de pensamento para desenvolvimento deve ser seguida não em todos os casos mas naqueles em que você sabe antecipadamente que a maior parte dos usuários acessarão via smartphone. Outro motivo que pode levar um projeto a seguir o 'Mobile First' é a tendência de que no futuro os acessos via smartphones serão a esmagadora maioria, f

Segurança e gerenciamento de erros no PHP - como melhorar seu código com set_error_handler e error_log

Imagem
Existe uma linha de pensamento na comunidade de desenvolvedores que recomenda que para dar maior segurança a um sistema, e assim evitar ataques, deve-se fornecer a menor quantidade possível de informações sobre o mesmo. Pegando esta ideia como padrão para nossos projetos uma das coisas que podem dar informação valiosa para crackers são as mensagens de erro na execução do sistema.  Mensagens de erro deveriam ser vistas apenas pelos desenvolvedores, não pelos usuários Tais mensagens podem informar, por exemplo, caminhos de arquivos e estrutura de diretórios desprotegidos, senhas de acesso a banco de dados e versões de software que podem ser utilizadas como base para busca de brechas de segurança. Assim não exibir tais erros é fundamental para manter o sistema o mais protegido possível, além de dar uma cara mais profissional ao projeto, afinal é bem feio seu usuário final ver uma mensagem dizendo que o sistema apresentou erro. Porém devemos lembrar também que para os desenvo

Livro 'Build Mobile' é uma boa dica para iniciantes em aplicações Web Mobile.

Imagem
Atualmente, para os desenvolvedores que trabalham como Web, é inevitável estar a par do mundo Mobile e até mesmo ter que desenvolver para ele. Apesar de alguns autores afirmarem que 'só existe uma Web' e que não devemos separar o que é Mobile do que não o é, a realidade é outra. Mesmo para profissionais experientes que trabalham com Web há anos adaptar-se ao mundo Mobile é bem complicado pois exige, além de conhecimentos específicos, ter que lidar com centenas de diferentes tipos de aparelhos, formatos e configurações, além de sérias limitações de banda e capacidade. Neste contexto é difícil encontrar material que mostre de 'cabo a rabo' como implementar sites e aplicações para Mobile. Assim o livro 'Build Mobile' da Sitepoint é um achado pois, assim como o livro ' PHP Master ', da mesma editora, sua leitura é agradável além de trazer um passo a passo para desenvolver ou adaptar sites e aplicações. Além disso ele traz dicas para enfrentar os p

Livro 'PHP Master' é uma boa dica para quem quer se aprimorar na linguagem.

Imagem
Os livros de programação e TI não são literatura e por isso geralmente são bem difíceis de ler de cabo a rabo. É comum lermos um ou outro capítulo que nos interessa mais e de vez em quando consultá-lo para tirar alguma dúvida. Além disso hoje é mais fácil consultar o Google e encontrar um código ou exemplo pré-pronto e adapta-lo, muitas vezes na tentativa e erro, do que ler um livro sobre o assunto. Porém de vez em quando é interessante ler um livro não apenas para resolver questões técnicas específicas ou um problema pontual mas para adquirir fundamento teórico sobre o que estamos trabalhando, algo que não necessariamente um tutorial será o suficiente. Assim ler um livro técnico sobre determinado assunto acaba sendo uma opção inteligente, especialmente se é uma tecnologia ou assunto muito novo. 'PHP Master' da Sitepoint é um tipo de livro destes que você deve ler do começo ao fim. Ele é dedicado a programadores PHP intermediários ou que sabem algo sobre orientação a

Estrutura de diretórios do Linux

Imagem
Para os iniciantes ou mesmo aqueles que como eu não tem o costume de decorar as coisas segue um interessante esquema da estrutura de pastas do Linux e suas principais utilizações dentro do sistema.

MySQL - Cálculo de período de tempo entre duas datas com TIMESTAMPDIFF

Imagem
Muitas vezes precisamos saber quantos dias se passaram desde que um dado registro entrou no banco de dados ou outros cálculos com datas e horas que precisemos agrupar em dias, meses, horas e etc. Este tipo de informação geralmente é útil nos processos de limpeza e backup de dados mas também em outras situações como a exibição de dados para um usuário. Geralmente este procedimento é delegado ao software que lê o banco de dados e realiza as operações necessárias, seja para backup, limpeza ou exibição de dados. Porém o MySQL possui uma função interessante para efetuar este tipo de procedimento diretamente na query do banco de dados, o que é mais natural já que se trata de um dado. A função TIMESTAMPDIFF() do MySQL calcula o tempo decorrido entre duas datas que pode ser em dias, meses, minutos e etc. A lista completa segue abaixo: FRAC_SECOND (microsegundos), SECOND (segundos), MINUTE (minuto), HOUR (hora), DAY (dia), WEEK (semana), MONTH (mês), QUARTER (trimestre),

HTML5 - Utilizando a tag cite de maneira correta.

Imagem
Existe muita dúvida sobre o uso da tag <cite>. Alguns sites tem usado a tag <cite> para marcar o nome dos usuários que deixam comentários (por exemplo aqueles que usam o WordPress), outros utilizam a tag para marcar o autor de uma frase ou citação e existem ainda aqueles que usam <cite> para marcar frases e citações. Nos casos descritos acima não é recomenrado o uso da tag <cite>. Na verdade a tag <cite> deve ser utilizada marcar títulos de livros, filmes, obras de arte, músicas, peças de teatro, fotos, jornais, revistas e etc. Para citações e frases podemos usar as tags <blockquote> e <q>. Exemplos corretos: <p>João está lendo <cite>O senhor dos Anéis</cite> enquanto escuta <cite>A Quinta Sinfonia</cite></p> <p>A pintura <cite>Mona Lisa</cite> está no Louvre.</p> Exemplos incorretos: <p><cite>Ser ou não ser, eis a questão</cite> é uma frase de