{"id":239,"date":"2011-04-10T15:05:48","date_gmt":"2011-04-10T15:05:48","guid":{"rendered":"http:\/\/blog.filipesaraiva.info\/?p=239"},"modified":"2011-05-10T18:23:54","modified_gmt":"2011-05-10T18:23:54","slug":"proposta-submetida-ao-gsoc-suporte-ao-scilab-no-cantor","status":"publish","type":"post","link":"https:\/\/filipe.saraiva.tec.br\/blog\/?p=239","title":{"rendered":"Proposta submetida ao GSoC: Suporte ao Scilab no Cantor"},"content":{"rendered":"<p style=\"text-align: justify;\">O prazo de submiss\u00e3o de projetos ao <a href=\"http:\/\/google-melange.com\/\" target=\"_blank\">Google Summer of Code (GSoC)<\/a> 2011 acabou. Agora, irei falar brevemente sobre minha proposta &#8211; que, na verdade, j\u00e1\u00a0 <a href=\"http:\/\/community.kde.org\/GSoC\/2010\/Ideas#Project:_Cantor:_Add_a_new_Backend\" target=\"_blank\">apareceu como sugest\u00e3o<\/a> em outra edi\u00e7\u00e3o do GSoC.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/scilab_logo_small.jpg\" alt=\"\" width=\"200\" height=\"111\" \/><\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/scilab.org\/\" target=\"_blank\">Scilab<\/a> \u00e9 um dos principais ambientes cient\u00edficos de programa\u00e7\u00e3o matem\u00e1tica em software livre dispon\u00edvel no mercado, uma alternativa de qualidade compar\u00e1vel ao ambiente propriet\u00e1rio Matlab. Seu desenvolvimento inicial deu-se em 1990, promovido por pesquisadores ligados \u00e0s institui\u00e7\u00f5es francesas INRIA (Institut National de Recherche en Informatique et en Automatique) e ENPC (\u00c9cole Nationale des Ponts et Chauss\u00e9es).<\/p>\n<p style=\"text-align: justify;\">Em 2003 foi criado o Scilab Consortium, para promover o Scilab como um software cient\u00edfico de refer\u00eancia para a academia e a ind\u00fastria.\u00a0 Scilab \u00e9 utilizado por diversos centros de pesquisa, ind\u00fastrias e universidades ao redor do mundo, em pesquisas t\u00e3o diversas quanto processamento de sinais, simula\u00e7\u00e3o de din\u00e2mica de flu\u00eddos, otimiza\u00e7\u00e3o combinat\u00f3ria, simula\u00e7\u00e3o de aprendizado de m\u00e1quina, entre outras.<\/p>\n<p><!-- p, li { white-space: pre-wrap; } --><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/cantor_maxima_demo_big.png\" alt=\"\" width=\"480\" height=\"357\" \/><\/p>\n<p style=\"text-align: center;\">Cantor &#8211; <a href=\"http:\/\/arieder.wordpress.com\/2009\/10\/20\/introducing-cantor\/\" target=\"_blank\">screenshot<\/a> por Alexander Rieder<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/edu.kde.org\/cantor\/\" target=\"_blank\">Cantor<\/a> \u00e9 um software cient\u00edfico do KDE SC que serve como interface gr\u00e1fica para softwares de processamento matem\u00e1tico, a partir de uma estrutura de plugins que fornece <em>backends<\/em> para estes. Atualmente, Cantor suporta o uso de Kalgebra, Sage, Maxima, R e GNU Octave.<\/p>\n<p style=\"text-align: justify;\">O grande interesse para o uso de Cantor est\u00e1 na possibilidade de trabalhar a programa\u00e7\u00e3o cient\u00edfico- matem\u00e1tica em um ambiente moderno, com funcionalidades dispon\u00edveis como impress\u00e3o de c\u00f3digo, trabalhar em m\u00faltiplas abas, ter dispon\u00edvel um editor de textos com destaque de sintaxe, auto- complete e mais fun\u00e7\u00f5es presentes a partir das tecnologias do Qt e KDE.<\/p>\n<p style=\"text-align: justify;\">Ent\u00e3o, a presente proposta objetiva criar um backend para o Scilab no Cantor, promovendo assim o suporte a este ambiente matem\u00e1tico neste software de cunho cient\u00edfico do KDE. Assim, daremos ao Cantor ainda mais visibilidade na comunidade acad\u00eamica e industrial de programa\u00e7\u00e3o matem\u00e1tica, como uma alternativa consistente e flex\u00edvel de interface gr\u00e1fica para os principais ambientes de programa\u00e7\u00e3o matem\u00e1tica dispon\u00edveis, em especial para o Scilab que \u00e9 um dos mais utilizados e reconhecidamente de qualidade indiscut\u00edvel entre os demais dispon\u00edveis no mercado.<\/p>\n<p style=\"text-align: justify;\">Para prover embasamento para a proposta, eu desenvolvi c\u00f3digo em C++ puro que chama Scilab para execu\u00e7\u00e3o de tarefas. Eu uso a API Scilab chamada <a href=\"http:\/\/help.scilab.org\/docs\/5.3.1\/en_US\/call_scilab.html\" target=\"_blank\">call_scilab<\/a> para fazer esse trabalho. Isto serve apenas para demonstrar que \u00e9 poss\u00edvel desenvolver o <em>backend<\/em> atrav\u00e9s da API Scilab.<\/p>\n<p style=\"text-align: justify;\">Por exemplo, vamos definir uma matriz &#8220;x&#8221; em Scilab com 100 elementos (clique na figura para aumentar a imagem):<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrix1.png\"><\/a><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrix1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"237\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=237\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix.png\" data-orig-size=\"1280,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ScilabMatrix\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-300x187.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-1024x640.png\" class=\"aligncenter size-large wp-image-237\" title=\"ScilabMatrix\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrix1.png\" alt=\"\" width=\"614\" height=\"384\" \/><\/a><br \/>\ne agora, em C++ utilizando call_scilaband. No lado esquerdo voc\u00ea tem o c\u00f3digo; no lado direito, a execu\u00e7\u00e3o do programa:<\/p>\n<p><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabAPIMatrix1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"237\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=237\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix.png\" data-orig-size=\"1280,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ScilabMatrix\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-300x187.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-1024x640.png\" class=\"aligncenter size-large wp-image-237\" title=\"ScilabMatrix\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabAPIMatrix1.png\" alt=\"\" width=\"614\" height=\"384\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Beleza, funcionou! Agora, n\u00f3s executaremos uma opera\u00e7\u00e3o matem\u00e1tica com nodas defini\u00e7\u00f5es e atribui\u00e7\u00f5es de vari\u00e1veis (y = 2 * x; z = 2 * x + 3 * y). Primeiro, no Scilab:<\/p>\n<p><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrixOperation1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"237\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=237\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix.png\" data-orig-size=\"1280,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ScilabMatrix\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-300x187.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-1024x640.png\" class=\"aligncenter size-large wp-image-237\" title=\"ScilabMatrix\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrixOperation1.png\" alt=\"\" width=\"614\" height=\"384\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Agora, no c\u00f3digo C++:<\/p>\n<p><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabAPIMatrixOperation1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"237\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=237\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix.png\" data-orig-size=\"1280,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ScilabMatrix\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-300x187.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-1024x640.png\" class=\"aligncenter size-large wp-image-237\" title=\"ScilabMatrix\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabAPIMatrixOperation1.png\" alt=\"\" width=\"614\" height=\"384\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Finalmente, n\u00f3s desenharemos o gr\u00e1fico de &#8220;z&#8221;. No Scilab:<\/p>\n<p><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrixPlot1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"237\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=237\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix.png\" data-orig-size=\"1280,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ScilabMatrix\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-300x187.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-1024x640.png\" class=\"aligncenter size-large wp-image-237\" title=\"ScilabMatrix\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabMatrixPlot1.png\" alt=\"\" width=\"614\" height=\"384\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">E, usando o c\u00f3digo C++:<\/p>\n<p><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabAPIMatrixPlot1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"237\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=237\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix.png\" data-orig-size=\"1280,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ScilabMatrix\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-300x187.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2011\/04\/ScilabMatrix-1024x640.png\" class=\"aligncenter size-large wp-image-237\" title=\"ScilabMatrix\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/04\/ScilabAPIMatrixPlot1.png\" alt=\"\" width=\"614\" height=\"384\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Bem, o desafio agora \u00e9 pegar isto e implementar em C++ com Qt, desenvolvendo de acordo com a padroniza\u00e7\u00e3o de c\u00f3digo no Cantor. Outro desafio tamb\u00e9m ser\u00e1 a gera\u00e7\u00e3o de gr\u00e1ficos no Scilab, mas eu j\u00e1 coloquei uma alternativa de desenvolvimento no projeto que enviei ao GSoC.<\/p>\n<p style=\"text-align: justify;\">Eu estou com muita expectativa sobre a possibilidade de trabalhar com duas comunidades de software livre (KDE e Scilab) no GSoC. E, certamente, este projeto ser\u00e1 meu filhote no KDE! \ud83d\ude00<\/p>\n<p style=\"text-align: justify;\">Estou torcendo aqui! Valeu pessoal!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O prazo de submiss\u00e3o de projetos ao Google Summer of Code (GSoC) 2011 acabou. Agora, irei falar brevemente sobre minha proposta &#8211; que, na verdade, j\u00e1\u00a0 apareceu como sugest\u00e3o em outra edi\u00e7\u00e3o do GSoC. Scilab \u00e9 um dos principais ambientes cient\u00edficos de programa\u00e7\u00e3o matem\u00e1tica em software livre dispon\u00edvel no mercado, uma alternativa de qualidade compar\u00e1vel&hellip;&nbsp;<a href=\"https:\/\/filipe.saraiva.tec.br\/blog\/?p=239\" class=\"\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Proposta submetida ao GSoC: Suporte ao Scilab no Cantor<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35,23,9],"tags":[11,47,59,26,42,41,49,55],"class_list":["post-239","post","type-post","status-publish","format-standard","hentry","category-academico","category-pessoal","category-software-livre","tag-desenvolvimento","tag-gsoc","tag-gsoc2011-scilab-backend","tag-kde","tag-planet-mageia-portugues","tag-planeta-psl-pi","tag-planetkde-portugues","tag-scilab"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1p2Jh-3R","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=239"}],"version-history":[{"count":5,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions"}],"predecessor-version":[{"id":313,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions\/313"}],"wp:attachment":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}