Arduino: const vs #define

Longe vão os tempos em que os computadores possuíam quantidades irrisórias de memória RAM quando comparadas com os dias de hoje. Falo sim em quantidades na ordem dos kbytes de memória.

Actualmente os programadores descuram um pouco essa afinação e optimização na alocação de memória das suas aplicações, mas ainda existe um pequeno grupo onde ainda é necessário optimizar ao pormenor a alocação de memória, refiro-me então às áreas da robótica e electrónica, de um modo geral na utilização de micro-controladores.

Continuar a ler

Mitos do jQuery

Mito #1: O jQuery substitui JavaScript

O jQuery não é nenhuma linguagem; é apenas uma biblioteca. Bibliotecas/toolkits/frameworks JavaScript são “apenas” um conjunto de utilitários escritos em/para JavaScript que ajudam a gerir uma página e as suas interações. Nenhuma biblioteca JavaScript substitui o JavaScript; uma biblioteca apenas junta diversas funções e outros elementos com os objetivos de reutilização, simplicidade e rapidez de desenvolvimento. É certo que, por uma questão de coerência de código, se estivermos a usar uma biblioteca, as várias instruções JavaScript podem ser feitas recorrendo a essa biblioteca mas isso não quer dizer que apenas com JavaScript não se o faça.

Por outro lado, há situações em que não devemos forçar o uso de uma biblioteca. Quando a velocidade é determinante (e não há problemas de suporte cross-browser), é escusado colocar “mais chamadas no meio”; mais vale recorrer diretamente às API/JavaScript nativos do browser.

Assim, aprender jQuery não significa que não tenha de JavaScript; antes pelo contrário.

Continuar a ler

Resolução de Sobrecarga de Método

O enigma desta edição é-nos trazido por Jon Skeet.

Dado o seguinte código:

class X
{
  static int M(Func<int?, byte> x, object y) { return 1; }
  static int M(Func<X, byte> x, string y) { return 2; }

  const int Value = 1000;

  static void Main()
  {
    var a = M(X => (byte)X.Value, null);

    unchecked
    {
      Console.WriteLine(a);
      Console.WriteLine(M(X => (byte)X.Value, null));
    }
  }
}

Qual é o resultado da sua execução?

Continuar a ler

Gestão de Sistemas e Redes em Linux

O livro que me foi apresentado para análise tem o título Gestão de Sistemas e Redes em Linux – 3ª Edição e tem como público-alvo docentes ou estudantes que pretendam aprofundar conhecimentos na área de administração de sistemas e redes, ou profissionais com responsabilidades na administração de redes informáticas de média e grande dimensão. O seu autor, Jorge Granjal, é Professor na Faculdade de Ciências e Tecnologia da Universidade de Coimbra, onde desenvolve também atividades de investigação no grupo de Comunicações e Telemática do Centro de Informática e Sistemas da Universidade de Coimbra. A primeira edição deste livro foi lançada em fevereiro de 2010, e esta mais recente, a terceira edição, publicada em setembro de 2013.

Continuar a ler

JavaScript

Ao começar a ler este livro a primeira coisa que me saltou à mente foi “ok, vou ler sobre JavaScript… Vamos ver o que este título singelo e esta capa minimalista me reservam”. Com o ler das primeiras páginas comecei a perceber que me reservavam algo bem mais amplo do que um texto extremamente tecnicista, apenas acessível a quem já está familiarizado com a linguagem, a programação para web, os seus conceitos e o paradigma da programação orientada a objectos.

Página a página, capítulo a capítulo, pude constatar que o livro é de uma leitura interessante e pouco maçadora, com exemplos que ilustram o que é explicado, não requerendo grande conhecimento prévio sobre o tema.

Continuar a ler