Google App Engine

Uma otima pedida do Google. Retirar das pequenas empresas a preocupacao de:

  1. desenvolver (local de desenvolvimento, banco de dados, etc)
  2. procurar um local para fazer deploy do webapp
  3. demanda de banda, acessos, etc...

Por enquanto o engine apenas suporta Phyton (acredito que ate o lancamento - 28-29 de maio - deve ter mais linguagens suportadas). O mais interessante disso tudo eh a questao de poder usar a estrutura do Google para o seu aplicativo web e a principio, a custo zero!

O desenvolvedor ganha acesso a:

  • gFS (google file system),
  • Google API (google accounts)
  • google Persistent (base de dados BigTable e GFS com consultas, ordenacao e transacoes)
  • Escalabilidade e balanciamento de carga automatico no servidor
  • Local de desenvolvimento completo em maquina local

Uma questao que nao ficou muito clara eh a suposta seguranca do seu codigo fonte dentro dos servidores. Quem tem acesso aos seus codigos fonte?

A lista de 10,000 pessoas que poderiam ter acesso a plataforma ja esta fechada, mas voce ainda pode baixar o SDK no site.

Para mais informacao e ate uns videos de como desenvolver: clique aqui!
Blog do pessoal de desenvolvimento falando das novidades: clique aqui!

Postado em s 8/4/2008 17:36:27 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: Dicas | Geral

Tags: ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Consultas SQL com Lambda (e nao Linq)

As expressoes Lambda ja existem desde o .NET 3.0 e foram, por assim dizer, aprimoradas com o .NET 3.5 usando o Linq.

Vamos a parte pratica da coisa, como diferenciar uma da outra com um simples Select.

Linq:

var C = from o in db.Orders where o.OrderID == 1 select new { o.OrderID };

Lambda:

var C = db.Orders.Where(o => o.OrderID == 1).Select(o => new { o.OrderID });

 

Como da pra notar a diferenca nao eh TAO grande para uma consulta simples. A desgraca comeca quando voce precisa fazer uma consulta um pouco mais elaborada:

Linq:

var orderDetails = from o in db.Orders
        where o.OrderID == orderID
        join s in db.Shippers on o.ShipVia equals s.ShipperID
        join od in db.OrderDetails on o.OrderID equals od.OrderID
        join p in db.Products on od.ProductID equals p.ProductID
        join supplier in db.Suppliers on p.SupplierID equals supplier.SupplierID
        let total = od.Quantity * od.UnitPrice
        select new OrderDescription {Product = p.ProductName, Quantity = od.Quantity, 
                     ShipperName = s.CompanyName, Total = total, UnitPrice=od.UnitPrice,
                     SupplierName = supplier.CompanyName};

Lambda:

var orderDetails = db.Orders.Where(order => order.OrderID == orderID).
        Join(db.Shippers, o => o.ShipVia, s => s.ShipperID, 
          (o, s) => new { o.OrderID, ShipCompanyName = s.CompanyName }).
        Join(db.OrderDetails, o => o.OrderID, od => od.OrderID, 
          (o, od) => new {o.ShipCompanyName, od.ProductID, od.Quantity, od.UnitPrice }).
        Join(db.Products, od => od.ProductID, p => p.ProductID, 
          (OrderDetails, p) => new { OrderDetails, p.ProductName, p.SupplierID }).
        Join(db.Suppliers, p => p.SupplierID, s => s.SupplierID, 
          (OrderData, s) => new { OrderData, SupplierName = s.CompanyName}).
        Select(o => new OrderDescription
        {
            Product = o.OrderData.ProductName,
            Quantity = o.OrderData.OrderDetails.Quantity,
            ShipperName = o.OrderData.OrderDetails.ShipCompanyName,
            Total = o.OrderData.OrderDetails.Quantity * o.OrderData.OrderDetails.UnitPrice,
            UnitPrice = o.OrderData.OrderDetails.UnitPrice,
            SupplierName = o.SupplierName
        });

 

