segunda-feira, 25 de outubro de 2004

Como você nomeia suas funções?

Se você é um daqueles que não fazem do nome de funções uma coisa útil e identificável que sirva para entendimento e fácil localização, bem vindo ao clube do qual já vou saindo...

Imagine a situação: Estás a fazer aquele monstro de rotina para manipulação de btree’s e de repente percebe que usar aquele seu arquivo de pilha será muito útil. Tudo perfeito pois a idéia é mesmo aproveitar o que está pronto. É neste momento que a coisa pega: Você acabou pensando cada arquivo como uma coisa isolada, não reutilizável, e nomeou as funções sem usar prefixos ou sufixos. Existe uma função em um arquivo chamada destrói (a pilha) e no outro existe uma função que destrói a árvore. Como você faz pra identificar uma e outra?

Em linguagens orientadas a objetos é simples... "objeto.procedimento" e a situação está resolvida! Em linguagens com conceito de namespaces (c++ por exemplo) também fica fácil já que se pode envolver tudo num "space" e "space.procedimento" te retorna a função...

Em linguagens estruturais a melhor idéia é mesmo identificar. Não só funções, as estruturas e outros. Vai me dizer que todas as estruturas que definem os nós da sua btree, pilha e fila chamam-se "noh"?!

Uma boa idéia (não a única) é nomear utilizando um prefixo:
btree_insert, btree_destroi, btree_...
ebtree_noh ou sbtree_noh (a primeira letra de estrutura, struct)

Utilizar nomes de funções no imperativo ou no infinitivo pessoal também é uma boa pedida.
btree_insere ou btree_inserir, btree_destroi ou btree_destruir e por aí vai.

Embora cada um se sinta mais a vontade fazendo do "seu jeito", acho que é uma boa dica. Quer mostrar a notação que utiliza? Coloque como comentário, ok?

sábado, 23 de outubro de 2004

Utilize o que já fizeram pra te ajudar

Minha pouca experiência de programador já é capaz de refletir em algumas de minhas opniões. Uma delas diz: "utilize o que já fizeram pra te ajudar". Nada de muito especial ou imprevisível, mas às vezes realmente deixamos de fazê-lo. (Observe que não estou me referindo a pegar o exercício da lista pronto no google)

Geralmente neste ramo a idéia é sempre fazer algo generalizado. Html por exemplo: alguém inventou e hoje você vê este blog. Em suma, é um padrão. Todo mundo que disponibiliza uma página na web utiliza assim.

Só que para usar o que já fizeram por você é necessário que saiba como. Particularmente tenho facilidade em pegar exemplos prontos de alguma coisa e adaptá-la as minhas necessidades ou até mesmo aprender só de olhar o exemplo.

Então, aí vai um exemplo de geração de uma árvore binária (b-tree) em html. É claro que conhecimentos básicos de html são necessários pra entender completamente a função que está em c, mas não deixe de olhar apenas por isso.

Arquivo

Não entendeu? Bom, pode me pedir uma explicação!

sexta-feira, 15 de outubro de 2004

Inovações no software livre

Cada dia mais percebo que quem fala mal de software livre é porque nunca teve chance de pelo menos uma vez experimentar. Não estou falando de linux. Estou falando de software livre mesmo. Mas o que quero destacar agora é a velocidade que inovações são incluídas e disponibilizadas nos programas livres!

Hoje descobri a última maravilha de leitores de email/notícias. Já utilizava o Mozilla Thunderbird a algum tempo, mas esta última versão inclui uma novidade espetacular. É a conta para os "feeds rss".
Já pensou poder ver meu blog do seu programa de e-mail/notícias?
Tá bom, não é grande coisa assim... mas você pode incluir "feeds" no formato rss que quase todos sites de notícias e blog's possuem. Basta procurar por um ícone escrito "rss" em cor alaranjada.

Mas como faço?
Basta incluir uma conta (Menu ferramentas/Configurar Contas/Nova Conta) do tipo "RSS News & Blogs" e informar uma descrição. Logo após você seleciona a conta que acabou de criar no painel da esquerda e clica no botão "configurar inscrições". Clique em "Nova" e informe o arquivo fonte rss.

O arquivo rss do meu blog é http://www.tbosystems.bluehosting.com.br/blog/xml-rss2.php

Veja aqui uma imagem de como ficou!

Já que o assunto é software livre mesmo, então que tal este feed?
http://br-linux.org/noticias/index.rdf

Aqui tem uma breve explicação sobre rss:
Mantendo-se em dia na Web com RSS

Você não disse onde encontrar o mozilla thunderbird!
Há sim... siga este link

sábado, 9 de outubro de 2004

Apresentando: O blog do Joel

Por acaso conheci um blog, no news de delphi que frequento, que tem um material interessante. Pra começar, o autor dele foi chefe cordenador da equipe que desenvolveu o Microsoft Excel. Sentiu a força?

Pra falar a verdade, desde o dia que conheci vivo cultuando este blog. Que idéias interessantes pra quem é desenvolvedor de software! Acredito que todos os que estão neste meio (tanto acadêmico como profissional) deveriam lê-lo.

