Javascript, Debugger e Logging Para Firebug

Cada vez mais me surpreendo com as possibilidades e o poder do javascript, na sua mais ampla forma de utilização.
A última foi a possibilidade e interação com o firebug, além de simplesmente substituir as funções de “alert();”, o que para muitos, não é nenhuma novidade.
Entre elas a possibilidade de procurar valores de variáveis em determinados pontos de códigos, exibir uma estrutura XML, e muitas outras. Aperfeiçoando a DX (Developer Experience).

firebug

Entre os exemplos mais simples encontrados temos:

console.log
A maneira mais fácil escrever para o console do Firebug, podendo passar tantos argumentos quanto você quer e eles serão unidos em uma fileira, conforme os exemplos: console.log(“hello world”) , console.log(2,4,6,8,”foo”,bar) .

 

 

 

 

 

 

Código de cores
Além console.log , existem várias outras funções que você pode chamar para imprimir mensagens com uma distinção colorido visual e semântica. Estes incluem console.debug , console.info , console.warn , e console.error .

 

 

 

 

 

 

Timing e profiling
O Firebug permite duas maneiras fáceis de medir o desempenho JavaScript. Uma delas é chamar o console.time(“timing foo”) antes do código que você quer medir, e então console.timeEnd(“timing foo”) depois.

O Firebug, então, registra o tempo que foi gasto entre elas. E o profiler JavaScript. Basta mandar para o console.profile() antes do código que você quer medir, e então console.profileEnd() depois, mais simples não! O Firebug irá registrar um relatório detalhado sobre quanto tempo foi gasto em cada chamada de função entre elas.

 

Como falei, as possibilidades são muitas e excelentes.

 

Fonte(s):
http://getfirebug.com/logging

Novo endereço

Peço a todos desculpas pela falta de postagem recentemente, mas o motivo foi nobre, a troca de endereço do blog que agora está em www.edersonmelo.com.

O novo blog está com o último post deste porém receberá atualizações constantes apartir de Quinta-Feira(29/10/2009).

www.edersonmelo.com


Conto com o acesso de todos na busca de um blog mais profissional e melhor.



Iniciativa Caelum na busca de emprego

A Caelum, renomada empresa em treinamentos e serviços estreou mês passado o site aondetrabalhar.com. A iniciativa visa ajudar alunos, profissionais e empresas que conhecem o trabalho da Caelum e possam confiar na busca de  profissionais cadastrados.

aondetrabalhar_edersonmelo

Segundo o blog.caelum.com.br de Fabio Kung:

A idéia principal do site é fazer as vagas atingirem os melhores desenvolvedores, de maneira simples. Pessoalmente, sempre achei irritante ter que preencher enormes formulários para poder começar a procurar por vagas. Pior ainda quando precisamos fazer upload de um arquivo do Word com o currículo!

A filosofia principal do site é simplicidade. Funciona como um job board (popular lá fora) e as empresas podem anunciar vagas de emprego a vontade. Detestamos burocracia: procurar boas oportunidades de emprego deve ser simples e fácil. Não é necessário se cadastrar, nem preencher formulários para buscar por vagas. Quer procurar por vagas de Java? De Ruby on Rails?

http://ondetrabalhar.com/java
http://ondetrabalhar.com/rails

Apenas em São Paulo?

http://ondetrabalhar.com/java/em/sao-paulo-sp

Estamos fazendo um trabalho forte de Search Engine Optimization (SEO) para fazer as vagas ficarem bem posicionadas nos principais mecanismos de busca. Além disso, fornecemos feeds para qualquer pesquisa e você pode acompanhar as vagas do seu agregador de RSS favorito. Em breve, também será possível receber emails com as vagas de interesse.

Outra enorme preocupação do OndeTrabalhar.com é fazer as vagas chegarem no público certo: os melhores desenvolvedores do mercado. Para isso, estamos fazendo diversos acordos com algumas das maiores comunidades de desenvolvimento do Brasil. Entre as que já posso citar estão o GUJ.com.br, o PortalJava, o RubyOnBr.org, o Ruby Inside Brasil e algumas comunidades de outras linguagens como PHP e Python ainda vem por aí. Em breve já aparecerão vagas de emprego do OndeTrabalhar.com em todos esses sites, inclusive por aqui no Blog da Caelum.

Caso exista alguma vaga aí na empresa onde trabalha, eu te peço um enorme favor: comente sobre o OndeTrabalhar.com ao responsável. Melhor ainda se você mesmo for o responsável e puder cadastrar a(s) vaga(s) por lá.

Se você tem interesse em fazer alguma parceiria conosco, para ter uma lista de vagas atualizada no seu site, blog, portal, ou comunidade, sem ter dor de cabeça tendo que gerenciar isso (inclusive remover vagas já preenchidas), entre em contato!

