Pesquisar neste blog

quarta-feira, 8 de dezembro de 2010

Chrome OS, HTML 5 , banco offline e protocolo REST(JSON)




Hoje para mim(7/12/2010) é um dia histórico, o lançamento do Chrome OS nos Estados Unidos.

Posso estar errado nesta previsão, mas alguns dos maiores gargalos da Web estão caminhando para uma solução natural. Base de dados locais(pequenas) para trabalhar diretamente pelo Browser.

O HTML5 traz embutido em todos os principais BROWSERS(chrome, safari, firefox) uma pequena base de dados local, que irá atender a várias situações no caso do cliente estar offline. Vejam um exemplo abaixo;


E o mais impressionante de tudo isto é que como a otimização para Web que o Google mais se preocupa está trazendo tantos recursos disponíveis. E o mais interessante em pouco tempo o protocolo REST(JSON), vem tão rápido permitindo novas formas de trabalho.

E a Artech, o que estará preparando para todas estas mudanças ??  Foi comentado que a geração(by GENEXUS) já está preparada para o HTML5, mas e o manejo de base de dados locais(igual ao exemplo do site do New York Times acima) ainda não vimos nada a respeito disto.

Por favor Artech.. o protocolo Rest já está sendo disponibilizado no Gerador SD, falta total implementação do HTML5 , principalmente o manejo destas bases locais do browser. E agora principalmente a geração de aplicativos para o Chrome Web Store.

Boa sorte nesta empreitada e nós clientes lhes apoiaremos no que for necessário!

Abraço

Ricardo C. de Oliveira
Genexus Web Developer 

sábado, 20 de novembro de 2010

Cloud c/ VMWARE ou CITRIX, tem diferença de performance ?


Utilizávamos em nossos projetos um cloud  contratado pela Locaweb(não uma das melhores, mas nos atende muito bem), a um custo razoável mensal, R$ 200,00.


Ao utilizarmos em produção(o cloud VMWARE ) em um grande evento recentemente, sentimos muita lentidão na gravação dos registros em nosso aplicativo GX EVL1.

Trocamos para o ultimo Release do GX(Preview 2 , U4) para resolvermos alguns probleminhas conhecidos, mas nem tanto pela performance.

Em Outubro/2010, a Locaweb trocou seu plano Cloud da plataforma VMWARE para o Cloud da Cytrix. E nós estávamos loucos para testarmos nossos aplicativos no WIN 64 bits , IIS 7, e SQL 2008 64 bits.


Na mesma configuração de máquina virtual(1 GB de RAM, 50 GB de HD, 2 processadores XEON de 2.4mhz) , a diferença na plataforma Citrix(ou 64 bits) é muito melhor, chega a ser de 40% mais rápida.

A maioria das telas abrem bem mais rápido(IIS) ??, a gravação dos registros é bem mais aceitável que no SQL 2005 anterior.

Alguns relatórios eram intermináveis na versão anterior .. agora demoram no máximo 7 segundos(os maiores e mais demorados), os mais simples demorarm 2 segundos pra abrir.

Quem terá dado tanta diferença assim ?? A força dos 64 Bits ??? ou a força da máquina Virtual da Citrix ??

Será que teremos melhores performance com mais memória RAM ???

Outra vantagem destes planos Virtualizados novos da Locaweb é a utilização de VLAN, ou seja o acesso (tráfego) entre dois servidores virtuais é pela rede interna virtual deles (não gerando tráfego) como no plano anterior.

No começo eu era muito desconfiado quanto a estes serviços oferecidos, mas cada dia me convencem cada vez mais, que o diga o GXserver, o GXPortal, e agora neste final de ano lançaremos uma série de aplicativos by RCO via SAAS.

Parabéns a WEB e a todos que pensaram nestas mudanças , cloud realmente é o futuro. Que venha o Chromium OS, todo baseado em cloud! 

Abraço a todos


Ricardo
RCO Proc. de Dados
PS: Os aplicativos Web GX funcionam muito bem na plataforma 64 Bits do .net com IIS 7 (good news)!

quinta-feira, 21 de outubro de 2010

64 Bits c/ GX .. solução ou só mais dor de cabeça ???

Tinhamos um código em GX 9 (.net WIN ) que funcionava muito bem no nosso cliente..

Vejam abaixo:

&vrMailMessage.To.New( &NomeSacado, &EnderecoEmail )        
&vrMailMessage.From.Address = 'XYZ@ABC.ORG.BR'

 &vrMailMessage.From.Name = 'CLIENTE DE EMAIL'
 &vrMailMessage.CC.New( 'NOME CLIENTE', 'email@cliente.com.br')  
