segunda-feira, agosto 11, 2008

Honda Twister 2009: agora é oficial

Salve,

Chega de rumores, agora é oficial! Uma importante publicação especializada em motociclismo revelou fotos da nova Honda Twister 2009.

Ao que tudo indica, ela continuará a se chamar Twister, mas as mudanças são, de fato, muitas. O visual é mesmo o que foi mostrado em uma foto aqui no blog, e o motor sofreu MESMO aumento de cilindrada (não revelado, mas certamente 300cc) e injeção eletrônica.

Dessa vez a Honda surpreendeu mesmo, e deve ter pego a concorrência (diga-se Yamaha Fazer 250) de "calça-curta", já que nenhuma mudança foi prevista para o modelo 2009. Quando levantar mais dados eu posto aqui.

Abraços

domingo, julho 27, 2008

Dia do Motociclista

Salve,

Bem, não sei se sabem, mas hoje, 27 de julho é o dia do Motociclista. Dessa forma, parabéns a todos, que como eu, admiram e usam essa maravilhosa máquina, que nos últimos tempos tem sido constantemente marginalizada por aqueles que não conhecem a sua essência, ou talvez, por usarem como referência o motoqueiro e não o motociclista. Você pode se perguntar: "Mas motociclista e motoqueiro não é a mesma coisa?". Pois eu não acho.
Os motoqueiros simplesmente usam a motocicleta, mas não a tem na alma. São os abusadinhos, os exibicionistas, os irresponsáveis, enfim, aqueles que denigrem os verdadeiros amantes das duas rodas. Motociclista é diferente. Usa a moto respeitando as leis de trânsito, não abusa dos limites de velocidade, não coloca em risco a vida, e tem na moto uma amiga, uma cúmplice nos momentos de liberdade e prazer.

Até+

quarta-feira, julho 23, 2008

Dafra

Salve,

Os números de vendas de motocicletas não param de surpreender, tanto pela quantidade, quanto pelos modelos mais vendidos. Abaixo temos o Ranking dos 10 modelos mais vendidos no mês de Junho de 2008 segundo a Abraciclo. Correndo por fora, em primeiríssimo lugar, segue a inabalável Honda 150 Titan, isso não é novidade, a surpresa fica mesmo para o surpreendende 8° posto ocupado pela Dafra Speed 150 (que teve um aumento nas vendas de 30,46% em relação a maio). Ela superou marcas nacionais bem mais antigas no mercado, como a Sundown e a Kasinski. Desta última, o modelo mais vendido (Seta 150) aparece apenas na 29° posição, perdendo até mesmo para o modelo Kansas 150 da Dafra (que teve um aumento de mais de 380% em relação a maio), uma custom, que tem um mercado pouco expressivo no Brasil. Os números:

  1. Honda CG 150 Titan - 42952 unidades;
  2. Honda CG 125 FAN - 33238 unidades;
  3. Honda Biz 125 - 20222 unidades;
  4. Yamaha YBR 125 - 13008 unidades;
  5. Honda NXR 150 Bros - 9116 unidades;
  6. Honda CBX 250 Twister - 8309 unidades;
  7. Honda POP 100 - 8058 unidades;
  8. Dafra SPEED 150 - 6745 unidades;
  9. Yamaha YS 250 Fazer - 3962 unidades;
  10. Sundown Hunter / Max 125 - 3907 unidades;
Isso prova que a Dafra segue firme em seu objetivo de ter 10% do mercado em 2012, e se continuar nesse ritmo isso será moleza. Agora resta saber como vai se comportar o mercado dessa marca daqui a um ou dois anos, quandos suas motoquinhas começarem a envelhecer. Será que elas vão aguentar o tranco?

Abraços.

domingo, julho 20, 2008

GP da Alemanha 2008

Salve,

Após o GP da Alemanha, que marca a segunda metade do campeonato, parece mesmo que a ascensão da Mclaren não é circunstancial, assim como a queda de desempenho da Ferrari, que amarga dois resultados negativos consecutivos. Se esse cenário se manter, Lewis Hamilton leva o caneco com facilidade, mas ainda tem muito asfalto a ser percorrido.

