melhor maneira de depurar joias de terceiros em ruby
<p>uma vez que pode haver muitos <strong>métodos fantasma</strong> dentro de uma ruby gem, não acho que seja uma boa ideia estudar o mecanismo interno de uma ruby gem apenas lendo seu código-fonte estaticamente. existe uma maneira de anexar o arquivo-fonte de uma gem de terceira parte a um ruby processo de depuração para que eu pode definir o ponto de interrupção e ver como as coisas funcionam dinamicamente?<br> btw, eu tentei navegar para o arquivo de origem de uma gema de terceira parte no rubymine clicando no menu de contexto "go to-&gt; implementations" da instrução 'require' ou outro símbolo de uma terceira -part gem (<code>require 'watir'</code> por exemplo), sem sucesso. é normal que um ide de uma linguagem de digitação dinâmica como ruby falhe em uma navegação de símbolo)?</p>
<p>adoraria saber se existe uma maneira melhor de fazer isso, mas como costumo fazer isso é:</p><ol> <li>adicione a gem ruby-debug ao seu gemfile (ou ruby-debug19 se você estiver em ruby 1.9.2)</li> <li>encontre a joia fazendo <code>bundle show gemname</code>. estou em um mac, então geralmente canalizo isso para pbcopy para que seja copiado para minha área de transferência. <code>bundle show rails | pbcopy</code></li> <li>abra o diretório gem em seu editor favorito. <code>mvim /path/to/gem/directory</code></li> <li>navegue até o arquivo e a linha onde deseja colocar o ponto de interrupção * e insira <code>debugger</code> acima da linha em questão.</li> <li>recarregue a página, execute o teste ou faça o que quiser para que o arquivo gem seja executado</li> <li>quando a execução para no depurador, você pode inspecionar as variáveis ​​(<code>p variable\_name</code>) e mova linha por linha com <a href="http://bashdb.sourceforge.net/ruby-debug.html#command-index">comandos do depurador ruby</a> .</li> </ol><p>* saber onde colocar o ponto de interrupção pode exigir algum entendimento do código, mas você deve começar em lib/gemname.rb</p>
<p>atualização de janeiro de 2013: a <strong> <a href="https://github.com/blog/1381-a-whole-new-code-search">nova pesquisa chegou!</a> </strong>, com base em <strong> - <a href="http://www.elasticsearch.org/community/">elasticsearch.org</a> </strong>:</p><p>uma busca por stat dentro do ruby repo será expressa como <strong> <a href="https://github.com/search?q=stat%20repo:ruby/ruby&amp;type=code&amp;ref=advsearch&amp;l="><code>stat repo:ruby/ruby</code></a> </strong>, e agora irá funcionar<sup><sup>tm</sup></sup>.<br> (o nome do repositório não faz distinção entre maiúsculas e minúsculas: <a href="https://github.com/search?q=repo:wordpress/wordpress%20test&amp;type=code&amp;ref=searchresults"><code>test repo:wordpress/wordpress</code></a> retorna o mesmo que <a href="https://github.com/search?q=repo:wordpress/wordpress%20test&amp;type=code&amp;ref=searchresults"><code>test repo:wordpress/wordpress</code></a> )</p><p><img src="https://i.stack.imgur.com/okler.png" alt="enter image description here"></p><p>darei:</p><p><img src="https://i.stack.imgur.com/mjptm.png" alt="enter image description here"></p><p>e você tem muitos outros exemplos de pesquisa, baseados <a href="https://stackoverflow.com/a/5740886/6309">em seguidores</a> , ou <a href="https://stackoverflow.com/a/12241932/6309">em garfos</a> , ou ...</p><hr><p><strong> atualização de julho de 2012 </strong> (antigos dias de pesquisa lucene e indexação de código pobre, combinados com gui quebrada, mantidos aqui para arquivamento):</p><p>a pesquisa (com base em <a href="http://wiki.apache.org/solr/solrquerysyntax">solrquerysyntax</a> ) é agora mais permissiva e o temido "<code>invalid search query. try quoting it.</code>" desapareceu ao usar o <em>default</em> ​​seletor de pesquisa "everything" :)</p><p>(eu suponho que todos nós podemos <strong> <a href="https://twitter.com/pea53">tim pease</a> </strong>, que tinha em um de seus objetivos <a href="https://github.com/blog/1116-tim-pease-is-a-githubber">"hacking em melhorada experiências de busca para todas as propriedades do github</a> ", e <a href="https://twitter.com/vonc\_/status/197565733830541313">eu mencionei essa questão do stack overflow</a> na época;))</p><p>aqui está uma ilustração de um grep dentro do código ruby: ele procura por repositórios e usuários, mas <em>também</em> para o que eu queria pesquisar em primeiro lugar: o código!</p><p><img src="https://i.stack.imgur.com/hhkvy.png" alt="github more permissive search results"></p><hr><p>resposta inicial e ilustração da primeira edição (setembro de 2012 =&gt; março de 2012)</p><p>você pode usar o <a href="http://github.com/search">formulário de pesquisa avançada do github</a> :</p><ul> <li>escolha <code>code</code>, <code>repositories</code> ou <code>users</code> no drop-down e</li> <li>use os prefixos correspondentes <strong> listados para esse tipo de pesquisa </strong>.</li> </ul><p>por exemplo, use a diretiva <strong><code>repo:username/repo-name</code></strong> para limitar a pesquisa a um <strong> código </strong> repositório.<br> a página inicial "<code>advanced search</code>" inclui a seção:</p><blockquote> <p><strong> <em>code</em> </strong> pesquisar:</p> <p>a pesquisa do código examinará todo o código hospedado publicamente no github. você também pode filtrar por:</p> <ul> <li>o idioma <strong><code>language:</code></strong></li> <li>o nome do repositório (incluindo o nome de usuário) <strong><code>repo:</code></strong></li> <li>o caminho do arquivo <strong><code>path:</code></strong></li> </ul> </blockquote><p>portanto, se você selecionar o seletor de pesquisa "<code>code</code>", sua consulta para um texto dentro de um repositório funcionará:</p><p><img src="https://i.stack.imgur.com/a58wf.png" alt="good search selector"></p><hr><p>o que é <em>incrivelmente</em> <strong> inútil </strong> do github é que:</p><ul> <li>se você esquecer de colocar o seletor de busca correto (aqui "<code>code</code>"), você receberá uma mensagem de erro:<br> "<strong><code>invalid search query. try quoting it.</code></strong>"</li> </ul><p><img src="https://i.stack.imgur.com/fjtq8.png" alt="wrong selector for the code filer"></p><ul> <li> <p>a mensagem de erro não ajuda em nada.<br> nenhuma quantidade de "<code>quoting it</code>" tirará você deste erro.</p> </li> <li> <p>depois de receber essa mensagem de erro, você não verá as seções lembrando a associação correta entre a pesquisa <em>seletores</em> ("<code>repositories</code>", "<code>users</code>" ou "<code>language</code>") e a pesquisa (à direita) <em>filtros</em> (aqui "<code>repo:</code>").<br> qualquer outra tentativa que você fizer não exibirá essas associações (seletores-filtros) de volta. apenas a mensagem de erro que você vê acima ...<br> a única maneira de recuperar esses arrays é clicando no ícone "<code>advance search</code>":</p> </li> </ul><p><img src="https://i.stack.imgur.com/fpefn.png" alt="advance search icon on github"></p><ul> <li> <p>o seletor de pesquisa "<code>everything</code>", que é o padrão, é na verdade o <em>errado</em> um para <em>todos</em> dos filtros de pesquisa! exceto "<code>language:</code>" ...<br> (você poderia imaginar/assumir que "<code>everything</code>" ajudaria você a escolher qualquer que seja o seletor de pesquisa que realmente funcione com o filtro de pesquisa "<code>repo:</code>", mas não. isso seria fácil demais)</p> </li> <li> <p>você não pode especificar o seletor de pesquisa desejado por meio do campo "<code>advance search</code>" sozinho!<br> (mas você pode para "<code>language:</code>", mesmo que "<code>search language</code>" seja outra caixa de combinação logo abaixo do "<code>search for</code>" 'digite' uma ...)</p> </li> </ul><p><img src="https://i.stack.imgur.com/6awa6.png" alt="wrong search selector"></p><hr><p>então, a experiência do usuário geralmente é a seguinte:</p><ul> <li>você clica em "<code>advanced search</code>", observa essas seções de filtros e percebe uma que deseja usar: "<code>repo:</code>"</li> <li>você faz uma primeira pesquisa avançada "<code>repo:jruby/jruby stat</code>", mas com o seletor de pesquisa padrão "<code>everything</code>"<br> =&gt; <code>fail</code>! (e os arrays que exibem a associação "seletores-filtros" são <strong> desaparecidos </strong>)</li> <li>você percebe que "search for" selector thingy, selecione o <em>first</em> ​​choice "<code>repositories</code>" ("dah! eu quero pesquisar dentro de repositórios ...")<br> =&gt; <code>fail</code>!</li> <li>desanimado, você seleciona a próxima opção de seletores (aqui, "<code>users</code>"), sem sequer olhar para o dito seletor, só para dar mais uma chance ...<br> =&gt; <code>fail</code>!</li> <li>"dane-se, a busca no github é <strong> quebrada </strong>! eu estou fora daqui!"<br> ...<br> <sup>(a pesquisa avançada do github não está realmente quebrada. apenas sua gui é ...)</sup></li> </ul><hr><p>então, para recapitular, se você quiser "grep para algo dentro de um código do projeto do github", como o op <a href="https://stackoverflow.com/users/392350/ben-humphreys">ben humphreys</a> , não se esqueça de selecionar o seletor de pesquisa "<code>code</code>" ...</p> <p>olá valdiney, é para você fazer uma variação de código.</p>
<p>usar sua curiosidade e criatividade, variar, não se prender só ao que foi pedido, tipo:</p>
<p></p>fazendo diferente:
<strong> teste 1 </strong>
<strong> teste 2 </strong>
<strong> teste 3 </strong>
<p></p>
<p></p> rogerio, aprenda a gostar do google, uma simples pesquisa pelo termo validação jquery formulario já trouxe dezenas de links:[url:descricao=https://www.google.com.br/webhp?sourceid=chrome-instant&io... <p><strong> passo 0: </strong> aprender a tocar no tipo. sério - se seus dedos não sabem onde estão as chaves, então vim vai ser uma dor. e mesmo se você rejeitar o vim, a digitação irá melhorar sua programação (pergunte <a href="http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html">steve yegge</a> ), fazendo com que a mente monitore o atrito do link gratuitamente. existe um <a href="https://stackoverflow.com/questions/410880/how-do-i-improve-my-typing-skills">lote</a> de <a href="https://stackoverflow.com/questions/10475/touch-typing-software-recommendations">software</a> que pode <a href="https://askubuntu.com/questions/32276/are-there-any-good-typing-tutors">ajudar</a> você <a href="https://askubuntu.com/questions/14673/typing-tutor-games-with-good-playablity">melhorar</a> sua digitação.</p><p><strong> passo 1: </strong> use as preferências do teclado para trocar caps lock e escape - a sério, com que frequência você usa o caps lock? usando o vim você estará usando o escape o tempo todo, e tê-lo disponível na linha inicial faz uma enorme diferença. com o desktop padrão do ubuntu, percorra os menus: sistema -&gt; preferências -&gt; teclado -&gt; guia layouts. em seguida, aperte o botão "opções de layout", clique no triângulo ao lado de "comportamento da tecla caps lock" e selecione "swap esc e capslock". (observe como isso mudou - <a href="https://askubuntu.com/questions/444714/how-do-i-swap-escape-and-caps-lock-in-14-04">veja como fazer isso em 14.04</a> .</p><p><strong> passo 2: </strong> use <strong> vimtutor </strong> para você começar. está no gvim (sob o menu de ajuda eu acho) ou você pode simplesmente digitar 'vimtutor' na linha de comando. ele levará de 30 a 45 minutos do seu tempo e, em seguida, seus dedos saberão o básico do vi/vim e você poderá editar os arquivos sem ter que jogar o teclado pela janela.</p><p><strong> passo 3: </strong> use o vim em todos os lugares. vejo <s> <a href="https://stackoverflow.com/questions/826208/making-vim-ubiquitous">esta questão do stackoverflow</a> </s> para dicas e links para usar vim e vi chaves na linha de comando, do seu navegador, para compor e-mails, no seu ide ... você precisa usar o vim para incorporar as chaves em seu músculo memória.</p><p><strong> passo 4: </strong> saiba mais sobre o vim. você só terá arranhado a superfície com o vimtutor. você pode</p><ul> <li>assista a screencasts em <a href="http://vimcasts.org/">vimcasts</a> ou aqueles por <a href="http://www.derekwyatt.org/vim/vim-tutorial-videos/">derek wyatt</a> ;</li> <li> <a href="http://video.google.com/videoplay?docid=2538831956647446078">assista a este vídeo</a> ou leia <a href="http://www.moolenaar.net/habits.html">este artigo</a> (ambos sobre os "sete hábitos de edição efetiva de texto";</li> <li> <a href="https://stackoverflow.com/questions/164847/what-is-in-your-vimrc">leia</a> sobre <a href="https://stackoverflow.com/questions/95072/what-are-your-favorite-vim-tricks">alguns</a> de <a href="https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118">o</a> many <a href="https://stackoverflow.com/questions/20735/useful-vim-features">tips</a> e <a href="https://stackoverflow.com/questions/726894/vim-tricks-your-mom-never-told-you-about-dark-corners">truques</a> on <a href="https://stackoverflow.com/questions/tagged/vim?sort=votes">stackoverflow</a> ;</li> <li>navegue <a href="http://vim.wikia.com/wiki/main\_page">vimtips</a> .</li> </ul><p>aprender um pouco, muitas vezes, seria o meu conselho - há tanta coisa lá fora que se agarrar a pedaços pequenos será a melhor maneira de fazer o conhecimento ficar.</p><p><strong> passo 5: </strong> lucro :)</p> oi, carla. a sua dúvida é bem comum, sabia? o techtudo tem uma matéria que pode solucioná-la: <http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2013/11/mito-ou-verdade-quebrar-o-terceiro-pino-da-tomada-danifica-o-computador.html>


espero ter ajudado :) leia todo este tutorial