&vrMailMessage.Subject = 'Envio de E-mail de Boleto do Depto'  
&vrMailMessage.HTMLText = &BoletoHtml

    &vrSMTP.Timeout         = 5000
    &vrSMTP.Host            = CON_PARAMETROS.PAR_HOST_EMAIL
    &vrSMTP.Sender.Name     = 'Depto'
    &vrSMTP.Sender.Address  = ' XYZ@ABC.ORG.BR’   
    &vrSMTP.Authentication  = 1  
    &vrSMTP.UserName        =  CON_PARAMETROS.PAR_USER_EMAIL
    &vrSMTP.Password        =  CON_PARAMETROS.PAR_USER_PASSWORD_EMAIL
    Msg('Aguardando logon do servidor : SMTP.HOST.COM.BR , aguarde...Timeout(' + &vrSMTP.Timeout.ToString() + ')' , status)
    &vrSMTP.Login()   
    If &vrSMTP.ErrCode = 0
        &vrSMTP.Send(&vrMailMessage)
        If &vrSMTP.ErrCode = 0
            Msg('Email enviando para: ' + &EnderecoEmail + ' com sucesso!')
        Else
            Msg(&vrSMTP.ErrDescription)
        Endif
    Else
        Msg(&vrSMTP.ErrDescription)
    Endif
   &vrSMTP.Logout()

Funcionava muito bem.. até a uns 15 dias atrás.. que o cliente (usuário) começou a NOS pressionar reclamando de travamento na máquina. Fiz o teste em OUTRAS máquinas OK, tudo funcionando muito bem até que descobrimos que num belo dia trocaram a máquina do cliente para um 64 BITS e não nos avisaram.

Adivinhem o que aconteceu ???

O envio de email começou a travar somente nesta máquina 64 bits.. apesar de estar com o WIN XP 32.. Desativamos o firewall, desativamos o anti-virus. Mas travar o que ??. devem estar curiosos ..

Durante o envio do e-mail  via datatype SMTPsession.. é que estava travando , mesmo configurando o timeout  na propriedade do SMTPSession?? pau do Timeout só  a Artech e o suporte deverá me responder.

E ai .. o que responder ao cliente.. procura daqui , reza dali, consulta os universitários, GOOGLE do desespero, até que achamos algo parecido no WEB SAC da artech.

csharp try
csharp {
csharp string SMTPUserName = [!&NomeSacado!];
csharp string EMailTo = [!&EnderecoEmail!];
csharp string EMailSubject = "Envio de E-mail de Boleto do Depto ";
csharp string EMailMessage = [!&BoletoHtml!];
csharp string SMTPHost = "host.smtp.com.br";
csharp int SMTPPort = 25;
csharp string SMTPEmailPassword = "senha";
csharp System.Net.Mail.MailMessage mM = new System.Net.Mail.MailMessage();
csharp mM.From = new System.Net.Mail.MailAddress("email@envio.com.br");
csharp mM.To.Add(EMailTo);
csharp mM.Subject = EMailSubject;
csharp mM.Body = EMailMessage;
csharp mM.IsBodyHtml = true;
csharp mM.Priority = System.Net.Mail.MailPriority.High;
csharp System.Net.Mail.SmtpClient sC = new System.Net.Mail.SmtpClient(SMTPHost, SMTPPort);
csharp sC.EnableSsl = false;
csharp sC.Timeout = 5000;
csharp string strId;
csharp string strPassword;
csharp strId = "email@envio.com.br";
csharp strPassword = SMTPEmailPassword;
csharp sC.UseDefaultCredentials = false;
csharp sC.Credentials = new System.Net.NetworkCredential(strId, strPassword);
csharp sC.Send(mM);
csharp [!&statusEnvio!] = 1;
csharp }
csharp catch (System.Exception ex)
csharp {
csharp [!&statusEnvio!] = 0;
csharp [!&ErroDescricao!] = ex.Message;
csharp }

    If &statusEnvio = 1
        Msg('Mensagem enviada c/ sucesso pelo servidor smtp.host.com.br : (' + &statusEnvio.ToString() + ')')
    Else
        Msg('Mensagem não enviada p/ servidor smtp.host.com.br : (' + &statusEnvio.ToString() + ')')
        Msg(&ErroDescricao.Trim())
    Endif

Bingo . funcionou .. corretamente, dor de cabeça, c/os “;” no final das tags do csharp, entender o que cada  instrução faz e como interage no GX.

Este problema/solução está reportado  no SAC 28.830 , e será consertado somente no GX EVL UPGRADE 4.

Restou a nós uma conclusão ou exagero, PAU no Timeout(motivo do travamento) dos comandos(smtpSession) do GX ??? ou Pau nos comandos do GX 64 BITS ??  pois este problema não aconteceu nas outras máquinas (WIN XP 32 BITS, e WIN 2003) ???

Até quando vamos precisar apelar a linguagem(nativa) para resolvermos nosso problemas urgentíssimos ???

E os mesmos problemas recentes do GX  9.0 em 64 bits se repetirão no GX X EVL 1 ou EVL 2 ??? E na hora de utilizarmos linguagens mais recentes ??? Ruby apelaremos para quem ??  o Santo Darma Ruby ?? existe ?? no Japão ???

