VidaGeek.net

Linux, Open-source, Programação e Produtividade

Archive for 2007

Aplicações portáveis em C/C++

Um requisito cada vez mais importante hoje em dia para uma aplicação é a portabilidade. Com cada vez mais sistemas diferentes no mercado, com configurações e necessidades específicas, fica mais difícil atingir esse objetivo.

Em Java, essa preocupação não é necessária, já que a máquina virtual é sempre a mesma (na verdade, quase sempre… algumas têm funcionalidades a mais). Mas em linguagens compiladas para código de máquina, como C e C++, a tarefa fica mais difícil.

Felizmente há diversas ferramentas e truques que podem ser utilizados para atingir esse objetivo mais facilmente. É possível fazer aplicações portáveis em C e C++ sem o uso dessas ferramentas, mas é mais fácil utilizarmos o que já está pronto. As duas principais ferramentas que fazem esse papel são o autoconf e o CMake. Não tenho muita experiência com o autoconf, mas já utilizei o CMake numa aplicação que utilizava as bibliotecas GTK+ (Gimp ToolKit) e VTK (Visualization ToolKit). Ambas as bibliotecas estão disponíveis para mais de um sistema operacional, e meu objetivo era fazer com que meu programa funcionasse tanto em Windows como em Linux. Utilizando o CMake, não foi necessária nenhuma alteração na aplicação para fazê-la funcionar em ambos os sistemas.

A função dessas ferramentas é assegurar que as dependências do seu programa (bibliotecas, formato de dados) estão satisfeitas e gerar instruções para uma ferramenta de compilação (Make, Visual Studio) saber como chamar o compilador para compilar seu programa, afinal os compiladores mudam de sistema para sistema, e mesmo as opções de compilação de um mesmo compilador mudam.

Então, se você for escrever uma aplicação um pouco mais complexa do que um “Hello world”, vale a pena investir um tempinho para escrever um arquivo de configuração para usar uma dessas ferramentas!

