Tecnologia Livre

“Tecnologia digital ao alcance de todos”

Ordenação pelo método da seleção

November 14th, 2008 by Samuel

Hoje veremos o método de ordenação conhecido por ordenação por seleção, ou “selection sort” em inglês.

Neste método pegamos o menor valor entre todos os elementos do vetor e o trocamos pelo primeiro elemento. Depois procuramos o menor entre o segundo e o último elemento e o trocamos pelo segundo elemento. Depois procuramos o menor valor entre o terceiro e o último elemento e o trocamos pelo terceiro, e assim por diante.

Para melhor ilustrar este método vamos usar o mesmo vetor que usamos no post anterior:

4

5

1

3

2

Primeiro identificamos o menor valor, no caso 1:

4

5

1

3

2

e o trocamos pelo primeiro elemento:

1

5

4

3

2

Nosso primeiro elemento do vetor, já é o menor de todos.

Agora identificamos o menor valor entre o segundo e o último elemento do vetor:

2 é o menor valor entre o segundo e o último elemento do vetor

1

5

4

3

2

e o trocamos pelo segundo elemento:

1

2

4

3

5

Depois identificamos o menor valor entre o terceiro e o último elemento do vetor:

3 é o menor valor entre o terceiro e o último elemento do vetor

1

2

4

3

5

e trocamos pelo terceiro elemento:

1

2

3

4

5

E temos nosso vetor ordenado.

Um algoritmo para este problema de ordenação seria:

INÍCIO
  DECLARAÇÃO DE VARIÁVEIS
  inteiro: V(n);
  inteiro: n;
  inteiro: contador1;
  inteiro: contador2;
  inteiro: indice_menor;
  inteiro: menor;
  ENTRADA DE DADOS
  ler n;
  ler V(n);
  PROCESSAMENTO
  para contador1 de 1 até (n - 1) incremento 1 faça
      indice_menor <== contador1;
      menor <== V(contador1);
      para contador2 de (contador1 + 1) até n incremento 1 faça
          se V(contador2) < menor
              indice_menor <== contador2;
              menor <== V(indice_menor);
              V(indice_menor) <== V(contador1);
              V(contador1) <== menor;
          fimse;
      fimpara;
  fimpara;
  SAÍDA DE DADOS
  exibir V(n);
FIM

Abaixo temos uma codificação Python que resolve o problema:

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

# selection-sort.py
# Ordenação pelo método da seleção

def verificaMenor(lista):
  m = lista[1]
  for c in lista:
    if c < m:
      m = c
  return m

l = [4,5,1,2,3]

for i in range(len(l) - 1):
     m = verificaMenor(l[i:])
     l[l.index(m)] = l[i]
     l[i] = m 

print l

A única observação no código acima é que criei a função “verificaMenor()” para facilitar as coisas.

Codifique em C e compare com o código Python. Tenho certeza que você achará que com Python as coisas são bem mais fáceis de fazer.

Um grande abraço e bons estudos.

Category: Programação | No Comments »

Trocando de emprego

November 10th, 2008 by Juliano R.

Trocando de emprego - “Navegando em outros mares”

A área de TI (tecnologia da informação) é uma das áreas onde os profissionais mais trocam de emprego, isto ocorre pelo crescimento constante do setor, e pela falta de profissionais qualificados e com experiência.

O profissional de TI geralmente está preparado para uma eventual troca de emprego ( O plano B); o que é muito positivo, no entanto, pular de empresa em empresa pode deixá-lo mal com o seu entrevistador. Deixar o currículo no “apinfo”¹ pode ser uma boa opção; mas tenha em mente alguns pontos:

  • Estou realmente insatisfeito com o meu trabalho atual?
  • Qual o meu objetivo profissional a longo prazo
  • Estou preparado para pedir demissão caso seja necessário
  • Estabilidade ou oportunidade de crescimento profissional?

Acima deixo somente alguns pequenos pontos que devemos pensar antes de começarmos a deixar o currículo pela web somente pelo desejo de ganhar um pouco mais no fim do mês.

A troca de emprego não deve ser focada apenas no critério “salário”, pois em tempos de crise, a estabilidade do seu emprego atual deve ser pesada na balança.

Fazer o que se gosta!

