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!