E oura coisa.. o código csharp gerado manualmente pelas tags CSHARP estão impossíveis de serem entendidos .. vejam abaixo:

            /* User Code */
            Boleto.CidadeSacado = AV54Cidade.Trim();
            /* User Code */
            Boleto.EstadoSacado = AV24Estado.Trim();
            /* User Code */
            Boleto.CepSacado = AV25CepSac.Trim();
            AV6Hoje = DateTimeUtil.DToC( DateTimeUtil.Today( ), 4, "/") ;
            /* User Code */
            Boleto.DataDocumento = AV6Hoje;
            AV7Vencime = DateTimeUtil.DToC( AV30Vencim, 4, "/") ;
            /* User Code */
            Boleto.DataVencimento = AV7Vencime.Trim();
            /* User Code */
            Boleto.NumeroDocumento = AV26Numero.Trim();
            /* User Code */
            Boleto.ValorDocumento = (double)AV27ValorD;
            /* User Code */
            Boleto.PercentualJurosDiaAtraso = (double)AV32Empres;
            /* User Code */
            Boleto.PercentualMultaAtraso = (double)AV33Empres;
            /* User Code */
            Boleto.PercentualDesconto = (double)AV34Empres;
            /* User Code */
            Boleto.DiasProtesto = AV35Empres;
            /* User Code */
            Boleto.PadroesBoleto.Demonstrativo = AV28Demons.Trim();

O código acima não ficaria mais fácil de entender se fosse conforme o código abaixo??( tudo bem que o código abaixo é em GX 9, talvez em GX X/EVL esteja melhor)

            /* User Code */
            Boleto.CidadeSacado = AV54Cidade.Trim();
            Boleto.EstadoSacado = AV24Estado.Trim();
            Boleto.CepSacado = AV25CepSac.Trim();
            AV6Hoje = DateTimeUtil.DToC( DateTimeUtil.Today( ), 4, "/") ;
            Boleto.DataDocumento = AV6Hoje;
            AV7Vencime = DateTimeUtil.DToC( AV30Vencim, 4, "/") ;
            Boleto.DataVencimento = AV7Vencime.Trim();
            Boleto.NumeroDocumento = AV26Numero.Trim();
            Boleto.ValorDocumento = (double)AV27ValorD;
            Boleto.PercentualJurosDiaAtraso = (double)AV32Empres;              
Boleto.PercentualMultaAtraso = (double)AV33Empres;
            Boleto.PercentualDesconto = (double)AV34Empres;
            Boleto.DiasProtesto = AV35Empres;
            Boleto.PadroesBoleto.Demonstrativo = AV28Demons.Trim();
            /* User Code */

Ou .. se  o código abaixo

csharp string EMailSubject = "Envio de E-mail do Depto ";
csharp string EMailMessage = [!&BoletoHtml!];
csharp string SMTPHost = "host.de.envio";
csharp int SMTPPort = 25;
csharp string SMTPEmailPassword = "senha";

não poderia ser escrito assim e GX ?

