Colocando Códigos Coloridos no WordPress

Posted by Luiz Carvalho | Posted in Dicas | Posted on 23-10-2008-05-2008

1

Para quem tem seu wordpress hospedado em dominio próprio é facil, instala-se o wp-sintaxe e tudo fui.

Já quando seu blog está no dominio do WordPress, eles impedem a instalação de plugins por motivos de segurança. escrevi varios posts com os códigos dentro de tags <pre> para poder haver um destaque(ficou Horrível). busquei em varios outros blogs a solução mas nada, até que um dia dando uma olhada no meu Reader Achei o blog do Cassio Marques que estava no dominio do WordPress e utilizava SintaxeHighLighter em seus códigos Ruby. então tive que perguntar, a resposta foi rapida e por incrível que pareca simples.

basta inserir a seguinte tag em modo de edição HTML

[source language="linguagem"]

SEU CÓDIGO

[/source]

Esse código chama a função de um plugin chamado dpHighlight que transforma seu código em uma caixa com sintaxe colorida em diversas linguagens. Dei uma olhada no Plugin de acordo com eu ele colore as seguintes linguagens:

Php – “php”
Xml – “xml”
C# – “csharp”
Delphi – “delphi”
JavaScript – “jscript”
Python – “python”
Sql – “sql”
Visualbasic – “vb”
Ruby – “ruby”
Css – “css”
C++ – “cpp”
Java – “java”

DEMO

PHP
[source language="php"]

@a = “aa”

[a,1,:d=>'s']

[/source]

Ruby
[source language="ruby"]

@a = “aa”

[a,1,:d=>'s']

[/source]

CSharp
[source language="csharp"]

@a = “aa”

[a,1,:d=>'s']

[/source]
:)

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

Erro ao dar Push no repositório GIT

Posted by Luiz Carvalho | Posted in Uncategorized | Posted on 02-10-2008-05-2008

1

Aqui vai um resumo de como eu resolvi esse problema :)

Eu sou novato tanto em GIT quanto em qualquer outro software de versionamento. nubei de mais XD

IMPORTANTE:

isso não é um tutorial, ou seja não siga os passos dele para obter um bom resultado, mas partes desse evento podem ser uma solução para seu problema. erros de português tem aqui aos montes… waaalleee!!

Bom quando fui dar o simples e corriqueiro git push no getna me veio o seguinte erro:

git push
To git@github.com:user/repo.git
! [rejected] branchname -> branchname (non-fast forward)
error: failed to push some refs to 'git@github.com:user/repo.git'

Após realizar uma pesquisa, logo veio a solução, como eu havia feito alterações no código em meu trabalho com uma versão mais antiga(a que estava no GIT) do que eu tinha em minha casa(esqueci de “pushar” o código) então necessitava dar um comando para pegar o código que estava no git

git pull

simples não?

Como retorno obtivemos

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git pull
remote: Counting objects: 28, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 17 (delta 7), reused 0 (delta 0)
Unpacking objects: 100% (17/17), done.
From git@github.com:LuizCarvalho/getna
   31ef4ca..3df45aa  master     -> origin/master
 * [new branch]      trunk      -> origin/trunk
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull  ').
See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:

    branch.master.remote =
    branch.master.merge =
    remote..url =
    remote..fetch =

See git-config(1) for details.

Bom… melhorou mais ainda não funcionou…

eu tinha uma certeza que devia fazer um merge… mas num sabia como fazer isso, dei um:

git checkout master

apareceu algumas coisas, ai achei que agora iria funcionar, é hora do merge:

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git merge trunk
trunk - not something we can merge

