<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0"><channel><title>WBlog</title><link>http://blogs.dextra.com.br/wblog</link><description>web design, padrões web e desenvolvimento web</description><language>en</language><generator>http://wordpress.org/?v=2.7.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dextra-wblog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Woopra - Concorrente do Google Analytics</title><link>http://blogs.dextra.com.br/wblog/2009/woopra-concorrente-do-google-analytics/</link><category>Geral</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">admin</dc:creator><pubDate>Fri, 17 Jul 2009 07:03:35 PDT</pubDate><guid isPermaLink="false">http://blogs.dextra.com.br/wblog/?p=34</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img title="Woopra - Ritch Analytics" src="http://blogs.dextra.com.br/wblog/wp-content/uploads/2009/07/woopra.jpg" alt="" width="300" height="178" align="left" />­­</p>
<h2>Apresentando… Woopra­</h2>
<p>­Foi lançado recentemente um concorrente de peso para o Google Analytics, Woopra.</p>
<p>Woopra é um sistema de web estatísticas e web tracking digno de notícia.</p>
<p>Segue abaixo alguns dos recursos e detalhes que você só pode conhecer usando, e são eles:</p>
<ul>­</p>
<li><a href="http://www.woopra.com/features.jsp#live_tracking">Live­ Tracking </a><br />
Retrear a ação dos seus visitantes em tempo real.</li>
<li><a href="http://www.woopra.com/features.jsp#rich_interface">Rich Interface</a><br />
Combinação perfeita entre design e informação rica.</li>
<li><a href="http://www.woopra.com/features.jsp#visitor_tagging">Visitor Tagging</a><br />
Sistema permite que você atribua tags a determinado grupo de usuários para poder gerar relatórios.</li>
<li><a href="http://www.woopra.com/features.jsp#web_chat">Instant Messaging</a><br />
Ótimo recurso, principalmente para quem tem blogs, permite que você abra uma sessão de chat com o seus visitantes em tempo real.</li>
<li><a href="http://www.woopra.com/features.jsp#real_time_analytics">Real-time Analytics</a><br />
Estatísticas em tempo real.</li>
<li><a href="http://www.woopra.com/features.jsp#notifications">Custom Notifications</a><br />
Com este recurso você pode criar notificações para você de acordo com<br />
que os visitantes entram e saem, inclusive avisar quando um determinado<br />
visitante ou um visitante de um determinado país entra.</li>
<li><a href="http://www.woopra.com/features.jsp#developer_tools">Developer Tools</a><br />
Para os que gostam de criar suas aplicações personalizadas e usufruir dos dados de uma outra forma, o <a title="Woopra Oficial" href="http://www.woopra.com/" target="_blank">Woopr­a</a> disponibiliza a sua <span class="caps">API</span> para o uso.</li>
</ul>
<p><a href="http://www.woopra.com" target="_blank">Para mais informações: http://www.woopra.com </a>­</p>
<p>Enviado por: <strong>Vinicius Santos</strong>,<br />
Web Developer da Dextra Sistemas</p>
]]></content:encoded><description>­­
Apresentando… Woopra­
­Foi lançado recentemente um concorrente de peso para o Google Analytics, Woopra.
Woopra é um sistema de web estatísticas e web tracking digno de notícia.
Segue abaixo alguns dos recursos e detalhes que você só pode conhecer usando, e são eles:
­
Live­ Tracking 
Retrear a ação dos seus visitantes em tempo real.
Rich Interface
Combinação perfeita entre design e [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.dextra.com.br/wblog/2009/woopra-concorrente-do-google-analytics/feed/</wfw:commentRss></item><item><title>Devemos deixar de usar máscaras nos campos de senha?</title><link>http://blogs.dextra.com.br/wblog/2009/devemos-deixar-de-usar-mascaras-nos-campos-de-senha/</link><category>Geral</category><category>captura de tela</category><category>checkbox</category><category>máscaras</category><category>senhas</category><category>usabilidade</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">admin</dc:creator><pubDate>Mon, 29 Jun 2009 06:39:04 PDT</pubDate><guid isPermaLink="false">http://blogs.dextra.com.br/wblog/?p=27</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img src="http://blogs.dextra.com.br/wblog/wp-content/uploads/2009/06/captura_de_tela.png" alt="Captura de tela" title="Captura de tela" width="357" height="60" class="alignnone size-full wp-image-29" /></p>
<p>Em seu <a href="http://www.useit.com/alertbox/passwords.html">artigo desta semana</a>, Jakob Nielsen – um dos mais conceituados profissionais da Usabilidade – propõe que paremos de utilizar máscaras em campos de senha.</p>
<p>Para ele, as máscaras de senha não aumentariam a segurança, visto que qualquer mal-intencionado habilidoso poderia olhar para o teclado e guardar quais teclas compõe a senha. Por outro lado haveria um custo (de usabilidade) no uso dessas máscaras relacionado às repetidas falhas no login. A afirmação está baseada em uma das <a href="http://www.useit.com/papers/heuristic/heuristic_list.html">10 heurísticas de usabilidade</a> que diz respeito a dar um “feedback” correto ao usuário sobre o que está acontecendo no sistema.</p>
<p>A solução que ele propõe não é ruim: um checkbox ao lado do campo para colocar a máscara ou não, de acordo com a necessidade do usuário, mas aberta por padrão.</p>
<p>Gosto de provocações deste tipo, que nos fazem pensar, e a solução é inteligente; mas acho a proposta pouco viável. Acredito que tenha grande importância considerar:</p>
<p>1. Experiência padrão: os usuários já se acostumaram com a existência das máscaras, e há um risco óbvio em modificá-lo por essa razão; a menos que modifiquem o padrão de renderização dos navegadores, ou esta solução tenha muitos adeptos e se popularize, utilizar isto em uma aplicação teria um choque nos usuários o qual, julgo, não deve ser desconsiderado;</p>
<p>2. Sensação de segurança: baseado nesse experiência padrão, a sensação de segurança de um usuário com o campo bloqueado é maior do que com o campo aberto. Assim, fica difícil implantar uma solução que deixe a senha aberta especialmente em sites públicos (talvez seja mais fácil em aplicações corporativas de redes internas), dado que há um risco dos usuários temerem pela segurança e não acessarem o sistema.</p>
<p>Discutindo aqui na Dextra, alguns desenvolvedores questionaram se o problema está realmente no campo de senha, já que para eles a experiência ruim para o usuário seria o fato de ter que colocar usuário e senha sempre. Seguindo esta lógica, iniciativas como lembrar senha e autenticação unificada (via OpenID ou algo semelhante que possa vir a se consolidar) teriam mais ganhos.</p>
<p>De qualquer forma, faremos alguns testes com usuários e contaremos o resultado.</p>
<p>O que vocês acham?</p>
<p>Enviado por: <strong>André Pasti</strong>,<br />
Web Developer da Dextra Sistemas</p>
]]></content:encoded><description>Em seu artigo desta semana, Jakob Nielsen – um dos mais conceituados profissionais da Usabilidade – propõe que paremos de utilizar máscaras em campos de senha.
Para ele, as máscaras de senha não aumentariam a segurança, visto que qualquer mal-intencionado habilidoso poderia olhar para o teclado e guardar quais teclas compõe a senha. Por outro lado [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.dextra.com.br/wblog/2009/devemos-deixar-de-usar-mascaras-nos-campos-de-senha/feed/</wfw:commentRss></item><item><title>Técnicas para criação e manutenção de arquivos css em um ambiente de desenvolvimento coletivo</title><link>http://blogs.dextra.com.br/wblog/2009/tecnicas-para-criacao-e-manutencao-de-arquivos-css-em-um-ambiente-de-desenvolvimento-coletivo/</link><category>Geral</category><category>css</category><category>desenvolvimento web</category><category>Dextra</category><category>manutenção</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">admin</dc:creator><pubDate>Mon, 25 May 2009 12:27:32 PDT</pubDate><guid isPermaLink="false">http://blogs.dextra.com.br/wblog/?p=9</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<style>pre{font-family:"Courier New", Courier, monospace;font-size:12px;background:#ccc;border:1px dashed #666;	display:block;padding:20px;}</style>
<p>Escrever e manter arquivos de formatação css só parece simples no  início. Conforme o projeto vai crescendo, novas solicitações de alterações são sugeridas pelo cliente. O tempo sempre exíguo muitas  vezes leva a soluções mais rápidas mas, quase sempre conceitualmente  erradas. O que era para ser solução, a possibilidade de determinar em  um único local os atributos de um objeto html, torna-se um problema  pelo seu efeito em cascata. Se este cenário já é caótico, imagine  trabalhar e manter estes arquivos em um time de desenvolvimento, com  profissionais com experiências e estilos diversos. É preciso definir um  padrão e regras claras e simples de desenvolvimento.</p>
<p> <strong>Modularização</strong></p>
<p>Uma abordagem possível é dividir os arquivos css em módulos. Por  exemplo, agrupar as definições de fontes, cor, posicionamento (layout),  formulários e navegação (menus) em arquivos diversos. Depois, pode-se  definir um arquivo index.css e colocar todos juntos utilizado o  elemento @import url(&#8217;fonts.css&#8217;), por exemplo.</p>
<p>Esta é uma boa técnica, ajuda bastante na manutenção do código. Porém,  exige um grau alto de organização e gera um trabalho inicial extra,  pois algumas, senão todas as classes, ids e tags terão que ser escritas  várias vezes em arquivos diversos.</p>
<p> <strong>Ex:</p>
<p>main.css</strong> </p>
<pre>h1{
&nbsp;&nbsp; &nbsp;font-size: 10px;
&nbsp;&nbsp; &nbsp;color: black;
&nbsp;&nbsp; &nbsp;margin: 10px 0;
}</pre>
<p>No método modular:</p>
<p> <strong>font.css</strong> </p>
<pre>h1{
&nbsp;&nbsp; &nbsp;font-size: 10px;
}</pre>
<p> <strong>color.css</strong> </p>
<pre>h1{
&nbsp;&nbsp; &nbsp;color: black;
}</pre>
<p> <strong>layout.css</strong> </p>
<pre>h1{
&nbsp;&nbsp; &nbsp;margin: 10px 0;
}</pre>
<p>A vantagem é óbvia: para mudar a cor de uma tag, basta abrir o arquivo color.css. A <em>manutenibilidade</em> aumenta em razão proporcional a qualidade do esforço inicial.  Recomendável somente para projetos que sofrerão diversas alterações ou  que posteriormente necessitarão de manutenção. Além do trabalho inicial  maior, outra desvantagem desta técnica é a quantidade multiplicada de  requisições http. Em sites com muitos acessos que precisem economizar  cada bit, esta técnica pode não ser a mais adequada. Porém há uma  vantagem adicional: a possibilidade de usar alguns arquivos em outros  projetos, aproveitando definições de classes e ids. E isto leva a idéia  da definição de um padrão, de um framework em css, como mostra este <strong><a id="m2y." href="http://www.contentwithstyle.co.uk/content/a-css-framework" target="_blank" title="artigo">artigo</a></strong>.</p>
<p> <strong>Código auto-documentado</p>
<p> </strong>A idéia é usar classes e ids com nomes semânticos, ou seja, que  tenham significado. Além de ser uma prática recomendável na edição de  documentos html bem escritos, também é uma técnica de <strong>SEO</strong> (search engine optimization) que melhora a classificação das páginas  nos sistemas de busca. Definir o caminho absoluto de um objeto protege  o restante das aplicações de heranças indesejáveis.</p>
<p>Por exemplo, considere a seguinte estrutura.</p>
<pre>
&nbsp;&nbsp; &nbsp;&lt;div id="header"&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;ul id="menu"&gt;&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;li&gt;&lt;p&gt;[...]&lt;/p&gt;&lt;/li&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;[...]
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;li&gt;&lt;p&gt;[...]&lt;/p&gt;&lt;/li&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/ul&gt;
&nbsp;&nbsp; &nbsp;&lt;/div&gt;
&nbsp;&nbsp; &nbsp;&lt;div id="content"&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p&gt;[...]&lt;/p&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;
&nbsp;&nbsp; &nbsp;&lt;div id="footer"&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p&gt;[...]&lt;/p&gt;
&nbsp;&nbsp; &nbsp;&lt;/div&gt;&gt;
</pre>
<p>
div#header é mais legível que #header, pois neste caso fica claro que a  regra css estará associada somente a uma div cujo id é &quot;header&quot;. Se  tivessemos definido a regra somente como #header, ela poderia ser usada  por qualquer elemento html. Por isso, div#header ul#menu p{color:red}  vai aplicar a cor vermelha somente na tag p que estiver dentro da  ul#menu, que por sua vez está dentro da div#header, e não nas outras  tags que aparecem em content e footer. Desse modo, além de conseguir  escrever um código mais legível para a equipe, adicionalmente evitamos  a propagação em cascata da propriedade para outras tags da página  (técnica da caixa-de-areia).</p>
<p> <strong>Do geral para o específico</p>
<p> </strong>Mas a beleza e poder do css está justamente na propagação em  cascata, na herança. Ou seja, é a possibilidade de indicar em um único  lugar atributos que afetarão todo sistema. Tendo isto em mente,  acredito que uma boa prática é partir do geral para o o específico.  Definir, logo no início do arquivo, propriedades que serão usadas em  toda aplicação, notadamente definições de fontes e cores de letras  atribuídas a elementos básicos como h1, h2, h3 até h6, p, span, td, tr,  hr, etc.<strong> </p>
<p>Um arquivo css para cada página? Não!</p>
<p> </strong>O maior problema de definir um css para cada página é o aumento da  quantidade de requisições ao servidor e diminuição da manutenibilidade  do sistema devido a inevitável redundância que fatalmente ocorrerá.  Além disso, é mais fácil dar manutenção em um único arquivo do que em  dezenas deles.</p>
<p> <strong>Comentários</strong></p>
<p>Se usarmos comentários aliados a técnica da caixa-de-areia não precisaremos lançar mão de vários arquivos css:</p>
<p> </p>
<pre>/* cadastro de clientes : begin */
div.cadastroDeClientes{
    padding: 10px 0 0 5px;
    margin: 0;
    background: #ccc;
}
    /* box begin */
    div.cadatroDeClientes div {
    padding: 0 5px;
    margin: 0;
    }
        div.cadastroDeClientes div p{
            font-size: 12px;
        }
    /* box end */
/* cadastro de clientes : end */
</pre>
<p>
O código comentado ajuda no consumo posterior do css por outros membros  da equipe. A identação, simulando a hierarquia das tags html, aumenta a  legibilidade do código. Tudo isto junto evita a redefinição de  propriedades em locais impróprios, como no fim do arquivo css, que se  por um lado sobrescrevem atributos anteriormente declarados, geram  efeitos e defeitos imprevisíveis. A utilização destas técnicas darão ao  desenvolvedor pistas concretas e legíveis do local exato onde deve  proceder com as alterações sem que elas propaguem incontrolavelmente  por toda a aplicação. Adicionalmente, sobrescrever, dentro de cada  definição, elementos de layout (margin, padding, position, display,  float, etc) evita problemas de layout ocasionados por herança.</p>
<p> <strong>Ressetando o CSS<br /> </strong><br />
Outra sugestão é usar sempre um <strong><a id="txkj" href="http://developer.yahoo.com/yui/reset/" target="_blank" title="arquivo">arquivo</a></strong> para neutralizar propriedades indesejáveis de layout definidas como  padrão e de maneira não padronizada pelos diversos browsers.<strong></p>
<p>Nomenclatura padronizada</p>
<p> </strong>Nem sempre conseguimos dar bons nomes às classes e ids do css, nem  sempre há tempo hábil ou inspiração para isto. Porém, estas definições  são fundamentais para a legibilidade e posterior manutenção e  desenvolvimento conjunto do código. Parte do problema pode ser  resolvido definindo um framework, já que provavelmente poucas coisas  novas surgirão no desenvolvimento de vários projetos e boa parte do  código poderá ser re-utilizado. </p>
<p> <strong>Revisão do código</p>
<p> </strong>Equipes estáticas são teóricas, não existem no mundo real.  Na verdade, parece ser bastante comum a entrada e saída de novos  membros no decorrer dos projetos. Membros novos, sem a devida  orientação, tenderão a cometer falhas. O código comentado e devidamente  organizado minimizará este problema, mas não o solucionará  completamente. Níveis diversos de conhecimento<strong> </strong>e<strong> </strong>experiência, aliados a urgência podem também conduzir a defeitos e soluções funestas.  Criar um fluxo de trabalho onde o código seja continuamente revisado  pelos membros da equipe pode contribuir positivamente para minimizar  defeitos.</p>
<p> <strong>Conclusão</p>
<p> </strong>Longe de almejar uma resposta definitiva, o objetivo deste texto é apresentar técnicas para a elaboração de guidelines simples, fáceis e úteis, tendo como foco a redução de problemas de layout gerados  por efeitos de propagação da herança do CSS, do comportamento diferenciado dos diversos browsers e da conjunção destas variáveis com outras que surgem ao realizar este trabalho coletivamente.</p>
<p> <strong>Referências:</strong> </p>
<ul>
<li><a id="c8l0" href="http://www.contentwithstyle.co.uk/content/modular-css" target="_blank" title="http://www.contentwithstyle.co.uk/content/modular-css">http://www.contentwithstyle.co.uk/content/modular-css</a></li>
<li><a id="ifrh" href="http://www.contentwithstyle.co.uk/content/playing-nice-with-the-other-css-kids" target="_blank" title="http://www.contentwithstyle.co.uk/content/playing-nice-with-the-other-css-kids">http://www.contentwithstyle.co.uk/content/playing-nice-with-the-other-css-kids</a></li>
<li><a id="e3zo" href="http://www.contentwithstyle.co.uk/content/a-css-framework" target="_blank" title="http://www.contentwithstyle.co.uk/content/a-css-framework">http://www.contentwithstyle.co.uk/content/a-css-framework</a></li>
<li><a id="z5es" href="http://developer.yahoo.com/yui/reset/" target="_blank" title="http://developer.yahoo.com/yui/reset/">http://developer.yahoo.com/yui/reset/</a></li>
<li><a id="c-gz" href="http://stopdesign.com/archive/2005/05/03/css-tip-flags.html" target="_blank" title="http://stopdesign.com/archive/2005/05/03/css-tip-flags.html">http://stopdesign.com/archive/2005/05/03/css-tip-flags.html</a></li>
<li><a id="n6_m" href="http://stopdesign.com/archive/2005/03/04/staying-organized.html" target="_blank" title="http://stopdesign.com/archive/2005/03/04/staying-organized.html">http://stopdesign.com/archive/2005/03/04/staying-organized.html</a></li>
</ul>
<p>Enviado por:<strong> Antônio Jozzolino</strong>,<strong><br />
</strong>Web Developer da Dextra Sistemas<strong><br />
</strong></p>
]]></content:encoded><description>pre{font-family:"Courier New", Courier, monospace;font-size:12px;background:#ccc;border:1px dashed #666;	display:block;padding:20px;}
Escrever e manter arquivos de formatação css só parece simples no  início. Conforme o projeto vai crescendo, novas solicitações de alterações são sugeridas pelo cliente. O tempo sempre exíguo muitas  vezes leva a soluções mais rápidas mas, quase sempre conceitualmente  erradas. O que era para ser solução, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.dextra.com.br/wblog/2009/tecnicas-para-criacao-e-manutencao-de-arquivos-css-em-um-ambiente-de-desenvolvimento-coletivo/feed/</wfw:commentRss></item><item><title>Apresentação</title><link>http://blogs.dextra.com.br/wblog/2009/apresentacao/</link><category>Geral</category><category>apresentação</category><category>Dextra</category><category>WBlog</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">admin</dc:creator><pubDate>Wed, 29 Apr 2009 05:35:26 PDT</pubDate><guid isPermaLink="false">http://blogs.dextra-inc.com/wblog/?p=1</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>A partir da proposta da Dextra de criar este portal de Blogs, estreamos agora o <strong>WBlog</strong>, com a proposta de discutir desenvolvimento web, web design, padrões web, usabilidade&#8230; Traremos tópicos principalmente de tecnologias como HTML, CSS, JavaScript, AJAX, e experiências e reflexões sobre o dia-a-dia do desenvolvimento de aplicações web.</p>
<p>Sejam todos bem vindos!</p>
<p>Equipe de Desenvolvimento de Interfaces - Dextra</p>
]]></content:encoded><description>A partir da proposta da Dextra de criar este portal de Blogs, estreamos agora o WBlog, com a proposta de discutir desenvolvimento web, web design, padrões web, usabilidade&amp;#8230; Traremos tópicos principalmente de tecnologias como HTML, CSS, JavaScript, AJAX, e experiências e reflexões sobre o dia-a-dia do desenvolvimento de aplicações web.
Sejam todos bem vindos!
Equipe de Desenvolvimento [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.dextra.com.br/wblog/2009/apresentacao/feed/</wfw:commentRss></item></channel></rss>