Vale a pena usar o Lambda em questoes simples como uma verificacao de inclusao:

var C = db.Orders.Single(o => o.OrderID == 1);

Ou de uma alteracao:

Orders Alt = db.Orders.Single(o => o.OrderID == 1);

Alt.campo = novovalor;

 

Entao, o que voce prefere? Open-mouthed

Postado em s 3/4/2008 21:46:12 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: ASP.NET | C# | Dicas | SQL

Tags: , , , ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Caracteres de Escape no C#

Quais sao os caracteres de escape (character escape sequences) no C#?

C# define os seguintes como sequencias de caracteres de escape:

  • \' - single quote, needed for character literals
  • \" - double quote, needed for string literals
  • \\ - backslash
  • \0 - Unicode character 0
  • \a - Alert (character 7)
  • \b - Backspace (character 8)
  • \f - Form feed (character 12)
  • \n - New line (character 10)
  • \r - Carriage return (character 13)
  • \t - Horizontal tab (character 9)
  • \v - Vertical quote (character 11)
  • \uxxxx - Unicode escape sequence for character with hex value xxxx
  • \xn[n][n][n] - Unicode escape sequence for character with hex value nnnn (variable length version of \uxxxx)
  • \Uxxxxxxxx - Unicode escape sequence for character with hex value xxxxxxxx (for generating surrogates)

 

Open-mouthed

Postado em s 15/3/2008 15:49:04 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: C# | Dicas

Tags: ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Voce sabe a diferenca entre hd's SATA I e SATA II ?

Eu tenho aqui em casa um servidor da IBM xSeries 206 e despois que descobri que havia diferenca entre os tipos de hd SATA que poderiam ser instalados nunca me meti a comprar um, pois o que vem de fabrica eh um SCSI.

Hoje gracas a um colega que me passou uns links eu sei a diferenca.

por chicoperez do forum do Baboo

"qual a diferença entre HD sata 1 e HD sata 2 ?"

Teoricamente o SATA I oferece uma banda de 1,5Gbps (150MB/s), enquanto o SATA II oferece uma banda de 3Gbps (300MB/s)

 

"O HD Sata 1 também pode trabalhar a 3 GB/S ?"

Não.

 

"Para usar sata 2 precisamos comprar uma placa que suporte o sata2 ?"

Necessariamente não, é só colocar um JUMPER que limite ele em 1,5Gbps.

 

"O Adaptador dos dois são diferentes?"

Não.

 

"Eu posso comprar um HD sata2 e usar como sata1 para já ficar preparado para um futuro upgrade?"

Sim, é só usar o JUMPER limitando, como falei acima.

 

entenda mais aqui: http://www.babooforum.com.br/idealbb/view.asp?topicID=393385

Postado em s 28/1/2008 21:24:13 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: Dicas | Geral

Tags:

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Pointui para Windows Mobile 5/6

Depois de varias vezes tentar fazer o meu HP6945 com WM 5 ficar parecido com o iPhone e nunca conseguir criei um certo desanimo sobre os "skins" que prometiam essa sensacao de movimento que o aparelho da Apple proporciona.

Mais uma vez navegando pelos sites americanos acabei encontrando uma certa agitacao no gizmodo sobre um super novo skin que estava deixando todo mundo animado. Se trata do Pointui, um skin que altera completamente a interface do WM 5/6 para que voce nao precise mais usar a caneta stylus que tanto enche o sako (e risca a tela). Ainda esta na versao beta mas nao deixe isso desanimar voce, pois ja melhora e muito a usuabilidade. A curva de aprendizado eh pequena fazendo apenas q voce tenha que reaprender como chamar/fechar programas, o resto eh soh diversao com a nova interface.

Eu ja instalei e nao me arrependo. Vow ficar de olho nas proximas versoes.

