quinta-feira, 10 de agosto de 2017

Highlighter de código-fonte

Para escrever a respeito de algoritmos é necessário, melhor dizendo, é desejável que o código-fonte esteja legível, que seja possível distinguir visualmente as palavras reservadas, os comentários, etc. Os ambientes de desenvolvimento, tais como NetBeans, VisualStudio, PyCharm, entre outros, oferecem ótimos recursos relacionados à legibilidade do código-fonte. Porém, para publicar trechos de algoritmos em páginas html essa busca pela clareza é mais difícil. O trecho de código descrito abaixo não está ruim, do ponto de vista da formatação, mas quem conhece programação sabe que poderia ser melhor.

class Area{
  public static void main(String args[]){
    double pi, r, a;
    r = 10.8;
    pi = 3.1416;
    a = pi * r * r;
    System.out.println("Area do círculo é " + a);
  }
}

Esse mesmo algoritmo pode ser exibido de uma maneira muito mais legível, observe-se o trecho de código abaixo, as palavras reservadas estão em destaque, o espaçamento entre as letras é maior, há a diferenciação dos valores literais e ainda o indicador de número da linha.    

class Area{
  public static void main(String args[]){
    double pi, r, a;
    r = 10.8;
    pi = 3.1416;
    a = pi * r * r;
    System.out.println("Area do círculo é " + a);
  }
}

Para realizar essa excelente formatação foi empregada a biblioteca SyntaxHighlighter desenvolvida por Alex Gorbatchev. Trata-se de uma biblioteca JavaScript para formatar e realçar código-fonte, ela reconhece códigos das linguagens C++, C#, CSS, Java, JavaScript, PHP, Python, Ruby, SQL, VisualBasic, XML, HTML e Perl. Para utilizar essa biblioteca é necessário incluir os códigos abaixo entre as tags head da página html.

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/> 
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script> 
<script language='javascript'> 
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>

Na sequência, os trechos de texto que contém código-fonte devem ser circundados pelas tags pre (conforme ilustrado no trecho a seguir), informando alguma das opções de linguagem disponíveis. No exemplo ilustrado estamos formatando código html. Mais informações e detalhes de utilização podem ser encontrados no site do desenvolvedor.

 
 código fonte 

Hospedagem gratuita para sites desenvolvidos com a linguagem Python

A linguagem Python também pode ser utilizada no desenvolvimento de sistemas web e quem deseja criar e testar esse tipo de aplicação em um ambiente de hospedagem real (além do servidor local) pode contar com um serviço gratuito (embora limitado) diponibilizado pelo site pythonanywhere. O ambiente oferecido em sua configuração gratuita é completamente funcional, dentre as principais características pode-se destacar as seguintes:
  • Hospedagem de uma única aplicação
  • Servidor Linux
  • SGBD MySQL
  • Python e IPython nas versões 2.7 até 3.6
  • Frameworks flask e django
  • Acesso aos consoles Bash e MySQL
  • Painel de controle simples e intuitivo
As principais restrições são relacionadas à disponibilidade de recursos de processamento, espaço em memória e largura de banda. Além disso, a conta gratuita impõem um padrão para a definição do endereço da aplicação e ainda a necessidade de revalidação a cada três meses.
Para ter acesso ao serviço é necessário realizar o cadastro e informar um email válido para a confirmação da solicitação, logo em seguida o acesso é liberado e o desenvolvedor torna-se apto a carregar arquivos e rodar sua aplicação.

domingo, 16 de setembro de 2012

Yii - Argumentos Controle/View

Para passar um ou mais argumentos de um método de uma classe de controle para um arquivo de visão no framework Yii é bastante simples. No exemplo a seguir a variável $hello armazena uma string que é  enviada ao arquivo de visão index utilizando um array. Neste array a variável $hello é atribuída ao indice 'message' que é acessado no arquivo index como uma variável $message.



// Método da classe de controle
public function actionIndex() {
  $hello = "Ola mundo"; 
  $this->render('index',array('menssage'=>$hello,));       
}


// arquivo index.php
echo($message);