Segunda-feira, 2 de Agosto de 2010

Em Fevereiro tornamos público um problema que foi usado nas entrevistas no SAPO durante 2009.

O problema, orientado a candidatos com um background forte em ambientes Linux/UNIX, consistia no seguinte:

"Encontras-te sozinho num Data Center e tens que resolver este problema sem recurso a meios exteriores (nada de telemóvel, nada de internet; o objectivo é resolveres tu o problema). Tens um servidor que não pode ir abaixo. Nessa máquina, alguém teve a brilhante ideia de executar um `chmod -x chmod`. Resolve o problema."

O primeiro ponto a apontar é o objectivo deste problema.

O objectivo não é avaliar se o candidato consegue resolver a situação, mas sim a sua reacção. O ideal seria um misto de excitação, pânico e um olho a saltar fora.

A pergunta serve, no entanto, para avaliar o conhecimento que a pessoa tem sobre estes sistemas e a capacidade de improviso/imaginação.

Durante alguns meses, a cada 3 entrevistas em que usávamos este problema, surgia uma resposta nova.

Hoje vamos abordar algumas delas.

Começamos por soluções que não se aplicam às circunstâncias descritas, como tirar o disco e levá-lo a outra máquina que ainda tenha o chmod operacional.

De seguida, partimos para outras soluções curtas e viáveis:

perl -e 'chmod 0755, "chmod"'

python -c "import os;os.chmod('testing', 0777)"




Algumas soluções semelhantes mas com ligeiras nuances:

cat /bin/chmod > new_executable

tar --mode 555 -cvf - chmod | tar xvf -

echo chmod | cpio -o | perl -pe 's/^(.{21}).../${1}755/' | cpio -i -u

 

Depois começam a surgir soluções que são dependentes da distribuição:


E há mais (getfacl, setfacl, chflags, etc.), cada uma mais inovadora que a anterior (como um `alias chmod='/lib/ld-2.11.1.so /bin/chmod`, ou o exemplo mais abaixo).


Convém neste ponto explicar o que se sucede quando se coloca uma questão destas numa entrevista.

A interacção em torno deste problema não se cinge a uma pergunta e uma resposta, mas sim à exploração do conhecimento e capacidade inventiva da pessoa.

Eis um exemplo baseado numa entrevista verídica:

Candidato - Tenho perl na máquina?

Entrevistador - Tens.

C - Então uso o chmod do perl, que é built-in!

E - Certo. Agora vou-te tirar o perl da máquina.

C - Hum... Tenho cc?

E - Tens.

C - Então posso fazer um programa em C que usa a system call do chmod para alterar as permissões ao chmod.

E - Certo. Agora vou-te tirar o compilador.

C - Hum... Disseste que não tenho acesso à net, mas não disseste nada sobre os outros servidores no Data Center. Abro um socket para outro servidor, faço um tar do chmod de lá preservando as permissões, trago-o para a máquina a faço untar.

E - Certo. Agora vou-te tirar as outras máquinas do Data Center.

C - OK... Bem, posso sempre lançar a BusyBox, que deve estar na máquina e que tem o chmod lá dentro!

E - OK, mas agora vamos-te tirar a BusyBox. Consegues arranjar outra maneira de resolver o problema?

[o candidato pensa um pouco, olha para cima e fala como se estivesse a falar consigo próprio]

C - Eia... Esta é mesmo rabuscada... Faço um attrib ou um ls extendido para forçar o inode para a cache; agora só tenho que editar o inode que está em cache sem que o kernel se aperceba, e posso usar o sed para isso, desde que seja root; vou ao kcore procurar as estruturas do VFS e altero-lhe o bit de execução; vou é ter que ler documentação; depois é só usar o chmod para lhe repor as permissões.


[breve pausa para recuperarmos]


(já agora, e a título informativo, o candidato do texto acima encontra-se hoje em dia a trabalhar no SAPO)


Para além de todas estas (e outras) soluções (e tentativas de solução) que nos foram aparecendo, surgiram também alguns comentários interessantes como:

- Resolver o problema? Qual problema? A máquina continua a funcionar!

 