O OndeTrabalhar.com foi produzido pelo núcleo de Ruby on Rails da Caelum, do qual eu tenho um orgulho e felicidade enormes de ver crescendo!

Fonte:

blog.caelum.com.br de Fabio Kung

Abraço,
Ederson Melo – @edersonmelo

genealógia das linguagens de programação

Você alguma vez parou para pensar a origem, a raiz da linguagem que você está usando hoje? Eu não, até a achar um mapa, ou árvore genealógica das linguagens de programação.

mapa_linguagens_edersonmelo

É muito bacana, vou mandar imprimir em formato de pôster para por na parede (Sem comentários, sei que não tem nada mais nerd).

Download do pdf Aqui!

teste software bug

Ederson Melo

Exemplos em ajax

Começo pedindo desculpas pela falta de conteúdo, mas está tão corrido que algum lado sempre pende. Muito trabalho como freelancer, tem até fila de espera(acho que vou terceirizar 🙂 ).

Aproveitando vou deixar um ótimo site com muitas lib’s  e exemplos para quem gosta, quer ou tem que trabalhar com ajax.

ajax_rain_edersonmelo

O site ajaxrain, é a melhor escolha nas buscar por tais conteúdos.

Abraço,
Ederson Melo

Qual lib em javascript usar?

tando depois de alguns dias muito tumultuado, muita coisa para fazer e pouco tempo.

mootools

Começo esta semana desenvolvendo trabalhos novos e implementando correções nos antigos, muita correria e pouca grana, sobrando idéias em pouco tempo. É isso mesmo, to assim, perdido e atucanado.

jquery1
Mas tenho que escolher com qual biblioteca javascript devo permanecer para uso em todos os projetos. Encontrei tantas boas libs que ainda não consegui definir, mas sei que tenho que fazer isso o mais
rápido possível. Entre as melhores, estive olhando:
JQuery;
Prototype;
Dojo;
mootools;

E claro que muitas outras, mas estar encontrei vasto material o que ajuda mais a escolher. Bom farei aos poucos e quem sabe estarei postando por aqui algumas novidades.

prototype

Abraço,
Ederson Melo

Curso GD, Meu Jogo

Nesta sexta, recebi os exercícios do curso de GD, esse deu gosto de fazer, até porque tínhamos que desenvolver um game para a entrega no final do curso (Final de Dezembro).

Resolvi enviar uma proposta que acho bacana, trabalhando sobre educação sócia ambiental. A proposta é bem simples, você monta seu personagem e conhece a ilha. Após você escolher uma das opções liberadas para acesso, você começa a andar pela ilha e resolver as diversas opções apresentadas.

Pretendo desenvolver usando Java e javascript, ainda não tenho idéia exatamente do que e como usar, mas está a caminho.

Tela de proposta de projeto:

My Part
My Part

Para começo é isso, espero poder evoluir e liberar para jogo em Dezembro se tudo der certo.

Abraço,
Ederson Melo

Abuso e uso em sites com Ajax

O desenvolvimento de aplicações com ajax vem se tornando mais e mais vital no desenvolvimento de sites. A capacidade de trazer conteúdo de forma elegante e dinâmica para os usuários tem agradado a todos.

Mas claro que sempre cometemos erros ao desenvolver utilizando-se do Ajax. Estava garimpando sobre o assunto e localizei algumas questões que deveríamos evitar:
* Múltiplos usuários: Se sua aplicação é utilizada por múltiplos usuários, tome cuidado pois podem haver problemas de um visualizar dados por parte dos outros.

* Deixar os usuários off-line de lado: A cada dia existem mais e mais usuários com acesso a internet, e nem por isso iremos desenvolver sites para usuários que fazem uso dela, devemos também pensar em usuários que fazem uso de conteúdo off-line, pois com Ajax, o conteúdo é carregado de forma dinâmica, e não teria o mesmo efeito com que navega off-line.

* Ajax é uma ferramenta, e não um brinquedo: Muitas vezes os desenvolvedores fazem o uso desnecessário de Ajax, onde um simples HTML resolveria tudo.

* Comece bem com o botão voltar do navegador: Este botão é necessário para a Usabilidade, e o JavaScript não se dá muito bem com ele.

* Não avisar ao usuário que ocorreu uma ação: Quando o usuário clica em uma área da página e ocorre uma ação, isso deveria ser avisado a ele para que saiba que os dados estão sendo atualizados.

* Deixar o usuário esperando: o ‘A’ de Ajax significa assíncrono, não é necessário que o usuário faça algo para obter dados, nós podemos adiantar sua ações e realizar requisições para obter dados e com isso o usuário não tem que ficar aguardando a resposta.