Esse GP destacou o desempenho, tanto alto, quando baixo, de equipes e pilotos:
  1. Lewis Hamilton: absoluto, tem talento e um carro excelente. Vive um momento em que se sente o deus da velocidade, e nessas circunstências é difícil de ser batido;
  2. Felipe Massa: fez o que pode, tentou, mas não havia a menor possibilidade ante o carro prateado. O desempenho do carro era fraco, se fosse um pouco pior poderia até perder o pódio para Heidfeld, mas ainda é forte candidato ao título;
  3. Nelsinho Piquet: guiou com maturidade, usou uma boa estratégia de corrida e ainda contou com a sorte. Parece mesmo ter dado uma guinada no seu destino, já que até alguns GPs atrás falava-se que estava com o dias contados na Renault;
  4. Heidfeld: fez uma excelente corrida, saindo da 11° posição e chegando em 4º. Talvez uma resposta às críticas frente aos constantes "paus" que vem levando do companheiro de equipe, Robert Kubica;
  5. Alonso: falou muito e fez pouco. Fez uma surpreendente classificação no sábado, mas na corrida foi fraco. Rodou sozinho, não foi competitivo e acabou em 11°. Um fato irônico foi ter dito que Nelsinho precisava fazer mais pelos resultados, acabou mordendo a língua;
  6. Kubica: apagado. Com excessão da excelente primeira volta, onde ganhou três posições, teve um desempenho abaixo do que se esperava dele. Parece que a equipe não acertou nos ajustes do carro, mas isso não impediu seu companheiro de equipe de fazer uma excelente corrida. Kubica, alías, depois da vitória do Canadá tem tido um desempenho muito fraco, poderia ainda ser o líder do campeonato, se não tivesse abandonado no GP da Inglaterra;
  7. Kovalainen: fez uma corrida normal, sem momentos brilhantes e nem besteiras. Sempre deixa a impressão que poderia ter ido um pouco além;
  8. Haikkonen: chegou no mesmo lugar onde começou. Teve um bom início de prova, fez uma bela ultrapassagem em Alonso, parecia que se recuperaria, mas foi só.
Bem, agora é acompanhar e torcer, muita coisa ainda pode acontecer. Esse campeonato está um dos mais interessantes do últimos tempos, não resta dúvida, e muuuuita coisa ainda pode acontecer.

Abraços.

quinta-feira, julho 17, 2008

Honda Shadow 750

Salve,

Depois de lançar a nova Hornet, injetada, com uma potência absurda (102cv) e totalmente remodelada, a Honda resolveu (ou foi forçada?) a dar uma "tapa" na Shadow 750.


Com grafismos de encher os olhos e com injeção eletrônica, o modelo 2009 se encontra a venda desde meados de junho, a preço sugerido de R$ 29.900, que na prática (leia-se agência) nunca se confirma, em virtude de frete, seguro, bla, bla, bla.

Uma curiosidade é a pequena diminuição na potência - 45,8 cv no modelo 2008 contra 45,5 no modelo 2009 - em virtude de um catalisador maior, uma consequência do Promot.

Té+

quinta-feira, julho 10, 2008

Honda Twister 2009, será?

Salve,

