{"id":19852,"date":"2016-07-01T19:42:30","date_gmt":"2016-07-01T16:42:30","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=19852"},"modified":"2018-08-01T17:12:43","modified_gmt":"2018-08-01T14:12:43","slug":"introducing-a-one-click-button-for-deploying-to-ge-predix","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/","title":{"rendered":"Introducing a One-Click Button for Deploying to GE Predix"},"content":{"rendered":"<p>Do you have a sample app built for Predix that you want to share with others? In the past, you had to describe how to clone a Git repo step-by-step, set up build tools, and provide a Cloud Foundry script for pushing your app to the platform.<\/p>\n<p>Today, we\u2019re introducing the functionality for implementing the \u201cDeploy to Predix\u201d button, which automates the process. This button can be embedded in any README file, blog, article, web page, etc., linking to a publicly visible GitHub repository. It makes your audience immediately productive, deploying a copy of your app into their own Predix accounts\u2014with a single click.<\/p>\n<p>Below, we cover how to create the button for your own app and also explain what happens when a developer clicks it.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#How_it_works\" >How it works<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#Enabling_the_one-click_%E2%80%9CDeploy_to_Predix%E2%80%9D_button\" >Enabling the one-click \u201cDeploy to Predix\u201d button<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#Results\" >Results<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"How_it_works\"><\/span>How it works<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The <em>&#8220;Deploy to Predix&#8221;<\/em> button makes it easy for new developers to get started with your application. It automates the following:<\/p>\n<ul>\n<li>Creates a Predix application in the user\u2019s account<\/li>\n<li>Instantiates all of the required services and binds them to the created application<\/li>\n<li>Deploys the server component on the user\u2019s Predix account<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Enabling_the_one-click_%E2%80%9CDeploy_to_Predix%E2%80%9D_button\"><\/span>Enabling the one-click \u201cDeploy to Predix\u201d button<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For the following instructions, we\u2019re assuming that you have a <strong>public<\/strong> GitHub repository with a README file and the application source code.<\/p>\n<p>&nbsp;<br \/>\n<b>Step 1: Place the button<\/b><\/p>\n<p>The first component is the actual \u201cDeploy to Predix\u201d button in your <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">README.md<\/code> file. Use the following code snippet to create and place the button in your README file by replacing <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">YOUR_GIT_URL_HERE<\/code> with your repository\u2019s URL.<\/p>\n<p><strong>Note:<\/strong> Your GitHub repository must be public.<\/p>\n<p>HTML:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;a href=&quot;https:\/\/deploy-to-predix.altoros.com\/deploy?repo=YOUR_GIT_URL_HERE&quot;&gt; &lt;\u0456mg src=&quot;https:\/\/deploy-to-predix.altoros.com\/button.png&quot; alt=&quot;Deploy to Predix&quot;\/&gt;&lt;\/a&gt;<\/pre>\n<p><\/p>\n<p>Markdown:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">&#x5B;!&#x5B;Deploy to Predix](https:\/\/deploy-to-predix.altoros.com\/button.png)](https:\/\/deploy-to-predix.altoros.com\/deploy?repo=YOUR_GIT_URL_HERE)<\/pre>\n<p><\/p>\n<p>Your README should now have a button like this:<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deploy_to_ge_predix_button.png\" alt=\"deploy_to_ge_predix_button\" width=\"634\" height=\"133\" class=\"aligncenter size-full wp-image-19872\" \/><\/center><\/p>\n<p>&nbsp;<br \/>\n<b>Step 2: Add and modify your manifest.yml file<\/b><\/p>\n<p>A <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">manifest.yml<\/code> file placed at the root of the repository specifies which services the app needs.<\/p>\n<p>Modify <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">manifest.yml<\/code> with the following edits:<\/p>\n<ul>\n<li>Add the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">declared-services<\/code> field at the top of the file<\/li>\n<li>Copy and paste all the entries of <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">services<\/code> into <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">declared-services<\/code>, each in its own line<\/li>\n<li>For each service under <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">declared-services<\/code>, add the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">label<\/code> and <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">plan<\/code> fields<\/li>\n<\/ul>\n<p>Once finished with the edits, ensure that this file is at the root of your repository. In the end, you should have an output similar to the one below.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/modify-manifest-file-deploy-predix.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/modify-manifest-file-deploy-predix.png\" alt=\"\" width=\"328\" height=\"228\" class=\"aligncenter size-full wp-image-33443\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Results\"><\/span>Results<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>These steps will take place once a developer clicks on the button:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">The specified branch of the specified repository will be cloned.<\/li>\n<li style=\"margin-bottom: 6px;\">If a build file was provided, it will be automatically detected and executed. (Supported build types: Ant, Maven, Gradel, Grunt, and npm).<\/li>\n<li>The manifest file is used to initialize \/ bind the required services and deploys the application to the user\u2019s account.<\/li>\n<\/ul>\n<p>To see the button in action, you can go to <a href=\"https:\/\/github.com\/Altoros\/nodejs-rediscache\" target=\"_blank\">our demo repository<\/a> and click the &#8220;Deploy to Predix&#8221; button.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deploy-to-ge-predix.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deploy-to-ge-predix-1024x717.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-19873\" \/><\/a><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/using-time-series-in-a-spring-boot-app-on-predix\/\">Using Predix Time Series in a Spring Boot App<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/an-iot-prototype-light-monitoring-with-nodered-components-in-predix\/\">IoT Prototype: Light Monitoring with NodeRED Components in Predix<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/collecting-time-series-data-with-predix-a-golang-api-wrapper-included\/\">Collecting Time Series Data with Predix (a Golang API Wrapper Included)<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/sinatra-starter-for-predix-ruby-app-with-postgresql-and-redis\/\">Sinatra Starter for Predix: Ruby App with PostgreSQL and Redis<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Do you have a sample app built for Predix that you want to share with others? In the past, you had to describe how to clone a Git repo step-by-step, set up build tools, and provide a Cloud Foundry script for pushing your app to the platform.<\/p>\n<p>Today, we\u2019re introducing the [&#8230;]<\/p>\n","protected":false},"author":90,"featured_media":33440,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,647],"class_list":["post-19852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-predix"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing a One-Click Button for Deploying to GE Predix | Altoros<\/title>\n<meta name=\"description\" content=\"The solution can be embedded on any web page, enabling to automatically deploy an app to Predix in just two steps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing a One-Click Button for Deploying to GE Predix | Altoros\" \/>\n<meta property=\"og:description\" content=\"Do you have a sample app built for Predix that you want to share with others? In the past, you had to describe how to clone a Git repo step-by-step, set up build tools, and provide a Cloud Foundry script for pushing your app to the platform. Today, we\u2019re introducing the [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-01T16:42:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-01T14:12:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Stas Turlo\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stas Turlo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/\",\"name\":\"Introducing a One-Click Button for Deploying to GE Predix | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif\",\"datePublished\":\"2016-07-01T16:42:30+00:00\",\"dateModified\":\"2018-08-01T14:12:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/11d47ed3fb77ea65d2dd1af0af17f1f1\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif\",\"width\":640,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing a One-Click Button for Deploying to GE Predix\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/11d47ed3fb77ea65d2dd1af0af17f1f1\",\"name\":\"Stas Turlo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Turlo_Stanislav.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Turlo_Stanislav.png\",\"caption\":\"Stas Turlo\"},\"description\":\"Stas Turlo is a software engineer at Altoros. He has 10+ years of experience in reverse engineering, object-oriented programming, cloud computing, and data analysis. His expertise includes reconstructing algorithms, file formats, and structures of binary data. Using Golang and Ruby as his primary tools, Stas is also proficient in Python, C \/ C++, and C#. You can find Stas on GitHub.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/s-turlo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducing a One-Click Button for Deploying to GE Predix | Altoros","description":"The solution can be embedded on any web page, enabling to automatically deploy an app to Predix in just two steps.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/","og_locale":"en_US","og_type":"article","og_title":"Introducing a One-Click Button for Deploying to GE Predix | Altoros","og_description":"Do you have a sample app built for Predix that you want to share with others? In the past, you had to describe how to clone a Git repo step-by-step, set up build tools, and provide a Cloud Foundry script for pushing your app to the platform. Today, we\u2019re introducing the [...]","og_url":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/","og_site_name":"Altoros","article_published_time":"2016-07-01T16:42:30+00:00","article_modified_time":"2018-08-01T14:12:43+00:00","og_image":[{"width":640,"height":448,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif","type":"image\/gif"}],"author":"Stas Turlo","twitter_misc":{"Written by":"Stas Turlo","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/","url":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/","name":"Introducing a One-Click Button for Deploying to GE Predix | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif","datePublished":"2016-07-01T16:42:30+00:00","dateModified":"2018-08-01T14:12:43+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/11d47ed3fb77ea65d2dd1af0af17f1f1"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/07\/introducing-a-one-click-button-for-deploying-to-ge-predix-v1.gif","width":640,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/introducing-a-one-click-button-for-deploying-to-ge-predix\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing a One-Click Button for Deploying to GE Predix"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/11d47ed3fb77ea65d2dd1af0af17f1f1","name":"Stas Turlo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Turlo_Stanislav.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/12\/Turlo_Stanislav.png","caption":"Stas Turlo"},"description":"Stas Turlo is a software engineer at Altoros. He has 10+ years of experience in reverse engineering, object-oriented programming, cloud computing, and data analysis. His expertise includes reconstructing algorithms, file formats, and structures of binary data. Using Golang and Ruby as his primary tools, Stas is also proficient in Python, C \/ C++, and C#. You can find Stas on GitHub.","url":"https:\/\/www.altoros.com\/blog\/author\/s-turlo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/19852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=19852"}],"version-history":[{"count":11,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/19852\/revisions"}],"predecessor-version":[{"id":33445,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/19852\/revisions\/33445"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/33440"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=19852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=19852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=19852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}