Postado em s 8/1/2008 13:07:34 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: Dicas

Tags: , , ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

string.Empty ou "" ?

Quem afinal de contas eh o mais rapido na hora de fazer uma comparacao?

str=="" 
str.Equals("")
str==string.empty 
str.Equals(string.empty) 
string.Length==0 

Depois de muita busca no google e no google groups achei alguns artigos sobre o assunto.
Mas o melhor foi ter encontrado um chart com comparativos com as velocidades onde:

As string normal tem 10 caracteres e as long tem 100.

 

stringtime

 

O que acontece eh que o uso de "" faz com que o framework crie um objeto para entao verificar se o mesmo esta vazio, o que interfere na performance. A melhor opcao eh o uso do str.Lenght == 0 como mostra o grafico. Claro que isso pode ser diferente nas proximas versoes do .NET mas de qualquer forma vale o conhecimento.

 

fontes: Brendan Tompkins [MVP] e Google Groups

Postado em s 26/12/2007 11:58:38 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: ASP.NET | C# | Dicas | Geral

Tags: , , ,

Currently rated 3.0 by 1 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Download do Divx Pro de graca por tempo limitado

Voce pode fazer download do Divx Pro de graca direto do site por tempo limitado.

Depois da instalacao o programa vai pedir o seu email para envio da senha. Eu instalei e coloquei um email "generico" e em menos de 2 minutos o codigo de registro ja estava lah e realmente funcionou.

Como no site nao diz quando a "promocao" eh melhor correr. Tongue out

 

 

 

post original: Walyou

Postado em s 14/12/2007 10:39:21 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: Dicas | Geral

Tags:

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Como verificar remotamente se as portas do seu roteador estao abertas

Use o telnet para verificar se as portas do seu roteador estao abertas.

  1. Iniciar > Executar
  2. cmd ou command
  3. No prompt digite telnet e aperte enter
  4. Depois que o telnet abrir (dentro dele) digite open xxx.xxx.xxx.xxx numero da porta que voce deseja verificar (onde x eh o numero do ip do roteador)
  5. Verifique o resultado
    1. Please press Enter: a porta esta aberta e funcionando corretamente
    2. "Could not open connection" ou uma tela vazia apenas com o cursor piscando: porta fechada/o numero do roteador pode estar errado/etc...

 

post original da Symantec

Postado em s 28/11/2007 23:05:08 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: Dicas

Tags: , ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Windows Vista: Para onde o Telnet foi?

Se voce como eu instalou o Windows Vista e foi procurar pelo Telnet, provavelmente nao achou...
Nesta versao do windows ele nao eh instalado como default e sim como opcional. Entao voce tem que ir manualmente fazer a instalacao:

  • Control Panel
  • Programs
  • Program and Features
  • Clique em Windows Feature on or off
  • Marque a opcao do Telnet Client

E pronto ! Agora voce tem o Telnet novamente. Tongue out

Postado em s 28/11/2007 21:54:33 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: Dicas

Tags: ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Como transformar string ou int em enumeradores

Voce ja esta familiarizado com o conceito de enumeradores? Nao? E com o conceito type-safe?

Exemplos de type-safe com enumeradores:

string Nome = string.Empty;
System.Drawing.Color.Blue;

Mas como que eu crio enumeradores para comeco de conversa:

public enum Ativo
{
      Nao = 0,
      Sim = 1,
}

Agora vamos ao que interessa:

int Ativow = 1;
Ativo at = (Ativo)Enum.Parse(typeof(Ativo), Ativow.ToString(), true);
switch (at)
{
      case Ativo.Nao:
            return "inativo";
            break;
      case Ativo.Sim:
            return "ativo";
            break;
}

Postado em s 23/11/2007 13:11:25 by Gh0stman

Permalink | Comments (0) | Post RSSRSS comment feed |

Categorias: ASP.NET | C# | Dicas

Tags: , , ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5