Archive for setembro 2009

Quero aprender programar. E agora José?

Já estava planejando este post a um bom tempo, mas devido à alguns contra tempos e preguiça para abordar o assunto, acabei deixando de lado.

Parece coisa até de destino, MAS… Hoje, já estava programado em meu cronograma/horário no sunbird, uma galerinha no #archlinux-br do IRC, estavam falando sobre o assunto. Pois bem, aí vai a minha opinião, que para a maioria não vale de nada. HUhUHUhuHuhUhUHuhUhUH!!!!!!!!!!!

Não tem problema, mesmo assim vou falar.

Inicialmente a pessoa que hoje quer aprender a programar, tem que ter em mente é: Aprender L-Ó-G-I-C-A!

É isso mesmo, lógica de programação, pois sem isso não vai sair do canto. Independente disso, alguns tentam sempre falar, “Ah, usa python”, outros “que python que nada, vai de java” e os mais afoitos (como eu), “vai de C, C é o poder”! Se olharmos bem a situação, chega a ser engraço. 😉

Sendo que muitas vezes você só vai aprender a programar, ou seja, aprender a lógica da “coisa”, pegando uma linguagem e “caindo pra dentro”. Um passo importante é sempre ater-se aos conceitos de programação e aos da linguagem diferenciando um do outro. Isso só vai acontecer estudando.

Contudo, para iniciarmos essa jornada é preciso pegar várias literaturas e ler, ler muito, além disso é claro, PROGRAMAR, E MUITO.

Tenha sempre em mente que uma boa literatura, para aqueles que querem aprender a programar é claro, tem abordar desde o início, do básicão, o que são dispositivos de E/S e outras coisinhas, estimular você a pensar!

Outra coisa, não adianta eu, você, o fulaninho que manja de php, ou de python, ou de java ficar indicando a linguagem preferida, pois nem sempre vai dar certo, você vai acabar não gostando da linguagem e vai acabar pegando desgosto por programar (como acontece na velha briga das distros). Antes de mais nada leia sobre as linguagens, tenha em mente o que você quer fazer quando se está programando. Assim fica mais fácil de obter resultados e começou não pare no meio do caminho, termine.

Uma dica sobre o que falei acima é ler o livro “Concepts of Programming Languages”, dica passada pelo Robson Peixoto no #archlinux-br.

Então, aqui vão algumas sugestões de literatura (não vou comentar sobre elas) para C, Shell Script e Java. Não vou postar sobre Python, PHP e muito menos sobre Ruby on Rails, pois não procurei nada sobre essas coisas, se algum leitor tiver algo, pode comentar aqui.

C:

1. Aprendendo a programar programando em linguagem C;
2. Curso de C da UFMG;
3. C Completo e Total;
4. The C Programming (ANSI C);
5. The C Book (Esse livro tenho em pdf perdido nos arquivos, mas tinha lido algumas páginas e achei interessante).

Shell Script:

1. Shell Script Profissional;
2. Programação Shell Linux;
3. Bash Guide for Beginners;
4. ABS (Advanced Bash-Scripting Guide).

Java:

1. Java: Como Programar.

Bom, acho que por enquanto é só… E mais um recado, depois que aprender a programar aprenda sobre Engenharia de Software, não seja mais um ‘POG’ramador.

UPDATE:

Dica passada pelo Estevão: uma dica interessante pra quem tá começando tb… é ler código, ler muito código e pensar em programação como solução de problemas, imaginar um problema, bolar uma solução, escrever no papel, visualizar bem a coisa, e depois implementar…

UPDATE 2:

Dica passada pelo Rodrigo Flores: Saber lógica e algoritmos, estuda o Sedgewick ou o Cormen. E resolver problemas de olimpíadas de programação, a linguagem seja C, Java, Cobol, Ada, Fortran, Haskell é o de menos.

A coisa tá ficando boa… Valeu ao pessoal que tá passando mais informações sobre o assunto.

Microsoft keyboard Elite Bluetooth

Bom dia,

