Páginas

terça-feira, 5 de janeiro de 2010

Lazarus - Entendendo os Arquivos do Projeto

Em um post anterior vimos como criar uma aplicação simples. Aprendemos como alterar propriedades usando o Inspetor de Objetos e como escrever um método para responder a eventos. Vimos como compilar e executar o programa. Agora vamos estudar mais alguns recursos do Lazarus.
Para prosseguir em nosso estudo vamos usar o programa AloMundo criado anteriormente. Clique no botão Abrir ou pressione CTRL + O. Selecione o projeto AloMundo e confirme.

Alterando propriedades em tempo de execução

Dificilmente um programa pode ser escrito sem que seja necessário alterar propriedades dos componentes em tempo de execução, ou seja, através de código. Por exemplo, queremos mudar a propriedade Caption do botão btnAloMundo para Diga alô de novo depois que o usuário clicar nele pela primeira vez. Será necessário mudar a largura - propriedade Width - do botão para 100, para caber o novo Caption. Vamos alterar o código do procedimento btnAloMundoClick como mostrado na figura.
Desta forma se quisermos mudar o valor de uma propriedade em tempo de execução, utiliza-se um comando de atribuição normalmente. Muitas propriedades podem ser alteradas em tempo de execução e outras podem ser alteradas apenas em tempo de execução. Aquelas que só podem ser alteradas em tempo de execução não são listadas no  Inspetor de Objetos. Algumas dessas propriedades de tempo de execução são definidas como apenas leitura, o que significa que você pode ler seu valor, mas não pode alterá-lo.

Adicionando mais código ao programa

Vamos centralizar o botão no form. Clique em btnAloMundo com o botão direito do mouse. Clique em Alinhamento. Marque Centralizar na janela nas duas colunas e confirme. Agora o botão está centralizado, mas há um probleminha. O botão não permanece centralizado quando redimensionamos o form. Isto pode ser resolvido de duas formas.
Uma solução é mudar o estilo da borda do form de modo que ele não possa ser redimensionado em tempo de execução. Para isso selecione o form e localize a propriedade BorderStyle. Mude para bsSingle. Isso evita que o usuáro mude as dimensões do formulário. Outra abordagem é escrever um código que faça o botão se mover para o centro sempre que o form for redimensionado. Embora pareça que grande parte do trabalho do programador em Lazarus seja selecionar opções e componentes visuais, tem um momento em que é necessário escrever código. Quanto mais experiente você fica, mais código tem que escrever.
Quando precisamos adicionar código ao programa, a primeira pergunta a ser respondida é: Onde? Em uma linguagem orientada a eventos, em geral, o código é executado em resposta a um evento. Neste caso queremos que nosso programa execute um código quando o form for redimensionado. O evento que ocorre nessa situação é OnResize. Para programá-lo, selecione o o form e a aba Eventos do Inspetor de Objetos. Localize o evento OnResize e dê um duplo clique à direita do nome. Um novo procedimento é adicionado ao editor de código. Digite então o seguinte código:
Lembre de retornar a propriedade BorderStyle para bsSizeable antes de executar o programa. Para determinar as propriedades Top e Left do botão - isto é, a posição do seu canto superior esquerdo - o programa calcula o centro da página, dividindo a altura e a largura interna ou área cliente da página por 2, e então subtrai metade da altura (Height) e da largura (Wdith) do botão. Execute o programa e redimensione o form para ver o que acontece com o botão.

Uma ferramenta de mão dupla

No exemplo que criamos até aqui escrevemos códigos para responder a eventos. Cada porção de código é parte de um procedimento diferente. O código fonte de um form é escrito em uma unit em FreePascal, nesse caso na unit u_alomundo.pas. O código aumenta não apenas quando escrevemos código para eventos, mas também quando adicionamos componentes ao form. As definições de propriedades e eventos do form e dos componentes adicionados são adicionados em um segundo arquivo denominado, nesse caso, u_alomundo.lfm.
O Lazarus pode ser definido como uma ferramenta de mão dupla, pois tudo que é feito no ambiente visual gera algum código. O desenvolvedor tem acesso total ao código gerado, e mesmo parecendo bastante complexo às vezes, é possível alterá-lo. Até se tornar um programador fluente em Lazarus, você pode continuar fazendo tudo visualmente.
Quando você altera o código dos componentes, isso se reflete visualmente no form. Só é preciso tomar algum cuidado.

Analisando o código fonte

Sempre que iniciamos um novo form o Lazarus tem uma unit com um código fonte associado como mostra a figura abaixo.


