29/05/2008

Mundança de endereço

Devido a uma série de reclamações de amigos e minhas estou mudando o meu blog para o http://thiagomata.blogspot.com/

Sei que este endereço é mais facil mas as limitações dos recursos me fizeram tomar esta decisão.

Para saber mais clique no link que será o qual eu estarei alimentando a partir de agora.

Quando possível, devo transportar alguns dos posts para lá.


Abraços.
Escrito por blaine em 02:29:05 | Link permanente | Comments (0) |

28/05/2008

WEB 2099.0

Web 2.0, 3.0 , 4.0 ?? Ei!!

Alguém chamar de web 2.0 ou 3.0 é a principio uma falta de noção somada com uma falta de conhecimento sobre controle de versão.

Toda a web que rodava no primeiro navegador da história ainda é compatível então não faz o menor sentido se dizer que saímos da "versão" 1.

Querer versionar "a web" é tão estúpido quanto versionar mulheres ou versionar uma língua. As mulheres de hoje em dia são 2.1 ? Elas falam o português 3.5 ? E o inglês 4.123.342.233 ?

As pessoas mudaram, a lingua mudou, a vida mudou mas isso não faz a nossa vida a vida 15.0, certo ?

Não tente versionar os recursos de ambientes complexos... eles interagem de maneira tão imprevisivel que não é nem de longe perto do que um software versionado representa.

Infelizmente algum infeliz resolveu nomear uma série de recursos "novos" de 1970, mas que ficaram mais populares recentemente, como "A WEB 2.0" .... Assim como alguém resolveu chamar o XmlRequest de "AJAX" tendo gente que fica até hoje surpresa por saber que O AJAX é puro javascript de 1980.

Fico sempre impressionado quando este tipo de "febre" sai dos meios publicitários de venda e chega até a ofertas de emprego...

Se tem algo que mudou a historia "A WEB" foi o flash... Mansinho... começando com um  banner bobo depois para hot sites e hoje temos sistemas flex, sistemas em PHP / JAVA/ .NET gerando swf como front end e demais aplicações que tem realmente recursos novos que nao eram possíveis no html. Video conferencia é algo novo.. é legal.. Jogos interativos via browser.. legal... Simular um nitendo wii movendo os braços em frente a sua web cam.. massa demais...

Mas Revolução ? Revolução ?? Qual é ?? Desistiu de ser Petista e virou blogueiro ? Todo revolucionário tem uma característica em comum.. ele odeia o velho e acredita que o novo é A SOLUÇÃO DOS PROBLEMAS.

Uma dica, não seja um revolucionário. Eles são chatos nas rodas e costumam virar velhos deprimidos. Quando não conseguem o que querem ficam frustados pelo fracasso quando conseguem descobrem na sua revolução os mesmos problemas da situação que antes existia. E não, eu não estou falando do PT.

Saber evoluir é saber aceitar o ambiente com as suas qualidades e restrições e ver um caminho para torna-lo melhor. Isso pode implicar em abandonar velhos costumes e adotar novas praticas.

Pare de tentar versionar idéias... web 1,2,3,4,5 é absurdo... Ninguém instala a web no computador... Não se tem a internet num disquete... As páginas disponíveis não são compatíveis entre sim.  Estude / Programe mais e escreva menos. Maioria das pessoas não teriam falado tanta besteira sobre ajax e web x.0 se estudassem a fundo as definições que "defendem".

Mas esta febre está longe de acabar. Blogs sobre web 3.0 estão ae... querendo de fato aparecer.. é a novidade... e temos até blogueiros profissionais.. que precisam de vender novidades...

Se eu fizer um site que vc precisa apenas conversar com ele para que ele possa responder suas perguntas ? Ele será o que ? 1.0 , 2.0, 3.0, 4.0 ? Me de um tempo.. o Site será 1.0 apenas porque está na sua primeira versão.



Se você escreve web 2.0 apenas para dizer que isso é um site com alguma inteligência, estamos então versionando sites. Ok é uma palavra pequena mas não leve isso a sério. Não diga em entrevistas que sabe web x.0, e nem peça isso ao seu entrevistado. Você pode saber Javascript, Requisições Assincronas, Padrões de Web regidos pela W3C, Página acessível segundo os critérios da UAAG 2.0.