Muito tem se especulado sobre quais serão as novidades da Honda Twister 2009, se virá com freio a disco traseiro, com injeção eletrônica de combustível, se terá 300cc e por aí vai.
Pra aguçar ainda mais as especulações, nos últimos dias "vazou" na internet uma foto da suposta Twister 2009 (abaixo), e como não poderia deixar de ser, o assunto tem rendido grandes debates nos foruns e blogs relacionados.
Se REALMENTE essa for a nova TW 2009, a Honda então terá dado um grande salto, principalmente no design, que pelo pouco que se vê na foto, fará a Tw parecer muito a nova Hornet, comprovando uma tendência de design, que remete a robustez e linhas angulosas. Mas e com relação à mecânica, o que se pode esperar?
A primeira pergunta que se faz é se ela virá com I.E. Muitos dizem que ela será necessária para diminuir a emissão de poluentes, que a partir de 2009 fica bem mais rigorosa com a fase 3 do PROMOT, mas isso por sí só não é motivo para a I.E, já que outras medidas tecnologicas podem ser tomadas visando essa diminuição. Provavelmente será injetada sim, não somente em virtude da emissão de poluentes, mas também por uma questão de mercado, já que a principal (e única) concorrente, a Yamaha Fazer, usa essa tecnologia desde 2005, e essa tem sido uma cobrança constante dos consumidores.
E o preço? Vai aumentar? Depende! Se as mudanças forem apenas de design e inclusão da I.E, mantendo o motor em 250cc, não deverá haver mudança radical de preço, apenas ajuste de tabela, já que a moto continua no mesmo nicho de mercado. Agora, se realmente o motor sofrer um upgrade de cilindrada, aí sim certamente haverá mudança de preço, e neste caso é bem provável que ocorra o mesmo que em 2001, onde a TW não foi a "CBX Strada modelo 2001", mas um modelo totalmente novo. Assim, se ocorrer o aumento da cilindrada essa então não será a TW 2009, mas uma nova moto.


Agora basta esperar, em meados novembro as fábricas mostrarão seus novos modelos, inclusive muito se especula também sobre a "nova" Yamaha Fazer 2009, já que a montadora não poderá ficar imóvel nesse movimento de mercado. E quem ganha com isso tudo? Nós consumidores!

Abraços

terça-feira, julho 08, 2008

Preview Personalizado com Quick Report

Salve,

Muitos não gostam dele, mas ainda acho que o QuickReport é um dos mais práticos (não disse um dos melhores) geradores de relatório para Delphi. Não precisa de nenhuma configuração especial, é levinho, funcional, e é por isso que eu ainda o utilizo ostensivamente em meus sistemas.

Pensando nos desenvolvedores que como eu usam o QReport, revolvi publicar o código e formulário de um Preview Personalizado que desenvolvi, que inclui algumas funcionalidades interessantes, como a possibilidade de se exportar o relatório para um arquivo CSV, que pode ser aberto DIRETAMENTE em planilhas eletrônicas sem a necessidades de codificações mirabolantes, e de ser totalmente em português, que ajuda muito aos usuários "monoglotas" :)



A primeira providência a se tomar é a atualização do QReport para a versão 3.5, pois a que acompanha o Delphi não é a versão mais atual do pacote, e por isso não inclui o componente QRPreview, fundamental nesse exemplo. As atualizações podem se baixadas no seguintes links: D5, D6 e D7. Após baixar o arquivo basta instalá-lo normalmente, o instalador atualizará o Delphi, não precisa se preocupar em reconfigurar nada.

Depois de instalada a atualização já pode executar a aplicação de exemplo (Delphi 7), que inclui um form com um ClientDataSet, um QuickReport e o formulário do Preview, além é claro, dos códigos utilizados na exibição do mesmo. Chamo a a atenção para o evento OnPreview do QuickReport, pois é onde reside a codificação que exibe o preview.

Importante: é necessário adicionar a Unit QRPrntr na unit do relatório.

Até +

domingo, junho 08, 2008

Kubica obtém sua primeira vitória

Se alguém quiser saber sobre o futuro é só consultar esse blog. :) Estou montando uma "consultoria futurológica"! Quem não entendeu, basta ler o post anterior, publicado antes da corrida.

Parabéns a Robert Kubica, pela consistência e competência. Agradecimentos especiais a Lewis Hamilton, pela lambança histórica.
Com esse resultado, o polonês saiu do GP do Canadá com sua primeira vitória e a liderança do campeonato, enquanto a BMW Sauber também conseguiu sua primeira vitória na F1. Nick Heidfeld chegando em 2º completou festa.

Grid de chegada:


Fonte: www.grandepremio.com.br

Até +

Kubica

Salve,

Este é o primeiro post que escrevo sobre F1, um esporte que gosto muito. Aliás, gosto de tudo que é ligado a velocidade.

No último ano vários pilotos debutaram na categoria máxima do automobilismo, gerando assim a chamada "F1 da nova geração". Heikki Kovalainen, Lewis Hamilton, Sebastian Vettel, foram alguns dos que estrearam, mas teve um que passou meio despercebido, sem muita badalação ou especulações, um polônes magrelo e desajeitado, Robert Kubica.