A unit usa (uses) algumas units que contém bibliotecas de procedimentos de funções do FreePascal. Também define uma nova classe. A nova classe é TForm1 e é derivada de TForm. Define também uma nova instância dessa classe: Form1.
Units são módulos nos quais uma aplicação é dividida. Quando iniciamos um novo projeto, o Lazarus gera um módulo program e uma unit que define o form principal. A cada vez que adicionamos um novo form ao programa, uma unit é adicionada. Por padrão as units tem extensão .PAS, os arquivos program tem a extensão .LPR e os arquivos de descrição de form tem extensão .LFM.
Assim que adiconamos novos componentes a declaração da classe form muda. Por exemplo, quando você adiciona um botão ao form, a parte do código fonte que define novos tipos de dados torna-se o seguinte:



Agora se a propriedade Name do botão from mudada para btnAloMundo, o código muda para:



A alteração de outras propriedades de um componente não modifica o código fonte da unit. As propriedades de form e seus componentes são armazenados em um arquivo de descrição de form com a extensão .LFM.
Adicionar código para tratar eventos causa maiores modificações no código fonte. Sempre que um novo manipulador de eventos é definido, uma nova linha é adicionada à definição de tipo de dado do form, um corpo de método vazio é inserido na implementation, e alguma informação é armazenada no arquivo de descrição do form.



A descrição textual do form

Como vimos anteriormente o arquivo com extensão .LFM tem a descrição textual do form. Podemos visualizar e até alterar usando o editor. Para abrir clique com o botão direito no form e selecione a opção Mostrar Fonte (.lfm). Outra forma é simplesmente usando a opção Abrir do menu Arquivo. Vamos dar uma olhada nesse arquivo para entender o que é armazenado nele.



Como podemos observar o arquivo contém descrição de objetos. O primeiro deles é o form frmAloMundo, com suas propriedades. Um dos atributos de frmAloMundo é o botão btnAloMundo. Note também que podem existir conexões entre os eventos e procedimentos - neste caso o OnClick do botão. Procure não editar esse arquivo. Tudo que precisamos fazer é feito visualmente no form e é mais seguro.

Arquivo de Projeto

Quando iniciamos uma nova aplicação, além dos dois arquivos detalhados antes, o Lazarus cria automaticamente o arquivo de projeto - com a extensão .LPR. Raramente precisamos alterá-lo. Só modifique esse arquivo se você tiver certeza do que está fazendo. Faça uma cópia de toda a aplicação antes de modificá-lo para poder retornar se algo sair errado. Quando você compila a aplicação o Lazarus gera um executável com o mesmo nome do arquivo .LPR. Esse é o arquivo principal, o program. Se você observar esse arquivo verá que ai são criados os forms e executada a aplicação.

terça-feira, 29 de dezembro de 2009

Lazarus - Configurando

O Lazarus vem com uma configuração padrão. Mas podemos alterar algumas opções para deixá-lo da maneira que preferirmos. Para fazer essas configurações selecione o menu Ambiente -> Opções. Na árvore de opções à esquerda selecione Cores sob o grupo Editor. Na caixa Esquema de Cores você pode selecionar o esquema desejado. Se estiver familiarizado com o Delphi, pode selecionar essa opção.
Quem utiliza o Delphi sabe que ele remove métodos vazios. Por exemplo, se você colocar um TButton, implementar um evento OnClick e depois remover a implementação, quando você salvar a unit ou compilar o projeto, o método será removido automaticamente. Por padrão o Lazarus não remove os métodos vazios. Para configurar essa opção selecione Características automáticas sob o grupo Editor e desmarque a caixa de verificação Auto remover métodos vazios.
 Durante o desenvolvimento, quando você executa seu programa com F9 por exemplo, e depois o encerra, é mostrada uma mensagem.


Podemos desativar essa janela podemos desmarcar a caixa de verificação Mostrar a mensagem na parada. Esta caixa é encontrada na opção Geral sob o grupo Depurador.

O Editor de Código pode ganhar uma barra de ferramentas muito útil. Para isso devemos instalar o pacote Editor Toolbar, componente que vem junto com o Lazarus. Para instalar esse pacote, selecione a opção Abrir arquivo de pacote (.lpk) no menu Pacotes. Localize o diretório lazarus\componentes\editortoolbar e abra o pacote editortoolbar.

Clique no botão Compilar e depois em Instalar. Sempre que um pacote for instalado o Lazarus é recompilado e reiniciado. Quando precisar instalar um pacote de componentes esse deve ser o procedimento.
Na complementação de código, por padrão, o Lazarus gera código sem espaços antes e depois do operador de atribuição. Em nome da legibilidade e organização do código é preferível que tenha um espaço antes e outro depois do operador. É possível configurar o IDE para fazer isso automaticamente para nós. Selecione a opção Espaço sob o grupo Ferramentas de código. Marque as três caixas de verificação conforme a figura.


