{"id":81463,"date":"2020-05-13T13:42:49","date_gmt":"2020-05-13T11:42:49","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov"},"modified":"2020-05-13T13:42:49","modified_gmt":"2020-05-13T11:42:49","slug":"vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov","title":{"rendered":"Foi lan\u00e7ado o notcurses v1.4.1 \u2014 uma biblioteca para interfaces de texto modernas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/19139\/original.jpg\" itemprop=\"contentURL\"><br \/>\n      <img decoding=\"async\" alt=\"Foi lan\u00e7ado o notcurses v1.4.1 \u2014 uma biblioteca para interfaces de texto modernas\" src=\"\/wp-content\/uploads\/2020\/05\/973d5cc67751ccd145585d50ec2cba73.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>    <\/a><\/p>\n<p>Foi lan\u00e7ada uma nova vers\u00e3o da biblioteca notcurses v1.4.x \u00aba saga continua! wu-tang! wu-tang!\u00bb<\/p>\n<p><noindex><noindex><\/p>\n<p>Notcurses \u00e9 uma biblioteca TUI para emuladores de terminal modernos. Literalmente traduzido \u2013 n\u00e3o maldi\u00e7\u00f5es (not curses). Foi escrita em C, utilizando cabe\u00e7alhos seguros para C++. Est\u00e3o dispon\u00edveis wrappers para <a rel=\"nofollow\" href=\"https:\/\/crates.io\/crates\/notcurses\">Rust<\/a>, <a rel=\"nofollow\" href=\"https:\/\/github.com\/dankamongmen\/notcurses\/issues\/212\">C++<\/a> e <a rel=\"nofollow\" href=\"https:\/\/pypi.org\/project\/notcurses\">Python<\/a>.<\/p>\n<p><\/noindex><\/noindex><\/p>\n<p>O que \u00e9: uma biblioteca que simplifica TUI complexos em emuladores de terminal modernos, maximizando o suporte a cores brilhantes e Unicode. Muitas tarefas delegadas a curses podem ser executadas com notcurses (e vice-versa).<\/p>\n<p>O que isso n\u00e3o \u00e9: uma implementa\u00e7\u00e3o compat\u00edvel de X\/Open curses ou uma substitui\u00e7\u00e3o do ncurses em sistemas existentes.<\/p>\n<p>Notcurses renuncia \u00e0 API X\/Open Curses, fornecida como parte da Especifica\u00e7\u00e3o Single UNIX. Esta especifica\u00e7\u00e3o est\u00e1 h\u00e1 muito desatualizada e, por exemplo, n\u00e3o suporta funcionalidades de terminal como cor de 24 bits n\u00e3o indexada. Assim sendo, notcurses n\u00e3o \u00e9 uma substitui\u00e7\u00e3o de curses. \u00c9 menos port\u00e1til e definitivamente testada em menos equipamentos.<br \/>\nSempre que poss\u00edvel, notcurses usa a biblioteca terminfo fornecida com ncurses, extraindo o m\u00e1ximo de sua portabilidade.<br \/>\nNotcurses abre funcionalidades avan\u00e7adas para intera\u00e7\u00e3o com usu\u00e1rios em esta\u00e7\u00f5es de trabalho, telefones, laptops e tablets.<\/p>\n<p>Por que usar esta biblioteca n\u00e3o padr\u00e3o?<\/p>\n<ul>\n<li>\n<p>A seguran\u00e7a de thread e o uso eficiente em programas multithread desde o in\u00edcio foi uma considera\u00e7\u00e3o de design.<\/p>\n<\/li>\n<li>\n<p>Uma API mais bem estruturada em compara\u00e7\u00e3o com X\/Open:<\/p>\n<ul>\n<li>\n<p>Os identificadores exportados t\u00eam um prefixo para evitar colis\u00f5es de espa\u00e7o de nomes.<\/p>\n<\/li>\n<li>\n<p>O arquivo objeto da biblioteca exporta um conjunto m\u00ednimo de s\u00edmbolos. Onde apropriado, c\u00f3digo est\u00e1tico \u00e9 usado apenas para cabe\u00e7alhos em min\u00fasculas. Isso facilita a otimiza\u00e7\u00e3o do compilador e reduz o tempo de carregamento.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<noindex><\/p>\n<p>Todas as APIs originalmente suportam um conjunto universal de s\u00edmbolos (Unicode). A API para c\u00e9lulas \u00e9 baseada no conceito de <a rel=\"nofollow\" href=\"https:\/\/unicode.org\/reports\/tr29\/\">o Cluster de Grapheme Estendido do Unicode<\/a>.<\/p>\n<p><\/noindex>\n<\/li>\n<li>\n<p>Recursos visuais, incluindo imagens, fontes, v\u00eddeos, texto de alto contraste, sprites e \u00e1reas transparentes. Todas as APIs suportam nativamente cor de 24 bits, quantificada conforme necess\u00e1rio para o terminal.<\/p>\n<\/li>\n<li>\n<noindex><\/p>\n<p>Licen\u00e7a Apache2, ao contr\u00e1rio de <a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/ncurses\/ncurses-license.html\">drama<\/a> em v\u00e1rios atos, que \u00e9 a licen\u00e7a ncurses (a \u00faltima \u00e9 resumida como \u00abreformula\u00e7\u00f5es MIT-X11\u00bb).<\/p>\n<p><\/noindex>\n<\/li>\n<\/ul>\n<p>Desde o \u00faltimo lan\u00e7amento significativo 1.1.0, um vasto n\u00famero de funcionalidades foi adicionado. Principais mudan\u00e7as:<\/p>\n<ul>\n<li>\n<p>Widget de leitura para entrada de strings de forma arbitr\u00e1ria vinculadas \u00e0s strings para leitura<\/p>\n<\/li>\n<li>\n<p>Widget subprocesso para gerar um subprocesso, gerenci\u00e1-lo e transmitir seus resultados de volta.<\/p>\n<\/li>\n<li>\n<p>No Linux 5.3+ \u00e9 utilizado um novo mecanismo clone3+pidfd para gerenciar processos sem condi\u00e7\u00e3o de corrida.<\/p>\n<\/li>\n<li>\n<p>Widget Fdplane para transmiss\u00e3o de um descritor de arquivo arbitr\u00e1rio para um plano (onde o subprocesso \u00e9 constru\u00eddo). Ambos permitem que callbacks estilize ou manipule o texto de outras formas.<\/p>\n<\/li>\n<li>\n<p>Rota\u00e7\u00e3o de planos e efeitos visuais. Carregamento de visualiza\u00e7\u00f5es da mem\u00f3ria. Blitting arbitr\u00e1rio RGBA\/BGRx.<\/p>\n<\/li>\n<li>\n<p>O menu pode ser colocado em qualquer uma (ou em ambas) das superf\u00edcies superiores e inferiores.<\/p>\n<\/li>\n<li>\n<p>Grandes melhorias no modo Direct.<\/p>\n<\/li>\n<li>\n<p>Polyfills, gradientes e texto de alto contraste.<\/p>\n<\/li>\n<li>\n<p>Tetris adicionado como exemplo.<\/p>\n<\/li>\n<li>\n<p>As wrappers C++ de Marek Habersack agora podem lan\u00e7ar exce\u00e7\u00f5es (se necess\u00e1rio).<\/p>\n<\/li>\n<li>\n<p>Python e Rust FFI atualizados e testados.<\/p>\n<\/li>\n<\/ul>\n<p><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=TvWdUfIStDI\">V\u00eddeo demo com coment\u00e1rios do autor<\/a><br \/>\n<a rel=\"nofollow\" href=\"https:\/\/nick-black.com\/dankwiki\/index.php\/Hacking_The_Planet!_with_Notcurses\">O livro \u00abHacking The Planet! with Notcurses\u00bb do autor<\/a><\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/opensource\/15699897\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 notcurses v1.4.x &laquo;the saga continues! wu-tang! wu-tang!&raquo; Notcurses \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 TUI \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f &ndash; \u043d\u0435 \u043f\u0440\u043e\u043a\u043b\u044f\u0442\u0438\u044f (not curses). \u041e\u043d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0421, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c C++-safe headers. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u0434\u043b\u044f Rust, C++ \u0438 Python. \u0427\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0449\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0435 TUI \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u044f\u0440\u043a\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81464,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-81463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u0448\u043b\u0430 notcurses v1.4.1 \u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-13T11:42:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-13T11:42:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lan\u00e7ado notcurses v1.4.1 \u2014 biblioteca para interfaces de texto modernas | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u0448\u043b\u0430 notcurses v1.4.1 \u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 | ProHoster","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/vyshla-notcurses-v1-4-1-biblioteka-dlya-sovremennyh-tekstovyh-interfejsov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-13T11:42:49+00:00","article:modified_time":"2020-05-13T11:42:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81463","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:57:25","updated":"2022-09-29 16:14:56","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/81463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=81463"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/81463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/81464"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=81463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=81463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=81463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}