CSHARP{
string EMailSubject = "Envio de E-mail do Depto ";
string EMailMessage = [!&BoletoHtml!];
string SMTPHost = "host.de.envio";
int SMTPPort = 25;
string SMTPEmailPassword = "senha";


Vai aqui nossa modesta experiência em geradores:
  1. Gerar código comentando linha a linha ajuda e muito a manutenção / debug por parte dos desenvolvedores;
  2. E o  principal;  a geração(sobreposição) de código nativo(feito pelo programador) sobre o código gerado pelo GX deveria ser respeitado e de responsabilidade do analista/desenvolvedor a qualquer momento e em qualquer situação.

Querem ver um exemplo clásico .. os códigos fontes gerados pelas principais classes do GX GXCommon, GXMail, GXDbi32, GXOffice, e pelo GXGeral .js deveriam estar de fácil acesso a equipe de desenvolvimento  para que pudéssemos debugá-los e até alterá-los ao nosso gosto.

Claro , a Artech vai nos dizer que ai a responsabilidade de suporte dela terminaria até  alterarmos o código fonte gerado, mas  ai .. vamos responder .. aguardaríamos uma solução /debug até quando ?? a cada preview de 2 a dois meses ? até perdermos nosso contrato ??? por demora nesta solução por parte da Artech ???

Nós da área de TI, entendemos probleminhas, problemas e problemões..agora nossos clientes de diversas áreas não entendem e não gostam de esperar.

O post acima foi só para  clarear a todos (nós, Artech , suporte e desenvolvedores) a que ponto chegamos na hora dos gargalos sérios.. e como podemos resolvê-los. O GX nos permite resolver vários problemas sérios de muitas maneiras.. (partir para  a linguagem nativa é um deles.. ), mas o ideal é que  não precisássemos disto.. mas se a pressão for grande não nos restará outro caminho.

Tunning de máquina, Tunning de banco de dados , Tunning de regras de negócios .. porque não Tunning de código gerado ??? 

Somos leigos a que nível a lógica gerada(pelo GX) pode variar .. mas somos objetivos no que precisa ser revolvido... contem conosco .. nossa ajuda .. , nossas orações.. só espero nos ajudarem na hora do prejuízo e na corda do pescoço por parte do cliente.

Boa sorte a Artech , ao EVL2 e aos geradores móveis.

Abraço


Ricardo
RCO Proc. De Dados

terça-feira, 3 de agosto de 2010

GXPORTAL, VisualLightBox, uma galeria de imagens perfeita!

Estive procurando nos últimos dias uma boa e fácil galeria de imagens para nosso novo Site feito em GXPORTAL 5.0

Procurei o código embutido do SlideShow do Picasa, não me atendeu.

Procurei as galerias do FLICKR, achei muito difícil, até agora não consegui achar.

A Galeria de fotos do PORTAL 5.0 , ainda não me agradou por causa do peso das Imagens.

Ai .. procurando no bom e velho Google .. achei VisualLigthBox.. Vejam abaixo:



Por ser um aplicativo Leve, prático e rápido , só precisei subir os arquivos(que já estão compactados) em um website (c/ dns) qualquer.

Seria ótimo se a galeria de imagens do Portal/GX fizessem a compactação das imagens assim como faz o VisualLightBox.




Portanto , minha escolha final.. VisualLightBox, até que enfim pude ser atendido com uma galeria fácil e rápida.

Quem quiser ver um exemplo online dêem uma olhada em:


Obrigado Artech e Portal por funcionar os códigos HTML externos.(código fonte html e html Externo)

Abraço

Ricardo
RCO Proc. de Dados

quinta-feira, 29 de julho de 2010

GXPortal, controlando tamanho e posição das minhas janelas dos links


Precisei recentemente fazer vários links externos no GXPortal, mas com a possibilidade de controlar os tamanhos e posição das janelas dos links.

No Portal só é possível abri-los em uma nova aba(Target=Blank).

Perguentei ao suporte e me disseram que isto só seria possível (definir largura, altura, posição, centralizado, maximizado) via HTML livre.

Aqui vão algumas dicas:

1) Crie um HTML livre e coloque o seguinte código:
<  script language >
function abrejanela( LinkUrl, LinkOpen, IsCenter, vrWidth, vrHeight, IsMaximized, vrLeftPos, vrTopPos, vrFullScreen, vrScrollBars )
{
IsCenter = IsCenter != null ? IsCenter : IsCenter;
Width = vrWidth != null ? vrWidth : Width;
Height = vrHeight != null ? vrHeight : Height;
IsMaximized = IsMaximized != null ? IsMaximized : IsMaximized;
LeftPos = vrLeftPos != null ? vrLeftPos : LeftPos;
TopPos = vrTopPos != null ? vrTopPos : TopPos;
FullScreen = vrFullScreen != null ? vrFullScreen : FullScreen;
ScrollBars = vrScrollBars != null ? vrScrollBars : "1";
StatusBar = "0";

var popW = Width;
var popH = Height; // Definindo Largura e altura inicial(se a janela não for Maximizada)

if (IsCenter) {

var l = ((window.screen.width - popW) / 2);
var t = ((window.screen.height - popH) / 2);

}

else {

var l = LeftPos;
var t = TopPos;

}

// Abre a janela do Browser conforme as configurações dos Parâmetros
var janela = window.open(LinkUrl, LinkOpen,"width=" + popW + ",height=" + Height + ",status=" + StatusBar + ",top=" + t + ",left=" + l + ", screenX=" + l + ", screenY=" + t + ",resizable=1, scrollbars=" + ScrollBars);
// Se for configurado para Maximizar a janela do Browser
if (IsMaximized) {
janela.moveTo( 0, 0 );
janela.resizeTo( screen.availWidth, screen.availHeight );
}

janela.focus();
}< /script >

2) Insira este HTML livre no template da sua página.

3) Ai nas propriedades link(botões ou menus) , desative as opções Abrir em uma nova janela..

Chame assim a função acima(Propriedade Link):

javascript: abrejanela('http://meu_link.aspx', 'Nome_Sem_Espaco', 'true', 820 , 550, false, 0, 0, 1, 'no');


Os Parâmetros da função abrejanela são:
1 -> Link a ser aberto
2 -> Nome da Janela no Método window.open , sem espaço , pois dá erro no IE
3 -> Centralizado ? true or false
4 -> Largura
5 -> Altura
6 -> Maximizada
7 -> LeftPos
8 -> TopPos
9 -> FullScreen(F11)
10 -> ScrollBars = 1 (on) , 0 =(off)

Vejam abaixo um exemplo de como fica no PORTAL 5.0



Deu certo, ficou do jeito que eu queria, mas seria mais fácil se o PORTAL já tivesse estas configurações, afinal , é a mesma funcão do nosso UC RCOOpenWindow()

Abraço

Ricardo

terça-feira, 6 de julho de 2010

Dez Pecados Corporativos (by Revista Veja)