Já tem um tempinho que não escrevo nada aqui, estava planejando postar umas dicas para iniciantes sobre como comecar a programar, dizendo quais livros, tutoriais, aulas que podemos encontrar por ai, são bons para entender os conceitos básicos (da programacão e da linguaguem que ele pretende aprender) e a syntax. Mas vai ficar para depois…

Agora vamos ao post realmente… Como tenho 2 mouses Microsoft, e estou gostando muito, resolvi comprar um teclado MS também. Um amigo tem alguns contatos e pedi a ele um teclado que fosse confortável e bom, para usar diariamente e dar aquela jogadinha no bom e velho CS.

Acabei pegando um “Microsoft keyboard Elite Bluetooth”. Quando peguei pensei, “como vou fazer pra esse infeliz funcionar no Arch também?”. Até que foi simples, veja como foi…

Vou precisar do dbus, bluez e bluez-hcidump instalados, como já tenho o GNOME instalado, consequentemente já tinha o dbus, mas não tinha o bluez, ou pelo menos, não sabia que tinha.

# pacman -Sy bluez bluez-hcidump

Vai retornar um “reinstall package”, quando vi, achei estranho pois não tinha instalado o bluez antes, quando executei:

$ pacman -Qi bluez

Retornou:

Required By : gvfs

Bom, como já tinha o pacote, só instalei o bluez-hcidump. Feito isso, comecou a brincadeira… Precisei configurar algumas coisas.

Primeiro verifiquei se o dispositivo estava ativo:

# hciconfig

Se ele retornar:

hci0: Type: USB
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0

Será necessário você, levantar o infeliz com:

# hciconfig hci0 up

Para verificar se realmente subiu, use apenas o comando hciconfig, novamente. Agora a parte boa, procurar pelo teclado.

$ hidd scan
00:12:5A:9C:18:DD Microsoft A keyboard

A saída será algo semelhante a essa que você está vendo. Mas quero o teclado funcionando amigão, calma calma, é mais fácil ainda.

# hidd --connect 00:12:5A:9C:18:DD

Você pensou, “Pronto agora tenho meu teclado funcionando!!!! x)”… Ai que você se engana, o bluetooth no linux ainda é um lixo (essa é a minha opinião e já já vão descobrir o por que). Inocente o garotão vai lá e comeca a digitar e nada do teclado funcionar, mas fiz tudo certinho. Nem tudo amigão. x)

Depois que você conectou, verifique se realmente está conectado com:

$ hidd show
00:12:5A:9C:18:DD Microsoft A keyboard that runs over Bluetooth [045e:0099] connected

Tem que mostrar aquela palavrinha mágica ali, connected, “ahhhhh mas não funcionou”. Tente:

# hidd --search
Searching ...
Connecting to device 00:12:5A:9C:18:DD

Pronto, agora você já pode digitar e sair pulando de alegria. x)

Se você quer ter seu teclado funcionando depois do boot, faca o seguinte… Edite o arquivo /etc/conf.d/bluetooth, procure pela variáveis HIDD_ENABLE e HIDD_OPTIONS, descomente ambas e adicione a elas…

HIDD_ENABLE="true"
HIDD_OPTIONS="--connect 00:12:5A:9C:18:DD"

Adicione ao rc.conf no DAEMONS, o bluetooth. Quando reiniciar teoricamente você já deveria ter seu teclado funcionando né??? Mero engano… Aqui só funcionou na base da gambiarra e mesmo assim, tive que botar o bluetooth depois do dbus no rc.conf. Para ter funcionando corretamente, vá ao seu rc.local e adicione “sleep 20” e “/usr/bin/hidd –search”.

Tiveram 3 coisas que não agradou muito, primeiro que precisei dessa bela “gambe”, a segunda é, passou de 3 a 5 minutos sem usar o teclado preciso usar e a terceira, é que preciso usar o outro teclado pra acessar a bios (isso já era esperado) e como fallback quando o bluetooth não funcionar. x)

Se alguém tiver alguma solucao para esses inconvenientes, ficarei grato.

Já ia esquecendo, veja este guia de bluetooth, essa dica e mais esse link do wiki, caso tenha dúvidas.

PS.: Se você sentiu falta dos cedilhas na minha escrita, não se assuste… ele tá saindo assim, ć, por isso não usei. 😉