{"id":53001,"date":"2019-11-21T00:00:00","date_gmt":"2019-11-20T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove"},"modified":"2020-02-18T14:00:50","modified_gmt":"2020-02-18T11:00:50","slug":"reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","title":{"rendered":"GraalVM 19.3.0 virtu\u0101l\u0101s ma\u0161\u012bnas un Python, JavaScript, Ruby un R realiz\u0101ciju izlaidums","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Oracle uz\u0146\u0113mums <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/releases\/tag\/vm-19.3.0\">ir public\u0113jis<\/a><\/noindex> univers\u0101las virtu\u0101l\u0101s ma\u0161\u012bnas laidums <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/\">GraalVM 19.3.0<\/a><\/noindex>, atbalsto\u0161a lietojumprogrammu palai\u0161anu JavaScript (Node.js), Python, Ruby, R, jebkur\u0101s valod\u0101s, kas ir JVM (Java, Scala, Clojure, Kotlin) un valod\u0101s, kuru d\u0113\u013c var veidoties LLVM bitkods (C, C++, Rust). 19.3 zar\u0101 ir klasific\u0113ta k\u0101 ilgtermi\u0146a atbalsta (LTS) versija un <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/docs\/release-notes\/19_3\/\">ir iev\u0113rojama<\/a><\/noindex> atbalsts <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=49336\">JDK 11<\/a><\/noindex>, tostarp ar Java koda kompil\u0101cijas iesp\u0113j\u0101m izpildfailos (GraalVM Native Image). Projekta kods <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/\">tiek izplat\u012bts<\/a><\/noindex> saska\u0146\u0101 ar GPLv2 licenci. Taj\u0101 pa\u0161\u0101 laik\u0101 izdotas jaunas versijas, kas izmanto GraalVM, valod\u0101m Python, JavaScript, Ruby un R \u2014  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/\">GraalPython<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graaljs\/\">GraalJS<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/truffleruby\/\">TruffleRuby<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/fastr\/\">FastR<\/a><\/noindex>. <\/p>\n<p>GraalVM <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=48472\">, kas pal\u012bdz uztur\u0113t nep\u0101rtrauktu m\u0101jaslapu un serveru darb\u012bbu pat pie augst\u0101m slodz\u0113m. Papildus m\u0113s pied\u0101v\u0101jam<\/a><\/noindex> JIT kompilators, kas var uzreiz izpild\u012bt JVM kodu jebkur\u0101s skriptu valod\u0101s, tostarp JavaScript, Ruby, Python un R, k\u0101 ar\u012b nodro\u0161ina iesp\u0113ju palaist nativu kodu JVM, kas ir p\u0101rv\u0113rsts LLVM bitkod\u0101. GraalVM nodro\u0161ina r\u012bkus, kas ir neatkar\u012bgi no programm\u0113\u0161anas valod\u0101m, tostarp atk\u013c\u016bdo\u0161anas r\u012bkus, profil\u0113\u0161anas sist\u0113mu un atmi\u0146as sadal\u012bjuma anal\u012bzi. GraalVM \u013cauj veidot kombin\u0113tus lietojumfailus ar komponentiem, kas ir da\u017e\u0101d\u0101s valod\u0101s, \u013caujot piek\u013c\u016bt objektiem un mas\u012bviem no citu valodu koda. JVM balst\u012bt\u0101m valod\u0101m ir <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/docs\/reference-manual\/aot-compilation\/\">iesp\u0113ja<\/a><\/noindex> kompil\u0113to ma\u0161\u012bnkoda izpildfailu veido\u0161ana, ko var izpild\u012bt tie\u0161i ar minim\u0101l\u0101m atmi\u0146as pras\u012bb\u0101m (atmi\u0146as un pavedienu p\u0101rvald\u012bba tiek \u012bstenota, izmantojot <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/tree\/master\/substratevm\">Substrate VM<\/a><\/noindex>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graaljs\/blob\/master\/CHANGELOG.md\">Izmai\u0146as GraalJS<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Nodro\u0161in\u0101ta sader\u012bba ar Node.js 12.10.0;\n<li class=\"l\"> Nespecifisk\u0101s glob\u0101l\u0101s \u012bpa\u0161\u012bbas un funkcijas ir izsl\u0113gtas p\u0113c noklus\u0113juma:<br \/>\n       global (aizst\u0101ts ar globalThis, atgrie\u0161ana iesp\u0113jama, izmantojot iestat\u012bjumu js.global-property), performance (js.performance), print un printErr (js.print);<\/p>\n<li class=\"l\"> Ieviestas Promise.allSettled un nullish coalescing priek\u0161likums, kas pieejams ECMAScript 2020 re\u017e\u012bm\u0101 (\u2014js.ecmascript-version=2020);\n<li class=\"l\"> Atjaunin\u0101tas ICU4J atkar\u012bbas l\u012bdz 64.2, ASM l\u012bdz 7.1.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/blob\/master\/CHANGELOG.md#version-1930\">Izmai\u0146as<\/a><\/noindex> GraalPython:<\/p>\n<ul>\n<li class=\"l\"> Pievienotas stubs gc.{enable,disable,isenabled}, ieviestas charmap_build, sys.hexversion un _lzma;\n<li class=\"l\"> Atjaunin\u0101ta standarta Python bibliot\u0113ka l\u012bdz 3.7.8;\n<li class=\"l\"> Pievienota atbalsts NumPy 1.16.4 un Pandas 0.25.0;\n<li class=\"l\"> Pievienots atbalsts timeit;\n<li class=\"l\">  socket.socket ir novest l\u012bdz st\u0101voklim, kas \u013cauj palaist \u2018graalpython -m http.server\u2019 un iel\u0101d\u0113t ne\u0161ifr\u0113tus (bez TLS) http-resursus;\n<li class=\"l\"> Ir nov\u0113rstas probl\u0113mas, kas saist\u012btas ar pandas.DataFrame objektu izvad\u012b\u0161anu,<br \/>\n    nepareiza tuple apstr\u0101de bytes.startswith,<br \/>\n    destruktur\u0113jo\u0161ais pie\u0161\u0137ir\u0161ana iteratoriem un dict.__contains__ izmanto\u0161ana v\u0101rdn\u012bc\u0101m;<\/p>\n<li class=\"l\"> Pievienots atbalsts ast.PyCF_ONLY_AST, kas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/53\">at\u013c\u0101va<\/a><\/noindex> nodro\u0161in\u0101t pytest darb\u012bbu;\n<li class=\"l\"> Pievienota <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/85\">atbalsts<\/a><\/noindex> PEP 498 (virknju interpol\u0101cija liter\u0101los);\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/43\">Ieviests<\/a><\/noindex>  karogs \u2018\u2014python.EmulateJython\u2019 JVM-klas\u0113m import\u0113\u0161anai, izmantojot parasto Python-sintaksi import un ievietojot JVM-iz\u0146\u0113mumus no Python koda;\n<li class=\"l\">  Uzlabota parsera, iz\u0146\u0113mumu ke\u0161atmi\u0146as,<br \/>\n      pieejam\u012bba Python objektiem no JVM koda. Uzlaboti veiktsp\u0113jas testi gan Python, gan nativ\u0101s papla\u0161in\u0101jumos (nativu papla\u0161in\u0101jumu izpilde virs llvm noz\u012bm\u0113, ka llvm bitkods tiek nodots GraalVM JIT kompil\u0101cijai).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/truffleruby\/releases\/tag\/vm-19.3.0\">Izmai\u0146as<\/a><\/noindex> TruffleRuby:<\/p>\n<ul>\n<li class=\"l\"> Nativu papla\u0161in\u0101jumu kompil\u0101cijai tagad izmanto ieb\u016bv\u0113to LLVM r\u012bku, kas \u0123ener\u0113 gan nativu kodu, gan bitkodu. Tas noz\u012bm\u0113, ka vair\u0101k nativu papla\u0161in\u0101jumu vajadz\u0113tu kompil\u0113ties bez papildu iestat\u012bjumiem, risinot liel\u0101ko da\u013cu saist\u012bto probl\u0113mu;\n<li class=\"l\"> Atsevi\u0161\u0137a LLVM instal\u0101cija nativu papla\u0161in\u0101jumu uzst\u0101d\u012b\u0161anai TruffleRuby;\n<li class=\"l\"> C++ papla\u0161in\u0101jumu uzst\u0101d\u012b\u0161anai TruffleRuby vairs nav nepiecie\u0161ama libc++ un libc++abi instal\u0101cija;\n<li class=\"l\">    Licenze atjaunota uz EPL 2.0\/GPL 2.0\/LGPL 2.1, k\u0101 nesenaj\u0101 JRuby;\n<li class=\"l\"> Pievienota atbalsts opciju argumentiem GC.stat;\n<li class=\"l\"> Realiz\u0113ta metode Kernel#load ar apvalku un Kernel#spawn ar :chdir;\n<li class=\"l\"> Pievienots rb_str_drop_bytes, iev\u0113rojams ar to, ka to izmanto OpenSSL;\n<li class=\"l\">    Iek\u013cauti iepriek\u0161 instal\u0113tie gem papla\u0161in\u0101jumi, kas nepiecie\u0161ami rails new Rails 6;\n<li class=\"l\"> Nativu papla\u0161in\u0101jumu kompil\u0101cijai izmantoti karogi, k\u0101 MRI;\n<li class=\"l\"> Veiktsp\u0113jas optimiz\u0101cijas un atmi\u0146as pat\u0113ri\u0146a samazin\u0101jums.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/fastr\/releases\/tag\/vm-19.3.0\">Izmai\u0146as<\/a><\/noindex> FastR:<\/p>\n<ul>\n<li class=\"l\"> Nodro\u0161in\u0101ta R 3.6.1 sader\u012bba;\n<li class=\"l\"> Pievienota s\u0101kotn\u0113j\u0101 atbalsts nativu papla\u0161in\u0101jumu izpildei, izmantojot LLVM. Kompil\u0113jot nativu R pakot\u0146u, FastR ir konfigur\u0113ts, lai izmantotu ieb\u016bv\u0113to GraalVM LLVM r\u012bku. L\u012bdz\u012bgi ieg\u016btie bin\u0101rie faili satur\u0113s gan nativu kodu, gan LLVM bitkodu.\n<p>Iepriek\u0161 instal\u0113t\u0101s pakotnes ar\u012b ir kompil\u0113tas \u0161\u0101d\u0101 veid\u0101.<br \/>\n FastR p\u0113c noklus\u0113juma iel\u0101d\u0113 un palai\u017e papla\u0161in\u0101jumu nat\u012bvo kodu, bet, kad tas tiek palaists ar opciju \u2018\u2014R.BackEnd=llvm\u2019, tiks izmantota bitkoda. LLVM aizmugur\u0113jais izpild\u012bt\u0101js var tikt izmantots selekt\u012bvi da\u017eiem R pakotn\u0113m, nor\u0101dot \u2018\u2014R.BackEndLLVM=pkg1,pkg2\u2019. Ja rodas probl\u0113mas pakot\u0146u instal\u0101cij\u0101, varat atgriezt visu atpaka\u013c, izsaucot fastr.setToolchain(\u2018native\u2019) vai manu\u0101li redi\u0123\u0113jot failu $FASTR_HOME\/etc\/Makeconf;<\/p>\n<li class=\"l\"> \u0160aj\u0101 laidien\u0101 FastR tiek pieg\u0101d\u0101ts bez GCC runtime bibliot\u0113k\u0101m;\n<li class=\"l\"> Labotas atmi\u0146as nopl\u016bdes;\n<li class=\"l\"> Labotas probl\u0113mas ar lieliem vektoriem (&gt;1GB);\n<li class=\"l\"> Ir \u012bstenots grepRaw, ta\u010du tikai fixed=T.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Avots: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51906\">opennet.lv<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM 19.3.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript (Node.js), Python, Ruby, R, \u043b\u044e\u0431\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043b\u044f JVM (Java, Scala, Clojure, Kotlin) \u0438 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434 LLVM (C, C++, Rust). \u0412\u0435\u0442\u043a\u0430 19.3 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 (LTS) \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JDK 11, \u0432 \u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-53001","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b\" \/>\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\/lv\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\u0420\u0435\u043b\u0438\u0437 19.3.0 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Python, JavaScript, Ruby \u0438 R \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove\" \/>\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=\"2019-11-20T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:50+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\udd4719.3.0 versijas izdo\u0161ana GraalVM virtu\u0101lajai ma\u0161\u012bnai un t\u0101s Python, JavaScript, Ruby un R realiz\u0101cij\u0101m | ProHoster","description":"Uz\u0146\u0113mums Oracle ir public\u0113jis univers\u0101l\u0101s virtu\u0101l\u0101s ma\u0161\u012bnas izdo\u0161anu.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\u0420\u0435\u043b\u0438\u0437 19.3.0 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Python, JavaScript, Ruby \u0438 R \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b","og:url":"https:\/\/prohoster.info\/lv\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","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":"2019-11-20T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53001","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":"2026-01-24 05:41:27","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:33:28","updated":"2026-01-24 05:41:27","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/53001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=53001"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/53001\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=53001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=53001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=53001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}