Explore as possibilidades do IDE. Deixe o Lazarus do seu jeito.

sexta-feira, 25 de dezembro de 2009

Lazarus - o Ambiente

É importante conhecer os elementos do Ambiente Integrado de Desenvolvimento antes de realmente começar a criar nossas primeiras aplicações em Lazarus. Para conhecer detalhes do IDE leia aqui. Essa página é parte de um wiki em português e como tal, está em permanente atualização. Estamos contribuindo nesse site. A parte referente à Paleta de Componentes ainda não existia e por isso, estamos ajudando a fazê-la. Se vocês observarem, as imagens estão atualizdas para a versão mais recente do Lazarus.

sexta-feira, 18 de dezembro de 2009

Lazarus - Primeiros Passos

No post anterior falamos que Lazarus roda em várias plataformas. No entanto, optamos por utilizar o sistema operacional Windows. Sempre que possível indicaremos links para maiores informações sobre procedimentos em outros sistemas operacionais.

Obtendo e Instalando

Instalar o Lazarus utilizando os pacotes binários disponíveis em http://sourceforge.net/projects/lazarus/files/ é muito simples. Ai você pode encontrar versões para Win32 e Win64. Baixe sempre o último release e carregue o executável. A partir daí se segue uma instalação típica Windows. Serão instalados o compilador Free Pascal (FPC) e as bibliotecas necessárias. Se você tiver uma versão anterior instalada, tome a precaução de desinstalar antes. Você pode obter também os fontes com a versão mais recente no SVN. Para maiores informações acesse http://wiki.lazarus.freepascal.org/Getting_Lazarus/pt. Neste caso será necessário compilar para gerar o executável. No momento em que escrevia esse post o mais recente release disponível era 0.9.28.2. Por enquanto tudo o que precisaremos para iniciar nosso estudo está instalado. À medida que forem necessários outros componentes daremos detalhes de sua instalação.

Alô Mundo

Depois de instalado podemos executar o programa. Você deverá ficar com uma interface semelhante à figura abaixo.



Onde precisamos identificar alguns elementos básicos:
1 - Barra de Ferramentas - botões de atalho para opções mais comuns do menu.
2 - Paleta de Componentes - onde estão localizados os componentes nativos e de terceiros que são usados para criar visualmente ou não a aplicação
3 - Inspetor de Objetos - janela onde podem ser visualizadas/alteradas as propriedades e eventos do componentes.
4 - Form - onde são inseridos os componentes para construir a interface da aplicação.
5 - Editor de Código - local onde vamos inserir o código Free Pascal da aplicação.
Neste ponto podemos alterar o idioma da interface, se você preferir. Para isso selecione no menu a opção Environment -> Options. No formulário de Opções selecione Environment -> Desktop. Na caixa Language selecione Portuguese [pb] e pressione Ok. Feche o Lazarus e o inicie novamente.
Para iniciar um breve tour pelo ambiente vamos criar nossa primeira aplicação. Vamos criar uma versão do famoso "Alô Mundo", o primeiro programa que criamos quando estamos estudando uma nova linguagem. Para criar uma nova aplicação selecione no menu a opção Arquivo -> Novo. Em seguida marque Aplicação em Projeto e pressione Ok. Com isso teremos uma nova aplicação e um form pronto para receber novos objetos.
Por padrão o Lazarus gera um executável bastante grande (cerca de 12 Mbytes, no mínimo). Para resolver isso selecione no menu a opção Projeto -> Opções do Compilador. Clique na aba Vinculando e desmarque a opçãoMostrar número de linhas nos erros de Tempo de Execução ao rastreá-los (-gl). Pressione Ok. Isto deve ser feito sempre que uma nova aplicação é iniciada.
Posicionado no Inspetor de Objetos, localize a propriedade Caption e digite Alô Mundo e em Name digite frmAloMundo. Clique em Salvar Tudo. Crie um novo diretório, à unit dê o nome u_alomundo e ao projeto dê o nome AloMundo. Claro que esses nomes são todos sugestões.
Agora selecione um objeto TButton na paleta de componentes Standard. Posicione-o aproximadamente no centro do form, ou onde você preferir. Mude a propriedade Name do botão para btnAloMundo e a propriedade Caption para Alô Mundo. Agora dê um duplo clique no botão btnAloMundo. O editor de código será aberto no procedimento a ser executado quando o usuário pressionar nosso botão. Digite:

ShowMessage('Alô Mundo');

Pressione F9 para compilar e executar o programa. Depois de executar pressione o botão para visualizar a mensagem na tela.