é acho que não funcionou… :( , no tutorial do Akita pareceu tão facil, nao entendi essa de não poder mesclar….

bom pensei um pouco eu tenho a seguinte situação

tenho:

getna V1(master) – github
getna V2(master) – em casa
getna V3(trunk) – github

hum, acho que eu baguncei de mais… acho que o que eu estou tentando é unir V2 e V3. mas e V1…

hum… esperem… isso pode funcionar vo fazer um teste.

git branch -a
* master
  origin/master
  origin/trunk

Opa. hum eu tentei dar um merge no master(V2)… que é o branch que eu estou no momento… e esse origin/master… acho que ele é o master que esta no github(V1)…vamos ver… o que é um peido pra que já esta cagado não é mesmo? :D

git merge origin/master

generators/getna/doc/rdoc-style.css: needs update
generators/getna/templates_1/controller.rb: needs update
generators/getna/templates_1/functional_test.rb: needs update
generators/getna/templates_1/helper.rb: needs update
generators/getna/templates_1/layout.html.erb: needs update
generators/getna/templates_1/style.css: needs update
(...)
Auto-merged generators/getna/USAGE
CONFLICT (content): Merge conflict in generators/getna/USAGE
Automatic merge failed; fix conflicts and then commit the result.

OHHHHH!!! que isso? acho q agora sim *.*

Mas esperem, que negocio é esse de merge failed… vix… acho que não foi… hum vo tentar de novo eu gostei desse merge XD

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git merge origin/master
You are in the middle of a conflicted merge.

Ein? que isso ai agora? porque dessa vez não funcionou? :( , vo ver esse arquivo USAGE ai

<<<<<<< HEAD:generators/getna/USAGE
== Getna

=======
script/generator getna xxx
>>>>>>> origin/master:generators/getna/USAGE

Que isso meu deus do céu??? O.o. De onde veio esse código doido?

Hum… esse é a tal das tags de conlfito…. vo resolver essa budega.. vo tirar a parte que eu n quero mais.

== Getna

script/generator getna xxx

Aew. eu quero assim  =)

e agora… to com medo de c*gar de novo o código…. to nem ai XD

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git merge origin/master
You are in the middle of a conflicted merge.

Ué. mas eu resolvi essa carniça ai agorinha… O.o

deixa eu ver aqui.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git status
generators/getna/USAGE: needs merge
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#
#    unmerged:   generators/getna/USAGE
#    modified:   generators/getna/USAGE

AAHHH, tô ligado… acho que vou ter q adicionar de novo pra funcionar.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git add .

hum… acho que agora eu uso o tal do rebase… pra refazer todas as mudanças nos dois desde o incio. =) vamos ver o que dá.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git rebase --continue
You must edit all merge conflicts and then
mark them as resolved using git add

O.o, mas que p*rra… vo adicionar só  o arquivo agora.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git add generators/getna/USAGE

Hum… deixa eu verificar o status de novo.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    modified:   generators/getna/USAGE
#

Opa, animei de novo. agora parece tudo ok. vamos de novo:

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git rebase --continue
You must edit all merge conflicts and then
mark them as resolved using git add

VSF!!! Q RAIOSSS!!!

vo desistir… ¬¬… sabe de uma coisa vo commitar assim mesmo, sei que não vai funcionar mas nasci pelado, careca e banguela… agora o que vier é lucro.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git commit -m "resolvendo conflitos"
Created commit 8284ddb: resolvendo conflitos
maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git push
Counting objects: 32, done.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (19/19), 4.49 KiB, done.
Total 19 (delta 7), reused 0 (delta 0)
To git@github.com:LuizCarvalho/getna.git
   3df45aa..8284ddb  master -> master

UAHuaHuHuHAuhAUAHUahUAhuHau

Yuhuuuuuuuu!!! YEAAHH!!!!

AMÉMMM!!!

XUPA QUE EH DE UVAAA!!

CREU CREU CREEUU!!

=) que louco! funcionou!

heheh

Viva AO GIT!

__________________-
__________________
_______________

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

GEtna na || Semana Acadêmica de Ciências da Computação – UFT

Posted by Luiz Carvalho | Posted in Noticias | Posted on 26-09-2008-05-2008

0

Bom Leitor,

