30 de abr. de 2016

This weekend I was learning a little more of ruby on rails, so I follow a tutorial to build a SaaS application using Postgres and I'm using Ubuntu 14.04.

When ran bundle install of application happened the error when was installing the gem pg :


Installing pg 0.18.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
    /home/dalton/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20160430-4906-12tw4sh.rb extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/home/dalton/.rbenv/versions/2.2.3/bin/$(RUBY_BASE_NAME)
--with-pg
--without-pg
--enable-windows-cross
--disable-windows-cross
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
extconf failed, exit code 1
Gem files will remain installed in /home/dalton/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/pg-0.18.4 for inspection.
Results logged to /home/dalton/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/pg-0.18.4/gem_make.out
Using sass 3.4.22
Using tilt 2.0.2
Using spring 1.7.1
Using rdoc 4.2.2
Using tzinfo 1.2.2
Using nokogiri 1.6.7.2
Using rack-test 0.6.3
Using mime-types 3.0
Using binding_of_caller 0.7.2
Using coffee-script 2.4.1
Using uglifier 3.0.0
Using sprockets 3.6.0
An error occurred while installing pg (0.18.4), and Bundler cannot continue.
Make sure that `gem install pg -v '0.18.4'` succeeds before bundling.


The solution was, open terminal and install:

sudo apt-get install libpq-dev

I'm grateful to http://stackoverflow.com/questions/30162572/error-message-make-sure-that-gem-install-pg-v-0-18-1-succeeds-before-bundl where i found the solution. I suggest you enter and mark like useful the answer of @Mihai-Andrei Dinculescu

After this I run bundle install and worked fine!

Bundle complete! 12 Gemfile dependencies, 55 gems now installed.
Gems in the group production were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

20 de mar. de 2016

[Tip] How to install open jdk 8

In the last few days I need to install open jdk 8 in linux, one time in Ubuntu 14.04 and other in Xubuntu 14.04 .

So the best source found was:

http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/

Enjoy, I follow each step and works fine!

8 de mar. de 2013

[Dica] O que é e o que não é refatoração – de acordo com Kent Beck e Martin Fowler

Hoje vou deixar por aqui uma dica sobre o que é ou não é refatoração que li na JavaCodeGeeks e descobri que o autor também está participando de um blog brasileiro o IMasters

Às vezes, um programador virá a mim e explicará que ele  não gosta do design de alguma coisa e que “vamos precisar fazer um monte de refatoração” para fazer a coisa direito. Isso não parece bom. E não parece refatoração ou…
Refatoração, como originalmente definido por Martin Fowler e Kent Beck, é:
Uma alteração feita na estrutura interna do software para torná-lo mais fácil de entender e mais barato para modificar sem alterar seu comportamento observável… É uma forma disciplinada de limpar código que minimiza as chances de introduzir bugs.”
Leia a matéria completa em português ou inglês:


9 de fev. de 2013

Boas práticas de programação

Hoje vou passar o que são as melhores práticas para programar, para deixar seu código legível e coeso. Nosso foco é java, mas pode ser usado em outras linguagens ou no seu próprio dia-a-dia.

Nomeação

  • Ao nomear uma variável ou método coloque um nome que tenha o significado do que ele vai fazer, por favor sem var1, var2 e etc.
  • Utilize sempre o padrão camelCase para nomeação. Por exemplo:


Variáveis: nomeDaMinhaVarivel
Métodos: nomeDoMeuMetodo 

No padrao java beans tem algumas regras:
 Métodos getters/setters devem iniciar com get e set.
public void getDinheiro(){
      return valor;
}
public Integer setDinheiro(int valor){
      this.valor = valor;
}
   Se for um booleano ao inves de get é utilizado o prefixo is:

public void isDinheiro(){
      return limiteUltrapassado;
}
public Boolean setDinheiro(boolean limiteUltrapassado){
     this.limiteUltrapassado = limiteUltrapassado;
}
OBS: Qual a diferença entre int e Integer ou Boolean e boolean? Basicamente int, boolean, float e etc são tipos primitivos e Integer, Boolean, Float e etc são Objetos.
Existe muitas outras regras, mas penso que essa seja a princial, veja mais no link abaixo:
Padrão JavaBeans

Funcionalidade


  • Seu método não deve ser extenso, como um amigo me ensinou ele não deve nunca ser maior que sua tela, em outras palavras você deve conseguir visualizar seu método todinho em sua tela, claro sempre há exceções e não será todos assim.
  • Sempre, mas sempre que possível, isso é muito possível refatore seu código!
  • Utilize o máximo que a Orientação a Objetos lhe fornece.
  • Seu método deve falar por si próprio, quando outro programador ver ele dever não passar muito tempo e identificar o que ele faz.
  • Um ponto que considero muito importante é utilizar o menor número possível de comentários em seu código, deve ter um ou outro quando em um método a lógica talvez seja muito complexa, isso são poucos casos.


Esse são alguns passos básicos, com o tempo e experiência de outros programadores você pode sempre melhorar sua forma de desenvolver software, no caso aqui códigos.

Bom simples, fácil e rápido ;)

26 de mar. de 2012

Google Chrome Extensions

Sempre gostei da maioria dos produtos da Google, em especial o google chrome, que é um browser fantástico e em constante aperfeiçoamento.

Certo dia acordei e quis muito saber como é feito as extensões para tal e é muito simples, vejam um pouco no vídeo abaixo:




Espero até o final do mês postar algo prático. ;)

A definição de sucesso - Empreendorismo



A definição de sucesso

“Rir sempre e muito; ganhar o respeito de pessoas inteligentes e o afeto das crianças; conquistar a apreciação de críticos sinceros e sobreviver à traição de falsos amigos; apreciar a beleza e enxergar o melhor nos outros; deixar o mundo um lugar melhor, seja através de uma criança saudável, um lindo jardim ou retorno dado para a sociedade; saber que uma vida respira com maior facilidade por sua causa.

Isso é ser bem sucedido.” Ralph Waldo Emerson

Esse trecho foi retirado do blog http://www.saiadolugar.com.br/dia-a-dia-do-empreendedor/frase-do-dia-a-definicao-de-sucesso/ . Valeu muito apena acompanhar as ideias desses profissionais. 

13 de fev. de 2012

Guia SCRUM

Falando em metodogilias ágeis uma das mais utilizadas e boas práticas para trabalhar com uma equipe para um desenvolvimento rápido de um produto é o SCRUM. Em uma das minhas pesquisas achei um guia muito interessante, disponível no próprio site dos criadores do SCRUM, onde mostra um pouco do que é essa métodologia, básico, porém muito últil para quem busca uma solução para um bom desenvolvimento em equipe, como separar as tarefas e muitas outros fatores importantes hoje em dia.

Link para download do guia: http://www.scrum.org/scrumguides/