Pronto ai está nosso primeiro programa feito em Lazarus. Simples assim.

quarta-feira, 16 de dezembro de 2009

Lazarus - Origens

Estou iniciando com este post uma série sobre Lazarus, um IDE código aberto alternativo ao Delphi.

Um pouco de história

Não existe muito registro sobre isso, mas Megido foi um projeto iniciado em 1998 para ser um clone de código aberto do Delphi. Esse projeto iniciou a partir do código fonte do Sybil, que era um clone do Delphi para OS/2. Em 1999 o Megido morreu. As pessoas envolvidas perderam o interesse em criar algo baseado no Sybil.
Três pessoas, inicialmente envolvidas e em seguida frustradas com o Megido, Cliff Baeseman, Shane Miller and Michael A. Hess, iniciaram então o Lazarus em fevereiro de 1999. Sendo que desses três, apenas Michal A. Hess continua no projeto.
Além de Michael, os membros mais antigos do time são Marc Weustink e Mattias Gaertner. Ambos são os maiores contribuidores para o núcleo do que é o Lazarus hoje.
Felipe Monteiro de Carvalho, brasileiro, aluno de engenharia da USP, iniciou no projeto em 2005. Entre outras coisas ele atualmente escreve um livro sobre Lazarus.

O que é Lazarus?

Lazarus é um IDE de código aberto para Free Pascal que emula o Delphi. Free Pascal é um compilador projetado para ter sintaxe similar ao Object Pascal e roda em Linux, FreeBSD, Mac OS X, Win32, Win64, WinCE, OS/2 e outros. Lazarus então permite desenvolver programas da mesma forma que Delphi, em várias plataformas, atualmente em Linux, Mac OS X, Win32, Win64 e WinCE. Desde que você escreve seu código em uma plataforma, pode compilar em qualquer outra onde exista Lazarus disponível.
Lazarus ainda não está completo. Muita coisa precisa ser feita. É um projeto grandioso e precisa de ajuda da comunidade.

E a licença de uso?

Free Pascal é licenciado sob GPL. O que significa que é código aberto, livre. Se você modificar o código deve disponibilizar essas alterações para a comunidade.
FCL e LCL, bibliotecas de componentes do Lazarus, estão licenciadas sob LGPL. Assim, você pode escrever seu próprio código proprietário que usa essas bibliotecas, vender sua aplicação sem a necessidade de tornar disponível seu código. No entanto se você modificar a FCL ou a LCL, você tem obrigação de publicar suas modificações para a comunidade.

De onde veio o nome?

Lazarus é uma figura bíblica que foi ressuscitado por Cristo após a morte. O projeto é chamado Lazarus pois ele foi iniciado ou ressuscitado da morte do Megido.

Leia mais aqui.

sexta-feira, 11 de dezembro de 2009

Histórias em quadrinhos na Web

É fantástico o que se pode fazer na web. Recentemente descobri um sítio onde podemos criar nossas próprias tirinhas em quadrinhos e inserir em um blog ou site, enviar por e-mail para os amigos, enfim, a finalidade que podemos dar a essa ferramenta depende exclusivamente da nossa imaginação. Vejam abaixo, visitem e experimentem.

segunda-feira, 30 de novembro de 2009

Educação e Competição

Penso que educação e competição estão intimamente ligadas. Vamos tomar como exemplo um esporte: o voleibol, conhecido popularmente no Brasil como vôlei. O esporte surgiu em 1895 na Associação Cristã de Moços nos EUA. À medida que mais pessoas iniciaram a sua prática, as competições foram surgindo, gerando rivalidade entre os times. Para superar seus adversários os times precisam se preparar. Estudam-se novas técnicas e táticas, estudam-se a forma de jogar dos adversários. Tudo com o objetivo de vencer. Com isso criou-se um círculo virtuoso, competição - educação - competição. Uma realimenta a outra, o esporte se desenvolve e as pessoas envolvidas evoluem na sua prática. Hoje se vê junto ao banco de reservas dos times, alguém acompanhando atentamente o jogo, munido de um notebook e registrando tudo que acontece. Esse material é objeto de estudo posterior, para correção das falhas e aprimoramento do que está dando certo. Com a programação não deve ser diferente. Se o currículo dos cursos não é suficientemente desafiador, então os alunos devem ser encorajados a participar de competições. A competição, que gera rivalidade entre os times participantes, deve ser usada como motivação para o aprimoramento do aprendizado nas linguagens de programação e dos algoritmos. Duas competições são realizadas anualmente. A Olimpíada Internacional de Informática, destinadas a estudantes do ensino médio, e o ICPC (International Collegiate Programming Contest), organizado pela ACM (Association for Computer Machinery) e voltado para estudantes de cursos superiores. No curso de Sistemas de Informação do Centro Universitário Luterano de Santarém, temos realizado competições internas desde 2005, e com a participação de alunos de outras instituições desde 2008. Percebe-se claramente nos nossos alunos a vontade de se preparar para vencer os desafios. Não importa o que possam pensar os teóricos da educação, estou plenamente convencido da influência positiva das competições sobre a educação.