Aquela máxima ” Quem trabalha com o que gosta, nunca trabalha” é a mais pura verdade; em muitas outras áreas é dificil a pessoa realmente trabalhar com o que gosta, mas em TI as coisas são um pouco diferentes, afinal você quando começou a se preparar já tinha em mente o setor que lhe atraia; “hardware, programação, rede, análise etc…” e por isto, caso não esteja trabalhando na sua área; então lhe recomendo: “busque-a”.

Ligaram-me para uma entrevista

Ligaram-me para uma entrevista, e agora como informar minha ausência?

Realmente isto é um grande dilema, caso tenha confiança com seu superior, provavelmente ele já está sabendo sobre sua decisão de procurar outro emprego, neste caso, o melhor é falar a verdade e pedir um dia para ausentar-se da empresa.

Caso este não seja seu caso, marque sua entrevista para o seu dia de folga; se não for possivel,  converse com seu superior que necessita de um dia para ausentar-se da empresa a fim de resolver problemas pessoais, e que depois compensa o dia caso haja necessidade; não esconda do seu entrevistador que está trabalhando; pois caso seja contratado irá necessitar de alguns dias para desligar-se do emprego atual.

Empresa de Grande porte ou Pequena Empresa

Por experiência própria posso afirmar que o clima em uma pequena empresa é mais saudável e familiar, as possibilidades de crescimento acontecem mais rápido; no entanto, grandes empresas podem possuir uma melhor estabilidade.

Como disse “não pense apenas no salário”; analise a proposta, as vezes os beneficios adicionais já tornam a proposta interessante, além disto, esteja aberto a negociar! e não seja timido ao explanar sua proposta para o entrevistador.

Consegui o emprego, e agora?!

Fale com seu entrevistador que irá necessitar de alguns dias para desligar-se da empresa atual; o melhor é tentar o “acordo” que funciona da seguinte forma:

A empresa lhe despede e você retorna a ela os 40% do Fgts; infelizmente, a maioria das empresas já não fazem mais isto; neste caso lhe resta o pedido de demissão.

Ao pedir demissão você perde os 40% de multa sobre o FGTS e o direito de sacar o FGTS, no entanto, você tem direito a férias vencidas o 13º salário e o salário do mês trabalhado.

Começando na nova empresa

Agora é tudo novo! não fique pensando no seu antigo trabalho nem se lamentando caso tenha se arrependido da troca; o melhor é traçar seus objetivos e começar a trilhar seu novo caminho profissional.

Boa sorte!

Category: Empregabilidade | No Comments »

Ordenação pelo método da bolha (bubble sort)

November 6th, 2008 by Samuel

A ordenação dos elementos de um vetor é um problema clássico de programação e uma das dores de cabeça dos iniciantes.

Abordaremos hoje um das formas de ordenação conhecida como ordenação por flutuação ou ordenação pelo método da bolha, “bubble sort” em inglês.

Neste método os elementos do vetor são analisados do início até o final e os pares de elementos adjacentes são comparados e ordenados, caso estejam fora de ordem. Assim, os elementos maiores vão sendo empurrados para o fim do vetor da mesma forma como as bolhas na água são empurradas para cima. Daí vem o nome de ordenação pelo método da bolha.

Para clarear este conceito vamos a um exemplo. Dado o vetor abaixo:

4

5

1

3

2

Vamos ordená-lo pelo método da bolha.

Iniciamos analisando o primeiro par de elementos adjacentes, no caso, 4 e 5.

4

5

1

3

2

Vemos que estão ordenados e nada deve ser feito.

Agora analisamos o segundo par (5 e 1).

4

5

1

3

2

Observamos que estão desordenados e executamos a troca, nosso vetor ficará assim:

4

1

5

3

2

Analisamos o terceiro par (5 e 3).

4

1

5

3

2

Estão desordenados e devem ser trocados. O vetor ficará assim:

4

1

3

5

2

Analisamos o quarto par (5 e 2).

4

1

3

5

2

Estão desordenados e devem ser trocados. O vetor ficará assim:

4

1

3

2

5

Chegando ao final da primeira passagem, verificamos se o vetor está completamente ordenado e notamos que ainda não está. Então, iniciamos a segunda passagem analisando os dois primeiros pares (4 e 1).

