Gestão Moderna de Projetos – Melhores Técnicas e Práticas

Uma leitura agradável e de extrema utilidade, tanto para estudantes dos diversos cursos onde tenham disciplinas que impliquem a gestão dos seus projectos académicos, como a própria disciplina de Metodologias de Projecto e Projecto (nos seus diversos níveis), como para programadores e gestores de projecto.

Aborda de forma simples e apelativa todos os aspectos da gestão de um projecto, fazendo uma introdução cativante e interessante.

Continuar a ler

Revista PROGRAMAR nº 42 — Setembro 2013

Nesta edição continuaremos também a premiar os autores dos três melhores artigos, dado o sucesso nas edições anteriores. E os leitores devem dar a sua opinião para que possamos premiar correctamente. Para isso vote em http://tiny.cc/ProgramarED42_V.

Assim nesta edição trazemos até si, como artigo de capa, um artigo sobre Web Persistente: Local Storage. Nesta 42ª edição pode ainda encontrar os seguintes artigos:

Leitor de QRCode para Windows Phone

Este artigo tem como objetivo criar um leitor de QRCode para aplicações Windows Phone.

O código QR ou QRCode como é mais conhecido é um código de barras bidimensional que pode ser lido facilmente por um dispositivo móvel que contenha câmara fotográfica. O código pode representar texto, um url, número de telefone, localização georreferenciada, um e-mail, um contato ou um SMS. O QRCode é muito comum em revistas, propaganda, cartões de visitas, entre outros.

Em Windows Phone é possível fazer o reconhecimento de QRCode usando várias bibliotecas:

  • ZXing.Net
  • MessagingToolkit.Barcode
  • Silverlight_ZXing_Core

Neste exemplo vamos apenas usar a biblioteca ZXing.Net e a biblioteca Silverlight_ZXing_Core. Num teste realizado MessagingToolkit.Barcode apresentou-se ser lenta.

Comecemos por desenhar a interface com o utilizador!

Programar é a “Língua” do Século XXI

Estamos em pleno século XXI e todos nós usamos tecnologia e informação diariamente. Usamo-las de tal modo que arrisco dizer que é impossível vivermos sem esta presença nas nossas vidas.

É inevitável o uso de telemóveis, smartphones, tablets e computadores, entre milhares de outros dispositivos no nosso dia-a-dia, visto que quase todos os electrodomésticos de última geração já possuem o seu próprio sistema embutido.

Mas para que o mais comum dos mortais possa usar essa mesma tecnologia, alguém teve que desenvolver essa tecnologia e sobretudo teve que a programar.

Continuar a ler

Os Perigos das Estruturas Mutáveis

Dada a seguinte estrutura:

public struct S : IDisposable
{
    public int Value { get; private set; }

    public S(int value) : this()
    {
        this.Value = value;
    }
    public void SetValue(int value)
    {
        this.Value = value;
    }

    public void Dispose()
    {
        Console.WriteLine(
            "Disposing: {0}",
            this.Value);
        this.Value = 0;
    }
}

Qual é o resultado da execução do seguinte código?

 using (var s1 = new S(1))
{
    s1.SetValue(-1);
}
Console.WriteLine();

var s2 = new S(2);
using (s2)
{
    s2.SetValue(-1);
}
Console.WriteLine("Disposed: {0}", s2.Value);
Console.WriteLine();

var s3 = new S(3);
try
{
    s3.SetValue(-1);
}
finally
{
    s3.Dispose();
}
Console.WriteLine("Disposed: {0}", s3.Value);
Console.WriteLine();

var s4 = new S(4);
try
{
    s4.SetValue(-1);
}
finally
{
    ((IDisposable)s4).Dispose();
}
Console.WriteLine("Disposed: {0}", s4.Value);
Console.WriteLine();

Continuar a ler

A Concepção de uma Ideia Programável

Numa altura em que estamos perante o “BOOM” das aplicações para tablets e smartphones, e aproveitando o mote de um outro artigo desta edição, o Programar é a linguagem do Século XXI, convido agora os leitores a conhecer ou a recordar uma outra vertente da programação. A fase inicial, aquela em que passamos pela concepção de uma ideia e a trabalhamos antes de a colocarmos em prática. Acredito piamente, tal como escreveu Nuno Santos, que “Quantas vezes cada um de nós já deu por si a pensar que uma determinada aplicação seria tão útil para o decorrer do nosso dia-a-dia?”

Continuar a ler

try {Thread.sleep(1000); }

Como em tudo na programação, por vezes acontecem exceptions, que não antecipamos, nem pensamos que pudessem acontecer.

Assim na Revista PROGRAMAR, aconteceu uma no passado mês de Agosto, pelo que a edição que seria publicada o mês passado, apenas agora é trazida até vós, com grande pena nossa. Aconteceu uma exception, para a qual não estávamos preparados, mas longe de isso significar o fim da revista, significa uma melhoria para a continuidade.

Continuar a ler

Web Persistente: Local Storage

Introdução

Neste artigo vamos estudar uma solução para o desenvolvimento de aplicações web mais fluídas recorrendo ao Local Storage. Esta tecnologia possibilita a persistência de dados no browser, o que permite a implementação de aplicações web que respondem visualmente de forma imediata – uma característica que sempre foi possível em aplicações nativas, mas que a web apenas recentemente começou a suportar.

No decorrer deste artigo introduzimos a utilização do Local Storage e analisamos em maior detalhe a técnica utilizada para tirar partido da potencialidade da tecnologia. Finalmente, é feita a apresentação dos resultados de desempenho conseguidos, capturados recorrendo à plataforma de nome AnyKB desenvolvida como prova de conceito para esse objectivo.

Debug de Aplicações em C

Neste artigo pretende-se dar ao iniciado na programação (e não só) uma ideia de como depurar os seus programas, seja com recurso à própria linguagem, introduzindo no programa código que permita despistar erros, seja com recurso a programas externos, neste caso o gdb.

É minha opinião que todos os iniciados na programação devem experimentar mover a sua aprendizagem para um sistema *nix (no meu caso, utilizo Linux), e assim sendo, este artigo assume que o leitor tem acesso a um sistema semelhante, embora isso não seja de todo um pré-requisito (o gdb também está disponível para Windows). Sendo a linguagem C bastante importante no currículo do programador e ubíqua no mundo da computação (especialmente no dos iniciados), este artigo foca-se na depuração de software escrito nessa linguagem e na utilização do gdb, um debugger poderoso e muito utilizado, disponível para imensas plataformas.

Todo o código apresentado neste artigo foi compilado com o gcc versão 4.6.3 e as sessões de debug foram levadas a cabo com o gdb versão 7.5.1 num sistema com Linux instalado (kernel 3.8.13, embora isto não seja muito importante). Os (pequenos) programas apresentados são compilados com as seguintes flags:

-Wall -Wextra -std=c99 -pedantic -O0 -ggdb3

Arduino: Accionamento e Controlo de Servos Via Teclado

Introdução

Nesta edição irei evoluir um pouco mais as funcionalidades demonstradas no artigo publicado na edição 39 sobre o Accionamento de Servos Usando Arduino apresentando agora um artigo sobre o accionamento e controlo de servos usando o teclado do computador como input das acções pretendidas.

Desta forma será possível controlar a acção dos servos usando a interface das teclas do teclado para a definição das acções.

Para a implementação e controlo dos servos usando o teclado não é necessário efectuar qualquer alteração ao esquema eléctrico apresentado no artigo da edição 39, bastando apenas usar a tecnologia Processing como interface de ligação entre o utilizador e o micro-controlador Arduino.

Continuar a ler