quarta-feira, 20 de maio de 2009

Aprendendo a ler em Inglês

Segundo o professor Rubens Queiroz de Almeida, não é muito difícil aprender a ler textos em inglês e não é necessário despender muito tempo para isso. Ele afirma que de 20 a 25% de um texto é composto de cognatos. Cognatos são aquelas palavras com grafia semelhante, tais como professional e certification. Além disso, Rubens também diz que as 250 palavras mais comuns do idioma inglês responde por aproximadamente 60% de um texto. Como os cognatos não estão entre as 250 palavras mais comuns, se conhecermos o significado dessas 250 palavras, seremos capazes de ler de 80 a 85% do texto. Mas, e os 20% restantes? Bem, pode-se usar a intuição. Ou podemos tentar deduzir o significado de uma palavra que faz parte desses 20%. Quando você lê um texto em português você recorre ao dicionário sempre que não sabe o significado de uma palavra? Bem, então mãos à obra. Se você aprender três palavras das 250 mais comuns, a cada dia, em menos de três meses você estará lendo com mais fluência. Neste link você irá encontrar a relação das 1.000 palavras mais comuns da lingua inglesa de acordo com um estudo de Rubens Queiroz.

sexta-feira, 15 de maio de 2009

Conhecimento especializado ou amplo?

Este texto foi inspirado em uma frase de um acadêmico: "Tirar do curso algumas disciplinas abobrinhas e substituir por...".
É certo que todos frequentam a escola para obter uma formação profissional. À medida que se vai avançando nos estudos, ocorre também um afunilamento no conhecimento, uma especialização. Durante o ensino fundamental e médio, o estudo é mais genérico. Estudam-se português, matemática, história, geografia, etc. Na graduação estudam-se disciplinas específicas do curso escolhido e mais algumas consideradas fundamentais (as "abobrinhas") para o complemento do aprendizado. E vou tentar justificar meu argumento do "porque" das disciplinas "abobrinhas". Para nosso sucesso profissional, é fato a importância de estabelecermos uma rede de relacionamentos, que os especialistas gostam de chamar de "network". Eu creio que até é possível estabelecer uma boa carreira relacionando-se apenas com pessoas que sabem tudo de computação, mas vou supor o seguinte cenário: Você é convidado para uma festa de casamento, por exemplo. Nesta festa você é apresentado a um médico, a um engenheiro civil e a um historiador. Se você se preocupou apenas em estudar computação, relegando a último plano as disciplinas complementares, como você conseguirá estabelecer um diálogo com essas pessoas? Penso que você deve ter um conhecimento mínimo acerca de determinados assuntos para que possa se relacionar. Todo conhecimento é importante. Você será muito melhor aceito em um grupo se conseguir dialogar de forma heterogênea. Será considerado um "bom papo". Acredite, isso abrirá muitas portas. Se você só consegue falar sobre computadores, chats, blogs, etc. é bem provável que seja chamado de "chato". Pense nisso, invista mais tempo no seu futuro aprendendo algumas "abobrinhas".

sexta-feira, 24 de abril de 2009

Lingua Inglesa é fundamental

C. Swaminathan, diretor de uma das principais universidades indianas, esteve no Brasil ano passado e defendeu o crédito estudantil e o ensino da língua inglesa para que nosso país faça uma revolução no ensino. Não é difícil diagnosticar isso. Sabemos do déficit de vagas no ensino público superior. Por isso os vestibulares, agora chamados processos seletivos, ainda persistem. Mudam a forma, mas o objetivo continua. As instituições privadas são finaceiramente inviáveis para a grande maioria. O PROUNI é um avanço nesse sentido. Mas muitos estão, e vão continuar, fora das universidades. Com relação à lingua inglesa, é notável a dificuldade que os docentes enfrentam com os alunos por esse motivo. Sou professor no ensino superior na área de Tecnologia de Informação e tenho que usar criatividade para me limitar em indicar apenas referências em lingua portuguesa. O futuro profissional deixa de ter contato com literatura original em inglês, seja na forma escrita ou na web, limitando seu conhecimento. Depois de formados esses profissionais terão um mercado de trabalho mais limitado ainda. Oportunidades apenas no âmbito regional ou nacional. Nem pensar em se candidatar a uma pós-graduação ou um trabalho fora do Brasil. Mesmo sem intervenção do governo nossos estudantes podem e devem se concientizar da necessidade dessa ferramenta e buscar por si mesmos o conhecimento. As escolas de lingua estrangeira são caras? Ok, existem sites na Internet que se propõem a ensinar gratuitamente. Livemocha é uma boa opção. Vamos em busca do que precisamos, não podemos ficar esperando apenas pelos governantes. Leia aqui a entrevista completa com Swaminathan.

