I'm just another Web Developer http://danielcamargo.com/website/ geek, curioso, curitibano, vivendo a base de água e café. # Thu, 26 Jan 2012 00:41:58 +0000 en-us Ruby! http://danielcamargo.com/website/ruby http://danielcamargo.com/website/ruby Thu, 26 Jan 2012 00:41:58 +0000 Ruby

Essa semana eu voltei a estudar a linguagem de progamação Ruby. Me inscrevi no curso Core Ruby 30th batch, que começará dia 28 de Janeiro, e também no curso Programming for the Web with Ruby que começou há alguns dias atrás.

Para me preparar para o curso comecei a ler o livro, escrito pelo tutor deste The Ultimate Guide to Ruby Programming. E no livro encontrei link para a entrevista com o criador do Ruby, o Matz, feita em 2001, e achei alguns trechos interessantes que irei reproduzi-los aqui.

Gostei da resposta do Matz para a pergunta "Por que o mundo precisa de outra linguagem de script?"

A Resposta do Matz (tradução livre): O mundo precisa de outra linguagem? Em teoria, não. Nós precisamos apenas do Turing machine para resolver todos nossos problemas, em teoria. Humanos querem ferramentas mais sofisticadas para programar. É uma preocupação humana. Enquanto algumas pessoas se sentirem felizes por usarem Ruby, isso é, para mim, um motivo suficiente para uma nova linguagem.

Ele continua dizendo que o Ruby foi desenvolvido para ser human-oriented. Com isso ele quer dizer que o maior trabalho fica do lado da máquina e que nós, desenvolvedores, teremos um trabalho cada vez menor para completar mais e mais tarefas.

Outro ponto interessante no Ruby é sua filosofia "principle of least surprise.". Ele explica "I believe people want to express themselves when they program. They don't want to fight with the language. Programming languages must feel natural to programmers. I tried to make people enjoy programming and concentrate on the fun and creative part of programming when they use Ruby."

Durante a entrevista ele enfatizou várias vezes que o programador deve se divertir, estar feliz quando está programando. Eu concordo com ele. Quando você faz o que você gosta e se diverte fazendo as coisas saem mais fácil e com mais qualidade.

Até agora estou gostando do que estou aprendendo. Em breve posto mais sobre o que estou aprendendo.

]]>
Promote JS! - Ajude a promover a documentação do JavaScript http://danielcamargo.com/website/promote-js-ajude-a-promover-a-documentacao-do-javascript http://danielcamargo.com/website/promote-js-ajude-a-promover-a-documentacao-do-javascript Mon, 26 Dec 2011 03:43:35 +0000 O JavaScript é um das linguagens de programação mais populares da internet. Segundo o TIOBE Programming Community, um indicador das linguagem mais populares, o JavaScript está em décimo lugar, subiu duas posições desde o último mês. Outra fonte que confirma isso é o Google Trends, dentre as linguagens javascript, js, php, java e c++ o JavaScript foi a linguagem mais buscada desde 1/1/2011.

javascript, js, php, java, c++

Mas ao mesmo tempo que ela é largamente utilizada ela também é muito mal utilizada. Um dos problemas é a dificuldade de encontrar uma boa documentação. Já procurou por JavaScript no Google? Vamos lá, pode procurar, eu espero.

Conseguiu encontrar uma página com uma boa documentação dos métodos e utilização do JavaScript? Infelizmente, em geral, você não irá encontrar tal documentação por esses métodos de busca.

Para contornar esse problema o pessoal do Pirates of JSConf criou a campanha Promote JS! - Better Docs For Us, By Us!. A idéia da campanha é divulgar a documentação do JavaScript que está no site da Mozilla Developer Network, e o melhor de tudo é que essa documentação pode ser atualizada por qualquer desenvolvedor, basta criar seu usuário no site.

Para ajudar na divulgação dessa campanhar você pode contribuir de várias formas, usando o twitter, instalando um pluging no seu blog wordpress, divulgando os links entre seus amigos ou colocando um banner no seu site. Tem até um arquivo JSON randômico para você que prefere customizar a forma como o link será montado.

No site da campanha você encontrará mais informações.

JavaScript Guide

Ajude na divulgação! :)

]]>
InstaFriends - Saiba quem são seu amigos no Instagram http://danielcamargo.com/website/instafriends-saiba-quem-sao-seu-amigos-no-instagram http://danielcamargo.com/website/instafriends-saiba-quem-sao-seu-amigos-no-instagram Sun, 11 Dec 2011 22:07:37 +0000