Temos ótimas noticias sobre nosso GEtna, hoje(25 de setembro de 08) foi apresentada na II semana Acadêmica do Curso de Ciência da Computação da Universidade Federal do Tocantins uma pequena introdução sobre o Gerador, a galera gostou, ( :) que alivio), infelizmente não foi tão bom quanto eu esperava, cheguei 3 minutos antes de ser anunciado (culpa da passeata da Nilmar [Candidata a prefeita aqui de Palmas]), então fui sem preparação psicológica nenhuma, fiz a cronologia da apresentação deu 37 minutos, eu me esforcei pra deixar com 30, chegando lá só tinha 20 :O, e agora? bom apressei o Maximo que pude acho que atropelei algumas coisas importantes mas no final não saiu tão mal =).

Ah outra coisa que não posso esquecer é que temos mais uma ajuda no projeto GEtna Silvio Fernandes Já fez um fork no projeto andou dando umas fuçadas deus umas dicas legais e é nosso mais novo parceiro nesse trabalho. isso sim é projeto Open Source =). valeu Silvio.
Vou disponibilizar a apresentação aqui no blog, junto com algumas fotos do evento.

update: 18 out 2008: Adicionado minhas fotos =)

Para ver o Slide Clique Aqui

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

Getna : Uma Abordagem geral sobre o processo de desenvolvimento.

Posted by Luiz Carvalho | Posted in Artigos | Posted on 07-09-2008-05-2008

0

Para a realização deste trabalho, a primeira medida a ser efetuada é a definição do escopo do gerador, ou seja, quais funcionalidades estarão realmente presentes. Para isso, serão analisadas algumas limitações existentes em várias linguagens, como processos repetitivos e cansativos, no desenvolvimento de uma aplicação, inclusive no próprio Rails.

Iniciaremos o processo de desenvolvimento do gerador pela seleção do tipo, existindo várias possibilidades, como criação de um conjunto de scripts independentes que, ao ser executado por um comando, efetuaria a geração. Uma segunda opção cabível é a criação de uma Gem, um módulo que adiciona novas funcionalidades ao coração do Ruby, sendo expansível a qualquer outro módulo, ou framework nele existente, conseqüentemente, disponíveis às aplicações Rails. Outra possibilidade é criar um plugin (módulo de caráter expansível à uma aplicação Rails) que acoplado ao um projeto do framework pode ser utilizado em conjunto com a aplicação. Dentre as opções apresentadas, escolheremos a opção mais apropriada verificando questões como facilidade de instalação na aplicação, utilização e desenvolvimento.

Como ferramenta de apoio à linguagem de programação usada para desenvolver o gerador de código, utilizaremos o Netbeans devido ao fato de que se possui uma certa experiência com essa IDE e também porque esta possui suporte total à linguagem e ao framework, tornando a programação mais simples e intuitiva.

Uma das tarefas mais importantes será encontrar uma forma de mapeamento do banco de dados, pois dependendo da forma, utilizando um plugin, comandos SQL ou um recurso do próprio Rails, isto vai influenciar diretamente na qualidade final gerador. O uso comandos SQL manuais podem deixar o processo de geração mais lento e mais pesado, se utilizarmos plugin perderíamos a portabilidade e simplicidade do gerador, pois haveria dependência direta de um agente externo, que necessitaria sempre ser instalado junto com o gerador e na pior da hipótese esse plugin pode ser descontinuado fazendo assim com que nossa ferramenta se tornasse legada em uma possível atualização do Rails.

A melhor saída seria utilizar componentes já disponibilizados pelo Ruby ou Pelo Rails, o ActiveRecord, um das Gems que compõem o framework e responsável pela manipulação da base de dados, pode ser a saída para realização dessa tarefa.