* Enviar informações simples de forma visível: Em muitas ocasiões enviamos ao navegador os mesmos dados que foram recebidos pela aplicação, a diferença é que a aplicação filtra os dados e nos mostra o que convém. No navegador, embora nem todos mostrem, caso seja apresentado será mostrado.

* Assumir que Ajax é uma plataforma única: Você deve testar suas aplicações Ajax em distintas plataforma que permitem isso, ou seja, em diversos browsers.

* Excessivo trabalho para o navegador: As vezes o uso excessivo de aplicações Ajax faz com que o browser tenha que executar muitas tarefas, e isso pode não ser bom para o rendimento de uma aplicação.

* Esquecer daqueles que navegam com JavaScript desabilitado: Segundo as estatísticas, 11% dos usuários de Internet navegam com JavaScript desabilitado, por isso é bom pensar em uma alternativa ao Ajax.

* Não utilizar links: Ao carregar conteúdo dinâmico, não esquecer de mostrar os links que levam a esse conteúdo.

* Sair do comum em relação a Usabilidade: Ao permitirmos realizar ações pouco habituais, nos encontramos com a circunstância de que esperamos que o usuário realize uma ação que ele não esperava ser feita. As pessoas estão acostumadas a realizar sempre as mesmas ações.

* Não realizar alterações em cascata: Não devemos esquecer de que quando alteramos parte do conteúdo da página, devemos alterar também partes relacionadas.

Fonte: Sentido Web

Abraço,
Ederson Melo

CMS’s

Procurando sobre CMS’s desenvolvidos em php, para ter uma idéia melhor da quantidade que temos disponíveis, achei uma lista completa na wiki. Coloquei a lista mais abaixo para quem deseja conferir.

E claro, aprendi um pouco mais sobre CMS.

CMS é a sigla para Content Management System, ou em bom português, Sistema Gerenciador de Conteúdo.

Um CMS tem como objetivo facilitar a criação, edição, publicação e distribuição de informação.

Características na maioria dos CMS:

  1. Suporte a múltiplos usuários (registro, gerenciamento e atribuição de papéis a vários usuários).
  2. Edição de conteúdo facilitada.
  3. As funcionalidades iniciais podem ser ampliadas ou novas podem ser adicionadas através de plugins e/ou módulos.
  4. Gerenciamento e controle de documentos através de publicação, revisão, arquivamento e eliminação de documentos.
  5. Camada de apresentação gerenciada através de templates, permitindo a troca rápida da interface independente do conteúdo.
  6. Controle de Fluxo. Por exemplo, um usuário pode enviar um artigo para um site, mas este não é publicado imediatamente, até que seja revisto por um editor e depois aprovado por um editor-chefe.

Em 1995, a CNET, uma empresa de mídia web, resolveu comercializar seu CMS através de uma empresa à parte, denominada Vignette, iniciando assim o comércio de gerenciadores de conteúdo.

Nome Plataforma BD Suportados Licenças
AdaptCMS Lite PHP MySQL GPL
Alfresco Java MySQL, Oracle, SQL Server, PostgreSQL, Informix GPL & Commercial
Apache Lenya Java, XML, Apache Cocoon Apache

License

Aqua CMS PHP MySQL GPL
AxCMS.net ASP.net Microsoft SQL Server 2005 or above free
b2evolution PHP MySQL GPL
BLOG:CMS PHP MySQL GPL
blosxom Perl Flat-file database MIT
Bricolage Perl PostgreSQL BSD
Byteflow Python, Django PostgreSQL, MySQL, SQLite, Oracle BSD
CivicSpace PHP MySQL Open source, detail

unknown

CMSimple PHP Flat-file database Affero
CMS made simple PHP MySQL, PostgreSQL GPL
concrete5 PHP MySQL MIT
Contrexx Open Source edition PHP MySQL Free for non-

commercial

use

Cyclone3 Perl, XUL, JavaScript, C, Java MySQL and any Perl DBI GPL
Daisy Java, XML, Apache Cocoon MySQL Apache

License

Dokuwiki PHP Flat-file database GPL
DotClear PHP MySQL, PostgreSQL GPL
DotCMS Java MySQL, MSSQL, PostgreSQL, Oracle GNU GPL v2
DotNetNuke ASP.NET Microsoft SQL Server (out-of-the-box) or any data storage system (each storage system needs a custom data provider to be installed) BSD
Drupal PHP MySQL or PostgreSQL GPL
e107 PHP MySQL GPL
Exponent PHP MySQL/PostgreSQL GPL
ExpressionEngine PHP MySQL Free “Core” version for

non-

commercial use