quinta-feira, 2 de abril de 2009

Conversão de arquivos online

É constante nossa necessidade de fazer conversões de aquivos. Uns querem converter um docx em doc, um pdf em doc. Outros, um jpg em ico ou um wma em mp3. Certamente precisamos de vários conversores, um para cada categoria: textos, imagens, áudio, etc. Se pudermos ter um único software para fazer tudo isso é a solução ideal. E se pudéssemos fazer essas conversões sem ter que baixar software algum seria fantástico. Pois essa solução existe e funciona muito bem. É o Zamzar, um site para conversão online de arquivos livre de custos. Nele você faz o upload do arquivo a ser convertido, informa o tipo do arquivo no qual você deseja converter e um e-mail para receber o link de onde o resultado será baixado. Experimente.

terça-feira, 10 de março de 2009

Herança de formulários no Delphi

Suponhamos que estamos criando uma aplicação onde existem vários formulários com características e comportamento semelhantes. Um formulário (form) é uma classe, portanto suas características e comportamento podem ser herdados por outros formulários. Só precisamos criar um formulário e depois criar os outros a partir deste usando herança. Crie então o formulário que será o pai incluindo todos os componentes e métodos necessários. Depois vamos criar um novo formulário filho. Selecione no menu, File | New | Other... e clique na aba que tem o nome do seu projeto. Nessa aba aparecem todos os formulários que foram criados anteriormente na sua aplicação. Selecione aquele do qual você deseja herdar e pressione o botão OK. Um novo formulário é criado com tudo que o formulário pai tem. Importante notar que todo código escrito na unidade (unit) do formulário pai não aparece na unidade do formulário filho e você não pode alterar ou excluir qualquer objeto que tenha sido herdado. Agora você pode inserir novos objetos e métodos no formuláio filho. Note também que todo método de evento que você inclui no formulário filho apresenta uma nova palavra reservada, inherited:

procedure TfrmFilho.btnSairClick(Sender: TObject);
begin
inherited;

end;

Se você observar o arquivo de definição do formulário verá que, também, essa palavra aparece em vez da declaração object:

inherited frmFilho: TfrmFilho
Left = 222
Top = 139
Caption = 'frmFilho'
PixelsPerInch = 96
TextHeight = 13

Para ver o arquivo de definição de formulário clique com o botão direito do mouse e selecione View as text.

terça-feira, 3 de março de 2009

Processo Ágil para Pequenos Sistemas

O Grupo de Trabalho Ágil é um grupo de pesquisa do curso de Sistemas de Informação do Centro Universitário Luterano de Santarém. Esse grupo está trabalhando no desenvolvimento de um processo de desenvolvimento chamado batizado de P@PSI - Processo Ágil para Pequenos Sistemas. Esse processo tenta integrar o Scrum, um framework para gerência de projetos, práticas da Programação Extrema (XP) e fluxos do Processo Unificado. A idéia principal do projeto é disponibilizar um processo para ser utilizado nas disciplinas de Engenharia de Software e Desenvolvimento de Sistemas de Informação. Pois essa decisão tornará mais ágil o desenvolvimento no decorrer das disciplinas. Leia mais sobre o processo na primeira edição da revista técnico-científica do curso de Sistemas de Informação, Urissanê.

sexta-feira, 27 de fevereiro de 2009

Aplicação console no Delphi

Aplicações console não possuem interface gráfica do usuário, rodam em uma janela do MSDOS. De qualquer forma podemos acessar bancos de dados, implementar Data Modules, entre outros recursos disponíveis no ambiente Delphi. Para criar uma aplicação console no Delphi escolha a opção File | New | Other no menu principal e selecione Console Application. O Delphi irá criar um projeto com a seguinte estrutura:

program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;

begin
// Insert user code here
end.

Nesse arquivo podemos declarar variáveis, criar procedures e functions, definir classes, etc. Vejamos um exemplo:

program Project1;
{$APPTYPE CONSOLE} // não exclua essa linha
uses SysUtils;

var
a, b: integer;

begin
// Insert user code here
write('Digite um numero inteiro: ');
readln(a);
write('Digite outro numero inteiro: ');
readln(b);
writeln('Soma dos numeros: ', a + b);
readln;
end.