Sou um grande fã do Instagram. Gosto de tirar fotos, aplicar efeitos bacanas e compartilhar essas fotos com meus amigos da rede. É um bom passatempo. Além de tirar fotos, outra coisa que me divirto fazendo é codificar, afinal fui programador por quase 10 anos.

Pensei em juntar esses dois hobbies e fazer algo que seja útil, pelo menos foi pra mim. Desenvolvi uma aplicação, que nomeei InstaFriends juntando a api do Instagram com um framework php que me fiquei interessado em conhecer, o Laravel.

A proposta do InstaFriends é fazer o mesmo que o Friend or Follow faz pelo Twitter. Ele faz um cruzamento entre as pessoas que você segue e as que te seguem.

Para utilizar o InstaFriends basta acessar a url a autoriza-lo a utilizar seus dados do Instagram. 

Para desenvolver levei poucas horas em torno de 15 horas, onde a maior parte do tempo estive estudando tanto a api do Instagram quanto o Laravel.

]]>
Compactar diretório e sem incluir arquivos do svn http://danielcamargo.com/website/compactar-diretorio-e-sem-incluir-arquivos-do-svn http://danielcamargo.com/website/compactar-diretorio-e-sem-incluir-arquivos-do-svn Sun, 11 Dec 2011 22:04:11 +0000 Comando para compactar diretório sem incluir arquivos de svn, cvs, etc.

tar -jcvf NOMEDOTAR.tar.bz2 PASTA --exclude-vcs
]]>
Mostrar registros duplicados no banco http://danielcamargo.com/website/mostrar-registros-duplicados-no-banco http://danielcamargo.com/website/mostrar-registros-duplicados-no-banco Sun, 11 Dec 2011 22:01:49 +0000 SELECT Nome, COUNT(ID) AS total FROM Usuario GROUP BY Nome HAVING COUNT(ID) ]]> Remover arquivos antigos http://danielcamargo.com/website/remover-arquivos-antigos http://danielcamargo.com/website/remover-arquivos-antigos Sun, 11 Dec 2011 22:00:15 +0000 Muitas empresas possuem um diretório compartilhado e temporário para que os funcionários troquem arquivos. Mas o que as pessoas sempre esquecem é de excluir tais arquivos. O que acaba por ocupar muito espaço no servidor.

Para ajudar na manutenção desses diretório, eu criei um script em python para excluir tais arquivos.

Para rodar o script:

python RemoveOldFiles.py
Você precisará passar três parâmetros:

  1. Caminho que o script deverá iniciar a verificação
  2. Se o script deverá ou não excluir os arquivos (digite 'delete' para exclui-los)
  3. Procurar arquivos com idade superior a quantos dias

Após isso será efetuada uma verificação na pasta que você escolheu.

Caso você opte por não excluir os arquivos o resultado final será apenas um arquivo .csv com a lista dos arquivos com idade superior a escolhida (em dias).

Para baixar o script acesse: https://github.com/pererinha/RemoveOldFiles
]]>
Exporting MySQL structure to HTML http://danielcamargo.com/website/exporting-mysql-structure-to-html http://danielcamargo.com/website/exporting-mysql-structure-to-html Sun, 11 Dec 2011 21:58:34 +0000 I build a simple Python script that reads a database (MySQL) and exports all of its tables structure to a HTML file.

All you need to do is configure the database access and run the script.

I know that are a lot of tools to do it. But as a curious geek that I am I decided to built it my self.

You can download it here: MySQL2HTML

It is very helpful, at least it were helpful to me.
]]>
Apache’s logs to Mysql http://danielcamargo.com/website/apaches-logs-to-mysql http://danielcamargo.com/website/apaches-logs-to-mysql Sun, 11 Dec 2011 18:37:24 +0000
Recently I had to work with some data generated by the apache. It is not a easy task to do because in general this log files are very huge

In order to make it easier I built a little python script that converts the apaches’logs to mysql database.

By putting the logs at a database it is going to be very easy and fast to search what you want to. You can do it just by doing selects.

To use this scripts you need to configure the database (line 17)

con = MySQLdb.connect('<address>', '<user>', '<password>')
con.select_db('<database name>')

After that you need to fill the path of the log files (line 26)

serverLogs = ('log-file-1.log','log-file-2.log')

I put this scripts at the GitHub here you can download it you will also find the sql file to be used to create the database table.
]]>