4

1

3

2

5

Pares desordenados. Troca e nosso vetor ficará assim:

1

4

3

2

5

Próxima análise (4 e 3).

1

4

3

2

5

Pares desordenados. Outra troca.

1

3

4

2

5

E este processo continua até que todo o vetor esteja ordenado. Isto acontecerá quando em uma passagem por todo o vetor, nenhum par adjacente precise ser trocado.

Abaixo você pode ver um algoritmo para a resolução deste problema:

INÍCIO
  DECLARAÇÃO DE VARIÁVEIS
  inteiro: V(n);
  inteiro: i <== 1;
  inteiro: parOk <== 0;
  inteiro: aux <== 0;
  ENTRADA DE DADOS
  ler V(n);
  PROCESSAMENTO
  enquanto VERDADE faça
    para i de 1 até n incremento 1 faça
      se V(i) <= V(i + 1)
        parOk <== parOk + 1;
      senão
        aux <== V(i + 1);
        V(i + 1) <== V(i);
        V(i) <== aux;
      fimse;

      se parOk = (n – 1)
        SAIR DO LAÇO enquanto;
      senão
        parOK <== 0;
      fimse;
    fimpara;
  fimenquanto;
  SAÍDA DE DADOS
    imprimir V(n);
FIM

Para este algoritmo eu usei a notação descrita em minha apostila sobre algoritmos que pode ser acessada em br.geocities.com/sdiasneto/algo1/index.htm.

A variável parOk é usada para controlar quantos pares adjacentes estão ordenados. A quantidade de pares adjacentes do vetor é igual ao seu número de elementos menos 1. Assim, um vetor de 5 elementos tem 4 pares adjacentes, como podemos ver no exemplo explanado acima, antes do algoritmo.

O comando enquanto VERDADE faça representa um laço infinito que será abandonado quando a variável parOK for igual ao número de pares adjacentes do vetor, ou seja, quando todos os pares estiverem ordenados.

Abaixo temos a codificação deste algoritmo em Python:

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

# bubble-sort.py
# Ordenando inteiros pelo método da bolha

V = []
i = 0
parOk = 0
aux = 0

while True:
  nr = input("Entre com um inteiro ou zero para encerrar):")
  V.append(nr)
  if nr == 0:
    break

n = len(V)

while True:
  for i in range(0,(n - 1)):
    if V[i] <= V[i + 1]:
      parOk = parOk + 1
    else:
      aux = V[i + 1]
      V[i + 1] = V[i]
      V[i] = aux
  if parOk == (n -1):
    break
  else:
    parOk = 0

print V

Por hoje é só pessoal. A codificação em C eu deixo para vocês.

Bons estudos.

Category: Programação | 2 Comments »

Importância do algoritmo e como Python pode ajudar neste aprendizado

October 30th, 2008 by Samuel

Podemos definir algoritmo como sendo um conjunto de etapas bem definidas e necessárias para se chegar à resolução de um problema. Com o conhecimento destas etapas podemos codificar nosso programa em várias linguagens. É lógico que algumas linguagens tem mais recursos que outras, mas, de uma maneira geral, um mesmo algoritmo pode ser codificado em diversas linguagens e resolver o problema do mesmo jeito.

Apesar de quase todos entenderem esta importância, um fator que dificulta a dedicação dos iniciantes ao estudo da lógica de programação e construção de algoritmos é a ansiedade. Normalmente queremos logo escrever programas e não estamos dispostos a “perder tempo” estudando algoritmos. Este é um grande erro. Esta ansiedade nos leva a começar de maneira errada. Iniciamos o aprendizado de alguma linguagem e já vamos escrevendo programas sem aprender como resolver os problemas. Esta é a maneira mais frustrante de aprender a programar.Uma solução interessante para minimizar esta ansiedade é estudar algoritmos paralelamente a uma linguagem de fácil aprendizado como, por exemplo, Python. Assim, você poderá testar seus algoritmos rapidamente. Python tem uma sintaxe fácil e é uma linguagem interpretada, o que significa que você não precisa compilar seus programas para vê-los funcionando. Basta alterar a linha e executar rapidamente o programa. Até com software proprietário você pode usar Python tranquilamente.

