Posts de March, 2012

[Rafael Biriba] Globo.com abre novas vagas de estágio para agosto de 2012

Wednesday, March 21st, 2012


http://www.globo.com/estag

Estão abertas mais uma vez as inscrições para estagiar na Globo.com.

Para se candidatar o periodo de formatura exigido é: agosto/2013 a agosto/2014

Não perca essa oportunidade de participar no desenvolvimento de um dos maiores portais da internet Brasileira… As inscrições podem ser feitas pelo site http://www.globo.com/estag

Etapas do processo seletivo: ( 2012 )
- Inscrições:  ainda não informado
- Prova On-line: ainda não informado
- Entrevista Coletiva: ainda não informado
Painel: ainda não informado
- Entrevista com o Gestor: ainda não informado
- Início do Estágio: Agosto de 2012

Fique atento ao seu email, pois as convocações iniciais deverão ser feitas por meio dele
Visite também o site para mais detalhes: http://www.globo.com/estag

Informações adicionais:
Quem pode participar?
Estudantes matriculados em cursos de nível superior, com previsão de formatura para agosto de 2013 ou  agosto de 2014, compatíveis com as áreas/vagas existentes, disponíveis para a cidade do Rio de Janeiro

Existem vagas para que áreas?
Vagas em diversas áreas para estudantes dos mais variados cursos: Administração, Psicologia, Comunicação Social, Comunicação Visual, Design, Desenho Industrial, Estatística, Engenharia de Produção, Cursos das áreas de Tecnologia (Ciência da Computação, Engenharia da Computação, Análise de Sistemas) entre outros

Aproveite e dê uma olhada no restante do blog. Dicas importantes podem ser obtidas nos comentários dos outros posts antigos sobre os processos seletivos, principalmente nos posts de processos seletivos antigos, pois muitas duvidas foram respondida pelos comentários… Fique atento para não haver repetição de dúvidas…

ATENÇÃO para esta dica adicional =) Se a sua previão de formatura não estiver entre a solicitada (ago/13 a ago/14), inscreva-se mesmo assim. Quem sabe você não consegue entrar… ;)

Como sempre estou a disposição para responder qualquer pergunta (Dado que eu fui um estagiário e também um efetivado na Globo.com)

Dependendo da pergunta/dúvida, posso pedir para que alguém do RH da Globo.com para responder ;)

Boa sorte a todos !

<!–<!–TwitterFacebookShare

Leia também:

[Tarsis Azevedo] [review] Pro Git

Thursday, March 15th, 2012


Pro Git é um livro muito bom se voce ja conhece um pouco de git e quer se aprofundar mais, ou se voce nao conhece e quer conhecer bem.

Nele voce vai aprender sobre controle de versao distribuido, workflows para melhor utilização dos recursos do git, melhores praticas com git. Alem disso voce aprenderá a instalar e configurar um servidor git, a como gerenciar e colaborar com projetos e inclusive a extender o git.

O livro pode ser lido capitulo por capitulo se voce nao sabe nada sobre Controle de versao distribuido. Ou voce pode ler somente os capitulos que lhe interessam, se voce ja tem um conhecimento basico do git.

Onde Comprar?

Na amazon.

Ou voce pode ler no proprio site do livro. Ou voce pode baixar do github.

[Igor Sobreira] Vagrant plugin to take screenshots

Wednesday, March 14th, 2012

Published on: 13/03/2012 22:19h

I’ve been using Vagrant a lot at work. These days we were facing some problems when our VMs were booting and a friend, jbochi, came up with an idea to take a screenshot from a running VM.

He found this command on VBoxManage:

$ VBoxManage controlvm [vm-uuid] screenshotpng [output-filename]

And it helped a lot! That’s when we had de idea to wrap this command in a script to keep using. Initially I’ve created a small python script, but then reading about vagrant plugins (hltbra’s suggestion) I’ve decided to create one.

The vagrant-screenshot plugin is very simple. You just need to install the gem and use:

$ gem install vagrant-screenshot

Here is an usage example:

$ vagrant screenshot -o[vagrant] Taking screenshot for default[vagrant] Screenshot saved on screenshot-default.png

By default it takes screenshots for all active VMs. The -o (--open) option opens the images when done (only works on OS X for now)

See the help for more details

$ vagrant screenshot --help

PS.: The problem I’ve mentioned we were facing ended up in a pull request to vagrant, but unfortunately it wasn’t accepted :o)

By Igor Sobreira

[Igor Sobreira] Vagrant plugin to take screenshots

Tuesday, March 13th, 2012

I’ve been using Vagrant a lot at work. These days we were facing some problems when our VMs were booting and a friend, jbochi, came up with an idea to take a screenshot from a running VM.

He found this command on VBoxManage:

$ VBoxManage controlvm [vm-uuid] screenshotpng [output-filename]

And it helped a lot! That’s when we had the idea to wrap this command in a script to keep using. Initially I’ve created a small python script, but then reading about vagrant plugins (hltbra’s suggestion) I’ve decided to create one.

