Continuando minha série de algoritmos clássicos, abordarei novamente o problema de MDC (Máximo Divisor Comum), mas desta vez com recursividade. Eu recomendo fortemente a leitura do meu artigo com uma solução para o algoritmo de MDC.
Recursão
Para tratarmos um problema utilizando recursão, devemos propor uma solução do problema como um problema menor, mas do mesmo tipo, e com alguma solução trivial. Nem todo problema pode ser resolvido com recursão. Também é verdade que alguns problemas tratados com recursão podem ser resolvidos sem ela, mas nem todos.
Solução recursiva para MDC
No caso do MDC, a solução recursiva está na solução como proposta em meu artigo anterior:
tomamos os dois números inteiros e dividimos o maior pelo menor. Se o resto da divisão for zero, temos que o menor daqueles números é o MDC entre eles. Se o resto não for zero, este procedimento deve ser repetido usando o menor número no lugar do maior e o resto no lugar do menor.
Podemos pensar da seguinte forma: calcula-se o resto da divisão do maior número pelo menor. Se o resto for igual a zero o MDC é o menor dos números. Se não for, o MDC será o mesmo que o MDC do menor com o resto. Neste caso teremos proposto uma solução que trata o problema como um subproblema, tendo uma solução trivial (quando o resto for zero).
Algoritmo
Vamos ao algoritmo:
<html>
<head>
<title>Algoritmos | MDC</title>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<meta name="description"
content="Algoritmo de Euclides para solução de MDC"
/>
<meta name="author"
content="Cid Rodrigues de Andrade" />
<script>
function mdc(maior,menor) {
var resto = maior % menor;
if ( resto == 0 ) {
return menor;
} else {
return mdc(menor,resto);
}
}
window.onload=function(){
var num1 = prompt("Digite número #1","");
var num2 = prompt("Digite número #2","");
if (num1 > 0 && num2 > 0) {
if (num1 > num2) {
maior = num1;
menor = num2;
} else {
maior = num2;
menor = num1;
}
alert ("MDC entre " + num1 + " e " +
num2 + " é " + mdc(maior,menor));
} else {
alert ("Valores devem ser superiores a zero");
}
}
</script>
</head>
<body></body>
</html>
O Smartphone HTC Hero incorporou o HTC Sense, uma experiência de interface fortemente voltada para melhorar a usabilidade. Trata-se do primeiro celular -- ou melhor, smartphone -- baseado no Android, do Google, e com otimizações do HTC. Veja a interface
Há muito tempo eu venho buscando ferramentas que possam ser utilizadas para gerar vídeos com conteúdo de aula. Entre meus testes já comentei aqui sobre o SuperShow, por exemplo. Já fiz testes com o Wink, ScreenToaster e outros. Mas ainda não encontrei nada que realmente atende-se às minhas necessidades nesta área. Li uma notícia promissora sobre o uso do VLC e fui aos testes.
O VLC é um player de mídia, talvez o mais flexível da atualidade. Mas ele não serve apenas para exibir arquivos de mídia. Ele também pode exibir arquivos de streaming e até mesmo ser um servidor de streaming.
Além de tudo isso o VLC ainda pode gravar sua tela, gerando um filme que pode ser disponibilizado no YouTube, por exemplo.
Fiz meus testes em dois distintos ambientes: utilizei o VLC 0.9.9a Grishenko no Ubuntu 9.04 e o VLC Portable 0.8.6i Janus em um Windows XP. Infelizmente a versão para Ubuntu não tinha a opção de menu necessária, sem contar com o comportamento inusitado do vídeo.
Tentativa de gravar screencast com VLC no Linux
Minha opção foi continuar com os testes no Windows.
O primeiro passo é utilizar o Prompt de Comando, ir ao diretório onde o VLC Portable foi descompactado e digitar o comando
vlcportable screen://
A tela fica um pouco esquisita, mas siga em frente. Vá no menu “File” do VLC e selecione a opção “Wizard”. Selecione a opção “Transcode/Save to File” e clique em “Next”. Selecione “Existing Playlist Item” e escolha “screen://”, pressionando “Next” a seguir. Marque as opções “Transcode Video” e “Transcode Audio”, clicando em “Next” depois disto. Em “Encapsulation Format”, marque a sua opção preferida. Eu escolhi MPEG1. Clique em “Next” e escolha o arquivo onde seu vídeo será gravado e clique em “Finish”.
A partir daí sua atividade estará sendo gravada. Eu deixei o VLC gravar os instantes seguintes à pressão do botão “Finish”. Veja o resultado:
Muita gente já passou por isso e talvez não se lembre mais do que este momento representou. Pior é a situação de quem está próximo de um dos momentos de maior ansiedade na carreira profissional: a primeira entrevista de seleção para uma vaga de emprego!
Há pouco o jovem passou por uma dificuldade que lhe parecia instransponível: o Curriculum para alguém totalmente sem experiência. Pois o jovem nem conseguiu respirar e agora chegou o momento (não) esperado: a primeira entrevista. Some à total inexperiência a expectativa própria, dos amigos e dos familiares. Isso sem contar com as dificuldades financeiras ou a vontade de obter independência.
É mister obter preparação para a primeira entrevista. Vamos à uma lista de dicas para as perguntas que provavelmente serão feitas neste momento:
Antes da entrevista
Procure o máximo de informações sobre a empresa e sobre o cargo que você almeja. Ensaie a entrevista. Vista-se adequadamente e chegue com alguns minutos de antecendência.
Fale sobre si
Treine para esta pergunta infalível. Seja sucinto, não se estenda por mais de uns poucos (pouquíssimos) minutos. Valorize seus potenciais e qualidades, sem parecer arrogante. As pessoas próximas podem dar dicas valiosas falando sobre como veem você. Uma outra forma de fazer esta pergunta é indagando-o sobre porque você deve ser o escolhido para esta vaga. Se você é jovem, o entrevistador terá uma preocupação: saber se você tem um bom grau de maturidade. Portanto, demonstre ponderação e prudência.
Quais são seus anseios e desejos? O que procura neste emprego?
Lembre-se que a empresa está tentando ver se você é compatível com o que ela procura. Ela não está procurando pessoas que querem “se dar bem” ou “ganhar muito dinheiro”, simplesmente. A empresa procura pessoas dispostas a “vencer desafios”, “aprimorar conhecimentos” ou “trabalhar em equipe”. Lembre-se que a empresa valoriza quem tem objetivos profissionais e pessoais bem definidos.
Quais são suas qualidades?
Seu entrevistador está procurando alguém adequado para a empresa e para o cargo. Ele quer ouvir que você seja proativo, criativo, dedicado, competente, voltado a resultados ou algo assim. E lembre-se de não parecer arrogante ao falar sobre suas qualidades. Se possível, ilustre esta resposta com algo como “toda minha família diz …”
E seus defeitos?
Sinceramente, esta é uma pergunta em desuso. Os entrevistadores já sabem que o candidato irá buscar uma característica positiva e tentar exagerá-la para falar algo como “sou perfeccionista” ou “sou exageradamente auto-crítico”. Se, ainda assim, a pergunta for feita, siga o conselho do Efetividade: diga que não lembra-se de nada que possa afetar seu desempenho no cargo desejado e cite algo nesta linha.
Porque você escolheu esta empresa?
O que o entrevistador deseja é saber se você sabe como a empresa se posiciona no mercado e porque você acredita que seu perfil é capaz de ser útil para a empresa. Demonstre admirar a empresa que está lhe entrevistando em algum aspecto.
Diga-me como você lidou com alguma situação difícil
Você deve ter dito em algum momento que procura “desafios profissionais”. Ou mesmo que não tenha dito, seu entrevistador quer saber se você tem capacidade de lidar com desafios. Procure lembrar-se de alguma situação que você tenha tratado com habilidade, sensatez e que tenha tido um bom desfecho. Sintetize esta situação e ensaie como contá-la. Uma variação comum desta pergunta é algo como “Você é capaz de trabalhar sob pressão e com prazos curtos?”.
Quais são seus hobbies?
Então o entrevistador está interessado em suas áreas paralelas de interesse e em sua vida pessoal, não é? Esqueça! Ele quer saber como você gerencia seu tempo livre, como utiliza isto para seu desenvolvimento pessoal e para melhorar seus relacionamentos. Pense nisso! É possível que o entrevistador procure obter estes aspectos perguntando sobre o que lhe dá mais prazer e satisfação.
Qual foi o último livro que você leu?
Às vezes ele pode perguntar sobre o último filme visto. Não minta, pois é fácil fazer você ser encurralado em uma cilada. Prepare-se realmente lendo ou vendo algo que pode ser considerado positivo. E é claro que o entrevistador espera algo melhor do que o último livro da série do Capitão Cueca. E sua resposta deve ser coerente com o resto do seu discurso. Procure os best-sellers recentes (não de ficção ou autoajuda, por favor) e as críticas de filmes. Hoje em dia seriam consideradas como boas respostas um livro como “A Cabeça de Steve Jobs” ou o filme “Quero Ser um Milionário”. Acostume-se a discutir os filmes e livros, pois a pergunta seguinte será algo como “E o que você achou” ou “Qual foi a mensagem deste livro (ou filme)?”.
Você tem alguma questão?
Esta é a hora de demonstrar interesse. Tente fazer alguma pergunta inteligente sobre a posição da empresa no mercado, sobre a relação do ocupante do cargo com a empresa ou algo assim.
Quais são suas pretensões salariais?
Adie ao máximo esta pergunta, mas uma vez defrontado com esta questão seja objetivo. Demonstre que você pesquisou a média salarial para o cargo em empresas do mesmo porte à da entrevista. E não se atreva a relacionar suas pretensões com suas necessidades, certo?
Algumas observações
Não minta. Se tiver dúvidas sobre isto, lembre-se do seguinte: “não minta”.
Ouça seu entrevistador com atenção. Não se esqueça do nome dele durante a entrevista.
Cumprimente-o de pé e com um aperto de mão firme. Firme! E apenas isso! Você não quer interromper a entrevista para que seu interlocutor vá visitar o ortopedista.
Apesar de ensaiar a entrevista, não responda mecanicamente ou imediatamente às perguntas feitas. Demonstre estar pensando sobre a questão.
A entrevista é uma conversa, não a monopolize. Muito menos permita tornar-se platéia.
Procure um tom de voz equilibrado. Não grite e nem sussurre. Pronuncie todas as palavras e termine todas as frases.
Seja positivo, não comece com reclamações e lamúrias. Mas nada de excesso de otimismo, seja realista.
Não responda laconicamente, ilustre suas respostas. Mas raramente você deve falar mais do que um minuto em cada resposta.
Apague as gírias de sua vida, ao menos durante a entrevista. E não faça piadas.
Se perceber que cometeu alguma gafe, reverta isto a seu favor: desculpe-se e corrija-se.
Seu entrevistador deve admirar sua intenção em equilibrar os compromissos profissionais com sua evolução. Demonstre que você não quer prejudicar sua carreira, mas que a escola ou faculdade também precisa de sua atenção. Em especial se seus estudos forem relacionados com a empresa ou com o cargo almejado.
Seu corpo fala por você. Às vezes à favor, outras contra. Em breve falaremos sobre qual deve ser sua postura na entrevista de emprego.
Encerrando
Para concluir sua preparação, vejamos o diz Max Gehringer sobre este assunto:
E para relaxar: lembre-se que uma entrevista nada mais é do que uma oportunidade para ver se a empresa, o cargo e você são compatíveis. Não trata-se de uma sessão de torturas
Uma das questões estudadas nos cursos de Transporte ou Gestão de Logística é a de Localização de Instalações e Arranjo Físicos.
Localização de Instalações é a determinação de local para base de operações de transportes. Esta localização pode ser baseada em diversas características como proximidade de clientes ou fornecedores ou oferta de mão-de-obra.
Uma das técnicas de localização é a do Modelo de Centro de Gravidade. Este modelo busca estabelecer um ponto onde os custos de transportes para clientes, de fornecedores ou de ambos sejam minimizados. Devem ser localizados em um mapa os clientes ou fornecedores e devem ser levantados volume e custo de transporte para estes pontos.
Tanto nos cursos de Transporte ou de Gestão de Logística como em empresas ou consultoria de logística, a aplicação deste modelo é complexo. Após a localização dos pontos no mapa, é preciso estabelecer dois eixos cartesianos, localizar as coordenadas dos pontos estudados, calcular o ponto de equilíbrio e localizá-lo no mapa. Para isto é necessária boa habilidade com instrumentos de desenho e mensuração (esquadros e escalas).
O Gravity Geo Loc é uma ferramenta educacional para facilitar este procedimento. Apesar de ser criado como ferramenta educacional, pode ser utilizada por empresas e consultorias em Logística.
Gravity Geo Loc
Como o Gravity Geo Loc é um Mapplet do Google Maps, recomenda-se que seu usuário tenha uma conta no Google (como no GMail ou diretamente no Google Maps).
Em primeiro lugar, abra a página do Gravity Geo Loc. Clique no botão “Adicionar ao Google Maps”. Abra o Google Maps e clique em “Meus Mapas”. Habilite a ferramenta clicando em “Gravity Geo Loc”. Localize seus clientes, fornecedores ou ambos. São duas formas possíveis para esta localização. Uma delas é pressionar o botão “Inserir Endereço”. Digite o endereço desejado, sem esquecer de bairro, cidade e estado. Informe, quando solicitado o volume transportado e o custo por unidade de volume. A outra forma é mais simples: basta clicar sobre a posição desejada no mapa, com a mesma informação de volume e custo.
Depois de localizar todos os pontos de interesse, clique em “Calcular Localização”. O ponto de equilíbrio será calculado e exibido centralizado no mapa.
Que tal identificar redes de relacionamento entre Twitters com uma ferramenta online hospedada no Google App Engine?
Meus leitores já devem estar acostumados com estes aplicativos, mas vamos a uma explicação rápida só para garantir. O Google App Engine é um hospedeiro de aplicativos Python ou Java. Estes aplicativos ficam na infraestrutura do Google, com garantia de escalabilidade. E gratuitamente, desde que a aplicação tenha até 5 milhões de pageviews mensais. O Twitter é um serviço de microblogging que permite envio de mensagens de até 140 caracteres e está tornando-se tão onipresente que mesmo o gigante Google sente-se incomodado com a possibilidade de buscas online nesta ferramenta.
Pois o Twitnest é uma ferramenta hospedada no Google App Engine que permite analisar a relação entre redes de amigos no Twitter. Entre no Twitnest e insira o nome de um usuário do Twitter. Sua rede de relacionamento será montada em alguns segundos, mostrando as relações entre seus amigos. É possível arrastar o mapa criado ou modificar o zoom com o mouse. Clicando em “Who knows whom?” você pode selecionar um twitteiro qualquer e serão destacados os amigos dele. O botão ”"Auto-group” permite visualizar os amigos em grupos. Arrastando o slider para a direita ou para a esquerda, este agrupamento será realizado em maior ou menor número de grupos.
Twitnest para a conta Twitter @cidandrade
Mesmo que você não tenha sua conta do Twitter, vale visitar o Twitnest para ver um exemplo de criatividade em programação. Quem quiser pode testar com a minha conta: cidandrade. E aproveite para seguir-me no Twitter, OK?
Afinal de contas, o que é Cloud Computing? Muito se tem falado recentemente sobre a Computação em Nuvem, mas será que as explicações têm sido realmente elucidativas? Vamos então a uma tentativa didática de ilustrar este conceito.
Armazenamento de arquivos na Internet
Há quem diga que entrou para o mundo da computação em nuvem ao utilizar algum serviço online de armazenamento de arquivos. Afinal, seus arquivos agora estão “nas nuvens”. Entretanto, armazenar arquivos em servidores não é nenhuma novidade e esta não é -- definitivamente -- a condição para considerarmos que estamos usando Cloud Computing.
Uso de aplicativos na web
Se voc? usa algum serviço disponível na internet, como o Google Docs, pode pensar que está “nas nuvens”. Embora neste caso isso seja verdade, utilizar um aplicativo pela web também não indica que se esteja sempre no paradigma que estamos avaliando. Se assim fosse, as primeiras compras em comércio eletrônico ou as primeiras aplicações de Internet Banking e Office Banking já seriam computação na nuvem. Entretanto, neste caso, ainda faltaria um elemento fundamental
O que é Cloud Computing, afinal?
O uso de Computação em Nuvem leva de um modelo onde recursos físicos e locais (armazenamento, memórias e processador) são convertidos em recursos escaláveis e disponíveis por uma rede, geralmente a Internet.
Um ponto importante e geralmente esquecido é a questão da escalabilidade. O modelo de computação em nuvem pressupõem que os recursos computacionais sejam alocados de forma tal que cada serviço disponha de recursos suficientes para atender à demanda dinamicamente.
Imagine uma instituição de ensino com unidades em vários estados do Brasil. Esta instuição pode manter diversos aplicativos online e cada um deles é mais ou menos procurado de acordo com o calendário escolar. Estes aplicativos poderiam atender necessidades como matrícula de alunos, alocação de aulas para professores, lançamento de notas e faltas e consulta a estas notas e faltas. Se houvesse um servidor para cada aplicativo destes, ele deveria ser capaz de atender ao maior momento de demanda pelo serviço que ele hospeda, ficando ocioso o resto do tempo. Se fosse escolhido um equipamento mais modesto, no momento de pico de acesso ele ficaria incapaz de atender à demanda de forma adequada. Em um modelo de computação em nuvem, um conjunto de servidores (físicos ou virtuais) teriam seus recursos alocados aos serviços necessários de forma dinâmica, permitindo manter o desempenho continuamente.
O uso de virtualização é propício para implementar adequadamente este balanceamento dinâmico entre os servidores. A realocação contínua dos recursos é mais facilmente implementável em um conjunto de servidores virtuais do que entre equipamentos físicos. Com isso, é possível utilizar um número menor de equipamentos físicos, economizando energia elétrica, refrigeração e espaço e produzindo menos barulho. Tudo isso leva a um menor impacto ambiental. Ou seja, a Computação em Nuvem pode levar à uma computação mais “verde”.
Complementando
A Computação em Nuvem implementa quatro conceitos de forma combinada:
SaaS: Software As A Service (Software como Serviço)
PaaS: Platform As A Service (Plataforma como Serviço)
IaaS: Infrastructure As A Service (Infraestrutura como Serviço)
dSaaS: Data Storage As A Service (Armazenamento de Dados como Serviço)
Características
Diante disto podemos dizer que certas características são esperadas no uso do modelo de Computação em Nuvem
Agilidade. A reordenação de recursos é realizada de acordo com a demanda
Redução de despesas operacionais
Independência de dispositivos e equipamentos
Compartilhamento de recursos entre distintos usuários
Maior confiabilidade. A redundância reduz a probabilidade de queda de desempenho e indisponibilidade de serviços
Escalabilidade
Maior segurança advinda da melhor administração de dados por centralização
O Oi Futuro preocupa-se com o desenvolvimento cultural e social do povo brasileiro. Por conta disso, o instituto vai investir até R$ 200.000,00 em projetos de entidades do terceiro setor.
O Programa Novos Brasis 2009 tem por objetivo financiar projetos que apliquem tecnologia da informação e comunicação como elementos de transformação social.
Por saber sobre a importância do investimento em tecnologias e comunicação, o Oi Futuro reconhece que estes são elementos fundamentais na promoção da cidadania, inclusão e desenvolvimento de comunidades com baixo índice de desenvolvimento humano e comunidades vulneráveis.
Oi Futuro
O Programa Novos Brasis vem sendo posto em prática desde 2004 e está mais uma vez com inscrições abertas para projetos inéditos ou em nova fase de ação. O Programa vai selecionar um número não determinado de projetos que apliquem tecnologias sociais e trabalhem com comunicação e informação como elementos essenciais para a promoção da cidadania e do desenvolvimento humano.
As inscrições são gratuitas e estarão abertas até o dia 12 de junho de 2009. O processo de seleção dos projetos para o Programa Novos Brasis será divulgado em data a ser definida pelo Oi Futuro através do seu portal.