<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Tcl/Tk: Renomear e remover comandos</title>
	<atom:link href="http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/feed/" rel="self" type="application/rss+xml" />
	<link>http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/</link>
	<description>Programadores, uni-vos!</description>
	<lastBuildDate>Thu, 19 Jan 2012 11:51:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Tcl/Tk: Introspecção com comando info &#171; CODARE</title>
		<link>http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/#comment-470</link>
		<dc:creator>Tcl/Tk: Introspecção com comando info &#171; CODARE</dc:creator>
		<pubDate>Mon, 08 Jun 2009 12:03:22 +0000</pubDate>
		<guid isPermaLink="false">http://codare.net/?p=216#comment-470</guid>
		<description>[...] [info commands]: retorna os nomes de todos os comandos existentes no programa, inclusive os procs. Também inclui os &#8220;apelidos&#8220;. Isso inclui TODOS os comandos da linguagem Tcl/Tk, mas observe que alguns comandos podem ter sido apagados. [...]</description>
		<content:encoded><![CDATA[<p>[...] [info commands]: retorna os nomes de todos os comandos existentes no programa, inclusive os procs. Também inclui os &#8220;apelidos&#8220;. Isso inclui TODOS os comandos da linguagem Tcl/Tk, mas observe que alguns comandos podem ter sido apagados. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tcl/Tk: Expressões aritméticas sem &#8220;expr&#8221; &#171; CODARE</title>
		<link>http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/#comment-469</link>
		<dc:creator>Tcl/Tk: Expressões aritméticas sem &#8220;expr&#8221; &#171; CODARE</dc:creator>
		<pubDate>Thu, 09 Apr 2009 13:54:40 +0000</pubDate>
		<guid isPermaLink="false">http://codare.net/?p=216#comment-469</guid>
		<description>[...] Antes, é mais prudente reservar o comando [unknown] original dando-lhe outro nome: [...]</description>
		<content:encoded><![CDATA[<p>[...] Antes, é mais prudente reservar o comando [unknown] original dando-lhe outro nome: [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LES</title>
		<link>http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/#comment-468</link>
		<dc:creator>LES</dc:creator>
		<pubDate>Thu, 02 Apr 2009 23:23:21 +0000</pubDate>
		<guid isPermaLink="false">http://codare.net/?p=216#comment-468</guid>
		<description>Oi, Tiago. Só vi hoje o seu comentário. Preciso consultar o Aurélio sobre como receber avisos quando alguém comentar.

A liberdade de um mero usuário é diferente da liberdade do autor ou administrador. Se o tal &quot;usuário&quot; for autor ou administrador do programa e tiver acesso ao código, ele põe e tira o que quiser.

Eu me referia a situações em que o usuário só usa o programa, não tem acesso ao código. Por exemplo, um formulário de site que use Tcl como linguagem CGI. Imagine que o usuário preencha &quot;[exec rm -rf ./]&quot; em um dos campos e aperte o botão Enviar. Se você já programa, deve ter uma boa idéia do que faz o comando [exec] e de quanto estrago ele pode fazer. Se você apagar o comando [exec], pelo menos este perigo é evitado. Existem inúmeras maneiras de validar o que é digitado pelo usuário, e UMA delas é castrar a linguagem.

Na verdade, isso tudo foi só um exemplo muito simplificado moldado para o escopo ultra resumido do Codare. A maneira mais certa de se castrar a linguagem é usando *interpretadores seguros*. Resumindo: todas as outras linguagens que eu conheço têm um interpretador só executando o script inteiro, mas Tcl permite criar vários interpretadores paralelos, cada um deles completamente isolado e independente e com características próprias. É como ter várias Tcl dentro da Tcl, cada uma diferente se você quiser. Você pode criar um interpretador &quot;capado&quot; só para determinadas tarefas se achar melhor. É um modelo de segurança muito interessante. Se você quiser saber mais, vai ter que pesquisar. :-)  Comece procurando por [interp create -safe].</description>
		<content:encoded><![CDATA[<p>Oi, Tiago. Só vi hoje o seu comentário. Preciso consultar o Aurélio sobre como receber avisos quando alguém comentar.</p>
<p>A liberdade de um mero usuário é diferente da liberdade do autor ou administrador. Se o tal &#8220;usuário&#8221; for autor ou administrador do programa e tiver acesso ao código, ele põe e tira o que quiser.</p>
<p>Eu me referia a situações em que o usuário só usa o programa, não tem acesso ao código. Por exemplo, um formulário de site que use Tcl como linguagem CGI. Imagine que o usuário preencha &#8220;[exec rm -rf ./]&#8221; em um dos campos e aperte o botão Enviar. Se você já programa, deve ter uma boa idéia do que faz o comando [exec] e de quanto estrago ele pode fazer. Se você apagar o comando [exec], pelo menos este perigo é evitado. Existem inúmeras maneiras de validar o que é digitado pelo usuário, e UMA delas é castrar a linguagem.</p>
<p>Na verdade, isso tudo foi só um exemplo muito simplificado moldado para o escopo ultra resumido do Codare. A maneira mais certa de se castrar a linguagem é usando *interpretadores seguros*. Resumindo: todas as outras linguagens que eu conheço têm um interpretador só executando o script inteiro, mas Tcl permite criar vários interpretadores paralelos, cada um deles completamente isolado e independente e com características próprias. É como ter várias Tcl dentro da Tcl, cada uma diferente se você quiser. Você pode criar um interpretador &#8220;capado&#8221; só para determinadas tarefas se achar melhor. É um modelo de segurança muito interessante. Se você quiser saber mais, vai ter que pesquisar. :-)  Comece procurando por [interp create -safe].</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tiago Madeira</title>
		<link>http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/#comment-467</link>
		<dc:creator>Tiago Madeira</dc:creator>
		<pubDate>Tue, 31 Mar 2009 11:49:20 +0000</pubDate>
		<guid isPermaLink="false">http://codare.net/?p=216#comment-467</guid>
		<description>Nossa... Realmente camaleônicas.
Interessante, me deu vontade de aprender a programar nisso, vou continuar lendo os posts dessa série...

&lt;blockquote&gt;Você pode querer “matar” alguns comandos em programas/scripts que aceitem dados digitados pelo usuário. Sem determinados comandos, o programa fica mais seguro.&lt;/blockquote&gt;

Já deste ponto eu discordo. Não se deve tirar a liberdade do usuário, já que ele roda um programa por sua conta e risco em sua própria máquina.</description>
		<content:encoded><![CDATA[<p>Nossa&#8230; Realmente camaleônicas.<br />
Interessante, me deu vontade de aprender a programar nisso, vou continuar lendo os posts dessa série&#8230;</p>
<blockquote><p>Você pode querer “matar” alguns comandos em programas/scripts que aceitem dados digitados pelo usuário. Sem determinados comandos, o programa fica mais seguro.</p></blockquote>
<p>Já deste ponto eu discordo. Não se deve tirar a liberdade do usuário, já que ele roda um programa por sua conta e risco em sua própria máquina.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tcl/Tk: Criar vários nomes para um comando (alias) &#171; CODARE</title>
		<link>http://codare.net/2009/03/20/tcltk-renomear-e-remover-comandos/#comment-466</link>
		<dc:creator>Tcl/Tk: Criar vários nomes para um comando (alias) &#171; CODARE</dc:creator>
		<pubDate>Mon, 30 Mar 2009 12:02:36 +0000</pubDate>
		<guid isPermaLink="false">http://codare.net/?p=216#comment-466</guid>
		<description>[...] Tags: alias, apelido, comando, file exists, foreach, interp alias, Tcl/Tk &#124; by Aurélio    Além de renomear comandos no Tcl/Tk, também é possível criar &#8220;apelidos&#8221; para os comandos com o [interp alias]. Por [...]</description>
		<content:encoded><![CDATA[<p>[...] Tags: alias, apelido, comando, file exists, foreach, interp alias, Tcl/Tk | by Aurélio    Além de renomear comandos no Tcl/Tk, também é possível criar &#8220;apelidos&#8221; para os comandos com o [interp alias]. Por [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