Mas desenvolvimento do Excel, Delphi, não sou muito entendido destas tecnologias, vou fechar o browser...
Peraí... se enganou se acha que não vai ser interessante. Primeiro que não tem nada a ver com Delphi a não ser o sistema operacional que rodam.

Este link que vou postar é sobre strings em C. Quero até ver o que vai me dizer depois da abordagem acadêmica que ele dá ao assunto. Você vai ver, parece que ele é seu professor e sabe de tudo o que você pensa. Não dê atenção ao pormenores que você não entender. O que vale é o todo.

Está exagerando demais...

Não quer deixar que eu poste o link?

Tudo bem, tudo bem.
Então aí vai, uma ótima leitura... (e não deixe de olhar os outros artigos)

Voltando ao básico

sexta-feira, 8 de outubro de 2004

Definições do google

Mas o que esta sigla significa? E esta palavra de tecnologia?
Vive se perguntando sobre significado de siglas e palavras?
Seus problemas acabaram! Chegou o ultra revolucionário google definator tabajara!

Hehe... pesquise no google com a seguinte sintaxe: define:nat
Ele te mostrará todas as possíveis definições na web da sigla "nat".

Arquivos da lista de recursão

O Rogério (colega) me pediu a lista de recursão que fiz pra entregar em ed2.
Acho que pode ser do interesse de mais alguém (tenho dúvidas) por isso resolvi postar num local público.

De quebra vai indo a lista encadeada simples e dupla, sem as quais a recursão não compila já que utilizei o que estava pronto.

Nem pense que é a melhor implementação possível. Eu tenho muita preguiça de fazer estas listas, como demoram.

O arquivo que você deve compilar é só o recursão_xxx.c pois é o único que tem a função main. Nem preciso dizer que devem estar no mesmo diretório, certo? (Ops, acabei dizendo :P)

Lista simples
Lista dupla
Recursão

quinta-feira, 7 de outubro de 2004

Como é fácil aprender a ler inglês

Saiu no dicas-l da unicamp uma pérola de dica! Principalmente pra quem trabalha com computação e acaba se vendo limitado por conta, pelo menos, da leitura do inglês. Já estou estudando e realmente está funcionado, interessante o método publicado.

Como já enviei por email pra muitos de meus colegas, vou deixar apenas os links pra seguir a matéria:

http://www.dicas-l.com.br/dicas-l/20041005.php
Veja esta apostila que recebi ao me inscrever

quarta-feira, 6 de outubro de 2004

Como utilizar um debugger?

Antes de mais nada, debugger é um utilitário que utilizamos para percorrer o código fonte do programa observando onde a linha de execução do programa percorre além de monitorar o comportamento de variáveis (seus valores).

Particularmente, acho muito fácil programar utilizando um. Os erros de lógica são percebidos bem facilmente, ainda mais quando se tem domínio da ferramenta.

É mais fácil utilizar em um ambiente de desenvolvimento que te permite fazer as marcações mais facilmente (utilizando o mouse por exemplo).
No Linux temos alguns disponíveis. Os que prefiro:
- KDevelop (ambiente KDE)
- Anjuta (ambiente GNome)

No Windows o DevC++ (livre) e o VisualC++ (Microsoft) possuem debugador integrado também.

Bom, mas quero chegar nestes dois artigos do site Viva o Linux que explicam, através do gnu debugger, os princípios de um debugador (breakpoint's por exemplo), dando base pra utilizar qualquer ambiente de desenvolvimento que implemente esta funcionalidade. Somando ao fato de as vezes não termos a disposição os ambientes acima citados, temos uma boa deixa pra ler os artigos e aprender a coisa pela raiz.

De qualquer forma não deixe de olhar os ambientes de desenvolvimento que citei. Eles facilitam a vida :P

Boa leitura!
1ª Parte
2ª Parte

terça-feira, 5 de outubro de 2004

Bem vindo | Welcome | Bienvenue | Willkommen

Venho observando que as maiores informações que obtenho sobre novidade a respeito de tecnologias que utilizo em meu trabalho estão em blog's.

É grande o número de funcionários de empresa como a Borland e Microsoft (só pra citar duas) que possuem blog. É por eles que me informo de coisas novíssimas ou pelo menos fico ciente da opnião de pessoas com grande influência neste meio.

Por isso, acabei resolvendo deixar anotado aqui tudo o que vai me interessando pra poder consultar futuramente, ou pra você saber sobre o que pesquiso e até poder discutir comigo sobre os assuntos. Não será blog de minha vida pessoal. É um blog de informação, tutorias, como facilitar a vida, etc. (To "cuecas": will not find naked woman's here :D).

Quem sabe você não encontra por aqui uma boa solução para o problema de estrutura/banco de dados? Bom, pretendo publicar algo aqui. Não pense que publicarei antes do dia da entrega :). Mas talvez saia uma canja antes :D

Se tiver sugestão de matéria/artigo/link interessante pode me informar que eu posto aqui.

Pretendo publicar o que de mais precioso recebo em meu e-mail ou leio em outros sites diariamente. Assim dá pra ter um conteúdo seleto do que aprecio e de quebra você pode utilizar também.

A propósito, sabe de qual lingua se trata cada palavra do título?