Coisas que quase todo mundo faz, e continuará a fazer, mas não deveria
  1. Passar por cima do Chefe.
    Realizar uma tarefa para o diretor da empresa sem avisar o próprio chefe revela desobediência à hierarquia e falta de profissionalismo.

  2. Relacionar Educação e Simpatia com poder.
    Dispensar tratamento diferenciado a cada funcionário da empresa, aumentando a gentileza e a simpatia proporcionalmente ao poder do outro, é sinal de interesse.

  3. Intimidade no Escritório.
    Apelidos e brincadeiras pessoais são incompatíveis com o ambiente de trablalho, seja entre colegas, seja na relação chefe-subordinado.

  4. Mania de tocar nos outros.
    É muito inconveniente qualquer tipo de contato físico, até mesmo segurar o braço do interlocutor. A informalidade pode atingir níveis extremos, como massagem nos ombros e carinho na barriga de gestantes.

  5. Ser o funcionário livro-aberto.
    Deve-se resistir à tentação de contar a mais recente discussão familiar ou amorosa. É uma superposição desccabida entre vida pessoal e trabalho.

  6. Brincar com pedidos de promoção.
    Comentários como "Viu meu relatório, chefe? Não acha que eu mereço um aumento?" só causam constrangimentos e dificilmente resultam em proposta objetiva.

  7. Tornar pública a insatisfação.
    Registrar queixas em e-mails, programas de conversa instantânea. Twitter, Orkut, Facebook é inaceitável. Além de tornar pública a reclamação, o funcionário produz provas contra si mesmo.

  8. Excesso de feminilidade.
    Usar a beleza ou o charme feminino para conquistar favores ou benefícios na empresa é antiético.

  9. Demonstrações de carinho entre casais.
    Qualquer demonstração de afeto é inadmissível num ambiente profissional.
    Pior ainda é fazer comentários sobre assuntos da intimidade do companheiro.
  10. Chorar no trabalho.
    Chorar no banheiro é tão ruim quanto fazê-lo em público.
    Evidentemente, todos vão perceber a demonstração de descontrole.
    É melhor sair, dar uma volta e não envolver outros funcionários em seu problema.

Matéria retirada da revista veja.. Edição 2172 - ano 43 , n. 27.

terça-feira, 8 de junho de 2010

Encontro Genexus Brasil , São Paulo, César Park, posts direto do Evento!

Acompanhem ao vivo os melhores acontecimentos do encontro neste blog.
Cadastre-se seu e-mail na caixa de lembretes que lhe enviaremos um aviso do início dos comentários.

sexta-feira, 21 de maio de 2010

GXPORTAL 5.0 RC1, dois anos depois , muita coisa boa virá até o Evento!



Após dois anos de muita cobrança ao pessoal do GX-Portal, parece que nossas principais solicitações foram atendidas. Vejam abaixo nosso novo WEB-SITE remodelado com a versão 5.0 (Beta).


Perdoem-me pela simplicidade no Design(acima), não sou bom para isto .. mas vou apresentar aqui algumas das grandes melhorias até agora já apresentadas pela Artech:
  1. Uma das opções de comercialização será SAAS , provavelmente mais barato e menos trabalhoso nos upgrades e instalações;
  2. Novo Editor de Texto HTML CKEditor, muito prático e útil, a Artech bem que poderia utilizá-lo no Genexus;

  3. Nova Galeria de Imagens, 3 opções, facilitando e muito estas visualizações, falta apenas compactar os thumbnails, pois estão pesados em tamanho real;
  4. Novos GXPortlets do Google, Google Maps, Google Gadgets, o que ampliará e muito o universo de extensibilidade do Google;
  5. Novo Editor de Design, com ampla utilização de Ajax , ao estilo do WYSWYG, mostrando em tempo real as alterações dos PORTLETS e setores, vejam abaixo um exemplo:

  6. 6. Novo Portlet Site Map e vários recursos de SEO (Otimização de pesquisa nos buscadores);
Bom moçada , é isto , parabéns a Artech e obrigado por nos escutarem, sei que ainda temos vários recursos por nós solicitados e ainda não implementados, mas pelo que aprendemos pelo Genexus X / EVL, certamente sairão.

Resta-nos ficar na dúvida sobre algumas respostas importantes ainda não respondidas pela Artech:
  1. Como será o pacote completo a ser comercializado em SAAS, quais serão suas limitações, qual será seu preço , quais serão as garantias de hospedagem;
  2. Como faremos as transferências de domínios no caso dos E-MAILS ;
  3. Neste plano teremos opção de subir arquivos via FTP também ???
  4. Teremos opção de subirmos aplicativos Genexus também ??? (aplicativos externos);
Abraço a todos da comunidade GX e parabéns ao GXPortal Team !

Paciência com nossas cobranças mas a missão é deixar a melhor ferramenta possível .

Que venha a Copa do Mundo .. e que não de Brasil e Uruguai na Final .


Saludos!

quinta-feira, 29 de abril de 2010

Alta produtividade com K2BTools e GX, 20 TRNS(completas) em dois dias.

Estamos revendo nossos conceitos de desenvolvimento rápido com o patterns K2B Tools 5.0 e o GX EVL1.

Temos acompanhado o patterns do K2B desde sua versão 3.0, mas realmente esta versão 5.0 do EVL1 me encantou e muito.

Estamos fazendo um protótipo de um aplicativo e qual foi nossa supresa com o alto grau de personalização do Patterns do K2B , não só do layout mas como também dos seus eventos e variáveis. Seguem abaixo algumas dificuldades e soluções 100% feitas pelo K2B Tools.

1) Geração automática de variáveis adicionais, podendo serem preenchidas via parâmetro e pelos eventos (Start, refresh, load) sem colocarmos a mão no WEBPANEL;

2) Geração de comandos adicionais aos Eventos, tanto em prompts quando em WebPanels, facilitando e muito a definição de comandos extras aos eventos;

3) Lógica muito simples e intuitiva da navegação criada, tanto pelo histórico de sessão , quanto pelos botões de Action;

4) Personalização adicional e extra dos Actions padrões (INSERT, UPDATE, REFRESH) , permitindo ter total controle do aplicativo pelo Patterns;

5) Alto poder de configuração do Pattern WEBBUILDER, facilitando e muito a criação/chamada de relatórios;