http://www.clubedohardware.com.br/artigos/561



ai voce vai aprender o que é e como arrumar



boa sorte












facil facil, mole mole. boa tarde wesley! o que você tá utilizando como fontes de dados do dbgrid? a seleção é feita nessa fonte (datasource). por exemplo, em um ttable, você poderia utilizar o método findkey.... AFAIK não há nenhuma maneira de obter o rastreamento de pilha como um valor da cadeia, a menos que uma plataforma específica fornece um meio para substituir o fluxo System.err padrão. Na plataforma BlackBerry, ele joga fora a pilha de rastreamento on `catch(Exception)`, a fim de economizar memória, no entanto, não fazer isso em `catch(Throwable)`e dá acesso ao rastreamento de pilha para o log do evento do dispositivo.


O que eu acabei fazendo é pegar Throwable em vez de Exceção no último momento possível e imprimir o rastreamento de pilha de lá. Isto, obviamente, tem o perigo de que você também está pegando `java.lang.Error`o que não é muito bom, especialmente se a sua `OutOfMemoryError`, embora uma chamada para `System.gc()`antes de imprimir o rastreamento de pilha parece reduzir o risco e não tivemos qualquer problema com ele.


Eu olhava para qualquer plataforma que você está alvejando e ver se eles dão acesso a System.err em algum lugar. Você sempre pode ligar um depurador e ele deve aparecer na saída do console, embora parece que você está depois de obter rastreamentos de pilha 'no campo'. as instruções estão na wiki do rofi…

[imagem]

[davatorium/rofi](https://github.com/davatorium/rofi/wiki)

rofi: a window switcher, application launcher and dmenu replacement - davatorium/rofi quando se trata de jogos o melhor seria passa os jogos pra verifica se alguém já conseguiu faze ele roda no linux ou no caso vocês pode pesquisar mesmo ai já pode aprende a como tira sua dúvida em jogos que queira joga.