|
|
|
|
|
|
Framework.NET 3.0 e 3.5 não suporta Win2000.
Thursday, March 20, 2008 5:45 PM
Recentemente comessei a migrar as aplicações do 2.0 para no 3.5 no Visual Studio 2008.
A migração é extremamente simples, e nenhum codigo precisa ser refeito. Bem diferente e menos traumatica que a do 1.x para a 2.0.
Tudo ia as mil maravilhas até descobrir que o Framework.NET 3.x não é suportado pelo Windows 2000. Grande parte do parque de micros que temos na empresa roda em 2000, com isso tornando inviavel a utilização do 3.5.
M700 All-in-One (WM6 GPS)
Wednesday, January 30, 2008 8:31 AM
Bom.. no final da novela.. acabei pegando o Eten M700.
Estou adorando o aparelho. O unico contra, como muitos dizem em foruns pela Web é o volume das ligações que realmente é muito baixo. Em lugares com muito barulho, fica impossivel utiliza-lo.
Sobre o GPS, é melhor do que esperava. Esta funcionando perfeitamente em São Paulo. No ano novo utilizei ele em Cabo Frio e até em rua não asfaltada o sistema tinha mapeado. Com o carro andando o GPS demora em torno de 7 min para sincronizar. Com o carro parado em menos de 1 min ocorre a sincronia.
A bateria é Excelente!!! Mesmo com o visor de um PDA, consigo utilizar o aparelho por 2 dias sem recarga.
Sobre o sistema operacional, o meu já veio com Windows Mobile 6. Baixando o SDK do Windows Mobile 6, vem um exemplo de como trabalhar com as "APIs" para obter dados do GPS. O interessante é que essas funcionalidades já são nativas do Windows Mobile 6, sem precisar de drives ou recursos especificos do hardware, tornando "simples" a implementação de sistemas baseados em GPS.
Mais infos sobre o GPS no Windows Mobile: http://msdn2.microsoft.com/en-us/library/ms894898.aspx
Celular + Windows Mobile + GPS com Navegação
Sunday, December 02, 2007 9:35 PM
Estou a procura de um aparelho "All-in-One", e um dos requisitos mais importantes para mim é conter GPS e Windows Mobile.
Hoje utilizo um MPX220, do qual não trocaria, caso não tivesse a necessidade de um GPS.
O Celular da onda, no momento é o N95, com GPS, camera 5MP, porem com o SO Symbian. Já tive um NGAGE que utilizava o Symbian. O SO é muito bom mais não é o que quero portanto não pesquisei a fundo.
Abaixo recursos comum a dois aparelhos que gostei, o X500 e P3600:
- Receptor GPS
- Windows Mobile 6 (no P3600 não oficial)
- Receptor FM
- WiFi
- Camera 2.0 mpx
O HTC P3600, no seu lançamento sofreu com alguns problemas técnicos de compatibilidade do receptor 3G com alguns dispositivos, porem como o aparelho ja estava pronto para o mercado ele foi lançado com o hardware de receptor de FM e GPS porem inativos. Em meados desse ano a Qtek disponibililizou um hot-fix da rom onde esse problema foi corrigido. Em razão disso, em alguns sites vocês podem encontrar na especificação do P3600 sem GPS e sem receptor FM.
O X500 utiliza um chip GPS "SiRFstar III", que é um chip que utiliza uma tecnologia nova, teoricamente mais precisa pois consegue trabalhar paralelamente com até 20 satelites. O P3600 utiliza um chip "Qualcomm", que funciona com o padrão de 12 satelites.
Veja uma imagem demonstrando uma rota comparando o Qualcomm com o Sirfstar: http://www.pbase.com/gpspassionbis/image/74217078/original.jpg O link a seguir contem um teste bem completo com alguns chips. (http://www.gpspassion.com/fr/articles.asp?id=175&page=2)
Pelos comentarios que acompanhei, a principal diferença é que o Sirfstar sincroniza com os satelites mais rapido que o Qualicom. Depois de sincronizado, dificilmente a sincronia é perdida, mesmo em tuneis ou dentro de predios.
Consegui encontrar um video demonstrando o P3600 com GPS no Brasil: http://br.youtube.com/watch?v=730ERLjngew
Sobre o software de navegação e a base cartografica, os melhores para o Brasil são:
- “Destinator 6” (que é o mesmo utilizado no 4 Rodas)
- “Garmin Que”. O Garmin Que utilza a base cartográfica montada por um grupo chamado “Projeto Tracksource “ (http://www.tracksource.org.br). Não sei a fundo a diferença entre eles, porem o mais utilizado é o “Destinator 6”. Eu tenho a impressão que o Garmin tem menos mapas porem mais detalhados com pontos de interesses.
Como instalar: http://www.portalgps.com.br/forum/viewtopic.php?f=15&p=11416
Outra alternativa mais barata para um Smartphone com GPS e Windows Mobile é o "Ipaq 6515", porem este não tem WiFi, FM e utiliza WM 2003 SE.
Google Maps Brasil, e a familia Hohagen.
Wednesday, October 24, 2007 9:40 PM
Hoje a google disponibilizou a versão Beta do Google Maps Brasil.
http://maps.google.com.br/
Sinceramente, pelas novidades que foram apresentadas na nova versão Brasileira, não vi muita coisa, em relação ao que conheço do Maps. A base de informações e cartografica utilizada pela Google é a da MapLink, que já atua no Brasil a um bom tempo.
Uma curiosidade, o fundador e diretor do MapLink se chama "Frederico Hohagen", e o presidente do Google no Brasil se chama "Alexandre Hohagen", será coincidência?
Google Maps API
Thursday, September 20, 2007 4:06 PM
Atualmente estou estudando as funcionalidade do Google Maps API.
O Google Maps, disponibiliza uma API, que pode ser utilizada gratuitamente via Java Script. Meu objeto é obter roteamento e posições globais de acordo com alguns registros de endereço no banco de dados de onde trabalho.
Durante os estudos, estava desenvolvendo codigos em HTML puro e rodando direto no navegador, sem uso de um webserver. Ontem comecei a tentar implementar algo em ASP.NET; E o mesmo codigo utilizado no HTML, quando colocava no ASP.NET não funcionava. Consegui dar um handle nos erros do Google Maps e descobri que a chave de registro disponiblizada pela Google estava sendo considerada invalida.
Na documentação do Google Maps, diz que rodando em localhost a chave não é validade. Então onde está o erro.
Rodando em alguns foruns de discução, postaram que a validação interna do Google Maps para a Key é
if(window.location.protocol=="file:"){ return true } if(window.location.hostname=="localhost"){ return true }
Quando executo o debuger do VS2005 ele utiliza http://localhost:4695 com isso a validação não passava. Rodei a aplicação por fora do Debuger, e chanam!!! Funcionou.
Caso alguem esteja "raxando" a cabeça com algo relativo a isso. Fiz aqui meu papel.
INNER, LEFT, RIGHT JOIN no ORACLE
Friday, June 01, 2007 11:59 AM
No comesso do ano, migramos do Oracle 8i para o 10.02g.
Todas nossas queries que utilizam Join são realizadas com aquela notação confusa do (+) que a oracle adotava.
select
p.pedido_numero,
i.produto_nome from
pedido p,
item i where
p.pedido_numero = i.pedido_numero(+);
apartir do 9i, a oracle adotou o padrão da ISO99 para joins. Com isso estamos atualizando algumas queries mais criticas para a nova formatação.
select
p.pedido_numero,
i.produto_nome from
pedido p
left join item i on p.pedido_numero = i.pedido_numero;
Com esse processo, algumas queries reduziram drasticamente o tempo de execução. Utilizando o Explain Plan verificamos que o processo de busca com o novo processo, é realizado atraves de HASH JOINs ao invez de sequencias com NESTED LOOPs.
Então, aqui vai a dica.
Exportando TQuery para o Excel
Thursday, May 31, 2007 6:12 PM
Onde trabalho existem diversas aplicações em Delphi, e uma requisição comum é de habilitar alguma opção para exportar os dados dos relatorios para o excel sem as formatações do relatorio (como grupo, cabeçario, etc).
Criei uma função bem simples mais bastante util para isso. Basta passar o objeto TQuery para a procedure abaixo que ele gera o arquivo excel baseado nas colunas e linhas do tquery.
Vejam:
procedure QueryToExcel(qlQuery : TQuery); var Excel, Planilha : OleVariant; wRowCount, wColCount: integer; wTeste : String; begin // Criar a planilha try Excel := CreateOleObject('Excel.Application') except ShowMessage('O programa Excel não pode iniciar. Informar ao DTI'); exit; end; Excel.WorkBooks.Add; Planilha := Excel.WorkBooks[1].Sheets[1];
// Gerar Titulo das colunas For wColCount := 1 to qlQuery.FieldCount do begin Planilha.Cells.Item[1,wColCount] := qlQuery.Fields[wColCount -1].DisplayLabel; End;
//Gerar Linhas For wRowCount := 2 to qlQuery.RecordCount + 1 do Begin For wColCount := 1 to qlQuery.FieldCount do Planilha.Cells.Item[wRowCount,wColCount] := qlQuery.Fields[wColCount-1].AsString; qlQuery.Next; End;
Excel.Visible := true; end;
Dica de Delphi para TB.Filter
Tuesday, April 17, 2007 4:48 PM
Tbm trabalho com Delphi, por isso aqui vai uma dica ao utilizar o Filter Table.
Ao invez de usar
Table1.Filter := 'Nome = ''' + Edit1.Text + '''';
utilize:
Table1.Filter := 'Nome = ' + QuotedStr(Edit1.Text);
Com o QuotedStr além de colocar apostrofos no inicio e fim da string, caso haja apostofro dentro da variavel, ela é corretamente interpretada como texto.
Maldito Crystal Report
Thursday, April 12, 2007 10:49 PM
Hoje fiquei cerca de 6h batendo cabeça com o CrystalReport.
Os relatorios que crio, é composto de varios graficos que são armazenados em subreports dentro do principal.
Cada Subreport contem parametros que são alimentados em runtime.
Meu codigo estava escrito da seguinte forma:
.Subreports.Item( "Grafico1.rpt").SetDataSource(typBase) .SetParameterValue("pParametro1", strVarAtendTotal, "Grafico1.rpt") .SetParameterValue("pParametro2", strVarAtendTotal, "Grafico1.rpt")
.Subreports.Item("Grafico2.rpt").SetDataSource(typBase) .SetParameterValue("pParametro1", strVarAtendTotal, "Grafico2.rpt")
.Subreports.Item("Grafico3.rpt").SetDataSource(typBase)
Com isso, ao ser exibido o grafico solicitava os parametros (uma tela de preenchimento) como se nenhum valor tivesse sido passado. O Crystal Report exibe essa tela sempre que algum parametro está vazio. No meu caso não estavam vazios, como mostro acima, eles eram preenchidos com a variavel.
Porém, ao carregar o grafico com o SetDataSource, todos os parametros são zerados. Não somente o do subreport que esta sendo carregado, mais todos os dos subreports do relatorio.
A solução foi carregar os subreports antes de preencher os paramentros.
.Subreports.Item("Grafico1.rpt").SetDataSource(typBase) .Subreports.Item("Grafico2.rpt").SetDataSource(typBase) .Subreports.Item("Grafico3.rpt").SetDataSource(typBase)
.SetParameterValue("pParametro1", strVarAtendTotal, "Grafico1.rpt") .SetParameterValue("pParametro2", strVarAtendTotal, "Grafico1.rpt") .SetParameterValue("pParametro1", strVarAtendTotal, "Grafico2.rpt")
Foi um erro bem idiota, mais como não achei nada a respeito na net, estou postando.
(CrystalReport Parameter Prompt Supress)
|
|
|
|
|
|
| | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|
| 30 | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | 21 | 22 | 23 | 24 | 25 | 26 | 27 | | 28 | 29 | 30 | 31 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|
|
|
|
|
| | |