6) Geração de Prompt com rapidez e alta funcionalidade;

Vejam abaixo os Resultados obtidos :

Tela do WorkWith dele com alto nível de personalização , botões de ordenar posicionados do lado direito, botões de ação do lado esquerdo(superior) e área de filtragem com opções de encolhimento.



Tela de botões Action Inferior, totalmente feitos pelo K2B e passando parâmetros corretamente direto pelo Patterns. Sem nenhum código escrito nos eventos do WebPanel.



Área de Filtros dos WebPanels , com agrupamento , definição de colunas e auto encolhimento(collapsed)



Prompt gerado pelo Pattern K2BPrompt, altamente personalizado(layout refeito e acertado), com eventos progamados direto pelo pattern.



“Produtividade a 300% com GeneXus e …”


As K2BTools são um conjunto de ferramentas que conjugadas a GeneXus, colaboram fortemente no desenvolvimento deAplicações Web ou na sua conversão desde ambientes Win ou telas de texto plano. Conte com Ricardo Oliveira, Agente K2B Tools, com 20 anos de experiência em desenvolvimento e consultoria em informática, para tirar qualquer dúvida e seja mais PRODUTIVO.

terça-feira, 16 de março de 2010

O que AVAST PRO, erro 500.13 no IE8 e deleterow.gif não aparecer tem em comum ?

Tem em comum uma DLL chamada GXCLASSES.DLL no .net e o fato de estarmos nos ajudando(usuários do fórum).




O fato de estarmos acompanhando o problema de uma colega no fórum com um outro tipo de problema e relatarmos o nosso problema sobre o U1 de não mostrar as imagens de deleterow.gif e undeleterow.gif no servidor de produção e o famoso erro 500 13 no IE 8.0 , não nos levava a crer que seriam os mesmos problemas de travamento no ANTIVIRUS AVAST PRO do Luciano Topolniak.

Eu tinha noção que era algo com o nosso Firewall ISA .. do servidor de produção , só não sabiamos como resolver, mas ao abrir-mos o chamado do IT, ao nos comunicarmos no fórum e comunicarmos nós usuários pessoalmente , as coisas foram se encaixando.

Acho que este fórum(que é uma rede social) contribui e muito para os problemas serem resolvidos, principalmente por contarem com a experiência de todos os usuários(novatos e antigos). E .. o suporte da Artech(do Brasil e do Uruguai) ajudam muito .. desde que tenham paciência e entendam nossa comunicação.. (português/espanhol/inglês) mesmo misturando são fáceis de se entender.

Nós usuários temos que ter a humildade de relatarmos os fatos.. sinceramente , objetivamente e sem enrolação, pois ao fazermos isto agilizamos o processo.

Entendemos que nossa tecnologia passa por situações adversas.. mas a maioria dos problemas que temos é a interferência humana, as lógicas(quando corretas) e os hardwares(enquanto funcionando) sempre farão certo. Nós seres humanos é quem erramos .. e erramos muito. o duro é admitir nossos erros.


Abraço a todos .. e Gracias Mil aos companheiros do Suporte.


Ricardo


quinta-feira, 4 de março de 2010

Como se avalia a performance(peso) de um aplicativo WEB ? SOLUÇÃO

Num artigo anterior eu reclamei do peso de um Aplicativo WEB gerado pelo GENEXUS.

E nos últimos dias tive um colega nosso(Luciano Topolniak) com problema com o arquivo GXGRAL.JS que achava muito pesado em seu SITE. Chegando a travar o aplicativo no Browser.

Pesquisa daqui e pesquisa dali, chegamos a conclusão.. ele não tinha a compactação de dados ativados no Servidor Web dele.. a diferença foi grande.. um GXGRAL.JS de 300 kb caiu para 70 kb, mas vamos comparar outras coisas (vejam imagens abaixo).


Uma página simples (login) sem compactação de dados.. 1.1mb (gxgral.js 304.2kb)
A mesma página (login) com compactação de dados 338.7 kb (gxgral.js 93.1kb)


Ou seja a diferença de 1.1mb para 338.7 kb é grande.. por isto travava o site do meu colega. Ainda bem que temos ferramentas boas para verificarmos isto .. (FIDDLER, FIREBUG)

Mas algo mais me incomoda.. O pacote inteiro do GXUI/EXT.. dá 800kb (sem compactação) , ou seja.. quem for utilizá-lo tem que estar ciente disto.

Acho que a Artech errou ao juntar todos estes recursos (UC do GXUI . em um único .JS) , se fossem separados as páginas seriam carregadas conforme sua utilização .. O kernel principal do GXUI concordo que deveria estar agrupado.. mas os UC.. deveriam sim estarem separados e compactados.. no meu exemplo acima(login) só utilizo um Panel do GXUI.. e sai prejudicado nesta carga total.

Outra coisa que reclamo a muito tempo é o GXGRAL.JS tem muita coisa ali que um simples WEBPANEL não precisa..

O GX 9.0 está muito mais rápido nesta abertura(carga) que o GX X.



Fica aqui a observação sobre estes assuntos pois a diferença é grande.


Abraço


Ricardo

quinta-feira, 18 de fevereiro de 2010