Em breve teremos a Web 2099 que se tornará consciente e decidira destruir a humanidade. A SkyWeb ou será Skynet 1.0 ?


Escrito por blaine em 21:09:57 | Link permanente | Comments (0) |

17/03/2008

ACTION MONKEYS, SCREAM MONKEYS, IRON MONKEYS, BLOG MONKEYS

Muito do IE 8 foi feito em resposta ao Firefox 3, porque? Pq o Firefox 2 já é muito sinistro... Bom se vc sabe ingles veja isso AGORA http://www.scribemedia.org/2007/02/15/firefox-javascript-eich/ note que tem recursos desde os Javascript 2 os Canvas, 3D functions, Java virtual machine integrada dentre vários outros recuros excelentes....

O Firefox 3 está vindo ( Estou baixando a versão beta agora ) com vários recursos novos http://developer.mozilla.org/en/docs/Main_Page , muito legais mesmo, mas eu vou focar em um:

Javascript 2 com classes pacotes métodos e outros tantos recursos já bem conhecidos da galera do action script finalmente indo para o html.

Como se já não bastasse a Adobe doou a sua engine javascript para a Firefox o que permitirá que os códigos javascripts sejam executados na mesma velocidade e confiabilidade que os códigos flash tem hoje.

A Mozilla então tem hoje duas engines de javascript em desenvolvimento: a SpiderMonkeys que é a atualmente utilizada e a Tamarin que é a engine doada pela Adoba para a Mozilla.

O uso da engine da Adobe possibilitará uma execução muito mais rápida e rica em recursos como hoje é flash.  Mas eu sei o que você está pensando!!!  "Isso não vai funcionar no IE, eu vou perder mercado, as pessoas que acessam meu site mal sabem o que é uma pasta!! Elas lá vão entender que tem que baixar um navegador ??"

Isso é verdade, um excelente argumento mas eis que a vem A JOGADA INIMAGINAVEL:

