{"id":740,"date":"2019-06-19T22:25:30","date_gmt":"2019-06-19T20:25:30","guid":{"rendered":"http:\/\/blog.zhaw.ch\/splab\/?p=740"},"modified":"2019-06-19T22:25:30","modified_gmt":"2019-06-19T20:25:30","slug":"colloquium-on-developer-targeted-performance-engineering","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/","title":{"rendered":"Colloquium on Developer-Targeted Performance Engineering"},"content":{"rendered":"\n<p>The eternal <a href=\"https:\/\/www.youtube.com\/watch?v=y6NSdGL8czw\">software circle of life<\/a> continues to pose non-trivial challenges. Developers write code, run tests, push and\/or deploy, perhaps leading to more tests, and finally see their software used in production. Eventually, they might see everything working out correctly or rather not, as indicated by log messages, user complaints and other side channels, and even more eventually, when nothing else gets in the way, they might even attempt to fix the problem at any code location which might have a probability of contributing to the issue.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg\" alt=\"\" class=\"wp-image-741\" srcset=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg 1024w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-300x225.jpg 300w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-768x576.jpg 768w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-676x507.jpg 676w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<!--more-->\n\n\n\n<p>At the Service Prototyping Lab, we received the sixth international speaker in our <a href=\"https:\/\/blog.zhaw.ch\/splab\/for-students\/colloquium-series\/\">colloquium series<\/a> with <a href=\"https:\/\/twitter.com\/xLeitix\">Philipp Leitner<\/a> from Chalmers and University of Gothenburg (<a href=\"https:\/\/icet-lab.eu\/\">ICET Lab<\/a>) who elaborated on the performance aspects of this roundtripping and showed techniques to improve the process. In the simplified phase view of Design, Development, QA\/Pre-Deployment and Operations, he and his fellow researchers focus on the development phase and analyse software frameworks which aim to tackle performance issue detection.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0799-1024x768.jpg\" alt=\"\" class=\"wp-image-742\" srcset=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0799-1024x768.jpg 1024w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0799-300x225.jpg 300w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0799-768x576.jpg 768w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0799-676x507.jpg 676w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0799.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Using the Java Microbenchmark Harness (<a href=\"https:\/\/www.oreilly.com\/library\/view\/mastering-high-performance\/9781788996648\/5e11873a-f070-43b7-ab0a-6e1fa4f96921.xhtml\">JMH<\/a>) as an example, he pointed out that more often than not (really: almost always), <a href=\"https:\/\/wiki.openjdk.java.net\/display\/HotSpot\/MicroBenchmarks\">microbenchmarks<\/a> are used incorrectly on the code level by falling into many antipattern traps despite documentation to the contrary. Moreover, even correctly annotated code is often not run regularly, or not correctly, e.g. on developer notebooks or <a href=\"https:\/\/doi.org\/10.1145\/2885497\">shaky cloud instances<\/a>, and on equally timing-unpredictable language virtual machines (e.g. JVM), which raise a lot of questions about the interpretability of the benchmark results.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0801-1024x768.jpg\" alt=\"\" class=\"wp-image-743\" srcset=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0801-1024x768.jpg 1024w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0801-300x225.jpg 300w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0801-768x576.jpg 768w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0801-676x507.jpg 676w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0801.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>By using cloud resources, benchmarks can however be repeated multiple times and averaged. Moreover, regressions over time can be identified or the crossing of predefined thresholds can be noted. This means that promising integrations of microbenchmarks, for example through visualisation in IDEs or through automation in CI\/CD pipelines, might eventually emerge as standard development technique which we should teach in our software development courses.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0802-1024x768.jpg\" alt=\"\" class=\"wp-image-744\" srcset=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0802-1024x768.jpg 1024w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0802-300x225.jpg 300w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0802-768x576.jpg 768w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0802-676x507.jpg 676w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0802.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The state of tooling as a result of the research work is already helpful, as evidenced by the many accepted Git pull requests of issues identified in many microbenchmark-using open source projects with static code analysis. However, runtime and integration tooling needs to be improved, and given the lax state of technology, it is likely that real impact and relieve on the side of software developers is caused by the upcoming research work.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0803-1024x768.jpg\" alt=\"\" class=\"wp-image-745\" srcset=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0803-1024x768.jpg 1024w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0803-300x225.jpg 300w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0803-768x576.jpg 768w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0803-676x507.jpg 676w, https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0803.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"http:\/\/blog.zhaw.ch\/splab\/tag\/cloud\/\">cloud<\/a>, <a href=\"http:\/\/blog.zhaw.ch\/splab\/tag\/colloquium\/\">colloquium<\/a>, <a href=\"http:\/\/blog.zhaw.ch\/splab\/tag\/exchange\/\">exchange<\/a>, <a href=\"http:\/\/blog.zhaw.ch\/splab\/tag\/performance\/\">performance<\/a>, <a href=\"http:\/\/blog.zhaw.ch\/splab\/tag\/software-development\/\">software development<\/a>, <a href=\"http:\/\/blog.zhaw.ch\/splab\/tag\/talk\/\">talk<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>The eternal software circle of life continues to pose non-trivial challenges. Developers write code, run tests, push and\/or deploy, perhaps leading to more tests, and finally see their software used in production. Eventually, they might see everything working out correctly or rather not, as indicated by log messages, user complaints and other side channels, and [&hellip;]<\/p>\n","protected":false},"author":203,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[11],"tags":[17,15,14,78,49,16],"features":[],"class_list":["post-740","post","type-post","status-publish","format-standard","hentry","category-education","tag-cloud","tag-colloquium","tag-exchange","tag-performance","tag-software-development","tag-talk"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Colloquium on Developer-Targeted Performance Engineering - Service Prototyping Lab<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Colloquium on Developer-Targeted Performance Engineering\" \/>\n<meta property=\"og:description\" content=\"The eternal software circle of life continues to pose non-trivial challenges. Developers write code, run tests, push and\/or deploy, perhaps leading to more tests, and finally see their software used in production. Eventually, they might see everything working out correctly or rather not, as indicated by log messages, user complaints and other side channels, and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Prototyping Lab\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-19T20:25:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg\" \/>\n<meta name=\"author\" content=\"Josef Spillner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Josef Spillner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\"},\"author\":{\"name\":\"Josef Spillner\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/#\/schema\/person\/33a5227c6cc1fa3329279d33c3cc440e\"},\"headline\":\"Colloquium on Developer-Targeted Performance Engineering\",\"datePublished\":\"2019-06-19T20:25:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\"},\"wordCount\":390,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg\",\"keywords\":[\"cloud\",\"colloquium\",\"exchange\",\"performance\",\"software development\",\"talk\"],\"articleSection\":[\"Education\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\",\"url\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\",\"name\":\"Colloquium on Developer-Targeted Performance Engineering - Service Prototyping Lab\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg\",\"datePublished\":\"2019-06-19T20:25:30+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/#\/schema\/person\/33a5227c6cc1fa3329279d33c3cc440e\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage\",\"url\":\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg\",\"contentUrl\":\"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/splab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Colloquium on Developer-Targeted Performance Engineering\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/splab\/\",\"name\":\"Service Prototyping Lab\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/splab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/splab\/#\/schema\/person\/33a5227c6cc1fa3329279d33c3cc440e\",\"name\":\"Josef Spillner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c57d7019e91373902c08eac230e003cb4f8498ecf68c9d119e9ecb82fdf6c400?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c57d7019e91373902c08eac230e003cb4f8498ecf68c9d119e9ecb82fdf6c400?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c57d7019e91373902c08eac230e003cb4f8498ecf68c9d119e9ecb82fdf6c400?s=96&d=mm&r=g\",\"caption\":\"Josef Spillner\"},\"description\":\"Head of the Service Prototyping Lab. Research on distributed systems and application computing paradigms. Senior lecturer at Zurich University of Applied Sciences.\",\"url\":\"https:\/\/blog.zhaw.ch\/splab\/author\/spio\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Colloquium on Developer-Targeted Performance Engineering - Service Prototyping Lab","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:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/","og_locale":"en_GB","og_type":"article","og_title":"Colloquium on Developer-Targeted Performance Engineering","og_description":"The eternal software circle of life continues to pose non-trivial challenges. Developers write code, run tests, push and\/or deploy, perhaps leading to more tests, and finally see their software used in production. Eventually, they might see everything working out correctly or rather not, as indicated by log messages, user complaints and other side channels, and [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/","og_site_name":"Service Prototyping Lab","article_published_time":"2019-06-19T20:25:30+00:00","og_image":[{"url":"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg","type":"","width":"","height":""}],"author":"Josef Spillner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Josef Spillner","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/"},"author":{"name":"Josef Spillner","@id":"https:\/\/blog.zhaw.ch\/splab\/#\/schema\/person\/33a5227c6cc1fa3329279d33c3cc440e"},"headline":"Colloquium on Developer-Targeted Performance Engineering","datePublished":"2019-06-19T20:25:30+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/"},"wordCount":390,"commentCount":0,"image":{"@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg","keywords":["cloud","colloquium","exchange","performance","software development","talk"],"articleSection":["Education"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/","url":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/","name":"Colloquium on Developer-Targeted Performance Engineering - Service Prototyping Lab","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/splab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg","datePublished":"2019-06-19T20:25:30+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/splab\/#\/schema\/person\/33a5227c6cc1fa3329279d33c3cc440e"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#primaryimage","url":"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg","contentUrl":"https:\/\/blog.zhaw.ch\/splab\/files\/2019\/06\/IMG_0798-1024x768.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/splab\/2019\/06\/19\/colloquium-on-developer-targeted-performance-engineering\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/splab\/"},{"@type":"ListItem","position":2,"name":"Colloquium on Developer-Targeted Performance Engineering"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/splab\/#website","url":"https:\/\/blog.zhaw.ch\/splab\/","name":"Service Prototyping Lab","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/splab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/splab\/#\/schema\/person\/33a5227c6cc1fa3329279d33c3cc440e","name":"Josef Spillner","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/c57d7019e91373902c08eac230e003cb4f8498ecf68c9d119e9ecb82fdf6c400?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c57d7019e91373902c08eac230e003cb4f8498ecf68c9d119e9ecb82fdf6c400?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c57d7019e91373902c08eac230e003cb4f8498ecf68c9d119e9ecb82fdf6c400?s=96&d=mm&r=g","caption":"Josef Spillner"},"description":"Head of the Service Prototyping Lab. Research on distributed systems and application computing paradigms. Senior lecturer at Zurich University of Applied Sciences.","url":"https:\/\/blog.zhaw.ch\/splab\/author\/spio\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/posts\/740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/users\/203"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/comments?post=740"}],"version-history":[{"count":1,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/posts\/740\/revisions"}],"predecessor-version":[{"id":746,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/posts\/740\/revisions\/746"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/media?parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/categories?post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/tags?post=740"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/splab\/wp-json\/wp\/v2\/features?post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}