Hoje estou muito satisfeito com minhas evoluções na linha de comando. Ontem resolvi por começar a assistir todos os vídeos do peepcode, já que comprei uma conta premium vou poder assistir muito conteúdo de qualidade.
Em 2 dias já assisti alguns vídeos e a qualidade do screencast é realmente muito boa. Já assisti:
- Smash into VIM
- Advanced Command Line
- Productivity for programmers
- Sinatra
- jQuery
Esta semana estive trabalhando em colocar um ambiente totalmente novo e mais descente no meu Ubuntu 10.4. Quero utilizar apenas tecnologias Open Source para desenvolver e este é meu primeiro post deixando o Maczinho de lado.
- Mas por que abandonar o Mac?
Não estou abandonando o Mac, mas vou ministrar um curso daqui a alguns meses e quero utilizar apenas software livre no curso.
Como sou consultor, quero sempre utilizar o que há de melhor em tecnologia e também saber dos hits da comunidade (Rails, HTML5, jQuery) entre outros frameworks, ferramentas, linguagens que facilitem a vida.
Uma de minhas estratégias será criar um ambiente funcional de desenvolvimento já customizado. Uma forma de incentivo aos programadores mais novos já conhecerem um ambiente mais produtivo.
A respeito da produtividade, gostaria de citar a linguagem sh. Após assistir o vídeo Advanced Command Line do peepcode, percebi que apesar de me sentir confortável com a linha de comando, muitas vezes deixava de usufruir das funcionalidades por simples desleixo.
Por exemplo, utilizar funções em sh é muito simples:
~/code/site$ function hello(){ echo "seja bem vindo $1" ; }
E agora é só usufruir do “hello world”
~/code/site$ hello jonatas seja bem vindo jonatas ~/code/site$ hello ubuntu linux seja bem vindo ubuntu
Mas note que não pegou os outros argumentos por que utilizei “$1”. Para pegar todos os argumentos, é só utilizar “*” ao invés do número do argumento. Desta forma podemos sobrescrever a função:
~/code/site$ function hello(){ echo "seja bem vindo $*" ; }
~/code/site$ hello ubuntu linux da silva junior
seja bem vindo ubuntu linux da silva junior
Agora só vamos dar uma twittada sobre o assunto:
~/code/site$ function twitt() { \
curl -d status='$*' \
http://jonatasdp:pegadinhadomalandro@twitter.com/statuses/update.xml ;}
~$ twitt consigo twittar pela linha de comando livremente! #uhuu
Esta linha de comando devolveu o seguinte xml:
<?xml version="1.0" encoding="UTF-8"?>
<status>
<created_at>Sun May 30 23:09:12 +0000 2010</created_at>
<id>15069961307</id>
<text>twitting from comand line :D</text>
<source><a href="http://apiwiki.twitter.com/" rel="nofollow">API</a></source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>false</favorited>
<in_reply_to_screen_name></in_reply_to_screen_name>
<user>
<id>19349634</id>
<name>Jônatas Paganini</name>
<screen_name>jonatasdp</screen_name>
<location>Francisco Beltrão, PR</location>
<description>Programador freelancer em Francisco Beltrão. Nerd interessado em web 2.0, novidades, tecnologias Open Source, trabalhar pouco e ganhar bem 8-) </description>
<profile_image_url>http://a3.twimg.com/profile_images/337906557/twitterProfilePhoto_normal.jpg</profile_image_url>
<url>http://ideia.me</url>
<protected>false</protected>
<followers_count>94</followers_count>
<profile_background_color>ffffff</profile_background_color>
<profile_text_color>333333</profile_text_color>
<profile_link_color>0084B4</profile_link_color>
<profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
<profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
<friends_count>121</friends_count>
<created_at>Thu Jan 22 17:31:54 +0000 2009</created_at>
<favourites_count>1</favourites_count>
<utc_offset>-10800</utc_offset>
<time_zone>Brasilia</time_zone>
<profile_background_image_url>http://a1.twimg.com/profile_background_images/4066654/carbon-footprint-1.jpg</profile_background_image_url>
<profile_background_tile>false</profile_background_tile>
<notifications>false</notifications>
<geo_enabled>true</geo_enabled>
<verified>false</verified>
<following>false</following>
<statuses_count>331</statuses_count>
<lang>en</lang>
<contributors_enabled>false</contributors_enabled>
</user>
<geo/>
<coordinates/>
<place/>
<contributors/>
</status>
ps: Se você é um programador saiba que o Terminal é seu amigo e juntos vão fazer maravilhas 8-)
ps2: Investir tempo em aprender estes tricks vale a pena!