E questões como:

- Mas porque raio é que a bin de um servidor estava writable?



publicado por jac às 10:00
link do post | comentar | ver comentários (1) | adicionar aos favoritos |

Segunda-feira, 1 de Fevereiro de 2010

Tipicamente as entrevistas no SAPO seguem o caminho que mais conforto dá ao candidato.


Se a pessoa trabalhou mais com determinada tecnologia, é esse o assunto que vamos abordar.


Se a pessoa passou mais tempo a realizar um tipo de tarefa, é essa a informação que vamos procurar.


Quando um candidato nos afirma que se sente muito confortável em ambientes Linux e, numa escala de 0 a 1, classifica a sua proficiência como um 0.9, por exemplo, este é um exercício que colocámos bastantes vezes no ano passado:


"Encontras-te sozinho num Data Center e tens que resolver este problema sem recurso a meios exteriores (nada de telemóvel, nada de internet; o objectivo é resolveres tu o problema). Tens um servidor que não pode ir abaixo. Nessa máquina, alguém teve a brilhante ideia de executar um `chmod -x chmod`. Resolve o problema."


Brevemente discutiremos o que se pretende com um problema deste género e algumas das respostas que fomos juntando durante o ano, quer nas entrevistas, quer no seio da nossa equipa.



publicado por jac às 10:00
link do post | comentar | ver comentários (8) | adicionar aos favoritos |

Sexta-feira, 17 de Julho de 2009

Hoje divulgamos o material da apresentação "Command Line - The best GUI you can get", realizada pelo Paulo Trezentos na SAPO Session "A gentle introduction to Linux".

 

Após uma pequena introdução bem humorada, o Paulo leva-nos por variáveis de ambiente, ficheiros, gestão de utilizadores, redireccionamento, pipes, parsing e também alguns comandos relacionados com rede e sessões.

 

Os slides do Paulo:

 

 

(para fazer download do PDF, ver em SlideShare)

  

O vídeo da apresentação:

 

 

Para além de ser um dos cérebros por detrás da distribuição Caixa Mágica, o Paulo colabora também com o SAPO na plataforma de Anúncios.



publicado por jac às 17:33
link do post | comentar | adicionar aos favoritos |

Segunda-feira, 15 de Junho de 2009

*Update*: 20 lugares atribuídos, 0 lugares disponíveis.

 

Esta Quarta-feira, dia 17 de Junho, teremos mais uma SAPO Session, desta feita dedicada ao tema Linux environment.

 

Contaremos com as seguintes apresentações:

"Tecnologias de sistemas de ficheiros em Linux: passado, presente e futuro. EXT2, ReiserFS, EXT3, XFS, EXT4, ZFS, BTRFS. "

"Ferramentas avançadas para Power users."

 

Temos vinte lugares para o público em geral, a custo zero, a serem atribuídos aos primeiros vinte emails a chegar a saposessions em sapo ponto pt referindo esta sessão no subject ou no corpo do email.

 

Este evento tem lugar em Picoas, Lisboa, e decorre das 09:30 às 12:30 do dia 17 de Junho.



publicado por jac às 11:00
link do post | comentar | ver comentários (3) | adicionar aos favoritos |

Quinta-feira, 7 de Maio de 2009

Hoje divulgamos o material da apresentação "Arquitectura de um Linux", realizada pelo Miguel Filipe na SAPO Session "A gentle introduction to Linux".

 

Nesta apresentação o Miguel começa por contextualizar a filosofia UNIX e de seguida cobre uma série de tópicos como utilizadores, ficheiros, controlo de acessos, permissões, processos, pipes, forks, execs, o kernel, a libc, etc.

 

O Miguel apresenta a arquitectura de um Linux tanto do ponto de vista organizacional (o que está onde e o que é) como do ponto de vista funcional (quando acontece o quê e como).

 

Os slides do Miguel:

 

 

(para fazer download do PDF, ver em SlideShare)

  

O vídeo da apresentação:

 

 

(para ver em full screen, ver em SAPO Vídeos)

 