Existe farto material sobre algoritmos na internet. Uma rápida pesquisa no google pode revelar sites interessantes. Abaixo você pode ver alguns links sobre algoritmos:

Da mesma maneira existe muito material sobre Python. Alguns links interessantes estão abaixo.

Para garimpar mais coisas pesquise no google:

Bons estudos!!!

Category: Programação | 1 Comment »

Debian ou Ubuntu?

October 28th, 2008 by Juliano R.

Debian no desktop

Todos que me conhecem sabem que sou fanático pelo Ubuntu Linux; no entanto as últimas versões apesar da simplicidade e facilidade estão cada vez mais exigentes com o hardware, o que obrigou-me a voltar ao meu velho companheiro, o debian.

Afinal, o que é o Debian?

O debian é uma distribuição de Linux criada por voluntários; sendo a distribuição preferida da FSF (Fundação do Software Livre). A estabilidade do debian é um dos seus pontos fortes, cada versão lançada é testada incansavelmente, sem ambição em lançar versões comerciais cada vez mais rápido e imaturas. Por ser tão exigente com a escolha de pacotes a fazerem parte do sistema, o Debian é uma das distribuições mais utilizadas em servidores no mundo todo.

O Ubuntu vem do Debian

O Ubuntu Linux é baseado no Debian, e hoje em dia é até mais popular pelo fato de estar mais customizado ao usuário final que é seu grande foco, no entanto, estas simplicidades acabam tornando o sistema cada vez mais exigente de hardware.

Voltando ao Debian

Depois de sentir que o Ubuntu já não estava apresentando o desempenho que eu esperava em meu computador, resolvi voltar ao Debian que é meu sistema preferido em servidores.

A versão atual do sistema é o “Lenny” que é uma versão de teste; sempre que uma versão do Debian é lançada, ela recebe o nome de “Testing” e somente após 12 meses ela é considerada “Estável”; a versão estável atual é a 4.0 de codinome “Etch”.

Obs: Todos os codinomes de versões do Debian, são nomes de personagens do filme “Toy Story”.

Onde baixar?

Para fazer o download da imagem (iso) do debian, você pode visitar o site oficial da distribuição:

http://www.debian.org/CD/http-ftp/

No link acima, você escolhe entre baixar a versão “Testing” ou a versão “Estável”; além de selecionar qual arquitetura de hardware você utiliza.

Nossa! tenho que baixar 20 cd’s?

Você pode ficar surpreso ao ver 20 imagens de cd disponiveis para download! acontece que o debian distribui todo o software do repositório utilizado no (apt-get) para download em imagem de cd (iso).

Sendo que para a instalação do sistema é somente necessário o download da primeira imagem (cd-1).

Como instalar?

O site howtoforge, possui um ótimo tutorial sobre a instalação do Debian, mesmo que você não saiba inglês, as imagens já dizem tudo; se preferir use a ferramenta de idiomas do google e faça a tradução do link:

http://www.howtoforge.com/perfect_setup_debian_etch

Após a instalação

Caso você tenha feito o download da versão estável 4.0 (etch); pode sentir falta de algumas atualizações, como por exemplo: firefox 3.0, broffice 3 entre outras novidades, por isto, eu aconselho que você utilize a versão “Testing” (lenny), outra opção é atualizar o sistema.

Para atualizarmos o debian 4.0 para a última versão, abra um terminal de comandos e faça:

su root

Digite sua senha; agora como administrador (usuário root), digite o comando:

gedit /etc/apt/sources.list

Apague todo o arquivo e cole o arquivo abaixo:

# deb cdrom:[Debian GNU/Linux 4.0 r5 _Etch_ - Official i386 CD Binary-1 20081023-23:20]/ etch contrib main
#deb cdrom:[Debian GNU/Linux 4.0 r5 _Etch_ - Official i386 CD Binary-1 20081023-23:20]/ etch contrib main
# Line commented out by installer because it failed to verify:
deb http://security.debian.org/ etch/updates main contrib
# Line commented out by installer because it failed to verify:
deb-src http://security.debian.org/ etch/updates main contrib
deb http://www.debian-multimedia.org etch main
deb http://security.debian.org/ testing/updates main
deb http://ftp.br.debian.org/debian testing main
#deb http://amule-debian.dyndns.org/ debian/
deb http://www.debian-multimedia.org/ etch main
deb http://ftp.br.debian.org/debian/ testing main contrib non-free

