Programação, diversão e arte. Por Ricardo Giaviti
Programação
Artigos relacionados a programação e desenvolvimento de software.
Ruby On Rails 3.0 FINAL
Aug 30th
E saiu a versão estável do Rails 3. Na verdade, essa versão saiu do forno ontem. É agora uma ótima oportunidade para quem quer começar a aprender esse fantástico framework, pois já aprenderá nessa nova versão, que está tinindo!
Há o anúncio oficial feito pelo DHH no blog http://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done
Você também pode ver o post do Fábio Akita: http://www.akitaonrails.com/2010/08/29/rails-3-0-final-acaba-de-ser-lancado
E finalmente a página oficial com instruções para download do Rails 3: http://rubyonrails.org/download
Lembrando, que o Rails funciona somente com o Ruby 1.8.7 e 1.9.2. Fique atento a versão do Ruby que está utilizando.
Agora é mãos a obra!
Chamando procedure com parâmetro de retorno no VB6
Aug 18th
Eu não sou nenhum especialista em Visual Basic 6. na verdade, nem em .NET. Mas se aparecer algum serviço em que preciso trabalhar com linguagens que eu não sou acostumado, eu não rejeito. Faço o melhor que posso.
Em uma dessas implementações, nós aqui da Ci&T, precisávamos fazer com que o Visual Basic 6 chamasse uma stored procedure com parâmetro de retorno no Sybase e o parâmetro deveria ser recuperado com no VB.
A stored procedure com parâmetro de retorno é algo parecido com o código abaixo:
CREATE PROCEDURE IS_CLIENT
(
@CLIENT_ID numeric(8),
@FLAG_RETURN char(1) output
)
AS
...
-- Corpo da procedure omitido
...
END
return
GO
Apesar dessa dica ser feita baseada em procedure do Sybase, ela também deve funcionar para bancos SQL Server.
No Visual Basic, temos que fazer o seguinte:
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 | 'Declaração das variáveis a serem usadas Dim proc As ADODB.Command Dim Param As New ADODB.Parameter Dim Flag As String Dim IdCliente As Double 'Seta o objeto que representa o comando da proc Set proc = New ADODB.Command 'Parâmetro de entrada da procedure. ID do Cliente Set Param = proc.CreateParameter("CLIENT_ID", adNumeric, adParamInput, 8, CodProtocolo) Param.Precision = 8 Param.NumericScale = 0 proc.Parameters.Append Param 'Parâmetro de retorno Set Param = proc.CreateParameter("FLAG_RETURN", adVarChar, adParamOutput, 2) proc.Parameters.Append Param 'Chamada da procedure With proc .ActiveConnection = ConexaoAtiva .CommandType = adCmdStoredProc .CommandText = "IS_CLIENT" 'Nome da Procedure .Execute End With 'Obtém o valor do parâmetro de retorno Flag = proc.Parameters("FLAG_RETURN") |
Se reparar bem no código acima onde é declarado os parâmetros, eu seto a precisão e a escala decimal do parâmetro. Isso tem que ser feito senão ocorre o seguinte erro:
<p>Multiple-step OLE DB operation generated errors. Check each OLE DB</p> <p>status value, if available. No work was done. </p>
Feito tudo isso, você conseguirá pegar um valor retornado pelo parêmtro de output do Sybase com VB6.
Mas lembrem-se, VB6 não é futuro e nem é passado!
Rails 3 Beta 4 – rake aborted! uninitialized constant Bundler
Aug 10th
O Rails 3 está saindo do forno. Igualmente a todos os frameworks que são novos ou que passam por uma boa reformulação erros ocorrem de forma mais freqüente. Não poderia ser diferente com o Rails 3, que está na sua versão Beta 4.
Bem, se você está brincando com o Rails 3 Beta 4 e usando o interpretador Ruby 1.9.1p429, provavelmente está quebrando a cabeça com esse problema que da título a esse post. Esse é um bug específico dessa versão do Ruby, a p429.
O erro completo é esse:
Error loading gem paths on load path in gem_prelude can't modify frozen string <internal:gem_prelude>:69:in `force_encoding' <internal:gem_prelude>:69:in `set_home' <internal:gem_prelude>:38:in `dir' <internal:gem_prelude>:76:in `set_paths' <internal:gem_prelude>:47:in `path' <internal:gem_prelude>:286:in `push_all_highest_version_gems_on_load_path' <internal:gem_prelude>:355:in `<compiled>' (in D:/Desenvolvimento/rails_workspace/MinhaViagem) rake aborted! uninitialized constant Bundler C:/Ruby191/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile' (See full trace by running task with --trace)
Primeiro de tudo, verifique a versão do Ruby que está instalado em sua máquina rodando o comando:
ruby –version
Se o resultado for:
ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-mingw32]
Nota: Estou usando o Windows
Se a versão foi igual ao resultado que postei acima, infelizmente você terá o mesmo erro que eu tive. A solução é simples, porém um pouquinho trabalhosa.
- Remova todo o Ruby da sua máquina;
- Instale o Ruby versão 1.8.7
Seria bom remover todas as gems e reinstalar todas elas, mas isso não é obrigatório!
Se você estiver usando o NetBeans como IDE de desenvolvimento Rails, o erro que solucionamos acima aparecem da seguinte forma:
Espero que tenham conseguido resolver esse problema também!
Até a próxima!
Rails 3 e ainda o problema com o MySQL no Windows
Jul 30th
No dia 10/03/2009 postei uma solução de como acabar com um erro muito chato de conexão entre o Rails 2.2.2 e o MySQL em ambientes Windows. Aliás, esse é um dos posts mais “populares” aqui do blog. O erro naquela ocasião era o seguinte:
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! 126: The specified module could not be found. - c:/ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so (See full trace by running task with --trace)
Hoje, fui instalar o Rails 3 Beta 4 e gostaria de usa-lo com o MySQL e não com o SQLite (padrão do Rails hoje). Tudo isso rodando em ambiente Windows XP SP3. Então lá fui eu. Instalei o Ruby 1.9.1, Instalei o RubyGems, instalei o Rails 3 Beta 4 e todas suas dependências, o banco MySQL e por fim, instalei a gem do mysql usando o seguinte comando:
gem install mysql
Nesse ponto, chego a conclusão de que está tudo pronto! Basta iniciar o desenvolvimento da aplicação! Engano meu! No primeiro migrate que fui rodar usando o comando:
rake db:migrate
Me aparece o seguinte erro:
(in D:/DEV/Ruby/AppTeste) rake aborted! Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB (See full trace by running task with --trace)
A mensagem é diferente daquele primeiro erro postado em 10/03/2009, porém a solução é idêntica! Basta baixar a versão antiga do libmySQL.dll e colocar esse arquivo na pasta C:\Ruby\bin (ou qualquer outra pasta que seu Ruby estiver instalado), reiniciar o MySQL e executar o migrate de novo. Feito isso o migrate vai rodar tranquilo!
Você pode baixar o libmySQL.dll aqui ou aqui. O segundo link é um link próprio do blog e o primeiro é do InstantRails.
A solução é relativamente simples, o que me surpreende é a persistência desse erro. É um dos erros mais populares para quem desenvolve em Rails com MySQL em ambientes Windows e ainda não foi corrigido. Uma pena!
Enjoy!
Dica rápida: Instalando GEMs com proxy ativo
Jul 28th
Na maioria das empresas o acesso a Internet é feito através de proxies. Prática absolutamente normal por questões de segurança. Mas as vezes, esses proxies podem nos dar uma certa dor de cabeça quando precisamos usar a Internet e que não seja através do navegador.
É nisso que se encaixa o RubyGems. Quando instalamos um gem, usamos o simples comando:
gem install <nome do gem>
Nesse comando, o RubyGems tenta se conectar na Internet para baixar o gem que você solicitou para instalar. Mas se você está atrás de um proxy, não obterá sucesso e o RubyGem cuspirá a seguinte mensagem de erro para você:
Updating RubyGems ERROR: http://rubygems.org/ does not appear to be a repository ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno::ETIMEDOUT: Uma tentativa de conexão falhou porque o componente conectado não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou porque o host conectado não respondeu. - connect(2) (http://rubygems.org/yaml)
Essa mensagem vem do SO. O RubyGem apenas a redireciona para você. Nela esta claro que não houve possibilidade de conexão.
Então, para se conectar ao servidor e baixar corretamente os RubyGems através de um proxy, basta adicionar o comando
--http-proxy <proxy>:<porta>
Sendo assim, nosso comando completo de instalação incluindo o proxy ficaria:
gem install --http-proxy <proxy>:<porta> <nome do gem>
Agora as instalações e updates funcionarão através do proxy normalmente.
Até a próxima.
Montando ambiente completo Windows + Apache + PHP + MySQL com XAMPP
Jul 26th
Montar um ambiente de desenvolvimento do zero usando o Windows, Apache, PHP e o MySQL sem nenhum pacote pronto, não é tão trivial. Por isso existem esses pacotes prontos que fazem todo o serviço de instalação e configuração para nós e ainda nos fornecem ferramentas úteis.
Uma dessas ferramentas e a melhor que encontrei até agora é o XAMPP. Esse pacote nos fornece um conjunto de ferramentas prontas para nos auxiliar no desenvolvimento de PHP com MySQL. Dentre as ferramentas oferecidas estão:
- Servidor web Apache;
- Banco de dados MySQL;
- Interpretador PHP versão 5 e 4;
- PHPMyAdmin – Administração do MySQL;
- Painel de controle para iniciar e parar os serviços;
- Perl;
- Tomcat – Instalação via add-on;
Existem muito mais coisas que estão disponíveis no site oficial. Visite o site para ter mais informações sobre o que vem mais com o pacote.
Para baixar, acesse o site e baixe a versão .EXE auto-installer. Com essa versão basta clicar Install e você terá seu XAMPP instalado.
A instalação é um pouco demorada. Relaxe. É assim mesmo!
Após a instalação, irá aparecer uma tela de console perguntando se você deseja adicionar atalhos no menu iniciar e na área de trabalho. Aqui você precisará digitar “y” para sim e “n” para não. Sem aspas, claro. Digite sua resposta e tecle Enter.
Depois dessa pergunta, haverá mais uma pergunta em console que você terá que responder “y”. Na outra questão que irá aparecer, será perguntado se você quer transformar o XAMPP em portátil colocando ele em pen-drives. Não é nosso caso, sendo assim, responda “n”.
Feito isso, está quase tudo pronto. O instalador fará alguns procedimentos e levará você para uma outra tela de console onde haverá um menu com várias opções. A única opção que nos interessa, por enquanto, é a opção 1 – Start XAMPP Control Panel. Essa opção iniciará o painel de controle do XAMPP. Nesse painel de controle podemos iniciar o servidor apache e o MySQL por exemplo.
Abaixo está uma figura do Painel de controle do XAMPP. Clique em START para o Apache e para o MySQL. Os dois serviços iniciará e aparecerá a informação Running, ao lado e em verde. Isso significa que os serviços de banco de dados e servidor apache estão rodando.
Feito isso, tudo está pronto. Só vamos validar a instalação abrindo qualquer navegador e digitando na barra de endereço: http://localhost.
Navegador:
Agora, para começar a desenvolver, basta colocar seus scripts PHP em htdocs, que fica dentro da pasta de instalação do Xampp.
Enjoy!





Recent Comments