idia inspiradas por applescript, kde e d-bus

June 6, 2010

[Warning: This post is a backup recovery from my previous Wordpress blog. All content was automatically converted accessing a MySQL database using a Python script (details). Mostly are in Portuguese but if you are interest I can translate to English. If you found any problem dont’t hesitate to contact me in comments.]

Tudo comeou numa tentativa que fiz para automatizar uma tarefa- reiniciar o AirPort no MacOSX -em 10 minutos no Google consegui as informaes necessrias para fazer um script na linguagem AppleScript. Isso me fez pensar em algumas coisas sobre a interatividade que obtemos nos ambientes atuais e as possibilidades nos ambientes livres.

Veja um exemplo feito no AppleScript simples para mostrar a janela com as preferncias de rede (System Preferences -> Network).

Nota: (1) se o voc for testar e seu sistema estiver em Portugus, lembre-se de traduzir os nomes entre aspas. (2) Para rodar os scripts preciso marcar a opo Enable access for assistive Devices em System Preferences -> Universal Access
tell application "System Preferences"
	activate
	set current pane to pane "com.apple.preference.network"
end tell

Para desligar/ligar o AirPort:

tell application "System Events"
	tell process "System Preferences"
		tell window "Network"
			tell group 1
				if (exists button "Turn Airport Off") then
					click button "Turn AirPort Off"
					delay 3
				end if
				if (exists button "Turn Airport On") then
					click button "Turn AirPort On"
				end if
			end tell
		end tell
	end tell
end tell

Veja que uma traduo em palavras (praticamente verbos no imperativo) do que seria o processo feito no modo grfico.Se vocprograma em Python, existe um comparativo.

Ambientes livres

E justamente com Python que vejo uma alternativa interessante para controlar as aplicaes como o System Settings.Talvez o jeito mais fcil de fazer isso seria atravs de uma comunicao IPC como o D-BUS . Inclusive o system settings exportado em org.kde.systemsettings.

$ qdbus org.kde.systemsettings

Resumindo, o acesso pode no ser to fcil quanto no AppleScript maso "meio" j existe em ambiente grficos tal como KDE e GNOME. O Python lida muito bem com este tipo de comunicao e uma sada para quem est procurando um jeito para controlar seu ambiente de forma automatizada.

Futuro

Na minha opinio h uma deficincia para (A) pessoas leigas, se quiserem, controlar seus aplicativos de forma automatizada e (B) melhorar as formas de usabilidade nas interfaces j existentes.

Fico imaginando se no seria interessante um investimento (e pesquisa) para criar linguagens de programao que herdem construes da "fala" para acessar aplicativos, para no futuro utilizar da "voz" humana para controlar o computador.

O software livre um terreno vasto para esse tipo de experincia. Cito algumas tecnologias que tornaria isso possvel:

  • D-bus para comunicao entre os aplicativos
  • Python como linguagem de programao para construir as "amarras"
  • NTLK (Natural Language Toolkit) para processar a linguagem

Se voc trabalhar com algum tipo de pesquisa na rea ou tem experincia, por favor, deixe um comentrio.

Bom comeo de semana a todos.