Depois de colar o texto acima no arquivo, feche o arquivo gravando a alteração, e digite no terminal:

apt-get update

Agora vamos atualizar a distribuição inteira, para isto digite:

apt-get dist-upgrade

Você vai receber cerca de 500mb de atualizações; depois de tudo terminado reinicie o computador.

Melhorando a aparência das fontes

Após a atualização você já vai perceber uma melhora no visual do sistema, agora o iceweasel já foi atualizado para a versão 3.0 ( Iceweasel é na verdade o firefox, o nome foi alterado pois o nome firefox é registrado pela mozilla, e o Debian possui uma politica muito séria sobre leis e patentes).

Mas ao navegar você vai perceber que os sites estão horriveis de serem visualizados, isto ocorre pela falta de fontes apropriadas; para resolver este problema, abra o terminal e digite:

su root (coloque sua senha)

apt-get msttcorefonts

Quando terminar, reinicie o modo gráfico.

Instalando uma suíte escritório

Se você somente baixou o primeiro cd de instalação, provavelmente deve estar sem uma suíte escritório; para isto vamos instalar o Broffice 3 (a última versão do OpenOffice.org); faça o download da versão para o debian (.deb) aqui:

ftp://ftp.unicamp.br/pub/broffice/stable/3.0.0/BrOo_3.0.0_20080930_LinuxIntel_install_pt-BR_deb.tar.gz

Após o download, descompacte o arquivo baixado, para isto você pode clicar com o botão direito sobre o arquivo e escolher a opção (extrair arqui); ou se preferir, abra o terminal e digite:

su root (coloque sua senha)

tar -xvzf BrOo_3.0.0_20080930_LinuxIntel_install_pt-BR_deb.tar.gz

Depois de descompactar o arquivo, entre no diretório descompactado:

cd OOO300_m9_native_packed-1_pt-BR.9358/

Abre o Diretório “DEBS”:

cd DEBS

E depois execute o comando:

dpkg -i *.deb

Depois de tudo instalado, os arquivos executáveis (swriter, scalc, etc…) ficam em:

/opt/broffice.org3/program/

Instalando o suporte multimidia

Outro fator importante é instalar o suporte multimidia, para isto você deve baixar o “w32codecs” neste local:

http://debian-multimedia.org/pool/main/w/w32codecs/w32codecs_20071007-0.1_i386.deb

Depois disto, basta fazer sua instalação:

su root (sua senha)

dpkg -i w32codecs_20071007-0.1_i386.deb

Agora o player “Totem” já será capaz de reproduzir quase todos os formatos multimidia existentes, incluindo rmvb do real player.

Considerações finais

Apesar de o Ubuntu já possuir algumas facilidades, o Debian possui um melhor desempenho (notável) e é mais seguro devido a sua politica de segurança.

Sendo assim, cabe a você decidir qual destas duas grandes distribuições de linux utilizar, abaixo segue meu screenshot atual (debian lenny):

Category: Uncategorized | 1 Comment »

Viva a “Tecnologia Livre”

October 28th, 2008 by Juliano R.

Hardware OpenSource?

Falar sobre software livre hoje em dia é algo muito comum; no entanto agora temos outro assunto para discutir com nossos amigos, trata-se do “Hardware livre”.

Massini Banzi, era professor em uma escola de design de alta tecnologia em Ivrea, na Itália. Seus alunos tinham dificuldade de encontrar microcontroladores de baixo custo para usar em seus projetos de robótica. Banzi se juntou a David Cuartielles, engenheiro espanhol de microchips, para desenhar uma placa livre, onde qualquer um pudesse criá-la. Um de seus alunos, David Mellis, escreveu a linguagem de programação para a ela.

Os inventores criaram uma empresa chamada Arduino, em Milão, e registraram a marca. Se outro fabricante quiser usar a marca, paga por ela, no entanto toda a especificação do microcontrolador e seu software são livres e registrados pela creative commons.

