quinta-feira, 21 de agosto de 2014

Links do Aquário

Execute seu código python passo a passo de forma interativa e visual!!!
http://pythontutor.com/

Programador Cowboy, dica para  gerenciamento de equipe
http://www.akitaonrails.com/2009/03/30/off-topic-net-negative-producing-programmer#.U25JfXWx1dk


Exercite suas habilidades de programação!


terça-feira, 19 de agosto de 2014

PHP Callback e Callable

"O verdadeiro significado das coisas é encontrado ao se dizer as mesmas coisas com outras palavras."
Charles Chaplin


<?php

function funcao(){
    echo "Olá";
}

funcao();


<?php

function funcao(){
    echo "Olá";
}

$nomeFuncao = "funcao";
$nomeFuncao();


PHP DOC Funções anonimas
<?php
//Infelizmente não vai funcionar no codepad
//O codepad utiliza PHP 5.2.5
//Recurso disponível a partir do PHP 5.3
$funcao = function(){
    echo "Olá";
};

$funcao();


PHP DOC __invoke
<?php
//Infelizmente não vai funcionar no codepad
//O codepad utiliza PHP 5.2.5
//Recurso disponível a partir do PHP 5.3
class Funcao{

    public function __invoke(){
        echo "Olá";
    }

}

$funcao = new Funcao();

$funcao();


Obrigado!

quarta-feira, 13 de agosto de 2014

Desenvolvimento de Hardware

Esse vai ser o primeiro post sobre programação em um nível mais baixo, vou falar sobre desenvolvimento de hardware, mais especificamente circuitos digitais.

Quando é falado sobre hardware hoje em dia, vem muito na cabeça plataformas como o ArduinoRaspberry PIBeagleBone e Cubieboard, porém estas plataformas não são exatamente a ideia deste post, nestas plataformas normalmente o hardware não é alterado ou desenvolvido pelo usuário final, o usuário final conecta dispositivos específicos destas plataformas e faz a programação de um processador ou de um microcontrolador.

CubieBoard
Arduino
RaspBerry PI





BeagleBone

Uma tecnologia que nos permite realizar a prototipação de hardware são os FPGAs. Um FPGA é semelhante a um brinquedo de blocos de montar (lego), mas invés de blocos são portas lógicas e flip-flops e invés de encaixar as peças com as mãos mecanicamente, as interconectamos eletronicamente.

Ainda assim utilizar um FPGA não é desenvolver um  hardware físico, afinal ele já é um hardware pronto que possibilita a montagem de outros hardwares, porém permite simular o projeto de um circuito digital. Os FPGAs vem de uma família de dispositivos chamados PLDs (programmable logic device).





Altera - DE2
FPGA

Atualmente, processadores, microcontroladores e outros circuitos digitais utilizados, são complexos, utilizam muitas portas logicas, ou seja, milhares de transistores. Provavelmente se alguém tentar projetar um processador comercial hoje em dia utilizando um diagrama elétrico com transistores, ou um diagrama lógico com portas lógicas AND e OR, terá uma tremenda dor de cabeça.

Uma das saídas para evitar este estresse é a utilização dos HDLs(hardware description language), estas linguagens possibilitam descrever o comportamento de um hardware e através desta descrição um sintetizador faz o hardware, semelhantemente a um compilador.

O hardware produzido por estes sintetizadores pode ser simulado no computador, gravado em FPGA, ou até mesmo ser utilizado para produzir um circuito integrado (ASIC).
No próximo post sobre o assunto será demonstrado alguns exemplos de código HDL, provavelmente com Verilog e VHDL.

Obrigado!