Alta disponibilidade de Aplicativo Final , alguém se Habilita ?

De Imagens Divertidas


Precisamos de alta disponibilidade do nosso aplicativo final.. Com a seguintes características:

1) Replicação de site em servidores(máquinas) diferentes;

2) Replicação de banco em servidores(máquinas) diferentes;

3) Site/aplicativo final com alta segurança e com links redundantes ( se um link cair, outro assume no lugar) ;

4) Nosso aplicativo/site tem que funcionar 24x7 parando(se parar) no máximo 1 hora por dia para manutenção;

Ambiente .NET WEB com SQL server.

Existem empresas especializadas nisto ???? por favor entrem em contato:

ranking@nelore.org.br

Abraço


Ricardo

Como se avalia a performance(peso) de um aplicativo WEB ?

De Imagens Divertidas

Estamos a uma semana para colocarmos nosso aplicativo(feito em GX X EVL) final em produção . a expectativa é grande.

Mas nossa preocupação hoje . .é uma só.. Como medir a performance de um aplicativo final ??

Estamos percebendo que estes novos recursos do GX ( User Controls e AJAX Encryptation ) são úteis.. mas estão deixando o aplicativo final lentos.

Sei que temos que avaliar a performance de links(tanto de quem envia como de quem recebe) e de servidores.. também. .. Mas como provar isto aos nossos clientes finais ????


É nítido que um aplicativo feito em GX 9 .. com menos recursos.. ( sem UC e sem AJAX Encryptation ) estão mais rápidos..


E a própria Artech deveria nos dar opções de medir isto.. alguma ferramenta dela.. (um site por exemplo . que entrassemos com os links dos nossos aplicativos e ela testasse online)

E nos desse uma nota sobre a performance.. algo como é feito no www.numion.com


Algumas questões básicas sobre performance de um aplicativo WEB gerado pelo GX:

1) Porque os javscripts gerados pelo UCEditor já não poderiam virem compactados ???

2) Precisamos de todo o javascript que está no GXGRAL.JS ??? e se for um webpanel simples.. não vem coisa demais nesta carga ???

3) As configurações de cache de Transações(se existirem).. interferem na atualização/visualização dos dados ???

4) A Atualização de cache do Banco interfere nesta performance ?

5) A utilização de vários logins(Trusted connection) com pool de conexões no .NET ajudam nesta performance ???

6) Porque não temos a opção de Ajax Encryptation = None .. para deixarmos igual ao GX 9 ?

7) O aplicativo de Perfomance Test do GX só mede objetos locais ?? não tem como medir local e na web .. ou guardar os históricos destas medidas(na web) para fazermos comparações ???


Abraço

Ricardo





quinta-feira, 4 de fevereiro de 2010

Coisas simples e úteis que ainda faltam ao GX.




A Artech melhorou e muito com sua versão X Evolution, e acho (pelo menos já deu alguns sinais) que já está preparando o Evolution II. Sei que talvez não seja o momento .. mas as cobranças abaixo são apenas para ajudá-la a não esqueçer.

Algumas coisas simples.. que o Genexus já deveria estar fazendo(vou classificá-los conforme minha experiência em geradores):

  1. Instalador do aplicativo final mais completo , podendo ser via XCOPY(servidor local) ou via FTP para múltiplos servidores, com agendamento(scheduller) é claro;
  2. Visual mais moderno aos aplicativos WEB gerados, templates já definidos em que pudéssemos apenas escolher/utilizá-los, tanto rico em Recursos quanto imagens e CSS;
  3. Acesso completo aos Eventos HTML/Javascripts.. permitindo interagir.. entre os recursos do GX com o mundo HTML/JAVASCRIPT/CSS em um formato mais fácil, sei que existem hoje UCs que permitem isto .. mas ainda não estão tão fácil de utilizar;
  4. Controle de usuários e permissão de objetos já pré-instalado em nosso aplicativo , o mesmo para as definições de Login e manejo de troca de senhas com regras pré-definidas;
  5. Wizzard ( sei que existem patterns ) mais completos para rotinas básicas.. exemplo : um simples relatório, o próprio MS-Acces hoje é muito mais rápido neste quesito;
  6. Application Template.. ou seja.. ao escolher determinadas características de um aplicativo o GX já utilizaria as definições das TRNS já existentes e já aplicaria um grande Pattern em toda a KB;
  7. Controle de domínios global, compartilhado entre várias KBS ao mesmo tempo .. e ao mudar nele todas as kbs refletiriam este comportamento;
  8. DBRet (Engenharia Reversa ) mais dinâmica .. do tipo .. posso mudar a característica de um atributo / tabela / índices hoje no Genexus.. mas também gostaria de mudar direto no próprio Banco e o GX refletiria estas mudanças;
  9. Pequenos negócios já pré-definidos por seus países/regionalidades.. vou dar alguns exemplos: no Brasil já gostaríamos de ter máscaras / validações prontas.. como CNPJ, CPF, Insc. Estadual, Insc. Municipal, CEP, etc.. Que o digam os outros países!
  10. Help ao aplicativo final .. de fácil implementação ... podendo também gerar ..em vários formatos desejados.. CHTM, HTML, PDF, Word, etc... Hoje existem os dois primeiros formatos. mas ainda são de difícil utilização;
  11. Rápida e fácil integração aos novos conceitos de negócios da WEB , como AppFabric, AppStore, Google Gadget e Apple Gadget;