O Miguel integra a equipa de anúncios do SAPO, onde está envolvido na arquitectura e desenvolvimento do sistema de produção, com especial ênfase na performance e disponibilidade.



publicado por jac às 12:30
link do post | comentar | adicionar aos favoritos |

Quinta-feira, 23 de Abril de 2009

Esta semana divulgamos o material da apresentação "História e Distros", da SAPO Session "A gentle introduction to Linux".

 

Numa breve apresentação, o Mário Morgado explica-nos como surgiu o primeiro Linux e aborda aspectos como nomes, logótipos e distribuições.

 

Os slides do Mário:

 

 

(para fazer download do PDF, ver em SlideShare)

 

O vídeo da apresentação:

 

 

(para ver em full screen, ver em SAPO Vídeos)

 

O Mário integra a equipa de AdWords do SAPO, onde usa Python e C no desenvolvimento do backend para a contextualização de anúncios, classificação de bids e outras funcionalidades.



publicado por jac às 10:00
link do post | comentar | adicionar aos favoritos |

Terça-feira, 31 de Março de 2009

*UPDATE*: Todos os lugares foram já atribuidos.

 

Para a próxima SAPO Session, com o tema A gentle introduction to Linux, temos 20 lugares reservados (a custo zero) para os leitores deste blog.

 

Os lugares serão atribuidos aos primeiros 20 mails a chegar a saposessions em sapo ponto pt após a publicação deste post.

 

Relembramos que a sessão tem lugar das 09:30 às 13:00 de Quarta-feira, 1 de Abril de 2009.



publicado por jac às 09:30
link do post | comentar | adicionar aos favoritos |

Sexta-feira, 27 de Março de 2009

A terceira SAPO Session tem lugar a 1 de Abril, próxima Quarta-feira.

 

O tema para esta sessão é "A gentle introduction to Linux" e as apresentações são as seguintes:

"Linux. Diferentes distribuições, vantagens e propósitos de cada uma."

"Linux inside-out. Filosofia UNIX, conceitos principais e arquitectura."

"Ambiente, comandos principais e actividades recorrentes. Pipes, parsing, redireccionamento, edição e mais."

 

De momento ainda não temos (nem podemos confirmar se iremos ter) lugares para o público em geral.

 

Se os tivermos, serão anunciados aqui logo que possível. Convém salientar, no entanto, que emails de inscrição enviados antes de tal anúncio serão ignorados, e também não vale a pena tentar automatizar a tarefa de inscrição.

 

*UPDATE*: 20 lugares disponíveis.



publicado por jac às 19:00
link do post | comentar | adicionar aos favoritos |


Autores
pesquisar
 
Janeiro 2012
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4
5
6
7

8
9
10
11
12
13
14

15
16
17
18
19
20
21

22
23
24
25
26
27
28

29
30
31



follow saposessions at http://twitter.com
posts recentes

chmod -x chmod

chmod

Command Line - The best G...

Próxima SAPO Session: Lin...

Arquitectura de um Linux

Linux: História e Distros

20 vagas para "A gentle i...

SAPO Session: A gentle in...

arquivos

Janeiro 2012

Dezembro 2011

Outubro 2011

Setembro 2011

Agosto 2011

Julho 2011

Junho 2011

Maio 2011

Abril 2011

Março 2011

Janeiro 2011

Outubro 2010

Setembro 2010

Agosto 2010

Julho 2010

Junho 2010

Maio 2010

Abril 2010

Março 2010

Fevereiro 2010

Janeiro 2010

Dezembro 2009

Novembro 2009

Outubro 2009

Setembro 2009

Agosto 2009

Julho 2009

Junho 2009

Maio 2009

Abril 2009

Março 2009

Fevereiro 2009

tags

todas as tags

últ. comentários
Boas, Apesar deste post já ser um pouco antigo gos...
Por sinal já foi desenvolvido e encontra-se neste ...
A informação que faltava está agora aqui: http://d...
A informação já está aqui: http://developers.blogs...
Boas,Onde é que isto vai ser? Há algum critério pa...
blogs SAPO
subscrever feeds