Em dois anos, venderam cerca de 50 mil unidades. A principal fonte de receita da empresa, no entanto, não é o licenciamento da marca ou a venda de placas. Os inventores oferecem consultoria para quem quer desenvolver produtos baseados no Arduino.

“Consultoria” veja que o modelo de negócio não mudou muito no caso do “hardware livre”; espero que outras tecnologias sigam esta tendência, em breve teremos um mundo muito mais igualitário e justo, graças a pessoas como Massini Banzi, Stallman, Linus entre muitos outros.

Entrevista (inglês):

http://www.wired.com/techbiz/startups/magazine/16-11/ff_openmanufacturing

Category: Notícias | 1 Comment »

Proteja seu computador

October 27th, 2008 by lucas

Lendo meu site favorito de noticías (www.g1.com.br) deparo-me com uma reportagem muito legal para quem sofre com virus, malwares e outras pragas:

http://g1.globo.com/Noticias/Tecnologia/0,,MUL838114-6174,00-SAIBA+COMO+ESCOLHER+PROGRAMAS+PARA+PROTEGER+SEU+PC.html

Outra dica muito importante para acabar com este problema no computador é utilizar um sistema operacional linux; falando nisto já informo que existe uma versão BETA do ubuntu 8.10 que está disponível para teste:

http://blog.igdium.com/2008/10/atualizando-para-o-ubuntu-810-rc1.html

Recomendo que a utilizem em uma máquina virtual! até a versão oficial prevista para daqui a três dias ser lançada.

Bom feriado para todos!

Category: Dicas | No Comments »

Modelo de Currículo

October 15th, 2008 by Juliano R.

Para usuários do Openoffice (broffice) segue alguns modelos de currículos que encontrei na rede:

http://www.broffice.org.br/files/CurriculoElegante.odt

http://img.efetividade.net/img/modelo-curriculo-4.odt

http://img.efetividade.net/img/modelo-curriculo-5.odt

http://img.efetividade.net/img/modelo-curriculo-6.odt

Dica:

Seja simples e objetivo, descreva seu perfil profissional de forma clara e com bela formatação. Antes de levar seu currículo a empresa entregue-o a um amigo para analisá-lo; as vezes não notamos erros simples (principalmente ortografia).

Esteja com seu currículo atualizado e sempre a mão no momento da entrevista. Mantenha-se calmo e confiante!

Desejo-lhe boa sorte!

Category: Empregabilidade | No Comments »

A nova versão do OpenOffice

October 15th, 2008 by Juliano R.

Dia 13 foi lançado oficialmente o Openoffice 3.0 que inclui uma modesta coleção de novos recursos significativos. Agora existe compatibilidade com o MAC OS X, além de suporte otimizado a maioria dos documentos office.

Suporte ao MAC OS X

O formato padrão de documento é o ODF (openDocument Format) que hoje já é muito adotado em empresas e setores governamentais, além disto é compatível com Google Docs, Zoho, IBM’s Lotus Notes, e KDE’s KOffice project.

Além disto ele possui filtros para o Microsoft Office Open XML o polemico (OOXML), sendo assim será possível abrir documentos feitos no Microsoft Office 2007 e 2008 para MAC OS X.

Além disto o tema foi remodelado e está mais polido e bonito, vale a pena o download:-)

Category: Dicas | No Comments »

Tux e Eleições no Brasil , boa parceria?

October 14th, 2008 by lucas

Num dos meus emails que estava lendo hoje recebi esse que estou enviando abaixo:

Olá Pessoal!

Olhem só a foto exclusivíssima que eu tirei hoje:
Tux nas Urnas da Eleição
Hehehe, como sou mesário eu liguei a urna e dei de cara com o Tux!

A qualidade e o angulo estão ruins por que não era muito bem “autorizado” tirar a foto, mas aí está nosso querido Tux.

Acho que é meio difícil de explicar para os não envolvidos com o software livre a alegria de ver esse pingüim gordinho recebendo os votos em todo o Brasil.

Uma coisa muito legal é que hoje grande parte do Brasil usou Linux! (tá é muito, mas muito diferente de um desktop e ninguém sabia que era Linux, mas que usaram usaram).

fonte : http://infog.casoft.info/?p=187

Category: Uncategorized | No Comments »