Sei que dos ítens acima apresentados .. apenas o ítem 11 é novo .. mas o restante.. é algo simples que vários aplicativos já apresentam hoje na atualidade.

A idéia.. é termos um super Genexus .. focado ao mundo de NEGÓCIOS.. não apenas em tecnologia.

Todos nós temos que atender nossos clientes finais ..com aplicativos bonitos.. sofisticados.. e completos..


Abraço e Boa sorte ao Genexus TEAM!


Ricardo

AppStore , AppFabric, SQL Azure e Cloud Computing, quanta mudança boa na área de TI.


No último evento que tivemos no Brasil, discutimos alguns assuntos sobre Cloud Computing inclusive foi nos mostrado o trabalho que a Artech já está fazendo(aprontando) com o WS da Amazon.

No começo fiquei desconfiado e fui um dos primeiros a questionar a questão da segurança destas informações..

Mas ultimamente testei o SQL Azure no GENEXUS e qual foi minha surpresa ao vê-lo funcionando de uma forma fácil fácil. (vejam abaixo)



Este plano teste da MICROSOFT nos permite 5 bancos de dados de até 10 GB cada. Se os bancos de 4 GB do SQL 2005 já são o suficiente para pequenos e médios aplicativos quem nos dera estes de 10 GB.

E o que mais me deixou admirado foi ver o Genexus .. criar o banco .. e criar as tabelas fácil fácil.

Já me veio a seguinte idéia. já imaginaram estes bancos servirem para replicação automática de nosso banco local ?? Em caso de uma falha em nosso servidor de banco de dados.. seria só apontar automaticamente para este banco nas nuvens(Cloud) e pronto já continuariamos trabalhando ???

São estes conceitos novos de Cloud Computing.. com os recursos de AppStore , AppFabric e estes tipos de bancos nas nuvens estão vindo e mudando muito nossas idéias..

E voltando ao encontro de São Paulo .. Como a área de TI nos ensina coisas boas a cada época.

Sejam bem vindos.. Google Chromiun OS, Windows AZure, SQL Azure , IPAD, e Android !

Abraço


Ricardo.


quarta-feira, 20 de janeiro de 2010

2010 com GENEXUS EVL grandes avanços, pequenos tropeços!

Começamos 2010 .. instalando definitivamente nossa versão de produção completa.. migramos da versão 9.0 com workflow para a versão X EVL com WORKFLOW.

Participamos 2 anos como Beta Tester, aprendemos muito , colaboramos muito e agora sim.. conseguimos finalizar nossa migração..

Ficamos contente com algumas pequenas correções que estavam nos deixando de cabelo em pé .. vou destacar algumas pendentes e outra já resolvidas:.

Pendentes, ainda nos dando dor de cabeça:
  1. Controle do Reinicio da Sessão automaticamente no IIS 6.0, no IIS 7.0 está ok;
  2. Controle das imagens DeleteRow.gif e UndeleteRow.gif que é obtida via AJAX no javascript GXGRAL.js;
  3. GXUI.GridRender com alguns problemas mais sérios como agrupamento pelo total de registros e não pela página, Eventos , quando disparados, fornecendo dados errados quando agrupados e sem a opção de ordenar e agrupar por várias colunas ao mesmo tempo;
  4. Velocidade de execução do objeto query, está muito lento uma consulta simples.. demorando 2.4 minutos para abrir;
  5. UC query, não permite configurar mais recursos e nem utilizar fórmulas mais complexas(last, first, max, min);
  6. Dinamic Combobox não atualiza em alguns casos o conteúdo baseado no filtro;
  7. WSDL Inspector não lê corretamente parâmetros IN e OUT mais complexos(SDTS Collections);
  8. Métodos .RELOAD, .REFRESH, .REPAINT dos dinamic combobox não compilam nos WebPanels;
  9. Rename de Objetos com INSTÂNCIA de patterns(K2B/workwith) tá dando a maior dor de cabeça;
  10. Rename de variável SDT utilizada em WEBGRID, melhor apagar e refazer novamente o WEBGRID;

Resolvidas:


  1. Controle do Timeout da Sessão , no EVL1 não estávamos conseguindo configurá-la corretamente, SOLUÇÃO , alterado WEB.CONFIG, sessão system.web,
  2. GXUI Build 739 com muito mais recursos/eventos;
  3. UC mais complexos aos mais fáceis completamente dominados;
  4. Recursos da WEB 2.0, Planilhas na web, Agendas na Web, Gráficos na Web, etc...;
  5. Webservices.. realmente úteis.. como pesquisa de CEP e Busca fonética de nomes feito em Delphi .net integrados ao GX;
  6. Build com Force, feitos através de nosso UC RCOMenu;


Se os ítens ainda pendentes fossem realmente resolvidos, estaríamos anos luz a Frente sem perdermos tempo com estas pequenas dificuldades.. mas são ítens que ainda podem serem esperados.

Parabéns a Artech por estes resultados e nós clientes estamos no aguardo destas correções.

Abraço e bom começo de ano a todos.



Ricardo