The vagrant-screenshot plugin is very simple. You just need to install the gem and use:

$ gem install vagrant-screenshot

Here is an usage example:

$ vagrant screenshot -o
[vagrant] Taking screenshot for default
[vagrant] Screenshot saved on screenshot-default.png

By default it takes screenshots for all active VMs. The -o (--open) option opens the images when done (only works on OS X for now)

See the help for more details

$ vagrant screenshot --help

PS.: The problem I’ve mentioned we were facing ended up in a pull request to vagrant, but unfortunately it wasn’t accepted :o)

[Rafael Biriba] VirtualBox: Como clonar uma máquina virtual inteira usando o VBoxManage

Thursday, March 8th, 2012


Bom, hoje eu tive que clonar uma máquina virtual minha.

Então comecei a fazer o procedimento que eu já fazia à algum tempo…

Desligar a VM, Duplicar seu HD, Criar uma nova VM, Configurar para ficar igual a vm original, atribuir o hd clonado e por fim ligar a vm.

Isso realmente dá um pouco de trabalho, caso você precise clonar uma vm, para umas 3 ou 4 máquinas iguais…

Então como resolver ?

Olhando a documentação do virtualbox, descobri algo realmente decente para este problema: Clone de VM :)

O comando que resolveu o meu problema e pode resolver o seu é o:

VBoxManage clonevm “Win XP Original” –name “VM Clone XP 1″ –register

Funcionou perfeitamente. A VM clonada herdou todas as configurações corretamente… Que beleza! =)

E para fechar com chave de ouro, experimente rodar o comando acima de clone junto com o comando:

VBoxManage startvm “VM Clone XP 1″

Com isso você clona e logo em seguida já liga a nova máquina =)

Consegue ter uma visão “cloud” nisso ? É possível duplicar ou deletar VMs em tempo real na hora que você precisar… (Fica a dica ;) )

<!–<!–TwitterFacebookShare

Leia também:

[Flávio Ribeiro] 2012 annual post

Thursday, March 8th, 2012

It seems we have an annual blog post over here.  :)

One year is a lot of time, time enough to change my mind about certain things. The company I’m working for enabled me to attend to a master’s degree and I had my first classes this week. I’m pretty excited about it.  I will study algorithms analysis and distributed computing this semester, and my first impression was the best possible.

At work, I had the opportunity to participate at some projects that reach a large number of people like Big Brother Brasil, PremiereFCCarnaval 2012 and some others that required a lot of effort. It’s being an awesome experience to work on projects of this size.

In December I usually do some kind of retrospective and compare the current year to the previous one. For about 6 or 7 years I’ve been getting the same conclusion: This year was far better. I don’t know if it’s just because recent memories are fresher and stronger, but I hope to continue with this conclusion in the coming years.

 

[Rafael Biriba] GitHub alerta sobre vulnerabilidade no gerenciamento das chaves SSHs

Wednesday, March 7th, 2012


Através de um email recebido hoje a tarde (dia 07/03/2012) o GitHub informa sobre uma vunerabilidade que permitia que através de um ataque, a alteração de chaves SSHs dos projetos.

Isso permitia que o atacante pudesse fazer clone/pull/push nos repositórios… A vulnerabilidade foi fechada dia 04 de março de 2012 as 5:53 PM UTC.

Como forma de precaução, todas as chaves SSHs foram desabilitadas e você deve entrar no link: https://github.com/settings/ssh/audit para conferir e liberar as chaves SSHs cadastradas.

Para que isso não aconteça novamente, o email ainda informa que para adicionar novas chaves, agora é necessário informar a senha e um email é enviado avisado que uma nova chave foi adicionada. Em sua conta também irá ter um registro de alterações para poder analisar uma possivel atividade suspeita.

Então é isso… Olhem suas contas e confiram se está tudo ok…

GitHub, Espero que não aconteça de novo =)

E avisem seus amigos para revalidarem as chaves lá no github ou não conseguirão dar pull/pushes ;)

<!–<!–TwitterFacebookShare

Leia também:

[Tarsis Azevedo] Aprendendo C - formatação do printf

Sunday, March 4th, 2012


Recentemente comecei a aprender C. Sim eu não sei C, não tive na faculdade e sempre senti falta de saber melhor como as coisas funionavam por dentro do computador, já que minha maior experiencia em programação é com python, que é uma linguagem de altissimo nivel.

Com C voce trabalha mais perto da maquina, direto com bytes, alocação de memoria, tem que fazer as estruturas de dados.

E pra aprender eu escolhi estudar pelo livro Learn C The Hard Way do Zed Shaw. É um livro que te instiga a estudar os conceitos por voce mesmo, ensina em cima de exemplos bem praticos e eficientes, te adiciona ao ecossistema da linguagem, apresentando ferramentas e tecnicas que vao te ajudar a pensar em C.

Uma das coisas que ele me instigou a estudar foi todos os possiveis formatos e suas variações para o printf, a função que escreve na saida padrão (o print do python).

#include 

int main() {
    printf("%s\n", "Hello World!");

    return 0;
}