Foram feitos estudos em relação à geração de código em outras linguagens e no Rails, foi dado, então, inicio a produção do gerador, uma preocupação nessa etapa foi deixar o código gerado limpo, funcional e re-aproveitável, a resposta estava na utilização de padrões do próprio Rails. Com essa definição deve, então, ser iniciada a criação de templates, arquivos que contem toda a lógica dos códigos a serem gerados.
A estruturação do desenvolvimento do gerador pode ser organizada em cinco partes fundamentais, que serão descritas a seguir. Primeira parte é o gerador, encontrado como arquivo getna_generator.rb pode ser considerado o motor de geração, todas as requisições e tratamentos passar pela sua administração. A segunda é a obtenção e tratamento de dados, a classe Getna (inclusa no arquivo getna.rb, da pasta lib/), contendo todos os módulos Ruby necessários para a manipulação de dados, inclusive o módulo Base, que faz o mapeamento da base e cuida dos relacionamentos.

Na terceira parte encontramos os templates, arquivos modelos de cada arquivo que vai ser gerado, nessa parte que focamos a qualidade de código e a estruturação de cada arquivo. Os arquivos de testes para “cobrir” a aplicação contra erros se encontram na quarta parte de nossa aplicação.
A quinta e ultima parte leva os arquivos adicionais como licença, instalação, desinstalação, descrição e inicialização, arquivos necessários para criação de um projeto Rails, essa estrutura pode ser mais bem entendida na figura abaixo:


Estrutura do Gerador GEtna

Será feito um estudo sobre licenças de código livre para formalizar o gerador como um projeto oficialmente livre e disponível para toda a comunidade. A licença MIT (Massachusetts Institute of Technology), por exemplo, tem grandes chances de ser escolhida.

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

GEtna – Ep. 3: Mapeando Tabelas do Banco de Dados

Posted by Luiz Carvalho | Posted in Artigos | Posted on 07-08-2008-05-2008

6

Primeiro passo de nosso gerador Rails era buscar todas as tabelas do banco de dados e criar a estrutura inicial… outro problema após algumas horas vendo documentação… bingo! nada XD, Pedindo ajuda para nossa comunidade de sábios desenvolvedores do rails-br, obtive varias sugestões como: De Buscar Pelo Model de Abraão Coelho, Cássio Marques, infelizmente não serviu, pois ainda não tenho model algum, necessito cria-los. Renan Andrade teve uma otima ideia, já que até agora eu defini que o banco seria MySQL poderia fazer um simples:

mysql> show tables; <= mostra as tabelas;
mysql> describe suatabela; <= exibe sua tabela com as descrições do campo.

OK, Mas queria algo mais pratico, tinha certeza que o ActiveRecord poderia fazer isso, e não ia desistir de encontrar.

Estava tentando algo bem bobo como:

ActiveRecord::Base.column_names

Me deparei com o seguinte erro:

