{"id":930,"date":"2010-05-08T18:19:22","date_gmt":"2010-05-08T21:19:22","guid":{"rendered":"https:\/\/www.gingadf.com\/blogGinga\/?p=930"},"modified":"2015-09-23T14:49:22","modified_gmt":"2015-09-23T17:49:22","slug":"como-estruturar-seu-ambiente-de-desenvolvimento-para-o-ginga-ncl","status":"publish","type":"post","link":"https:\/\/www.gingadf.com.br\/blogGinga\/como-estruturar-seu-ambiente-de-desenvolvimento-para-o-ginga-ncl\/","title":{"rendered":"Como estruturar seu ambiente de desenvolvimento para o Ginga-NCL"},"content":{"rendered":"<blockquote>\n<h1 style=\"text-align: center;\">Aten\u00e7\u00e3o<\/h1>\n<p>&nbsp;<br \/>\nEsse tutorial foi atualizado e a vers\u00e3o atualizada encontra-se neste link\u00a0<a href=\"https:\/\/www.gingadf.com.br\/blogGinga\/tutorial-como-estruturar-seu-ambiente-de-desenvolvimento-para-o-ginga-ncl\/\">https:\/\/www.gingadf.com.br\/blogGinga\/tutorial-como-estruturar-seu-ambiente-de-desenvolvimento-para-o-ginga-ncl\/<\/a><\/p><\/blockquote>\n<p>\u00c9 muito recompensador desenvolver uma aplica\u00e7\u00e3o para TV digital e observar sua cria\u00e7\u00e3o sendo executada num set-top box e exibida na TV, por\u00e9m quem deseja come\u00e7ar a desenvolver seus primeiros aplicativos pode encontrar algumas dificuldades. No primeiro contato com o desenvolvimento para TV digital geralmente o iniciante acaba deparando-se com muitas informa\u00e7\u00f5es sobre normas, plataformas, ambiente de testes, APIs, usabilidade etc. Tantas informa\u00e7\u00f5es podem causar confus\u00e3o deixando o desenvolvedor perdido, e pior, podem at\u00e9 causar a desist\u00eancia e consequente decep\u00e7\u00e3o com o desenvolvimento de aplica\u00e7\u00f5es para TV digital.<\/p>\n<p>Neste tutorial abordaremos passo-a-passo a estrutura\u00e7\u00e3o de um ambiente de desenvolvimento e testes para as aplica\u00e7\u00f5es interativas desenvolvidas para o <em>middleware<\/em> Ginga-<a title=\"Artigo sobre a linguagem NCL\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/94-linguagem-ncl-e-o-desenvolvimento-para-tv-digital-com-o-middleware-ginga\" target=\"_blank\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=5&amp;option=com_simplylinks\">NCL<\/a>.<\/p>\n<h1 style=\"text-align: center;\">Ambiente de desenvolvimento<\/h1>\n<p>Quando falamos em <strong>ambiente de desenvolvimento<\/strong> estamos nos referindo ao conjunto de ferramentas que tem por finalidade auxiliar tanto na codifica\u00e7\u00e3o como na execu\u00e7\u00e3o e visualiza\u00e7\u00e3o de nossas aplica\u00e7\u00f5es interativas.<\/p>\n<p>Para codificarmos nossas aplica\u00e7\u00f5es iremos utilizar uma <a href=\"https:\/\/pt.wikipedia.org\/wiki\/Ambiente_de_desenvolvimento_integrado\" target=\"_blank\">IDE<\/a> muito popular conhecida como <a href=\"https:\/\/www.eclipse.org\/\" target=\"_blank\">Eclipse<\/a>. O uso de uma IDE \u00e9 bastante recomendado, pois, como veremos no decorrer deste tutorial, ela oferece uma s\u00e9rie de funcionalidades, como um sistema avan\u00e7ado de <em>plugins<\/em>, para facilitar a codifica\u00e7\u00e3o de nossas aplica\u00e7\u00f5es.<\/p>\n<p>Para simularmos uma TV com interatividade iremos utilizar uma imagem <a href=\"https:\/\/www.vmware.com\/\" target=\"_blank\">VMware<\/a> de uma m\u00e1quina virtual com o <em>middleware<\/em> Ginga-NCL instalado. Esta imagem \u00e9 chamada de Ginga-NCL Virtual STB e \u00e9 disponibilizada pelo <a href=\"https:\/\/www.telemidia.puc-rio.br\/\" target=\"_blank\">laborat\u00f3rio Telem\u00eddia<\/a> da PUC-Rio.<\/p>\n<h1 style=\"text-align: center;\">Download e instala\u00e7\u00e3o do Ginga-NCL Virtual STB<\/h1>\n<p>Para executarmos o Ginga-NCL Virtual STB \u00e9 necess\u00e1rio ter instalado um <em>player<\/em> para a m\u00e1quina virtual VMware. Existem duas op\u00e7\u00f5es gratuitas: <a href=\"https:\/\/downloads.vmware.com\/d\/info\/datacenter_downloads\/vmware_server\/2_0\" target=\"_blank\">VMware Server<\/a> e VMware Player.<\/p>\n<p>Pela facilidade de instala\u00e7\u00e3o e entendimento, prosseguiremos com a instala\u00e7\u00e3o do VMware Player. Acesse a <a href=\"https:\/\/downloads.vmware.com\/d\/info\/desktop_downloads\/vmware_player\/3_0\" target=\"_blank\">p\u00e1gina de download<\/a> e escolha a melhor op\u00e7\u00e3o de acordo com o seu sistema operacional. Ser\u00e1 necess\u00e1rio efetuar um pequeno cadastro para prosseguir.<\/p>\n<p>Ap\u00f3s a conclus\u00e3o do download (tanto no Windows como no GNU\/Linux) basta executar o arquivo baixado para iniciar uma instala\u00e7\u00e3o em modo guiado. As op\u00e7\u00f5es apresentadas s\u00e3o f\u00e1ceis de escolher e a para a maioria delas \u00e9 necess\u00e1rio apenas clicar em\/ou escolher <em>Next<\/em>. Ao t\u00e9rmino da instala\u00e7\u00e3o pode ser solicitado a reinicializa\u00e7\u00e3o do sistema. A figura abaixo mostra a tela inicial do VMware Player onde \u00e9 poss\u00edvel ver o bot\u00e3o <em>Open an existing Virtual Machine<\/em>.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Virtual_STB_1_tela_inicial.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-943\" title=\"Tela inicial do VMware Player\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Virtual_STB_1_tela_inicial-300x244.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Tela inicial do VMware Player<\/div>\n<p>Ap\u00f3s a instala\u00e7\u00e3o do <em>VMware Player<\/em> seguiremos com o download da imagem do Ginga-NCL Vistual STB. Para isso acesse a <a title=\"P\u00e1gina de ferramentas Ginga-NCL\" href=\"https:\/\/www.gingancl.org.br\/pt-br\/ferramentas\" target=\"_blank\">p\u00e1gina de ferramentas<\/a> do site oficial ou <a title=\"Download Ginga-NCL STB Virtual\" href=\"https:\/\/www.gingancl.org.br\/sites\/gingancl.org.br\/files\/ferramentas\/ubuntu-server10.10-ginga-v.0.12.4-i386.zip\" target=\"_blank\">clique diretamente aqui<\/a>. A imagem \u00e9 disponibilizada num arquivo compactado (.zip) e para extra\u00ed-lo ser\u00e1 necess\u00e1rio ter um descompactador como <a href=\"https:\/\/linux.die.net\/man\/1\/unzip\" target=\"_blank\">unzip<\/a> ou <a href=\"https:\/\/www.winzip.com\/\" target=\"_blank\">winzip<\/a> instalado em seu computador. Quando o <em>download<\/em> terminar, descompacte o arquivo onde desejar.<\/p>\n<p>Para executar o Ginga-NCL Virtual STB basta abrir o <em>VMware Player<\/em>, clicar no bot\u00e3o <em>Open an existing Virtual Machine<\/em>, navegar at\u00e9 a pasta onde descompactou a imagem e clicar no arquivo <em>fedora-fc7-ginga-i386.vmx<\/em>. A figura abaixo ilustra essa opera\u00e7\u00e3o.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Virtual_STB_2_abrindo_imagem.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-947\" title=\"Abrindo imagem do STB Virtual\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Virtual_STB_2_abrindo_imagem-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Abrindo imagem do STB Virtual<\/div>\n<p>Como \u00e9 exibido na figura abaixo, ap\u00f3s o carregamento da imagem teremos nosso Ginga-NCL Virtual STB pronto para os testes.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Virtual_STB_3_tela_inicial_ginga.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-950\" title=\"Tela inicial do STB Vitual\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Virtual_STB_3_tela_inicial_ginga-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Tela inicial do STB Vitual<\/div>\n<p>Agora j\u00e1 \u00e9 poss\u00edvel acessar o Ginga-NCL Virtual STB atrav\u00e9s de uma conex\u00e3o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Secure_Shell\" target=\"_blank\">SSH<\/a>. No Windows para abrirmos tal conex\u00e3o com a m\u00e1quina virtual podemos fazer uso dos programas <a href=\"https:\/\/www.putty.org\/\" target=\"_blank\">Putty<\/a> ou SSH Secure Shell Client; a maioria das distribui\u00e7\u00f5es GNU\/Linux j\u00e1 oferece o <a href=\"https:\/\/unixhelp.ed.ac.uk\/CGI\/man-cgi?ssh+1\" target=\"_blank\">cliente SSH<\/a> instalado. Contudo n\u00e3o iremos trabalhar com o Ginga-NCL Virtual STB desta forma, apresentaremos uma maneira mais f\u00e1cil para trabalharmos com a m\u00e1quina virtual.<\/p>\n<h1 style=\"text-align: center;\">Instala\u00e7\u00e3o do Eclipse<\/h1>\n<p>Neste tutorial utilizaremos o Eclipse 3.5.2 (Galileo) Classic que pode ser obtido, gratuitamente, em sua <a href=\"https:\/\/www.eclipse.org\/downloads\/\" target=\"_blank\">p\u00e1gina de download<\/a>. O Eclipse \u00e9 desenvolvido em Java e n\u00e3o \u00e9 necess\u00e1rio efetuar instala\u00e7\u00e3o, basta descompactar e executar o arquivo bin\u00e1rio para iniciar sua utiliza\u00e7\u00e3o. Contudo \u00e9 necess\u00e1rio ter a <a href=\"https:\/\/pt.wikipedia.org\/wiki\/M%C3%A1quina_virtual_Java\" target=\"_blank\">m\u00e1quina virtual Java<\/a> instalada. Na figura abaixo pode ser visto uma tela do Eclipse informando a vers\u00e3o que utilizamos.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_Eclipse_1_eclipse.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-951\" title=\"Vers\u00e3o do Eclipse\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_Eclipse_1_eclipse-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Vers\u00e3o do Eclipse<\/div>\n<h1 style=\"text-align: center;\">Instala\u00e7\u00e3o do plugin <a title=\"Artigo sobre a linguagem NCL\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/94-linguagem-ncl-e-o-desenvolvimento-para-tv-digital-com-o-middleware-ginga\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=5&amp;option=com_simplylinks\">NCL<\/a> Eclipse<\/h1>\n<p>O <a href=\"https:\/\/laws.deinf.ufma.br\/%7Encleclipse\" target=\"_blank\">NCL Eclipse<\/a> \u00e9 um <em>plugin<\/em> que auxilia e agiliza bastante o desenvolvimento de aplica\u00e7\u00f5es em <a title=\"Artigo sobre a linguagem NCL\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/94-linguagem-ncl-e-o-desenvolvimento-para-tv-digital-com-o-middleware-ginga\" target=\"_self\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=5&amp;option=com_simplylinks\">NCL<\/a>. A partir da vers\u00e3o 1.4 (a vers\u00e3o atual \u00e9 a 1.5) foi disponibilizada a instala\u00e7\u00e3o atrav\u00e9s do sistema de instala\u00e7\u00e3o autom\u00e1tica do Eclipse.<\/p>\n<p>Para efetuar a instala\u00e7\u00e3o do <a title=\"Artigo sobre a linguagem NCL\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/94-linguagem-ncl-e-o-desenvolvimento-para-tv-digital-com-o-middleware-ginga\" target=\"_self\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=5&amp;option=com_simplylinks\">NCL<\/a> Eclipse inicie o Eclipse e acesse <em>Help -&gt; Install New Software<\/em> como pode ser visualizado na figura abaixo.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/ncleclipse-01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-952\" title=\"Instala\u00e7\u00e3o de novo plugin\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/ncleclipse-01-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Instala\u00e7\u00e3o de novo plugin<\/div>\n<p>Na tela de instala\u00e7\u00e3o (figura abaixo) clique em <em>Add<\/em>.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-953\" title=\"Adicionando site\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-02-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Adicionando site<\/div>\n<p>Ap\u00f3s clicar em <em>Add<\/em> ser\u00e1 exibida uma caixa de di\u00e1logo para a informa\u00e7\u00e3o do nome e localiza\u00e7\u00e3o do site onde o Eclipse ir\u00e1 buscar a atualiza\u00e7\u00e3o. Entre com as informa\u00e7\u00f5es:<\/p>\n<ul>\n<li><strong>Name:<\/strong> <em><a title=\"Artigo sobre a linguagem NCL\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/94-linguagem-ncl-e-o-desenvolvimento-para-tv-digital-com-o-middleware-ginga\" target=\"_self\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=5&amp;option=com_simplylinks\">NCL<\/a> Eclipse <\/em><\/li>\n<li><strong>Location:<\/strong> <em>https:\/\/www.laws.deinf.ufma.br\/ncleclipse\/update <\/em><\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-954\" title=\"Site do NCL Eclipse\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-04-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Site do NCL Eclipse<\/div>\n<p>Clique em OK e o Eclipse ir\u00e1 procurar por atualiza\u00e7\u00f5es no endere\u00e7o informado. Para visualizar o <a title=\"Artigo sobre a linguagem NCL\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/94-linguagem-ncl-e-o-desenvolvimento-para-tv-digital-com-o-middleware-ginga\" target=\"_self\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=5&amp;option=com_simplylinks\">NCL<\/a> Eclipse desmarque a op\u00e7\u00e3o <em>&#8220;Group items by category&#8221;<\/em>. Escoha o NCL Eclipse, clique em <em>Next<\/em> e depois em <em>Finish.<\/em><\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-955\" title=\"Escolhendo o NCL Eclipse\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-03-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Escolhendo o NCL Eclipse<\/div>\n<p>Ap\u00f3s a instala\u00e7\u00e3o ser\u00e1 solicitado a reinicializa\u00e7\u00e3o do Eclipse, basta aceitar e aguardar a inicializa\u00e7\u00e3o autom\u00e1tica. Quando iniciar novamente o Eclipse j\u00e1 estar\u00e1 com o plugin NCL Eclipse instalado.<\/p>\n<p>Para criar um novo documento NCL clique em <em>File -&gt; New -&gt; Other<\/em> ou utilize o atalho <em>Ctrl+N<\/em>. Na janela New escolha <em>NCL -&gt; NCL Document<\/em> e clique em <em>Next<\/em>.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-956\" title=\"Novo documento \u2013 parte \" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-05-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Novo documento &#8211; parte 1<\/div>\n<p>Como \u00faltimo passo iremos configurar o nome de nosso documento e clicar em <em>Finish<\/em> para criarmos o documento.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-957\" title=\"Novo documento \u2013 parte 2\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/nncleclipse-06-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Novo documento &#8211; parte 2<\/div>\n<h1 style=\"text-align: center;\">Instala\u00e7\u00e3o do plugin LuaEclipse<\/h1>\n<p>Com LuaEclipse \u00e9 poss\u00edvel editar <em>scripts<\/em> <a title=\"Artigo sobre a linguagem Lua\" href=\"https:\/\/www.peta5.com.br\/br\/tutoriais\/artigos\/75-linguagem-lua-e-o-desenvolvimento-para-tv-digital-com-ginga-ncl\" target=\"_self\" rel=\"index.php?view=simplylink&amp;catid=2&amp;id=9&amp;option=com_simplylinks\">Lua<\/a> com <em>syntax highlight, code completion<\/em>, verifica\u00e7\u00e3o de erros de compila\u00e7\u00e3o, agrupamento de c\u00f3digo e coment\u00e1rios, execu\u00e7\u00e3o de <em>scripts<\/em> utilizando um interpretador pr\u00e9-configurado, etc (confira mais informa\u00e7\u00f5es no <a href=\"https:\/\/luaeclipse.luaforge.net\/\" target=\"_self\">site oficial<\/a>).<\/p>\n<p>A instala\u00e7\u00e3o segue o padr\u00e3o do Eclipse e por isso \u00e9 bem semelhante com o que vimos para o NCL Eclipe. Apenas substitua as informa\u00e7\u00f5es do site por:<\/p>\n<ul>\n<li><strong>Name:<\/strong> <em>Lua Eclipse<\/em><\/li>\n<li><strong>Location:<\/strong> <em>https:\/\/luaeclipse.luaforge.net\/preview\/update-site\/linux.gtk.x86 <\/em><\/li>\n<\/ul>\n<p>Se seu sistema operacional for Windows, troque o <em><strong>Location<\/strong><\/em> por <em>https:\/\/luaeclipse.luaforge.net\/preview\/update-site\/win32.win32.x86<\/em>.<\/p>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, iremos configurar o interpretador Lua padr\u00e3o para nossos aplicativos. Para isso, selecione <em>Window -&gt; Preferences<\/em> e em seguida selecione a categoria <em>Lua -&gt; Installed Interpreters<\/em>, como na figura abaixo.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-958\" title=\"Configura\u00e7\u00e3o do interpretador\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_1-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Configura\u00e7\u00e3o do interpretador<\/div>\n<p>Para criar um novo projeto Lua clique em <em>File -&gt; New -&gt; New Lua Project<\/em> ou utilize o atalho <em>Ctrl+N<\/em>. Na janela <em>New<\/em> escolha Lua<em> -&gt; New Lua Project<\/em> e clique em <em>Next<\/em>.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_2_novo_projeto.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-959\" title=\"Novo projeto\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_2_novo_projeto-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Novo projeto<\/div>\n<p>Para incluir um novo arquivo em seu projeto selecione o projeto desejado, clique com o bot\u00e3o direito e selecione <em>New<\/em> <em>-&gt; <\/em><em>New Lua File.<\/em><\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_3_novo_arquivo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-960\" title=\"Novo arquivo\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_3_novo_arquivo-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Novo arquivo<\/div>\n<p>Neste momento j\u00e1 podemos come\u00e7ar a codificar.<\/p>\n<p>Para executar seu <em>script<\/em> clique com o bot\u00e3o direito nele e escolha <em>Run As -&gt; Lua Application<\/em><em>.<\/em><\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_4_executar_arquivo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-961\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_4_executar_arquivo-150x150.png\" alt=\"Executando script\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Executando script<\/div>\n<p>Para evitarmos estes cliques entediantes podemos configurar um atalho, em <em>Window -&gt; Preferences -&gt; General -&gt; Keys<\/em>, para essa tarefa. No meu caso configurei para a combina\u00e7\u00e3o <em>Ctrl+R<\/em> executar o <em>script<\/em> Lua.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_5_atalho_para-execucao.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-962\" title=\"Atalho para execu\u00e7\u00e3o de script\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/LuaEclipse_5_atalho_para-execucao-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Atalho para execu\u00e7\u00e3o de script<\/div>\n<h1 style=\"text-align: center;\">Instala\u00e7\u00e3o do Remote System Explorer (RSE)<\/h1>\n<p>O RSE \u00e9 um <em>plugin<\/em> para o Eclipse que oferece um conjunto de ferramentas para a conex\u00e3o e trabalho com diferentes sistemas remotos, incluindo SSH e FTP. Para maiores detalhes sobre o <em>plugin<\/em> visite o <a href=\"https:\/\/www.eclipse.org\/dsdp\/tm\" target=\"_blank\">site oficial<\/a>.<\/p>\n<p>Mas o que um <em>plugin<\/em> para trabalho com sistemas remotos est\u00e1 fazendo aqui? Bem, podemos considerar o nosso Ginga-NCL Virtual STB um sistema remoto, apesar de muitas vezes ele residir no mesmo computador, e usufruir todas as facilidades oferecidas pelo RSE evitando o enfadonho processo de edi\u00e7\u00e3o, c\u00f3pia para a m\u00e1quina virtual e acesso \u00e0 m\u00e1quina virtual para executar a aplica\u00e7\u00e3o. Quem passou por isso sabe o quanto isso pode ser desestimulante.<\/p>\n<p>A instala\u00e7\u00e3o do RSE segue o mesmo procedimento dos outros <em>plugins<\/em>, Apenas substitua as informa\u00e7\u00f5es do site por:<\/p>\n<ul>\n<li><strong>Name:<\/strong> <em>RSE<\/em><\/li>\n<li><strong>Location:<\/strong> <em>https:\/\/download.eclipse.org\/dsdp\/tm\/updates\/3.0<\/em><\/li>\n<\/ul>\n<p>Neste site encontraremos muitas vers\u00f5es deste <em>plugin<\/em>, escolha a op\u00e7\u00e3o <em>Remote System Explorer SDK 3.1.1<\/em> como na figura abaixo.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_1_escolhendo_RSE.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-963\" title=\"Escolhendo RSE\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_1_escolhendo_RSE-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Escolhendo RSE<\/div>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, podemos modificar o nosso <em>workspace<\/em> para a perspectiva oferecida pelo RSE, para isso acesse <em>Window -&gt; Open Perspective -&gt; Other<\/em> e escolha <em>Remote System Explorer<\/em> como na figura.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_2_mudanca_perspectiva_RSE.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-964\" title=\"Mudan\u00e7a de perspectiva\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_2_mudanca_perspectiva_RSE-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Mudan\u00e7a de perspectiva<\/div>\n<p>Com a nova perspectiva o <em>workspace<\/em> ficar\u00e1 parecido com este:<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_3_perspectiva_RSE.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-965\" title=\"Perspectiva do RSE\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_3_perspectiva_RSE-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Perspectiva do RSE<\/div>\n<p>Agora iremos criar uma conex\u00e3o com o Ginga-NCL Virtual STB (assegure-se que ele est\u00e1 rodando). Clique com o bot\u00e3o direito na aba <em>Remote Systems<\/em> e escolha <em>New -&gt; Connection. <\/em>A figura abaixo ilustra essa opera\u00e7\u00e3o.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_4_RSE-nova_conexao.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-967\" title=\"Nova conex\u00e3o - parte 1\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_4_RSE-nova_conexao-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Nova conex\u00e3o &#8211; parte 1<\/div>\n<p>Em seguida ser\u00e1 necess\u00e1rio escolher o tipo de conex\u00e3o com o sistema remoto, escolha <em>SSH Only.<\/em><\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_5_novao_conexao-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-966\" title=\"Nova conex\u00e3o \u2013 parte 2\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_5_novao_conexao-2-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Nova conex\u00e3o &#8211; parte 2<\/div>\n<p>Ap\u00f3s escolher o tipo de conex\u00e3o \u00e9 necess\u00e1rio configurar o <em>Host name<\/em> e atribuir um nome para a conex\u00e3o, como pode ser visto na figura abaixo.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_7_nova_conexao-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-968\" title=\"Nova conex\u00e3o \u2013 parte 3\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_7_nova_conexao-3-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Nova conex\u00e3o &#8211; parte 3<\/div>\n<p>Na configura\u00e7\u00e3o do <em>Host name <\/em>coloque o endere\u00e7o IP do seu Ginga-NCL Virtual STB.<\/p>\n<p>Logo em seguida clique em <em>Finish<\/em> para criar sua conex\u00e3o.<\/p>\n<p>Para nos conectarmos ao Ginga-NCL Virtual STB clique com o bot\u00e3o direito sobre a conex\u00e3o que acabou de criar e escolha a op\u00e7\u00e3o <em>Connect<\/em>.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_8_conectando.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-969\" title=\"Abrindo conex\u00e3o \u2013 parte 1\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_8_conectando-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Abrindo conex\u00e3o &#8211; parte 1<\/div>\n<p>Em seguida ser\u00e1 exibida a tela para o preenchimento do <em>login<\/em> e senha para a conex\u00e3o. Seguindo as instru\u00e7\u00f5es presentes na tela de abertura do Ginga-NCL Virtual STB preencha com o <em>login<\/em><strong>root<\/strong> e senha <strong>telemidia<\/strong>.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_9_conectando-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-970\" title=\"Abrindo conex\u00e3o \u2013 parte 2\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_9_conectando-2-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Abrindo conex\u00e3o &#8211; parte 2<\/div>\n<p>Para otimizar novas conex\u00f5es marque a caixa <em>Save password<\/em><\/p>\n<p>Com a conex\u00e3o estabelecida \u00e9 poss\u00edvel ter acesso aos arquivos do Ginga-NCL Virtual STB como exibido na figura abaixo.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_10_conexao_feita_mostrando-arquivos.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-971\" title=\"Visualiza\u00e7\u00e3o dos arquivos remotos\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_10_conexao_feita_mostrando-arquivos-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Visualiza\u00e7\u00e3o dos arquivos remotos<\/div>\n<p>\u00c9 poss\u00edvel executar a\u00e7\u00f5es, inclusive edi\u00e7\u00e3o, sobre os arquivos remotos como se fossem arquivos locais; o RSE abstrai isso para o desenvolvedor. Experimente dar um duplo clique em um dos arquivos e voc\u00ea ver\u00e1 que ele abrir\u00e1 para edi\u00e7\u00e3o como qualquer outro arquivo e todas as modifica\u00e7\u00f5es que voc\u00ea realizar s\u00e3o efetuadas diretamente no arquivo remoto. Tamb\u00e9m \u00e9 poss\u00edvel criar diret\u00f3rios e transferir arquivos, tudo da forma que voc\u00ea j\u00e1 faz no Eclipse.<\/p>\n<p>Agora abriremos um terminal para execu\u00e7\u00e3o de comandos diretamente no Ginga-NCL Virtual STB. Clique com o bot\u00e3o direito sobre <em>Ssh Terminals<\/em> e escolha <em>Launch Terminal.<\/em><\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_11_abrir_terminal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-972\" title=\"Abrindo terminal\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_11_abrir_terminal-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Abrindo terminal<\/div>\n<p>Com a utiliza\u00e7\u00e3o do terminal \u00e9 poss\u00edvel executarmos nossa aplica\u00e7\u00e3o sem sair do Eclipse.<\/p>\n<p>Na figura abaixo \u00e9 poss\u00edvel observar uma tela do Eclipse com o ambiente integrado. O arquivo aberto, no centro da tela, \u00e9 de uma aplica\u00e7\u00e3o de demonstra\u00e7\u00e3o e est\u00e1 sendo editada remotamente. Do lado direito temos um terminal com o comando para a execu\u00e7\u00e3o da aplica\u00e7\u00e3o que ser\u00e1 exibida na tela do Ginga-NCL Virtual STB.<\/p>\n<p><a href=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_12_terminal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-973\" title=\"Ambiente de trabalho\" src=\"https:\/\/www.gingadf.com\/blogGinga\/wp-content\/uploads\/2010\/05\/Install_RSE_12_terminal-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<div style=\"text-align: center;\">Ambiente de trabalho<\/div>\n<p>O RSE \u00e9 um <em>plugin<\/em> muito abrangente e apresenta mais funcionalidades do que as apresentadas aqui. Se voc\u00ea utiliza alguma funcionalidade que n\u00e3o foi apresentada, contribua com coment\u00e1rios.<\/p>\n<h1 style=\"text-align: center;\">Conclus\u00e3o<\/h1>\n<p>Vi por v\u00e1rias vezes as mesmas d\u00favidas sobre ferramentas e ambiente de desenvolvimento surgirem em quem estava iniciando o desenvolvimento de aplica\u00e7\u00f5es para TV Digital com o <em>middleware<\/em> Ginga-NCL, por isso decidi escrever este tutorial. Procurei reunir em um \u00fanico documento todos os passos para um iniciante conseguir, de forma f\u00e1cil e acess\u00edvel, estruturar seu ambiente de desenvolvimento.<\/p>\n<p>Agora \u00e9 s\u00f3 baixar a apostila <a href=\"https:\/\/www.peta5.com.br\/br\/downloads\/category\/1-apostilas\" target=\"_blank\">NCL e Lua: Desenvolvendo aplica\u00e7\u00f5es interativas para TV digital<\/a> e come\u00e7ar a codificar suas aplica\u00e7\u00f5es.<\/p>\n<p>Espero que as informa\u00e7\u00f5es aqui apresentadas tenham utilidade e contribuam para a comunidade. Os coment\u00e1rios est\u00e3o abertos para opini\u00f5es e acr\u00e9scimo de conhecimento.<\/p>\n<p>Por: Rafael Carvalho<br \/>\n<a href=\"https:\/\/twitter.com\/carvalho_rafael\" target=\"_blank\">https:\/\/twitter.com\/carvalho_rafael<\/a><\/p>\n<p>Fonte: <a href=\"https:\/\/www.peta5.com.br\" target=\"_blank\">Peta5<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aten\u00e7\u00e3o &nbsp; Esse tutorial foi atualizado e a vers\u00e3o atualizada encontra-se neste link\u00a0https:\/\/www.gingadf.com.br\/blogGinga\/tutorial-como-estruturar-seu-ambiente-de-desenvolvimento-para-o-ginga-ncl\/ \u00c9 muito recompensador desenvolver uma aplica\u00e7\u00e3o para TV digital e observar sua cria\u00e7\u00e3o sendo executada num set-top box e exibida na TV, por\u00e9m quem deseja come\u00e7ar a desenvolver seus primeiros aplicativos pode encontrar algumas dificuldades. No primeiro contato com o desenvolvimento para [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,12,10,15,86],"tags":[22,73,76,85],"class_list":["post-930","post","type-post","status-publish","format-standard","hentry","category-artigos","category-ginga-ncl","category-nclua","category-plugins","category-tutorial","tag-artigos-tv-digital","tag-ginga-ncl","tag-nclua","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/posts\/930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/comments?post=930"}],"version-history":[{"count":19,"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/posts\/930\/revisions"}],"predecessor-version":[{"id":3221,"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/posts\/930\/revisions\/3221"}],"wp:attachment":[{"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/media?parent=930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/categories?post=930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gingadf.com.br\/blogGinga\/wp-json\/wp\/v2\/tags?post=930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}