Posts Relacionados:

  • Guia Linux - Parte III: Programação
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 3 Comments
  • Filed under: C, Dicas, Linux, Programacao
  • Software útil

    Olá a todos! Sou o mais novo membro do VidaGeek. Nesse meu primeiro post vou falar um pouco sobre a utilidade do software.

    Creio que, como eu, todo programador fica satisfeito quando faz ou participa do desenvolvimento de um software que as pessoas usam e gostam. Mas nem sempre um programa que escrevemos tem a avaliação que esperávamos. Como, então, escrever algo que se sabe que será utilizado?

    Pode parecer óbvio, mas a resposta é o foco no usuário. Não basta escrevermos um programa que faça o que o usuário quer (ou o que nós, programadores, queremos), é necessário que o programa seja do jeito que o usuário mais gosta, ou seja, fácil de usar, de aprender e eficiente. Daí surge a necessidade de se levar em conta a opinião do usuário a cada passo do desenvolvimento, para saber o que pode ser melhorado e como. Esse é um processo iterativo: a cada passo, deve-se procurar saber o que o usuário achou do produto até àquele estágio e tentar corrigir os problemas enquanto se implementam novas funcionalidades.

    Nem sempre é fácil obter esse tipo de informação. O usuário normalmente não sabe o que quer, exatamente. Aí entram questionários, entrevistas, observação, experimentos, etc.

    A conclusão é: se você quer fazer algo útil, procure saber quais são as necessidades dos usuários. Quais são os problemas existentes nos produtos atuais ou o que pode ser criado para facilitar a realização de uma tarefa.

    Exemplos bem-sucedidos de produtos que levaram em conta a opinião dos usuários: Windows (sim, apesar de ele ser cheio de problemas, ele faz sucesso), Wii, Orkut, Youtube.

    Creio que é isso que falta para que o Linux faça mais sucesso do que já faz.

    Para saber mais: Interação Humano-Computador

    Posts Relacionados:

  • Palmas para o Windows
  • Benchmark TreeSet x HashSet
  • Computador & Beleza
  • FISL 8.0
  • Cuba Libre
  • Deligio: Busca de Software
  • Economizando com Software Livre
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 3 Comments
  • Filed under: Opiniao
  • Depois de um bom tempo sem postar nada (fim de ano é complicado….), dei de cara com alguns sites que merecem ter sua engenhosidade (no uso do algoritmo Picareta) exposta como exemplo.

    Antes, uma rápida introdução ao algorítmo:

    1. Tenha uma idéia que pode gerar lucro mas dá muito trabalho
    2. Arrange uma forma das pessoas acharem que vão ganhar algo fazendo isso por você (Pode chamar de concurso cultural)
    3. Espere (pacientemente) que pessoas mordam a isca
    4. Enquanto as pessoas fazem o trabalho
    5. Ganhe muito dinheiro
    6. Não dê nada à quem trabalhou (talvez algo barato para eles ficarem felizes)
    7. Vá para a linha 1

    Incrível não? Esse sim é um algoritmo que pode ser considerado uma bala de prata. Ele é aplicável a qualquer problema (inclusive os incomputáveis) e geralmente funciona por um bom tempo, antes dos dados serem corrompidos e aparecer a bendita falha de segmentação (ou NullPointerException para os javeiros - notem que ela só pode ocorrer na linha 3, onde você depende de dados injetados na sua aplicação).

    Alguns exemplos de usos bem sucedidos (e vários ainda estão rodando):

    • Quero Trabalhar com Java - Simples e funcional. Você aprendeu Java agora, certo? O mercado pede alguns anos de experiência, correto? Temos a solução. Você trabalha em algum dos nossos projetos , nos paga por isso e ainda recebe a tão necessária experiência. Bom pra você, não é?
    • Arnaldo Giraldo - Você é poeta, certo? Mas ninguém publica o que você escreve. Por isso eu estou aqui. Vou escolher as melhores poesias que me mandarem até tal data e tranformá-las em um livro. O que não vou avisar é que você terá que comprar 10 (sim, são dez) edições do livro para cada página do livro que tiver suas poesias (sim, para cada página). Assim nem me preocupo em vender o livro, pois ele já terá uma ótima tiragem (que me dará muito lucro).
    • Concurso Cultural: Faça meu Logo!!! Você trabalha com rails e é criativo? Essa é sua oportunidade. Faça o logo da minha empresa e ganhe R$300,00 (\o/), digo R$600,00(\o/\o/). Assim eu não preciso pagar um designer pra fazer isso pra mim.
      A troca de mensagens completa na lista rails-br está aqui. Só achei uma pena terem mandado tantas menssagens agressivas ao criador dessa grande idéia.
    • Nradesco.com.br - Infelizmente este site saiu do ar, mas era muito interessante a forma como ele resolveu pescar seus usuário. Nunca uma simples letra fez tanta diferença. (Pros que ainda não entenderam olhem pro seu teclado - Qwert - e vejam onde fica o ‘B’ e o ‘N’).

    Esses são apenas os casos de sucesso que eu conheço. Garanto que existem muitos outros.

    Posts Relacionados:

  • Algoritmos Humorísticos - LTT Algorithm
  • Algoritmos Humorísticos - TEC Algorithm
  • Algoritmos Humorísticos - Picket Algorithm
  • Algoritmos Humorísticos - Trainee Algorithm
  • Inteligência Artificial
  • Programação Dinâmica
  • Dia C - Algoritmos Genéricos
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 0 Comments
  • Filed under: Humor, Opiniao
  • JQuery Plugin

    Ultimamente estou correndo atrás de bastante coisa sobre design.

    Acho que todos que já entraram no nosso blog já notaram que usamos um template padrão do WordPress.

    Depois de muito tempo decidimos mudar de template (na verdade queremos isso desde o começo do blog). Começo do ano estaremos de template novo (espero que bem melhor que o atual).

    Como sou programador, de cara fui atrás de javascript. Conheci o JQuery e resolvi assinar a mailing list deles pra ver o que tinha de novidade.

    Uma das novidades que vi é um plugin que coloca sombras em praticamente qualquer tipo de objeto html. E o melhor, com quase código nenhum. Parece mágica e funciona mesmo.

    Aqui vai um screenshot do site de exemplos (Notem a quantidade de código extra para fazer isso):

    Se não acreditar, desabilite o javascript no seu browser (Não aqui, no site de testes). E vale a pena pegar o firebug pra ver como que o plugin faz essa mágica.

    Posts Relacionados:

  • Boas práticas de JavaScript na Internet
  • Em busca dos 64 bits
  • Falando em Java: Interfaces ricas na Web com Ajax
  • Suporte ao Nokia 5200 no iSync
  • E se alguém trocar a sua id do AdSense?
  • Linguagens de programação - Javascript
  • Sincronizando o OpenOffice com o Google Docs
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 2 Comments
  • Filed under: Dicas, News, Programacao