Na verdade, Kubica iniciou oficialmente no meio da temporada 2006, substituindo Jacques Villenueve, e de cara foi o oitavo colocado. Na mesma temporada ainda subiria ao pódio no GP da Itália. Surpreendente.



Kubica em sua BMW Sauber


Em 2007, em partes, não atendeu as espectativas, que se justica por uma adaptação ao carro. Seu companheiro de equipe sempre levou a melhor, mas o "moleque" estava aprendendo e a coisa mudou.

Nessa temporada ele ocupa o 4º lugar no mundial e tem uma pole conquistada no GP do Bahrein, realmente é surpreendente. O que mais me agrada nele é o fato de ele não ser um piloto fabricado, ele é um piloto nato, rápido, uma pessoa simples e tímida, diferente da maioria dos pilotos, que costumam ser "topetudos", se achando a última bolacha do pacote.

Estou ansioso pelo GP do Canada, onde ele sai na primeira fila, ao lado de Lewis Hamilton, onde quem sabe o inglês sortudo (Ah, não é sortudo? Lembre-se: na primeira temporada com o melhor carro, ao lado de um dos melhores polotos, queridinho da equipe e lapidado por ela) não quebre e ele consiga sua primeira vitória. Vou torcer, pois o polonês desengonçado já merece.

Até

sexta-feira, junho 06, 2008

Erro ao instanciar SqlDataReader

Salve,

Faz algum tempo que venho ensaiando ASP.NET (usando C#, obvio), mas esta semana mergulhei mesmo nesse negócio.
Na que na empresa em que trabalho está se cogitando a mudança de tecnologia - na verdade os Analistas estão querendo, já que para a empresa isso é indiferente, o que vale é o resultado - e nosso supervisor sugeriu que nós desenvolvessemos algo real, para que tenhamos argumentos para convencer nosso gerente (sic). Tem alguma coisa na contra-mão, não tem não? Mas deixa isso pra lá.

Pois bem, comecei do básico, e nesse caso o básico é o acesso e a manipulação de dados no SQL Server 2000, e aí veio aquele monte de dúvidas, sobre qual arquitetura usar, sobre qual meio de acesso usar (o ADO.NET oferece vários) , sendo que para a solução que eu precisava achei que o SqlDataReader seria interessante, já que eu precisava apenas recuperar um registro, e ele é bem levinho e simples. Porém chegou um momento, onde o eu recebia uma mensagem muito impertinente, que me avisava que eu já tinha um DataReader aberto, mas eu não tinha, ou melhor eu tinha, mas eram SqlDataReader diferentes! Porque então recebia a mensagem? Simples: eu estou usando o pattern Singleton para me retornar um objeto SqlConnection, ou seja, uma mesma conexão para os dois e eu NÃO POSSO ter dois SqlDataReader abertos ao mesmo tempo em uma mesma conexão. Mas como irritou aquela mensagem! :)

Esse é um problema comum de quando estamos aprendendo uma nova tecnologia, mas está sendo muito bacana essa nova "empreitada".

Abraços e até+

terça-feira, maio 20, 2008

Zeos

Salve,

Nas aplicações que desenvolvo sempre usei o Firebird, principalmente a versão 1.5, mas agora que a versão 2.0 (estou usando a 2.0.3) já está bem madura e consistente, decidi que é hora de migrar algumas aplicações já existentes e começar a usá-la nos novos produtos.

A primeira dúvida foi qual driver de acesso usar. Nas outras versões do FB, sempre usei DBExpress com Driver UIB (Unified Interbase), mas ele mudou muito, deixou de ser apenas um Driver e passou a ser um pacote de componentes, aí desanimei. Não sou fã desse negócio de configurar isso, compilar aquilo, sou simplista e ponto! Ainda mais porque uso o UserControl para controle de acesso, o que me faz pensar muito na ora de mudanças profundas.

Não precisei perquisar quase nada pra encontrar boas referências aos Zeos, que é usado principalmente pra acessar o PostgreSQL, decidi então testá-lo, e que maravilha! Ele só tem me trazido alegrias.