A empresa Mozilla lança um projeto de fazer o Tamarin rodar em outros browsers além do Firefox.
( http://ajaxian.com/archives/mozilla-announces-screaming-iron-action-monkeys-tamarin-in-ie )

CARA!!! fantástico, uma programação única para javascript 2 cross browsers com 100% de compatibilidade garantida!! Isso não pode ficar melhor !! pode ??? SIM!!!!

O projeto IronMonkey http://wiki.mozilla.org/Tamarin:IronMonkey se baseia na idéia de você programar na sua linguagem favorita para client side e os compiladores geram o código que roda na Tamarin que então funcionará cross browser!!!

Perceba a possibilidade de programar em Java, C#, Ruby, Python no client side sem precisar de heróis do código desenvolvendo coisa como o PHP.JS ( http://kevin.vanzonneveld.net/techblog/article/phpjs_licensing/ ) cujo projeto já teve minha humilde colaboração.


“Mentira!” Você deve estar pensando...  

Como será isso ???

“This is the project page for mapping IronPython and IronRuby (and maybe IronPHP) to Tamarin. See Tamarin:IronMonkey:BytecodeMapping for some preliminary mapping of CIL to ABC.”

Entenda que o IronPython ( http://www.codeplex.com/IronPython  ) é

IronPython is a new implementation of the Python programming language running on .NET. It supports an interactive console with fully dynamic compilation. It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Python programmers, while maintaining full compatibility with the Python language.

Mais sobre o assunto http://www.voidspace.org.uk/python/weblog/arch_d7_2007_07_21.shtml#e777

Acha que é viajem para daqui a alguns anos ??? veja rodando!!! http://www.jorendorff.com/articles/python/path/

Iron Monkey : Mozilla is taking IronPython and IronRuby produced from Microsoft and mapping it to to Tamarin. This will by in the guise of bytecode translation a la IKVM as they want to avoid forking C# source using Mono C# compiler. The project is led by Seo Sanxiym of FePy and PyPy fame. Brendan made a subtle jab at how "open" the source is for the Iron projects. Although the license is liberal, what does it mean if you don't accept patches from the community?
http://ajaxian.com/archives/mozilla-announces-screaming-iron-action-monkeys-tamarin-in-ie

Espero que você tenha clicado em todos os links e já esteja enlouquecendo pensando nas possibilidades, eu realmente não tenho muitos outros detalhes do assunto além dos links que eu aqui postei, quem tiver qualquer novidades por favor me post!!

Para fechar vou postar o link do Blog Monkey http://pop.youtube.com/watch?v=t1tak3PSbnU apenas para um momento de diversão menos Nerd neste monkey business.

Go code monkey!! http://pop.youtube.com/watch?v=5W_wd9Qf0IE
Ps – não sei que desenho é esse nem da banda nem da música, apenas uma busca no youtube que me retornou esse clipe Nerd.
Escrito por blaine em 03:43:08 | Link permanente | Comments (0) |

Internet Explorer 8

Não se preocupem. Eu não vou falar de web 2.0, 3.0 ou qualquer outra sigla sem sentido feita por pessoa que não entende nada de web ou de controle de versão Tongue out. Apenas quero condensar neste post algumas das grandes inovações por mim notadas que podem mudar a cara da web.

Sim.. tem muita coisa acontecendo... eu realmente foi pego de surpresa em algumas delas...

IE8

Para começar o Internet Explorer 8. Eu nem sabia que estavam fazendo o IE8 e derrepenta já tem uma versão beta! Ao pesquisar sobre eu vejo a descrição de um Internet Explorer que está, segundo as fontes oficiais do site da microsoft:

  • tentando seguir padrões de acessibilidade ARIA
  • entrar em conformidade com os padrões de CSS
  • um debug NATIVO E GRATUITO para javascript

Sim isso é verdade, não é primeiro de abril ou qualquer outra piadinha. Veja o link por você mesmo ( http://code.msdn.microsoft.com/ie8whitepapers ) difícil acreditar ainda assim ??? Então faça como eu. Baixei ( http://www.microsoft.com/windows/products/winfamily/ie/ie8/default.mspx ) o tal navegador beta, testei e de fato está bem melhor... MUITO melhor do que as suas versões anteriores. Mas é claro ainda é muito instável ( beta lembram-se ? ) e eles até o momento não haviam tratado maioria dos problemas da engine de javascript, mas ter debug, já é uma experiência fantástica. Aparentemente os programadores é que são muito impacientes. A empresa precisava apenas de um pouco de tempo, após 20 anos do 1# IE eles lançam um debug nativo.

O tratamento de CSS começou a ficar show e é claro muito incompativel com as versões anteriores. Eles fizeram um botãozinho malandro de rodar como IE7 para o cliente poder acessar as páginas antigas com sucesso.

Não é 100%. Ao passar nos testes do 2acid o único navegador que ficou 100% na maioria deles foi o Safari que eu, resolvi testar a versão para windows.. já falo sobre isso...

Claro, não espere o firefox da microsoft, a parte de extensões para navegador ainda está do mesmo jeito, tendo que alterar registros do SO dentre outras coisas massas. A documentação de alguns comportamentos ainda está muito fraca e alguns bugs vão acontecer o tempo todo, inclusive na instalação http://support.microsoft.com/kb/949220.

O IE é claro, tem as suas vantagens. Além da dominação de mercado ele tinha uma máquina de javascript mais eficiente para processamento pesado. Infelizmente isso é devido a maior prioridade do processo o que faz um loop infinito em javascript travar a máquina. Os activex permitem se fazer acesso direto a directx, mas apenas para pessoas que permitem esse recurso muito inseguro ser executado na sua máquina cliente.

Enfim a coisa melhorou, acompanhar a execução de um comando javascript linha a linha no IE ajuda muito a descobrir onde está o erro, tendo em vista que as mensagens de erro não melhoraram e não se tem como ver o backtrace de uma exception as vezes, esse acompanhamento salva o dia. Essa surpresa foi muito boa mas a dúvida que vem agora é: Desenvolver para IE vai ser para a versão 8 apenas ou ainda manter a compatibilidade com todos aqueles navegadores IE do passado, que são, logicamente, incompatíveis entre si ?

Quanto ao Safari no windows eu vou dizer apenas 2 coisas:

1. CSS 100% e também tem debug de javascript nativo, apesar de precisar de uma certa malandragem (http://robrohan.com/2007/06/11/enable-debug-mode-on-safari-windows-error/)
2. O upload de arquivos não funciona e gera um monte de alertas de erro malucos, na real fiquei de cara com esse bug sinistro. Provavelmente ainda está sendo adaptado ao windows.

Eu não fiz todos os testes dos bugs conhecidos do javascript do IE em sua nova versão... quem sabe... em breve...
Escrito por blaine em 03:27:58 | Link permanente | Comments (0) |

15/01/2007

Internet Explorer - O Erro desconhecido

Antes de comecar a escrever este artigo quero deixar bem claro que não defendo nem ataco nenhum produto por ideologia. As criticas que faço aqui são baseadas em problemas reais e suas soluções. Caso algum produto em especial apareca mais do que outros é pelo mero fato de eu ter encontrado mais problemas no mesmo.

Estava eu programando um calendario e tal e derrepende eu me deparei com o seguinte passo no processo:

// # Montar uma tabela a partir de uma string.

Até esse ponto nenhuma novidade, apenas montar a string e depois fazer o processo de montagem natural com o innerHTML. Tudo ok.

como estou fazendo uma classe um tanto flexivel para o calendario o pedaco do código está apresentado da seguinte forma

<code> 

var objTable = document.createElement( this.strTableTagName );

objTable.className = this.strTableClassName;

objTable.innerHTML = strTableInnerHTML;

 </code>

sendo no valor this.strTableTagName = 'table' e no valor de strTableInnerHTML um valor como ' xy', na verdade neste valor está a tabela do próprio calendario, que é bem maior, é claro.

Aparentemente este código é bobo e é certo que o mesmo funciona OK ? Não. Apesar de funcionar perfeitamente no firefox quando eu rodava o método que continha este trecho eu recebia a seguinte mensagem de erro "Erro desconhecido tempo de execução".

Como no IE não é possível se saber em que linha o erro ocorreu então tive de ir varrendo o bug durante horas até que descobri que o erro estava neste trecho de código acima demonstrado.

Ao pesquisar na internet descobri o seguinte link no site da microsoft http://support.microsoft.com/kb/239832/pt-br onde, em resumo, não se pode mesmo alterar o innerHTML de uma tabela a não ser pelos métodos DOM. A mensagem de erro é essa mesmo e só lamento para você. Nem é colocado como um bug mas como um comportamento normal e esperado pelo browser.

Como resolver:

Eu posso, ainda, alterar o código de um div no IE logo vamos fazer um div com uma tabela dentro e depois capturar a tabela de dentro do div. Gambi!

No fim o código ficou da seguinte forma:

<code>

            var objTable        = document.createElement( this.strTableTagName );
       
            if( this.strTableClassName != '' )
            {
                objTable.className     = this.strTableClassName;
            }
           
            if( !IE )
            {
                objTable.innerHTML     = strTableInnerHTML;
            }
            else
            {
                if( this.strTableTagName == 'table' )
                {
                    /**
                     * No Iternet Explorera propriedade InnerHTML dos elementos
                     * TABLE, TFOOT, THEAD e TR são somente leitura.
                     * @see http://support.microsoft.com/kb/239832/pt-br
                     */
                    var objDivTemp = document.createElement( "div" );
                    objDivTemp.innerHTML = '<' + this.strTableTagName + '>' + strTableInnerHTML + '<' + this.strTableTagName + '/>' ;
                    objTable = objDivTemp.getElementsByTagName( "table" )[ 0 ];
                    objTable.className = this.strTableClassName;
                }
                else
                {
                    objTable.innerHTML     = strTableInnerHTML;
                }
            }
           
            return objTable;

</code> 

Não é bonito mas aparentemente resolveu o problema. Eu testei também em tentar tratar o objeto table como um nó xml mudando o textContent do mesmo mas sem sucesso.

Espero ter ajudado alguém que esteja passando pelo mesmo problema.

Abraços, Blaine.

 

 

 

Escrito por blaine em 16:34:48 | Link permanente | Comments (2) |

24/12/2006

Nota de Abertura do Blog do Blaine

Finalmente o prometido blog foi feito. Vou utilizar esse site para soltar algumas notas de coisas interessantes que eu tenho visto e feito.

Abraços. Smile

 

Escrito por blaine em 17:42:46 | Link permanente | Comments (0) |