Salve o projeto, dê um nome a ele e execute.

terça-feira, 10 de fevereiro de 2009

Gestão de expectativa de um projeto de software

Quando iniciamos o desenvolvimento de um software nosso cliente sempre tem muitas perguntas: Quando poderei usar a primeira versão do sistema? Quando posso iniciar o treinamento do pessoal? Neste link vocês encontrarão dicas de como gerenciar as expectativas do nosso cliente, que podem ser aplicadas na gerência de qualquer projeto.

sábado, 8 de novembro de 2008

Zoho writer

Zoho writer é um editor de textos online. É um dos serviços oferecidos pelo sítio zoho.com, que tem quase todas as funcionalidades de um editor para desktop. Com esse serviço é possível editar um documento colaborativamente, ou seja, mais de uma pessoa pode fazer alterações no texto simultaneamente. As alterações feitas por um colaborador são visualizadas em tempo real pelos demais. O software bloqueia a parte do texto onde um dos colaboradores está editando evitando assim que outros colaboradores alterem naquela parte. Visualmente ele coloca essa parte em uma moldura, deixando em branco para quem está editando e colorindo de laranja para os outros. O restante do documento fica livre para ser modificado pelo restante dos colaboradores. Isso impede que haja conflito de alterações. Na opção histórico é possível reverter o documento para uma versão anterior e fazer comparações entre duas versões. Um recurso interessante é o que permite a edição de documentos offline. Para isso é necessário instalar o Google Gears, um plugin que possibilita navegar offline em um site compatível e depois fazer o sincronismo quando voltar a ficar online. O inconveniente dessa opção é que podem ocorrer conflitos de alterações (que não acontece quando todos os colaboradores estão online). Quando isso acontece os colaboradores devem fazer o merge manualmente. Para usar o serviço é necessário se cadastrar (gratuitamente), mas você pode acessar sem se cadastrar se já possuir uma conta Google.

domingo, 2 de novembro de 2008

Trabalho recusado

Recentemente submeti um trabalho a um evento e o mesmo foi rejeitado. Ninguém gosta de ter trabalho rejeitado, muito menos eu. Estou postando esse texto aqui para demonstrar minha insatisfação com a avaliação do único revisor que leu o trabalho. Penso que o resumo não deveria ter sido aceito mesmo, principalmente por uma provável falta de originalidade. Mas o comentário do revisor, aqui reproduzido em parte, demonstra seu desconhecimento do tema tratado: "O trabalho apresenta uma proposta de projeto para a avaliação de utilização de blogs num contexto de ensino-aprendizagem". Aproveito para divulgar um serviço web que considero muito bom para publicação de trabalhos pessoais, o http://issuu.com. Leiam o trabalho que submeti e tirem suas próprias conclusões, tanto do meu protesto quanto do serviço utilizado para apresentar o resumo.

quinta-feira, 30 de outubro de 2008

Redes sociais virtuais e educação

Uma rede social virtual (Orkut, hi5, Facebook, Myspace, etc) conecta pessoas através da tecnologia. Acredito que, devido sua natureza interativa, existência de mecanismos de manifestação de opinião e de espaço para discussão, a rede social virtual é uma ferramenta útil para o aprendizado, pois representa um micro mundo. E segundo Paulo Freire "ninguém educa ninguém, ninguém educa a si mesmo, os homens se educam entre si, mediatizados pelo mundo", ou seja, todos aprendem e ensinam simultaneamente mediatizados pelo ambiente em que vivem. Na rede social virtual é possível se articular os pensamentos que são parte da comunidade, mobilizar e socializar o conhecimento, principalmente se os professores intervirem no sentido de aprofundar os temas que são discutidos. Uma faca pode ser usada para passar manteiga no pão e colabora para o café da manhã ou, contrariamente, pode ser usada para ferir alguém. Estou aqui revendo meus conceitos e propondo uma discussão sobre o tema. Vamos refletir sobre isso ou vamos continuar cortando o pão com as mãos e passando manteiga com os dedos?
Criamos uma rede social para discutir esse tema e muitos outros relacionados. Se você tem interesse em participar mande um email para pedroso_araujo@yahoo.com.br.

sábado, 18 de outubro de 2008

Sala de aula na nuvem