eZ Publish PHP MySQL/PostgreSQL/Oracle/Microsoft SQL Server GPL
Fedora Java MySQL or Oracle Educational Community License
Frog CMS PHP5 MySQL or SQLite MIT License
GX WebManager Community Edition Java MySQL or SQLite Free for

non-

commercial use

Habari PHP MySQL, PostgreSQL, SQLite Apache License
ImpressCMS PHP MySQL GPL
Jahia Java HyperSonic SQL, PostgreSQL, MySQL, Oracle JCDDL and JSSL
jAPS – java Agile Portal System Java HyperSonic SQL, PostgreSQL GPL
Joomla! PHP MySQL GPL
Liferay Java Apache Derby, DB2, HyperSonic SQL, Informix, InterBase, JDataStore, MySQL, Oracle, PostgreSQL, SAP, SQL Server, Sybase MIT
KnowledgeTree Document Management System PHP MySQL GPL
Lyceum PHP MySQL GPL
Magnolia Java JCR GPL
Mambo PHP MySQL GPL
MediaWiki PHP MySQL, PostgreSQL GPL
MiaCMS PHP MySQL GPL
Midgard CMS PHP (Midgard framework) MySQL LGPL
MODx PHP MySQL GPL
MoinMoin Python Flat-file database GPL
Movable Type Perl, mod_perl, FastCGI MySQL or MS SQL server or Oracle or PostgreSQL or SQLite GPL
Nucleus CMS PHP MySQL GPL
Nuxeo CPS Python ZODB GPL
Nuxeo EP Java PostgreSQL, MySQL, Oracle, SQL Server, Ingres LGPL
OneCMS PHP MySQL GPL
OpenACS TCL AOLserver PostgreSQL/Oracle GPL
OpenCms Java MySQL, Oracle, PostgreSQL, SQL Server, DB2, HSQL LGPL
Opus PHP MySQL GPL
Phenotype PHP + Smarty MySQL GPL
phpCMS PHP Flat-file database GPL
PHP-Fusion PHP MySQL GPL
PHP-Nuke PHP MySQL GPL
PHPSlash PHP GPL
phpWCMS PHP MySQL GPL
phpWebSite PHP MySQL or PostgreSQL LGPL
PhpWiki PHP Flat-file database/MySQL/PostgreSQL etc. GPL
Plone Python ZODB, SQLite, PostgreSQL, MySQL, Oracle via Zope GPL
PmWiki PHP Flat-file database GPL
PostNuke PHP MySQL GPL
PyLucid Python MySQL, PostgreSQL, SQLite GPL
Radiant Ruby MySQL, PostgreSQL, SQLite MIT
Scoop Perl on mod_perl MySQL GPL
Serendipity PHP + Smarty SQLite, PostgreSQL, MySQL, MySQLi BSD
SilverStripe PHP MySQL BSD
SiteFrame PHP + Smarty MySQL Creative Commons
Slash Perl on mod_perl MySQL GPL
SPIP PHP MySQL GPL
TangoCMS PHP MySQL GNU/GPL 2
Textpattern PHP MySQL GPL
TGS Content Management PHP MySQL GPL
TikiWiki CMS/Groupware PHP MySQL and others using ADOdb LGPL
Tribiq CMS PHP MySQL GPL
TWiki Perl Plain files (under version control) GPL
Typo Ruby on Rails MySQL, PostgreSQL, SQLite MIT
TYPO3 PHP MySQL, PostgreSQL, Oracle GPL
Quick.Cms.Lite PHP Flat-file database Creative Commons Attribution 2.5
WebGUI Perl on mod_perl MySQL GPL
whCMS PHP MySQL GPL
WordPress PHP MySQL GPL
Xaraya PHP with XHTML/XML/XSLT MySQL, PostgreSQL, SQLite using ADOdb and Microsoft SQL Server with Creole GPL
XOOPS PHP + Smarty MySQL GPL
XOOPS Cube PHP + Smarty MySQL BSD
Zena Ruby MySQL MIT

Fontes:

http://www.marcusvbp.com.br

http://pt.wikipedia.org

Abraço,
Ederson Melo

Guia de consultas Novo

Na área de desenvolvimento web(DW) e web design(WD) a busca por atualização e conhecimento do mercado e técnicas, muitas vezes em outras regiões ou em outros países, acabamos por conhecer comunidades e novos estilos, tendências(não é blog de moda).  Que seram mais tarde utilizadas aqui, ou não. 

Na busca constante de novos conteúdos, atualização e informações sobre o que está rolando no mundo, encontrei mais um link muito bom, ajax.solutoire.com. Com muito conteúdo ajax e novas formas de tratamento de interfaces, interações com usuários, etc…

http://ajax.solutoire.com/

 

 

 

ajax.solutoire.com
ajax.solutoire.com

 

 

 

Abraço,
Ederson Melo