NoMethodError: undefined method `abstract_class?’ for Object:Class
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1915:in `class_of_active_record_descendant’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1277:in `base_class’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1012:in `reset_table_name’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1008:in `table_name’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1145:in `columns’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1158:in `column_names’
from (irb):16

Ricardo S Yasuda e Davis Zanetti Me abriram os olhos quanto ao metodo que só funciona em uma instancia do ActiveRecord e não em uma Classe Abstrata, isso foi muito importante para a minha conclusão.

Ulisses de Albuquerque Deu uma dica boa sobre Adapters mas isso ainda não era claro pra mim, mas foi muito importante isso ai.

Juan Maiz então me endicou uma saída, utilizar o Sequel Uma solução perfeita para meus problemas, mas fiquei um pouco desanimado pensando que o ActiveRecord… o Poderoso ActiveRecord não tinha tal funcionalidade… e tambem que meu simples generator tenha que usar alguma dependência tão primitivamente para realizar uma pequena tarefa. Bom não desisti e fui feliz em minha busca e insistência.

@con = ActiveRecord::Base.connection
@table_names = @con.execute(‘show tables’)

Está ai, nossas tabelas :) legal né, saí juntando as dicas do pessoal todo e bingo, saiu alguma coisa, bom com isso já posso começar…, mas como sou meio curioso e me animei com esse negocio e não custava nada dar uma adentrada a mais… olha o que descobri…

@con = ActiveRecord::Base.connection
@table_names = @con.tables


:D Que legal, não era que o ActiveRecord Tinha mesmo o bendito Método… só um pouco de pesquisa e fica simples.

Agradeço a toda a Comunidade.

Abraços

Para ver todos os posts Sobre Getna clique aqui

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

GEtna – Ep. 2: Primeiros Passos

Posted by Luiz Carvalho | Posted in Artigos | Posted on 06-08-2008-05-2008

1

Iniciar meu Projeto… e agora por onde devo começar?

Primeiro a definição do projeto, ué é um gerador… então vamos criar um gerador. uma googlada básica e “Gerador em Rails“, bom nesse tutorial já me sanaram outra duvida, Plugin ou Gem como no tutorial ensina a fazer um plugin, advinha o que eu fiz?

Criamos o Projeto Rails

rails projetogetna

e fizemos exatamente o que está no tutorial, bom funcionou até um certo ponto o ultimo arquivo, deu pau lá nas migrates, mas acho que deve ser por causa da versão do Rails.

Comecei a “programar” depois de algumas horas tentando entender o funcionamento e brincando com Rails::Generator::NamedBase, como um bom iniciante vindo de uma metodologia totalmente diferente, tentei Debugar o codigo com o ruby-debug-base fui até o bom e velho Grupo rails-br onde, dentre todas as comunidades que eu passei, encontro a galera mais prestativa dessas comunidades de Programação. onde Davis Zanetti, Diego Carrion,Tino Gomes e Cássio Marques Deram uma Força, e mandaram (Pra varias Escrever teste), bom eu ainda to meio engatinhando nessa parada de testes, mas pow, to no Rails. e estou começando uma longa jornada ate a dominação desse metodo.

Como ainda não sou Hábil com isso achei uma solução, no mínimo, “Gambiarral” fazer saidas do sistema tirei a ideia do post do Diego Carrion:

“Para não precissar debugar acho que o melhor é ter bons logs, ai caso
aconteça um erro, voce pega os dados do log e cria um novo teste :D

A maneira que eu fiz foi gerar saidas do sistema com os conteúdos das variaveis usando o

$stdout.print

O Codigo fica um pouco feio XD, mas foi a minha saída:


$stdout.print ARGS
runtime_args.each { |i|  $stdout.print#{i}\n }

Bo isso funciona e garante alguns dias a mais sem Testes.

Para ver todos os posts Sobre Getna clique aqui

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

GEtna – Ep. 1: A ideia

Posted by Luiz Carvalho | Posted in Artigos | Posted on 05-08-2008-05-2008

0

Reta Final do meu Curso de Bacharelado em Ciência da Computação a Surgiu a pergunta… “e agora qual vai ser o tema de meu TCC?”. Após vários conflitos entre eu e meu parceiro de Monografia (Sim, Aqui se faz(ia) monografia em Dupla) finalmente consegui convence-lo de fazer algo em RubyOnRails, ele é meio Neofóbico queria por que queria fazer algo em PHP,

Minha proposta era fazer um projeto Open Source de um Gerador Rails que apartir de um Banco de dados gera-se toda a estrutura inicial de um Projeto Rails, algumas características que estarão presente no projeto:

Models – Com relacionamentos(Has_many,Has_many Throught, Belongs_to)

Controllers – Carregando informações sobre objetos relacionais

Views

Routes

Validations – cria-se validações para inteiros, flutuantes, tamanhos e de presença.

Migrates

Customização da aplicação através de layouts pré-definidos.

Tests – Criação de Testes unitários e funcionais básicos.

Suporte multi-Linguagem – pode-se gerar interface em diversas linguagens (PT-

Br,En,…)

Bom para muitos pode até não ser grande coisa, mas eu tenho apenas 3 meses de Rails, e só por ser Rails já ajuda na nota. Outro fator que me obrigou a não tentar algo mais complexo foi o caso da Monografia em Dupla, ontem acabaram com isso, então vou ter que me virar só em 4 meses pra implementa tudo fazer toda a parte escrita, ainda passar em todas as outras matérias restantes e sem esquecer que trabalho, ou seja não vai ser nada fácil.

Agora uma boa explicação para o nome GETNA, bom após algumas noites pensando não tive nenhuma idéia boa, quando, assistindo um documentário sobre vulcões o locutor disse “(…) saindo das entranhas da terra o vulcão Etna Gera um espetáculo incrível(…) ” aquele luzinha acende sobre minha cabeça, Gerar um espetáculo… isso que eu queria que meu plugin/gem (Ainda não decidi, tá mais para Plugin mesmo ) fizesse. Vamos então a formulação do nome:

Tentei algo de Mitologia:

Grega

Hefesto
HefestoDB
Enceladus

Mitilogia Sumérica
Nergal

Mitologia Babilônica
Angaraka

Mitologia Indiana
Pifoedus

Hawaiana
Buhul

Não gostei de nenhum, ai voltei ao inicio:
Etna
EtnaDB

Getna … Num sei porque, gostei desse! :)

Após Decidido o Nome Vamos a logo :)

Essa aqui é a primeira instância. Deve ocorrer algumas modificações futuras.

Getna Logo - Fundo TransparenteGetna Logo - Fundo Preto

Bom até agora foi isso que foi feito, desejem-me boa sorte!

Abraços!

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

Criando Aplicações com o plugin YM4R para utilizar Mapas do Google Maps com RubyOnRails – Parte 2

Posted by Luiz Carvalho | Posted in Tutoriais | Posted on 31-07-2008-05-2008

8

PARTE 1
Vamos ai Final de nosso Tutorial ^^

Eu adicionei o seguinte código na Action Show, pra quando for visualizar as informações veja o mapa junto, dá pra fazer também no index ai você mostra todas as localidades e tals ou mesmo criar uma outra action apenas para mostrar o mapa, a gosto do freguês.

@map = GMap.new(“map_div_id”)
@map.control_init(:large_map => true, :map_type => true) @map.center_zoom_init([@mapa.latitude,@mapa.longitude], 14)
marker = GMarker.new([@mapa.latitude,@mapa.longitude], :titile => “Onde eu estou?”, :info_window => “Olá Palmas, Tocantins”)

@map.overlay_init(marker)
Aqui está o motor de nosso mapa vamos à explicação: @map = GMap.new(“map_div_id”) map_div_id é o id que vai ser gerado em seu HTML

@map.control_init(:large_map => true, :map_type => true)
Definimos opções visíveis no mapa :large_map define a presença da ferramenta de zoom e deslocação. :map_type informa se será possivel escolher os tipos de mapa (Mapa, Satélite e Hibrido).

@map.center_zoom_init([@mapa.latitude,@mapa.longitude], 14)
Definimos qual será a posição inicial do nosso mapa e o zoom default de nosso mapa. Onde @mapa.latitude e @mapa.longitude são as coordenadas que, eu em meu sistema, cadastrei.

marker = GMarker.new([@mapa.latitude,@mapa.longitude],
define aposição de nosso marcador

:title => “Onde eu estou?”, :info_window => “Olá Palmas, Tocantins”)
Definimos a legenda e o texto que irá aparecer no balão.

@map.overlay_init(marker)
Ai, informamos que desejamos rendenrizar o marcador que criamos. Agora vamos a nossa view, no nosso caso o show de mapas, escolhido por nós(EU) para ser nossa interface para o mapa.

/app/views/mapas/show.html.erb Adicione o seguinte código 600, :height => 400) %> Onde você pode definir o tamanho do seu mapa com :width e :height.

Ok, cadastramos nossa Localidade.

E vamos mostrar nosso resultado.

Colocando a Aplicação em produção

Após ser feita a transição para modo de produção seu mapa não apareceu mais?
Bom, como dito no inicio necessitamos de uma chave real do Google Maps, então vamos lá. Essa chave pode ser adquirida aqui. Aceite os termos e digite o endereço de sua aplicação

E aperte o botão [Generate API Key] Bom essa é sua chave a copie para um lugar seguro.

Ok, agora vamos até nosso arquivo config/gmaps_api_key.yml E Colocamos nossa chave lá. Do modo que está lá você informa o domínio e a chave para aquele domínio, para mim não deu certo, deu certo apenas quando coloquei a chave direto em production como esta em no exemplo abaixo:

Isso Funcionou apenas o modo de Produção, para o Desenvolviemtno deixe o codigo como esta.

Pronto sua aplicação deve estar funcionando. Qualquer duvida:
Comente e Volte para ler sua resposta. Obrigado pela paciência e se acharem erros (com certeza acharão muitos) me avisem, por favor, para que possa corrigi-los.

Download do Projeto

Updated: 12 -09-2008

Valeu ai Nofxx pela correção temporal em meus verbos :)

Para complementar meu amigo Jackson Pires fez um post sobre o assunto confira

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

Criando Aplicações com o plugin YM4R para utilizar Mapas do Google Maps com RubyOnRails – Parte 1

Posted by Luiz Carvalho | Posted in Tutoriais | Posted on 31-07-2008-05-2008

4

<!–

Olá Leitores.

Depois hoje vou fazer um tutorial muito legal, manipulação da API do Google Maps utilizando o plugin YM4R

Agradecimentos:
Este Tutorial não seria Possível se não fosse a ajuda da galera do Grupo Rails-BR e em especial para meu amigo Eduardo Scoz do Mapia que me deu uma força muito grande com isso.
E ao tutorial que eu me baseei pra fazer esse aqui o do Juixe TechKnow

Tambem a Blogs que me inspiraram a criar o meu e tentar passar experinências que ganhei com essa linguagem, dentre eles:
AkitaOnRails
E o Nome do Jogo

Artilharia:
• IDE Utilizada NetBeans 6.1 Pt-BR
• Versão Utilizada: Ym4r 0.6.1
• Rails 2.1

Mão na Sogra. ou a obra.

Primeira coisa é criar nosso projeto RubyOnRails.
Arquivo->Novo Projeto->Ruby->Ruby On Rails
PROXIMO>

Renomeie a seu gosto!

Criado nosso projeto vamos atrás de nosso Plugin.
Clique com o direito no ícone do seu projeto e vá até [Pligins Rails] e na janela que se abrir clique na aba [Repositórios]

Logo após aperte o botão [Adicionar URL] e coloque a URL do repositório do YM4R

http://ym4r.rubyforge.org/svn/ym4r/Plugins/GM/trunk

[OK]

Agora vá até a Aba [Novos Pligins] espere os plugins carregarem então escolha o nosso YM4R

E aperte [Instalar]

Após baixar e instalar o Plugin Aperte [Fechar] e [Fechar].

Ou utilize na linha de comando apenas:

(Obrigado pela dica Eduardo)

ruby script/plugin install svn://rubyforge.org/var/svn/ym4r/Plugins/GM/trunk/ym4r_gm

Agora vamos criar o banco se não nossa aplicação não vai funfar.

Clique com o direito no seu projeto

Executar Tarefa Rake -> db -> create

Vou criar um Scaffold com algumas informações relevantes, Clique com o direito no Projeto e na opção [Gerar]

No Campo NOME DO MODELO digite:

mapa nome:string longitude:string latitude:string

Antes de Qualquer coisa vamos aplicar as migrates

Clique com o botão direito no seu projeto e

Migrar bando de dados -> Para a versão XXXXXXXXXXX – CreateMapas

Saída:
== 20080725214621 CreateMapas: migrating ======================================
– create_table(:mapas)
-> 0.0183s
== 20080725214621 CreateMapas: migrated (0.0187s) =============================

Vamos testar. Basta apenas apertar F6

Ok, Tudo pronto vamos aos mapas.

Na pasta Configuração você encontra o arquivo chamado onde você irá colocar sua chave do Google Maps. Em modo de desenvolvimento isso ainda não é necessário, mas quando formos colocá-lo em produção iremos dizer como realizar esse procedimento

Precisamos agora carregar os Java Scripts do Google Maps para nossa aplicação, vamos ao : /app/views/layouts/mapas.html.erb

Adicionamos as linhas, entre as tags Heads:

   <%= GMap.header %> e <%= javascript_include_tag 'ym4r-gm'    %>

Após isso vamos ao nosso controller.

/app/controllers/mapas_controller.rb

Até A Parte 2
Abraços!

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter

Como Utilizar o Debug do Netbeans 6.1 para Ruby e Java

Posted by Luiz Carvalho | Posted in Tutoriais | Posted on 03-07-2008-05-2008

6

Olá Meus Queridos Leitores.

Hoje vou falar de uma coisa que para maioria é besteira, mas para mim não foi. Sempre programei bastante no NetBeans e nunca antes havia debugado meu codigo. eu não fazia a minima ideia de como funcionava nele, o unico compilador que eu havia feito isso foi no Turbo-C :P .

Procurei no Google e nenhum site/forum/blog havia sanado minha duvida então com muita insistência acabei descobrindo como e vim compartilhar com vocês.

Meu Exemplo é em Ruby, mas foi testado com java tambem e acho que é compatível com qualquer linguagem que suporte debug no NetBeans.

Vamos lá Primeiro abrir nosso NetBeans e criar nosso codigo de exemplo.

File->New project->Ruby->Aplicativo Ruby

E criamos o seguinte codigo:

#Projeto_1 : Vetores
vet1 = [0,2,4,6,8]
vet2 = [1,3,5,7,9]
vetF = []
k=0
for i in (05)
vetF[k] = vet1[i]
k=k+1
vetF[k] = vet2[i]
k=k+1
end
puts vetF #{vetF}

Vamos ver como nosso codigo está funcionando.
Esse Codigo faz a seguinte tarefa. ele intercala dois vetores (vet1 e vet2 ) em um terceiro (vetf), de modo que vet1 possui numeros pares e vet2 numeros impares e vamos uni-los em um realizando a sequência correta.

Primiero vamos Instalar o Ruby(no meu caso ainda não tinha instalado) ou se for usar o java o netbeans jpa vem por padrão.

vá em Tools -> Plugins e procure o componente Ruby and Rails e instale-o

Bom Após nosso Ruby Instalado vamos ao nosso Debug primeiro defina os Break-Points.
Esse BreakPoints são os locais onde nosso interpretador deve para para que possamos analisar nossas variáveis.
basta clica na a linha do lado de cada linha que você deseja parar.

Depois que definimos os Breaks-Points vamos então executar nosso programa em modo Debug
Aperte o botão de debug(ou apenas Ctrl+F5)

Bom e agora cad minhas variaveis, você pode vela-as apenas passando o mouse por cima delas mais eu prefiro usar os Watches(Observadores) Selecione uma variável, clique com o direito e NEW WATCHE, ou simplesmente Ctrl+Shift+F7 e nessa janelinhas em baixo vai aparecer suas variáveis com seus respectivos conteúdos (caso não aparece tecle Alt+Shift+2)

Após você iniciar o Debug uma linha verde no meio das vermelhas(break Points) irá aparecer essa é a linha em que o compilador esta nesse exato momento.

Bom, mas iai… nosso codigo parou… hehe do lado do botão de executar o debug apareceu novos botões, entre eles o Continue(F5) clique nele. e o interpretador irá para a próxima linha.

Hum Olhe ai nossa variável como o seu conteúdo.

Após alguns passos (Steps)[F5] e a progressiva alteração do nosso Vetor Final (vetf) ele fica assim, e tudo assistido passo a passo por nós.

Bom está ai. uma mão na roda quando você trabalha com grande estrutura de dados que te deixam loucos quando você não acha o bendito erro, como uma variável nula que você não sabe de onde vem pelo dabug você a encontra facilmente e acaba com ela.

espero que esse post seja útil para alguém, se sim deixe comentario o feedback é nosso incentivo para cada vez melhorar mais e produzir mais. se encontrou alguma duvida coloque ai e vamos tentar sana-la e melhorar nosso Tutorial.

Obrigado!

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Technorati
  • Twitter