Computação na nuvem ou cloud computing é a buzzword (alarido em torno de uma nova palavra ou expressão) do momento. Não é um conceito novo, mas vem ganhando força com o crescimento da Google e seu interesse explícito nessa área. É um modelo onde as aplicações e dados residem em servidores e são acessados via web. Exemplos disso são os pacotes de escritórios (editores de texto ou planilhas) online disponibilizados pela Google e Zoho. Não vou discutir aqui sobre o futuro disso. Se é factível ou não, se é seguro ou não, e vai por ai. Meu foco é outro. A educação dita formal. Atualmente as pessoas vivem em permanente corrida, com o pé pisando fundo no acelerador. No entanto o dia continua tendo 24 horas. Estamos tentando fazer cada vez mais no mesmo período de tempo. Costumo dizer que tudo evolui, a tecnologia nos envolve, ou melhor, nos engole, mas o tempo permanece obsoleto. O dia sempre vai ter 24 horas. Ninguém, após a adolescência, tem tempo para ficar 4 horas diárias sentado em uma sala de aula na terra, nem mesmo o professor, que nem sempre é apenas professor. A solução é a sala de aula na nuvem. Não apenas as ferramentas que possibilitem isso, mas principalmente a legislação que regula o ensino à distância devem evoluir para se adequar à uma realidade incontestável. Vocês podem argumentar: "Mas isso já existe". Sim, mas as exigências para que funcionem nos remetem sempre de volta à sala de aula na terra. Em um curso de graduação ou especialização são exigidos alguns encontros presenciais, principalmente para realizar a jurássica prova. Programas de mestrado e doutorado? Apenas na sala de aula na terra. Por que? Já ouvi alguém argumentar que à distância se perde a interação com os outros pesquisadores, com o orientador, fundamental para o desenvolvimento da pesquisa. Eu nem vou comentar isso. Entendo que o Ministério da Educação se preocupa com a qualidade, e tem que se preocupar mesmo. As instituições de ensino também devem ter essa preocupação em mente. Muitos querem aprender, poucos tem tempo e espaço disponíveis. A educação informal está avançando muito mais rapidamente. A discussão está aberta.

quinta-feira, 16 de outubro de 2008

Aprenda Programar em Dez Anos

Este pequeno texto é uma adaptação do artigo "Teach Yourself Programming in Ten Years" de Peter Norvig, que pode ser lido integralmente em http://norvig.com/21-days.html.

Não é difícil encontrar livros com títulos tais como: "Aprenda Java em 7 Dias", "Aprenda Pascal em Três Dias", e assim por diante. A primeira impressão que se tem é que há uma grande corrida para aprender computação, ou que computação é algo muito mais fácil de aprender que qualquer outra coisa. Ou alguém já viu livros sobre como aprender tocar piano, física quântica ou adestrar cães em tão poucos dias?
Pesquisadores têm mostrado que leva-se aproximadamente dez anos para tornar-se um expert em uma grande variedade de áreas que incluem: jogar xadrez, compor músicas, pintar, nadar, jogar tênis, etc. Mozart, considerado um prodígio musical aos 4 anos, levou mais 13 anos antes de começar a produzir música de qualidade. O grupo musical The Beatles surgiu com um sucesso em primeiro lugar nas paradas em 1964, mas já vinham tocando desde 1957. Samuel Johnson acredita que pode levar mais que dez anos: "Excelência em qualquer área pode ser alcançada apenas com esforço de uma vida toda; não dá para ser comprada por menos que isso".

Peter Norvig dá sua receita para obter sucesso em programação:
  • Se interesse por programação, e faça por que é divertido. Tenha certeza que é dvertido para você dedicar dez anos nisso.
  • Programe. A melhor forma de aprender é "aprender fazendo".
  • Você pode passar quatro anos em uma universidade. Mas lembre-se "Educação em ciência da computação não faz de ninguém um gênio em programação tanto quanto estudar pincéis e pigmentos não fazem um bom pintor" segundo Eric Raymond.
  • Trabalhe em projetos com outros programadores. Aprenda com eles e teste suas habilidades.
  • Procure entender programas escritos por outros. Desenvolva programas que sejam fáceis de manter por outros programadores.
  • Aprenda pelo menos meia dúzia de linguagens de programação. Preferencialmente de paradigmas diferentes: orientadas a objeto, funcionais, de script, estruturadas, etc.
  • Lembre que existe um computador onde seu programa irá rodar. Saiba quanto tempo leva para o seu computador executar uma instrução, carregar uma palavra na memória, ler palavras do HD, etc.
  • Se envolva no esforço de padronização de uma linguagem.
  • Tenha o bom senso de cair fora desse processo de padronização tão rápido quanto possível.
Por tudo isso, é duvidoso o quão longe você pode ir apenas lendo livros. Norvig conclui que muitas pessoas já possuem as qualidades necessárias para serem grandes programadores, o grande trabalho consiste em colocá-las no caminho certo.
 
Creative Commons License
This work by Carlos Alberto P. Araújo is licensed under a Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Brasil License.