Primeiro, é fácil de instalar, bastou compilar os DPK's e pronto. Segundo, é facílimo de configurar e utilizar, principalmente em rede! Que tranquilidade. Como uso ClientDataSet, bastou trocar o SQLConnection do DBExpress pelo ZConnection do Zeos, configurar algumas propriedades e estabelecer a conexão com o FB 2.0.

Componentes da Palete Zeos Access

No entanto, ainda acho cedo pra aclamá-lo, vou fazer mais testes e postar os resultados aqui. Provavelmente, vou desenvolver uma "aplicaçãozinha" de exemplo.

Até+

quinta-feira, maio 08, 2008

Eu não morri!

Salve,

Pra aqueles que já acendiam velas, sinto decepcioná-los, mas não morri! Estou passando por um momento de muita correria, e está difícil postar qualquer coisa.

Mas, como agora vou tirar uns dias de férias (nem acredito ainda), revolvi dar o ar da graça, não pra falar de Delphi e programação, mas pra tecer alguns comentários sobre o 6º Barretos Motorcycles, que aconteceu no último final de semana (1 a 4 de maio).

Como era previsto, o evento cresceu em relação à última edição. Nos 4 dias de evento, passaram pelo Parque do Peão aproximadamente 80.000 pessoas, uma marca impressionante para um evento motociclístico realizado no interior.

A organização foi muito boa, sem a aqueles patetas barulhentos roncando prá lá e prá cá, acabando com nossos ouvidos. Os eventos foram pontuais e superaram as expectativas, mesmo com São Pedro não ajudando muito, pois no segundo dia de evento só choveu.

A parte ruim é que essa organização custa caro: R$ 10,00 no primeiro e último dia, e R$ 15,00 na sexta e no sábado, fora o estacionamento, que custava R$ 10,00. Pra quem fizesse a inscrição com suas motos, o preço era menor, mas tinha que pagar. Acho que poderiam ter feito o negócio mais "popular". Mas valeu a pena.

Pra encerrar, fica uma foto de uma manobra feita pela equipe Jorge Negretti, fantásticos!

Até mais.




quarta-feira, janeiro 30, 2008

Habilitando e desabilitando Triggers no SQL Server via T-SQL

Essa é uma "diquinha" bem simples, de um recurso que nem todos que lidam com o SQL Server conhecem. Através do Transact SQL (T-SQL) é possível habilitar e desabilitar triggers, sem a necessidade de excluí-las ou comentá-las (como a maiores do pessoal faz). A sintaxe é bem simples:

alter table nome_tabela
[disable, enable] trigger nome_trigger


Exemplo

Suponha que se tenha a tabela tab_venda, e nela uma trigger chamada trg_atualiza_limite_cliente. Para desabilitar essa trigger, a linha SQL ficaria como a seguir:


alter tabl
e
tab_venda

disable trigger trg_atualiza_limite_cliente


Para habiltá-la novamente, substitua disable por enable. Simples não?

Até +

sábado, janeiro 26, 2008

Exportando tabelas do MS Access para Excel ou HTML usando ADO

Salve pessoal,

Um recurso bem interessante porém pouco conhecido sobre o ADO, é que ele permite através do JET (mecanismo usado para acessar bancos de dados Access) a possibilidade de exportação direta para planilhas do Excel (XLS) e arquivos HTML. Pensando nisso, revolvi postar um exemplo de como se fazer isso em Delphi, vamos lá!

Primeiramente, criamos um formulário com os elementos mostrados abaixo:

Temos aí:
  • 3 Tbitbtn: btnAbrir, btnExportaXLS e btnExportaHTM;
  • 1 TListbox: listTabelas, que seá usado para exibir as tabelas presentes no database;
  • 1 TADOConnection: conAccess, responsável por estabelecer a conexão com o database;
  • 1 TOpenDialog: openDialog, que será usado para selecionar o banco de dados a ser usado;

Codificação

Declare uma função na sessão private da unit, com o seguinte header:

function TabelasADO(ADOConnection: TADOConnection):TStringList;

