Ae galera, pra quem tem necessidade de algum tipo de computacao cientifica ou de processamento estatistico existe o scilab. E um bom substituto para o matlab, com a maravilhosa vantagem de ser livre com o ar que respiramos!Indico especialmente a galera que como eu ama a programacao de computadores e o mercado financeiro. Ele cria graficos com extrema facilidade e tem varias funcoes cientificas que sao pura obra de Deus! Hoje resolvi um problema que ja vinha me ocupando durante dois dias! Estou desenvolvendo uma aplicacao usando o framework Prado, em php, que se inspira no modelo de eventos do asp .net da microsoft.O problema que eu tinha era o seguinte:configurei dois modulos no arquivo aplication.xml----------------<module class="System.Security.TAuthManager" id="auth" loginpage="Home" usermanager="users" /> <module class="System.Security.TDbUserManager" connectionid="db" id="users" userclass="UsuarioDAO"/>---------------- e criei uma classe para fazer a autenticacao :----------------class UsuarioDAO extends TDbUser { public function validateUser($login, $senha) { return Usuario::finder()->findBy_login_AND_senha($login,$senha) !== null; } public function createUser($login) { return new Usuario(); } }-----------------e uma classe Usuario que apenas recuperava os dados do banco de dados. Igual ao exemplo de Blog que o site do framework fornece. O problemas que eu tinha era o seguinte: o codigo de autenticacao sempre retornava false, mesmo quando o metodo validateUser retornava true!------------------- $authManager = $this->Application->getModule('auth'); if(!$authManager->login($this->txtUsuario->Text, $this->txtSenha->Text)) { $param->IsValid = false; }-------------------Apos muito pesquisar, principalmente no forum do site, descobri que a classe Usuario, que fazia apenas a recuperacao do banco de dados, deveria implementar a interface IUser. Assim o codigo que era:----------------class Usuario extends TActiveRecord { const TABLE = 'tbl_usuario'; public $id; public $login; public $senha; public static function finder($className = __CLASS__) { return parent::finder($className); } }---------------passou a ser:---------------class Usuario extends TActiveRecord implements IUser { const TABLE = 'tbl_usuario'; public $id; public $login; public $senha; public static function finder($className = __CLASS__) { return parent::finder($className); } public function getIsGuest(){} public function getName() {} public function setName($value) {} public function getRoles() {} public function isInRole($role) {} public function loadFromString($string) {} public function saveToString(){} public function setIsGuest($value) {} public function setRoles( $value) {} }------------------E a validacao funcionou como deveria funcionar! Sem precisar reimplementar nenhuma classe (TDbUserManager), como foi a melhor solucao que encontrei. Ha um bug no PHP ao tentar manipular um arquivo com caractere acentuado no nome. E um erro documentado e por enquanto nao resolvido: ou seja, nao ha solucao por enquanto. Um tempo atras comecei a brincar com o mercado de acoes, em especial a analise tecnica. Estava querendo fazer um aplicativozinho via web que me permitisse fazer algumas brincadeiras, tipo criar meu proprio indicador e rodar meu proprio backtesting.Bem, interrompi o projeto por enquanto, mas um fruto interessante desse trabalho inicial foi descobrir a HiCharts Js , uma biblioteca RichClient javascript para tracar graficos.Ha muitas bibliotecas JS para tracar graficos (entre elas a do google), mas o que me chamou a atencao e que essa biblioteca gera os graficos da analise tecnica, com candle e tudo!Quem estiver pensando em um projeto semelhante fica ae a dica! Um problema que sempre tive era o seguinte: centralizar um elemento html (div na maioria das vezes) dentro de outro.Eu fazia varios malabarismos