#output

Hello World!

formatando a saida do printf

O printf recebe 2 parametros: uma string com os formatos mapeados e um minimo de valores igual ao mapeado.

#include 

int main() {
    printf("%d %s\n", 1, "Hello again!");

    return 0;
}

#output

1 Hello again!

Esta função é capaz de imprimir diferentes tipos de dados (char, string, int, float, octal, hexa, outros aqui) de acordo com a formatação que voce usar.

#include 

int main() {
    printf("Char: %c %c \n", 'b', 65); // char pode receber um int referente a Tabela ASCII (http://www.asciitable.com/).
    printf("Decimais: %d %ld\n", 1988, 650000L);
    printf("Precedido com espaços em branco: %10d\n", 1988);
    printf("Precedido com zeros: %010d\n", 1988);
    printf("Numeros com base diferente: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
    printf("Floats: %4.2f %+.0e %E \n", 3.14554, 3.3214, 3.1234);
    printf("Truque de tamanho: %*d\n", 5, 10);
    printf("String simples %s\n", "Oi!");

    return 0;
}

#output
Char: b A
Decimais: 1988 650000
Precedido com espaços em branco:       1988
Precedido com zeros: 0000001988
Numeros com base diferente: 100 64 144 0x64 0144
Floats: 3.15 +3e+00 3.123400E+00
Truque de tamanho:    10
String simples Oi!

Tabela de Formatos

Os formatos seguem o seguinte prototipo: %[flags][tamanho][.precisao][quantidade]formato

Flags, largura, .precisão, tamanho são opcionais.

Formatos:

Formato Saida Exemplo
c char a
d ou i signed int 1
e Notação Cientifica usando o caracter e 3.9265e+2
E Notação Cientifica usando o caracter E 3.9265E+2
f float 3.4
g usa o menor numero possivel de f e e 3.54
G usa o menor numero possivel de f e E 3.54
o unsigned octal 610
s string Hello World
u unsigned int 2345
x unsigned hexa 7fa
X unsigned hexa com letras maiusculas 7FA
p ponteiro de endereço B800:0000
n Nada impresso. O argumento deve ser um ponteiro para um int assinado, onde o número de caracteres escritos até então é armazenado.
% % seguido de outro % irá printar % na saida %

Flags


Flag Descrição
- Alinhado a esquerda dentro do tamanho definido. Alinhamento a direita é o padrão (veja a tabela de formatação de tamanho).
+ Força a o resultado ser mostrado com um simbolo de + ou -. Por padrão, somente numeros negativos são mostrados com -.
# Usado com o, x e X indica que o valor será precedido de 0, 0x ou 0X respectivamente, para valores diferentes de 0.
Usado com e, E e f, força o output para mostrar um ponto decimal mesmo sem numeros depois dele. Por padrão, se nenhum numero estiver depois do ponto decimal ele nao é mostrado.
Usado com g e G o resultado é mostrado com zeros a direita.
0 Numero 0 é printado ao invés de espaços em branco quando o tamanho é especificado. (veja a tabela de formatação de tamanho).

Modificadores de Tamanho


Tamanho Descrição
(Numero) Número minimo de caracteres a serem printados. Se o valor a ser printado for menor que o numero, será adicionado espaços em branco para atigir o numero limite. O valor nao é trucado caso seja maior que o limite.
* O tamanho nao é especificado na formatação da string, mas é passado como argumento precedendo o argumento a ser formatado

Modificadores de Precisão


.precisão Descrição
.numero Para formatos inteiros (i, d, u, o, x, X): precisão especifica o numero minimo de digitos a serem mostrados. Se a quantidade de digitos for menor que o limite, entao serão acrescentados zeros ao final. O valor nao é truncado se a quantidade de digitos for maior que o limite. Precisão 0 significa que o nenhum valor é printado se o numero for 0.

Para formatos e, E, f: é o numero de digitos que serão mostrados depois do ponto decimal.

Para formatos g e G: é o numero maximo de digitos significantes a serem mostrados.

Para s: é o numero maximo de caracteres a serem mostrados. Por padrão, todos os caracteres serão mostrados até o caracter nulo que finaliza uma string (por exemplo \n)

Para c: não tem efeito.

Quando nenhuma precisão é especificada, o padrão é 1. Se o periodo é especificado sem um valor explicito para precisão, 0 é assumido.

.* A precisão nao é especificada na formatação da string, mas é passado como argumento precedendo o argumento a ser formatado.

Modificadores de Quantidade


quantidade Descrição
h O argumento é interpretado como um short int ou unsigned short int (só se aplica aos formatadores de inteiro: i, d, o, u, x, X).
l O argumento é interpretado como um long int ou unsigned long int (só se aplica aos formatadores de inteiro: i, d, o, u, x, X) e como um caractere de largura ou cadeia de caracteres de largura para formatadores c e s.
L O argumento é interpretado como um long double (somente para formatadores de float: e, E, f, g e G).

O printf é muito poderoso, e espero ter ajudado a conhece-lo melhor.

Obrigado, até a proxima!