Seu corpo deve ficar como abaixo:

function TfrmExemplo.TabelasADO(ADOConnection: TADOConnection): TStringList;
var ADODataSet: TADODataSet; Tabelas: TStringList;
begin
Tabelas := TStringList.Create;
ADODataSet := TADODataSet.Create(nil);
ADODataSet.Connection := ADOConnection;
ADOConnection.OpenSchema(siTables, EmptyParam, EmptyParam, ADODataSet);

//Filtra somente as tabelas
ADODataSet.Filter := adicionaFiltro(ADODataSet.Filter, '(TABLE_TYPE = ''TABLE'')');
ADODataSet.Filtered := True;

with ADODataSet do
begin
First;
while not EOF do
begin
Tabelas.Add(FieldByName('TABLE_NAME').AsString);
Next;
end;
end;

ADODataSet.Free;
Result := Tabelas;
end;

Precisaremos também de outra função:
function adicionaFiltro(string1, string2: string): string;
Com o código listado abaixo:
function TfrmExemplo.adicionaFiltro(string1, string2: string): string;
begin
if string1 <> '' then
Result := string1 + ' or ' + string2
else
Result := string2;
end;

O evento onClick do botão btnAbrir fica como a seguir:

procedure TfrmExemplo.btnAbrirClick(Sender: TObject);
var stringConexao: string;
begin
stringConexao := EmptyStr;

if openDialog.Execute then
begin
stringConexao := Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False',[openDialog.FileName]);
conAccess.ConnectionString := stringConexao;
conAccess.Connected := True;
listTabelas.Items := TabelasADO(conAccess);
end;
end
;

Por fim, o evento onClick do botão btnExportaXLS, que também é compartilhado com o botão btnExportaHTM, reaproveitando código:

procedure TfrmExemplo.btnExportaXLSClick(Sender: TObject);
var nomeTabela, instrucaoSQL: string;
begin

nomeTabela := listTabelas.Items[listTabelas.ItemIndex];

if Sender = btnExportaXLS then
instrucaoSQL := 'select * into ' + nomeTabela + ' in "c:\doctemp\' + nomeTabela + 'FromAccess.xls" "Excel 8.0;" from ' + nomeTabela
else
instrucaoSQL := 'select * into [' + nomeTabela + '.htm] in "c:\doctemp" "HTML Export;" from ' + nomeTabela;

try
conAccess.Execute(instrucaoSQL);
MessageDlg('A tabela ' + nomeTabela + 'foi exportada com sucesso para o formato selecionado!', mtInformation, [mbOk], 0);
except
MessageDlg('Não foi possível exportar a tabela "' + nomeTabela + '"', mtError, [mbOK], 0);
end;

end;

Algumas consideração a fazer: meu formulário se chama frmExemplo; eu possuo uma pasta chamada "doctemp" em minha máquina, que é para onde eu exporto meus arquivos, uso isso no código e é provável que precisem modificar isso.

Bem, quem estiver precisando, pode fazer o teste e, em caso de dúvidas sobre algum trecho do código, é só comentar.

Abraços e até a próxima.

quarta-feira, janeiro 23, 2008

Comentários

Quando iniciei este blog nunca tive a pretenção de torná-lo um "hit" na blogosfera, e por isso mesmo estou surpreso com o número de acessos que ele tem tido nos últimos meses. Uma de minhas preocupações sempre foi a de publicar tópicos para os quais eu não encontrava nada relacionado na net, afinal, tem alguns assuntos que já são "arroz de festa", ou seja, e vê em tudo o que é site, e ficar falando sobre eles é no mínimo redundante. Parece que a receita deu certo, já que os tópicos aqui publicados estão sendo bastante acessados.

Para se ter uma idéia mais precisa sobre o público que visita o blog, gostaria de pedir um favor a todos que se utilizarem dos tópicos aqui relacionados: comentários! Isso mesmo, comentários!

Sempre que fizerem uma visita, deixem um comentário, com o nome, o que faz e o que achou do tópico, assim posso direcionar, aumentar e melhorar o nível das postagens.

Desde já um abraço a todos e obrigado pela visita, voltem sempre!